MinJi Kim created CALCITE-1747:
----------------------------------
Summary: RelMdColumnUniqueness for HepRelVertex
Key: CALCITE-1747
URL: https://issues.apache.org/jira/browse/CALCITE-1747
Project: Calcite
Issue Type: Bug
Components: core
Reporter: MinJi Kim
Assignee: Julian Hyde
In generated code/JaninoRelMetadataProvider, areColumnsUnique() is supported
for HepRelVertex, by using HepRelVertex.getCurrentRel(). In the underlying
RelMetadata (RelMdColumnUniqueness.java), the same code is disabled.
This is causing some problems for me since I am trying to use
RelMdColumnUniquess without going through the JaninoRelMetadataProvider For
me, enabling the same code in RelMdColumnUniquess solved the problem for me.
Although I am uploading a small patch for this soon, I wanted to see if there
were any concerns for enabling RelMdColumnUniqueness for HepRelVertex.
{code}
private java.lang.Boolean areColumnsUnique_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.util.ImmutableBitSet a0,
boolean a1) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.areColumnsUnique((org.apache.calcite.rel.RelNode) r, mq,
a0, a1);
case 2:
return
provider0.areColumnsUnique((org.apache.calcite.plan.volcano.RelSubset) r, mq,
a0, a1);
case 3:
return areColumnsUnique(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0, a1);
case 4:
case 5:
return
provider0.areColumnsUnique((org.apache.calcite.rel.convert.Converter) r, mq,
a0, a1);
case 6:
case 24:
case 30:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Aggregate)
r, mq, a0, a1);
case 8:
case 32:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Correlate)
r, mq, a0, a1);
case 9:
case 33:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Exchange)
r, mq, a0, a1);
case 10:
case 25:
case 34:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Filter) r,
mq, a0, a1);
case 11:
case 35:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Intersect)
r, mq, a0, a1);
case 12:
case 27:
case 36:
case 48:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Join) r,
mq, a0, a1);
case 13:
case 37:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Minus) r,
mq, a0, a1);
case 14:
case 26:
case 38:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Project)
r, mq, a0, a1);
case 15:
case 39:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Sort) r,
mq, a0, a1);
case 18:
case 28:
case 42:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.TableScan)
r, mq, a0, a1);
case 19:
case 43:
case 50:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.SetOp) r,
mq, a0, a1);
case 20:
case 44:
return provider0.areColumnsUnique((org.apache.calcite.rel.core.Values) r,
mq, a0, a1);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)