]
Steven Hawkins resolved TEIID-2219.
-----------------------------------
Fix Version/s: 8.2
Resolution: Done
Thanks for reproduce this. I'll introduce a separate issue to cover adding some more
EmbeddedServer logic. The issue here was caused by having aggregates from each side of
the join and using count, which introduces an expression in the aggregate mapping. The
fix will be in Beta1.
NullPointer Exception when doing count aggregations on two individual
columns from separate databases
-----------------------------------------------------------------------------------------------------
Key: TEIID-2219
URL:
https://issues.jboss.org/browse/TEIID-2219
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 8.1
Environment: Running embedded mode
Reporter: Ivan Chan
Assignee: Steven Hawkins
Fix For: 8.2
Attachments: EmbeddedServer.java.patch, Schema Dump.txt, SQL and Exception.txt
I have issues doing Count aggregations in 2 different databases. 2 out of 3 following
cases fail... (But distinct count seems ok)
<----------- CASE 1 ----------> SUM first, then COUNT => OK
SUM(DB_2.field_1), COUNT(DB_1.field_1)
select sum("FoodmartDataSourceJNDI_public_expense_fact"."amount") as
"FoodmartDataSourceJNDI_public_expense_fact_amount_Sum",
count("FoodmartDataSource_public_employee"."full_name") as
"FoodmartDataSource_public_employee_full_name_Count"
from "FoodmartDataSource_public"."employee"
"FoodmartDataSource_public_employee"
inner join "FoodmartDataSourceJNDI_public"."expense_fact"
"FoodmartDataSourceJNDI_public_expense_fact" on
("FoodmartDataSource_public_employee"."store_id" =
"FoodmartDataSourceJNDI_public_expense_fact"."store_id")
SELECT g_0."store_id" AS c_0, g_0."full_name" AS c_1 FROM
"public"."employee" AS g_0 ORDER BY c_0
SELECT g_0."store_id" AS c_0, SUM(g_0."amount") AS c_1 FROM
"public"."expense_fact" AS g_0 GROUP BY g_0."store_id" ORDER
BY c_0
<-----------CASE 2 ---------------> COUNT first, then SUM => ERROR
COUNT(DB_1.field_1), SUM(DB_2.field_1)
select
count("FoodmartDataSourceJNDI_public_expense_fact"."category_id") as
"FoodmartDataSourceJNDI_public_expense_fact_category_id_Count",
sum("FoodmartDataSource_public_employee"."salary") as
"FoodmartDataSource_public_employee_salary_Sum"
from "FoodmartDataSource_public"."employee"
"FoodmartDataSource_public_employee"
inner join "FoodmartDataSourceJNDI_public"."expense_fact"
"FoodmartDataSourceJNDI_public_expense_fact" on
("FoodmartDataSource_public_employee"."store_id" =
"FoodmartDataSourceJNDI_public_expense_fact"."store_id")
Caused by: java.lang.NullPointerException
at
org.teiid.query.processor.relational.GroupingNode.initialize(GroupingNode.java:184)
at
org.teiid.query.processor.relational.RelationalPlan.connectExternal(RelationalPlan.java:108)
at
org.teiid.query.processor.relational.RelationalPlan.connectExternal(RelationalPlan.java:113)
at
org.teiid.query.processor.relational.RelationalPlan.initialize(RelationalPlan.java:103)
at org.teiid.query.processor.QueryProcessor.init(QueryProcessor.java:194)
at
org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:130)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:109)
at
org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at
org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at
org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
... 123 more
<-----------CASE 3 ---------------> COUNT on DB1.COL1 and COUNT on DB2.COL2 =>
ERROR
COUNT(DB_1.field_1), COUNT(DB_2.field_1)
select
count("FoodmartDataSourceJNDI_public_expense_fact"."category_id") as
"FoodmartDataSourceJNDI_public_expense_fact_category_id_Count",
count("FoodmartDataSource_public_employee"."first_name") as
"FoodmartDataSource_public_employee_first_name_Count"
from "FoodmartDataSource_public"."employee"
"FoodmartDataSource_public_employee"
inner join "FoodmartDataSourceJNDI_public"."expense_fact"
"FoodmartDataSourceJNDI_public_expense_fact" on
("FoodmartDataSource_public_employee"."store_id" =
"FoodmartDataSourceJNDI_public_expense_fact"."store_id")
Caused by: java.lang.NullPointerException
at
org.teiid.query.processor.relational.GroupingNode.initialize(GroupingNode.java:184)
at
org.teiid.query.processor.relational.RelationalPlan.connectExternal(RelationalPlan.java:108)
at
org.teiid.query.processor.relational.RelationalPlan.connectExternal(RelationalPlan.java:113)
at
org.teiid.query.processor.relational.RelationalPlan.initialize(RelationalPlan.java:103)
at org.teiid.query.processor.QueryProcessor.init(QueryProcessor.java:194)
at
org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:130)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:109)
at
org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at
org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
at
org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
... 123 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: