Mihai Budiu created CALCITE-6029:
------------------------------------

             Summary: 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


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)

Reply via email to