[
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)