You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have an druid extension project that adds new user defined function to Druid SQL, but I have been facing some problems when implementing tests. I have used this example as reference but it is broken, since configureGuice method no longer exists as Druid 32.
I have tried the following by reading the source code from Druid:
@ComponentSupplier(MyComponentSupplier.class)
public class CustomSqlAggregatorTest extends BaseCalciteQueryTest {
@Test
public void testCustomAggSql() {
cannotVectorize();
testBuilder()
.sql("select CUSTOM_AGG(m1) from foo")
.expectedQueries(
List.of(
Druids.newTimeseriesQueryBuilder()
.dataSource(CalciteTests.DATASOURCE1)
.intervals(querySegmentSpec(Filtration.eternity()))
.granularity(Granularities.ALL)
.aggregators(aggregators(getAggFactory()))
.context(QUERY_CONTEXT_DEFAULT)
.build()
)
)
.expectedResults(ImmutableList.of(new Object[]{21.0F}))
.run();
}
...
}
But I get the following error:
Caused by: java.lang.NullPointerException: Cannot read field "componentSupplier" because "config" is null
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$ConfigurationInstance.<init>(SqlTestFrameworkConfig.java:378)
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$SqlTestFrameworkConfigStore.getConfigurationInstance(SqlTestFrameworkConfig.java:253)
at org.apache.druid.sql.calcite.SqlTestFrameworkConfig$Rule.get(SqlTestFrameworkConfig.java:344)
at org.apache.druid.sql.calcite.BaseCalciteQueryTest.queryFramework(BaseCalciteQueryTest.java:535)
... 34 more
My component supplier code looks like the following:
public class MyComponentSupplier extends SqlTestFramework.StandardComponentSupplier {
public MyComponentSupplier(TempDirProducer tempDirProducer) {
super(tempDirProducer);
}
@Override
public DruidModule getCoreModule() {
return DruidModuleCollection.of(
super.getCoreModule(),
new MyExtensionModule()
);
}
}
Any suggestions?
The text was updated successfully, but these errors were encountered:
I was able to get the test running by adding some code before running the test. The code basically forces Component Supplier to be loaded into the config map. The workaround looks like the following:
For some reason @ComponentSupplier annotation doesn't seems to be working properly and I couldn't figure out the configuration needed for it to work as it should.
I have an druid extension project that adds new user defined function to Druid SQL, but I have been facing some problems when implementing tests. I have used this example as reference but it is broken, since configureGuice method no longer exists as Druid 32.
I have tried the following by reading the source code from Druid:
But I get the following error:
My component supplier code looks like the following:
Any suggestions?
The text was updated successfully, but these errors were encountered: