caicancai commented on code in PR #3828:
URL: https://github.com/apache/calcite/pull/3828#discussion_r1663546614
##########
testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java:
##########
@@ -10772,8 +10794,30 @@ void assertSubFunReturns(boolean binary, String s, int
start,
"VARCHAR(5) NOT NULL");
};
final List<SqlLibrary> libraries =
- list(SqlLibrary.BIG_QUERY, SqlLibrary.ORACLE, SqlLibrary.REDSHIFT,
- SqlLibrary.SPARK);
+ list(SqlLibrary.BIG_QUERY, SqlLibrary.ORACLE, SqlLibrary.SPARK);
+ f0.forEachLibrary(libraries, consumer);
+ }
+
+ @Test void testLeastPgFunc() {
+ final SqlOperatorFixture f0 = fixture()
+ .setFor(SqlLibraryOperators.LEAST_PG, VmName.EXPAND);
+ f0.checkFails("^least('on', 'earth')^",
+ "No match found for function signature LEAST\\(<CHARACTER>,
<CHARACTER>\\)",
+ false);
+ final Consumer<SqlOperatorFixture> consumer = f -> {
+ f.checkString("least('on', 'earth')", "earth", "CHAR(5) NOT NULL");
+ f.checkString("least('show', 'on', 'earth')", "earth",
+ "CHAR(5) NOT NULL");
+ f.checkScalar("least(12, CAST(NULL AS INTEGER), 3)", "3",
+ "INTEGER");
+ f.checkScalar("least(false, true)", false, "BOOLEAN NOT NULL");
+
+ final SqlOperatorFixture f12 = f.forOracle(SqlConformanceEnum.ORACLE_12);
+ f12.checkString("least('on', 'earth')", "earth", "VARCHAR(5) NOT NULL");
+ f12.checkString("least('show', 'on', 'earth')", "earth",
Review Comment:
above all
##########
testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java:
##########
@@ -10747,8 +10747,30 @@ void assertSubFunReturns(boolean binary, String s, int
start,
"VARCHAR(5) NOT NULL");
};
final List<SqlLibrary> libraries =
- list(SqlLibrary.BIG_QUERY, SqlLibrary.ORACLE, SqlLibrary.REDSHIFT,
- SqlLibrary.SPARK);
+ list(SqlLibrary.BIG_QUERY, SqlLibrary.ORACLE, SqlLibrary.SPARK);
+ f0.forEachLibrary(libraries, consumer);
+ }
+
+ @Test void testGreatestPgFunc() {
+ final SqlOperatorFixture f0 =
+ fixture().setFor(SqlLibraryOperators.GREATEST_PG, VmName.EXPAND);
+ f0.checkFails("^greatest('on', 'earth')^",
+ "No match found for function signature GREATEST\\(<CHARACTER>,
<CHARACTER>\\)",
+ false);
+ final Consumer<SqlOperatorFixture> consumer = f -> {
+ f.checkString("greatest('on', 'earth')", "on ", "CHAR(5) NOT NULL");
+ f.checkString("greatest('show', 'on', 'earth')", "show ",
+ "CHAR(5) NOT NULL");
+ f.checkScalar("greatest(12, CAST(NULL AS INTEGER), 3)", "12",
+ "INTEGER");
+ f.checkScalar("greatest(false, true)", true, "BOOLEAN NOT NULL");
+
+ final SqlOperatorFixture f12 = f.forOracle(SqlConformanceEnum.ORACLE_12);
+ f12.checkString("greatest('on', 'earth')", "on", "VARCHAR(5) NOT NULL");
+ f12.checkString("greatest('show', 'on', 'earth')", "show",
Review Comment:
You should add negative test if the function returns null or fails
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]