Chenjian Qiu created CARBONDATA-3295:
----------------------------------------
Summary: MV datamap throw exception because its rewrite algorithm when multiply subquery
Key: CARBONDATA-3295
URL:
https://issues.apache.org/jira/browse/CARBONDATA-3295 Project: CarbonData
Issue Type: Bug
Reporter: Chenjian Qiu
error:
java.lang.UnsupportedOperationException was thrown.
java.lang.UnsupportedOperationException
at org.apache.carbondata.mv.plans.util.SQLBuildDSL$Fragment.productArity(SQLBuildDSL.scala:36)
at scala.runtime.ScalaRunTime$$anon$1.<init>(ScalaRunTime.scala:174)
at scala.runtime.ScalaRunTime$.typedProductIterator(ScalaRunTime.scala:172)
mv sql:
sql(s"""create datamap data_table_mv using 'mv' as
| SELECT STARTTIME,LAYER4ID,
| COALESCE (SUM(seq),0) AS seq_c,
| COALESCE (SUM(succ),0) AS succ_c
| FROM data_table
| GROUP BY STARTTIME,LAYER4ID""".stripMargin)
Query sql:
sql(s"""SELECT MT.`3600` AS `3600`,
| MT.`2250410101` AS `2250410101`,
| (CASE WHEN (SUM(COALESCE(seq_c, 0))) = 0 THEN NULL
| ELSE
| (CASE WHEN (CAST((SUM(COALESCE(seq_c, 0))) AS int)) = 0 THEN 0
| ELSE ((CAST((SUM(COALESCE(succ_c, 0))) AS double))
| / (CAST((SUM(COALESCE(seq_c, 0))) AS double)))
| END) * 100
| END) AS rate
| FROM (
| SELECT sum_result.*, H_REGION.`2250410101` FROM
| (SELECT cast(floor((starttime + 28800) / 3600) * 3600 - 28800 as int) AS `3600`,
| LAYER4ID,
| COALESCE(SUM(seq), 0) AS seq_c,
| COALESCE(SUM(succ), 0) AS succ_c
| FROM data_table
| WHERE STARTTIME >= 1549866600 AND STARTTIME < 1549899900
| GROUP BY cast(floor((STARTTIME + 28800) / 3600) * 3600 - 28800 as int),LAYER4ID
| )sum_result
| LEFT JOIN
| (SELECT l4id AS `225040101`,
| l4name AS `2250410101`,
| l4name AS NAME_2250410101
| FROM region
| GROUP BY l4id, l4name) H_REGION
| ON sum_result.LAYER4ID = H_REGION.`225040101`
| WHERE H_REGION.NAME_2250410101 IS NOT NULL
| ) MT
| GROUP BY MT.`3600`, MT.`2250410101`
| ORDER BY `3600` ASC LIMIT 5000""".stripMargin)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)