[jira] [Comment Edited] (CALCITE-6029) SqlOperatorTest cannot test operators that require the Babel parser
[ https://issues.apache.org/jira/browse/CALCITE-6029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17769857#comment-17769857 ] Ran Tao edited comment on CALCITE-6029 at 9/28/23 12:35 AM: hi [~mbudiu] I'm wondering why you test DATE_PART by using BabelParserFactory? why don't use {code:java} @Test void testDatePart() { final SqlOperatorFixture f = fixture() .setFor(SqlLibraryOperators.DATE_PART) .withLibrary(SqlLibrary.POSTGRESQL);{code} I think if we test a Function in SqlOperatorTest, just withLibrary is enough. Just like other Spark/PG functions. If you decide to test some special syntax for postgresql, i think you can test it in babel module, not testkit module. If i'm wrong, pls correct me. was (Author: lemonjing): hi [~mbudiu] I'm wondering why you test DATE_PART by using BabelParserFactory? why don't use {code:java} @Test void testDatePart() { final SqlOperatorFixture f = fixture() .setFor(SqlLibraryOperators.DATE_PART) .withLibrary(SqlLibrary.POSTGRESQL);{code} I think if we test a Function in SqlOperatorTest, just withLibrary is enough. Just like other Spark/PG functions. If you decide to test some special syntax for postgresql, i think you can test it in babel module, not testkit module. If i'm wrong, pls correct me. > SqlOperatorTest cannot test operators that require the Babel parser > --- > > Key: CALCITE-6029 > URL: https://issues.apache.org/jira/browse/CALCITE-6029 > Project: Calcite > Issue Type: Bug > Components: babel, core >Affects Versions: 1.35.0 >Reporter: Mihai Budiu >Priority: Minor > Labels: pull-request-available > > In SqlOperatorTest one can write code like this: > {code:java} > @Test void testDatePart() { > final SqlOperatorFixture f = fixture().withLibrary(SqlLibrary.POSTGRESQL) > .withParserConfig(p -> > p.withParserFactory(SqlBabelParserImpl.FACTORY)); > {code} > This almost works, but the SqlOperatorTest.check function makes a connection > ignores the parserFactory, so parsing will fail: > {code:java} > @Override public void check(SqlTestFactory factory, String query, > SqlTester.TypeChecker typeChecker, > SqlTester.ParameterChecker parameterChecker, > SqlTester.ResultChecker resultChecker) { > super.check(factory, query, typeChecker, parameterChecker, > resultChecker); > final RelDataTypeSystem typeSystem = > factory.typeSystemTransform.apply(RelDataTypeSystem.DEFAULT); > final ConnectionFactory connectionFactory = > factory.connectionFactory > .with(CalciteConnectionProperty.TYPE_SYSTEM, uri(FIELD)); /// > NO PARSER_FACTORY HERE > {code} > I am trying to fix this by adding a PARSER_FACTORY argument to the > connection, but then I get a class loader error from > AvaticaUtils.instantiatePlugin, which, in this case, cannot find the > SqlBabelParserImpl#FACTORY in the classpath. > I would appreciate some help solving this last bit. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (CALCITE-6029) SqlOperatorTest cannot test operators that require the Babel parser
[ https://issues.apache.org/jira/browse/CALCITE-6029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17769857#comment-17769857 ] Ran Tao edited comment on CALCITE-6029 at 9/28/23 12:35 AM: hi [~mbudiu] I'm wondering why you test DATE_PART by using BabelParserFactory? why don't use {code:java} @Test void testDatePart() { final SqlOperatorFixture f = fixture() .setFor(SqlLibraryOperators.DATE_PART) .withLibrary(SqlLibrary.POSTGRESQL);{code} I think if we test a Function in SqlOperatorTest, just withLibrary is enough. Just like other Spark/PG functions. If you decide to test some special syntax for postgresql, i think you can test it in babel module, not testkit module. If i'm wrong, pls correct me. was (Author: lemonjing): hi [~mbudiu] I'm wondering why you test DATE_PART by using BabelParserFactory? why don't use {code:java} @Test void testDatePart() { final SqlOperatorFixture f = fixture().withLibrary(SqlLibrary.POSTGRESQL);{code} I think if we test a Function in SqlOperatorTest, just withLibrary is enough. Just like other Spark/PG functions. If you decide to test some special syntax for postgresql, i think you can test it in babel module, not testkit module. If i'm wrong, pls correct me. > SqlOperatorTest cannot test operators that require the Babel parser > --- > > Key: CALCITE-6029 > URL: https://issues.apache.org/jira/browse/CALCITE-6029 > Project: Calcite > Issue Type: Bug > Components: babel, core >Affects Versions: 1.35.0 >Reporter: Mihai Budiu >Priority: Minor > Labels: pull-request-available > > In SqlOperatorTest one can write code like this: > {code:java} > @Test void testDatePart() { > final SqlOperatorFixture f = fixture().withLibrary(SqlLibrary.POSTGRESQL) > .withParserConfig(p -> > p.withParserFactory(SqlBabelParserImpl.FACTORY)); > {code} > This almost works, but the SqlOperatorTest.check function makes a connection > ignores the parserFactory, so parsing will fail: > {code:java} > @Override public void check(SqlTestFactory factory, String query, > SqlTester.TypeChecker typeChecker, > SqlTester.ParameterChecker parameterChecker, > SqlTester.ResultChecker resultChecker) { > super.check(factory, query, typeChecker, parameterChecker, > resultChecker); > final RelDataTypeSystem typeSystem = > factory.typeSystemTransform.apply(RelDataTypeSystem.DEFAULT); > final ConnectionFactory connectionFactory = > factory.connectionFactory > .with(CalciteConnectionProperty.TYPE_SYSTEM, uri(FIELD)); /// > NO PARSER_FACTORY HERE > {code} > I am trying to fix this by adding a PARSER_FACTORY argument to the > connection, but then I get a class loader error from > AvaticaUtils.instantiatePlugin, which, in this case, cannot find the > SqlBabelParserImpl#FACTORY in the classpath. > I would appreciate some help solving this last bit. -- This message was sent by Atlassian Jira (v8.20.10#820010)