@@ -13,6 +13,8 @@ public final class StringFunctionTest extends PlanTestBase {
1313 static String CREATES = "CREATE TABLE strings (c16 CHAR(16), vc32 VARCHAR(32), vc VARCHAR)" ;
1414 static String REPLACE_CREATES =
1515 "CREATE TABLE replace_strings (c16 CHAR(16), vc32 VARCHAR(32), replace_from VARCHAR(16), replace_to VARCHAR(16))" ;
16+ static String CHAR_INT_CREATES =
17+ "CREATE TABLE int_num_strings (vc32 VARCHAR(32), vc VARCHAR, i32 INT)" ;
1618
1719 @ ParameterizedTest
1820 @ ValueSource (strings = {"c16" , "vc32" })
@@ -270,4 +272,42 @@ void testStrposWithLiteral(String left, String right) throws Exception {
270272
271273 assertSqlRoundTrip (query );
272274 }
275+
276+ @ ParameterizedTest
277+ @ CsvSource ({"vc32, i32" , "vc, i32" })
278+ void testLeft (String left , String right ) throws Exception {
279+
280+ String query = String .format ("SELECT LEFT(%s, %s) FROM int_num_strings" , left , right );
281+
282+ assertSqlSubstraitRelRoundTrip (query , CHAR_INT_CREATES );
283+ }
284+
285+ @ ParameterizedTest
286+ @ CsvSource ({"vc32, i32" , "vc, i32" })
287+ void testRight (String left , String right ) throws Exception {
288+
289+ String query = String .format ("SELECT RIGHT(%s, %s) FROM int_num_strings" , left , right );
290+
291+ assertSqlSubstraitRelRoundTrip (query , CHAR_INT_CREATES );
292+ }
293+
294+ @ ParameterizedTest
295+ @ CsvSource ({"vc32, i32, vc32" , "vc, i32, vc" })
296+ void testRpad (String left , String center , String right ) throws Exception {
297+
298+ String query =
299+ String .format ("SELECT RPAD(%s, %s, %s) FROM int_num_strings" , left , center , right );
300+
301+ assertSqlSubstraitRelRoundTrip (query , CHAR_INT_CREATES );
302+ }
303+
304+ @ ParameterizedTest
305+ @ CsvSource ({"vc32, i32, vc32" , "vc, i32, vc" })
306+ void testLpad (String left , String center , String right ) throws Exception {
307+
308+ String query =
309+ String .format ("SELECT LPAD(%s, %s, %s) FROM int_num_strings" , left , center , right );
310+
311+ assertSqlSubstraitRelRoundTrip (query , CHAR_INT_CREATES );
312+ }
273313}
0 commit comments