You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Laurent Goujon (JIRA)" <ji...@apache.org> on 2018/09/05 23:41:00 UTC
[jira] [Created] (CALCITE-2538) Missing RelMetadataQuery
invalidation before subset cost improvement propagation
Laurent Goujon created CALCITE-2538:
---------------------------------------
Summary: Missing RelMetadataQuery invalidation before subset cost improvement propagation
Key: CALCITE-2538
URL: https://issues.apache.org/jira/browse/CALCITE-2538
Project: Calcite
Issue Type: Bug
Components: core
Reporter: Laurent Goujon
Assignee: Julian Hyde
When planner log level is set to debug, several tests are failing with the following error message:
{noformat}
rel [rel#11408:EnumerableProject.ENUMERABLE.[](input=rel#11180:Subset#2.ENUMERABLE.[0],DUMMY=0)] has lower cost {24.5 rows, 39.5 cpu, 0.0 io} than best cost {28.0 rows, 36.0 cpu, 0.0 io} of subset [rel#11177:Subset#3.ENUMERABLE.[]]
{noformat}
The following query (from 'sql/agg.iq') should exhibit the issue:
{code:sql}
select sum(e.sal) as s from "scott".emp e join "scott".emp m on e.mgr = e.empno;
{code}
I tried to trace it back and my understanding is that during cost improvement propagation, a subset has its cost/best node changed, and it triggers recomputing the cost of the parent subset, but the current best node of the parent has its value cached in the current rel metadata query, and is not recomputed. During a later validation, this error is detected and the assertion is thrown.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)