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)