Julian Hyde created CALCITE-6281: ------------------------------------ Summary: Add test infrastructure to ensure that Calcite is consistent with the SQL dialects it is trying to emulate Key: CALCITE-6281 URL: https://issues.apache.org/jira/browse/CALCITE-6281 Project: Calcite Issue Type: Improvement Reporter: Julian Hyde
Add test infrastructure to ensure that Calcite is consistent with the SQL dialects it is trying to emulate. Calcite is able to emulate other SQL dialects. For example, it can pretend to be MySQL by setting "lib=mysql, lex=mysql, conformance=mysql_5". In that mode, the user would expect there to be a SUBSTR function, and that {{SUBSTR('abc' FROM 0)}} would [return the empty string, the same as MySQL|https://github.com/apache/calcite/blob/022d878a73dec796bb72743804a6dded7c239bd3/testkit/src/main/java/org/apache/calcite/test/SqlOperatorTest.java#L9428]. (On Postgres, the same expression returns 'abc'.) How do we trust that MySQL does indeed have that behavior? How do we find out if, in a later release, the MySQL team decides to change the behavior. That is the goal of this case. We propose to add tests that run expressions on both MySQL and Calcite-pretending-to-be-MySQL, and ensure that the result is the same on both. We use [testContainers|https://github.com/testcontainers/testcontainers-java] to instantiate, via Docker, and instance of MySQL. See discussion [Ensuring that Calcite is consistent with other SQL systems|https://lists.apache.org/thread/mxy9p6cy8sssf1sq3gz7zkzm6hsysns5]. -- This message was sent by Atlassian Jira (v8.20.10#820010)