@@ -2573,3 +2573,33 @@ def test_reserved_keywords(self):
2573
2573
"""SELECT partition.d FROM t PARTITION (d)""" ,
2574
2574
"""SELECT partition.d FROM t AS PARTITION(d)""" ,
2575
2575
)
2576
+
2577
+ def test_string_functions (self ):
2578
+ for pad_func in ("LPAD" , "RPAD" ):
2579
+ ch_alias = "LEFTPAD" if pad_func == "LPAD" else "RIGHTPAD"
2580
+ for fill_pattern in ("" , ", ' '" ):
2581
+ with self .subTest (f"Testing { pad_func } () with pattern { fill_pattern } " ):
2582
+ self .validate_all (
2583
+ f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2584
+ read = {
2585
+ "snowflake" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2586
+ "databricks" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2587
+ "spark" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2588
+ "postgres" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2589
+ "clickhouse" : f"SELECT { ch_alias } ('bar', 5{ fill_pattern } )" ,
2590
+ },
2591
+ write = {
2592
+ "" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2593
+ "spark" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2594
+ "postgres" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2595
+ "clickhouse" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2596
+ "snowflake" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2597
+ "databricks" : f"SELECT { pad_func } ('bar', 5{ fill_pattern } )" ,
2598
+ "duckdb" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2599
+ "mysql" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2600
+ "hive" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2601
+ "spark2" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2602
+ "presto" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2603
+ "trino" : f"SELECT { pad_func } ('bar', 5, ' ')" ,
2604
+ },
2605
+ )
0 commit comments