Thanks Michael, I have tried adding it into VM options but it didn't give
the result I want, instead it printed a lot Java code. Is there anything I
do wrong?
public final class GeneratedMetadataHandler_Collation implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdCollation provider0;
public GeneratedMetadataHandler_Collation(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdCollation provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF;
}
public com.google.common.collect.ImmutableList collations(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.ImmutableList) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.ImmutableList x = collations_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.ImmutableList collations_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.collations((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.collations((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return collations(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 7:
case 31:
return provider0.collations((org.apache.calcite.rel.core.Calc) r, mq);
case 10:
case 25:
case 34:
return provider0.collations((org.apache.calcite.rel.core.Filter) r,
mq);
case 14:
case 26:
case 38:
return provider0.collations((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.collations((org.apache.calcite.rel.core.Sort) r, mq);
case 18:
case 28:
case 42:
return provider0.collations((org.apache.calcite.rel.core.TableScan)
r, mq);
case 20:
case 44:
return provider0.collations((org.apache.calcite.rel.core.Values) r,
mq);
case 21:
case 45:
return provider0.collations((org.apache.calcite.rel.core.Window) r,
mq);
case 27:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableHashJoin)
r, mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_ExplainVisibility implements
org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdExplainVisibility
provider0;
public GeneratedMetadataHandler_ExplainVisibility(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdExplainVisibility provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF;
}
public java.lang.Boolean isVisibleInExplain(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF,
r, org.apache.calcite.rel.metadata.NullSentinel.mask(a0));
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Boolean) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Boolean x = isVisibleInExplain_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Boolean isVisibleInExplain_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.isVisibleInExplain((org.apache.calcite.rel.RelNode)
r, mq, a0);
case 3:
return isVisibleInExplain(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_ExplainVisibility implements
org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdExplainVisibility
provider0;
public GeneratedMetadataHandler_ExplainVisibility(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdExplainVisibility provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF;
}
public java.lang.Boolean isVisibleInExplain(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF,
r, org.apache.calcite.rel.metadata.NullSentinel.mask(a0));
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Boolean) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Boolean x = isVisibleInExplain_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Boolean isVisibleInExplain_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.isVisibleInExplain((org.apache.calcite.rel.RelNode)
r, mq, a0);
case 3:
return isVisibleInExplain(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Collation implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdCollation provider0;
public GeneratedMetadataHandler_Collation(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdCollation provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF;
}
public com.google.common.collect.ImmutableList collations(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.ImmutableList) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.ImmutableList x = collations_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.ImmutableList collations_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.collations((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.collations((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return collations(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 7:
case 31:
return provider0.collations((org.apache.calcite.rel.core.Calc) r, mq);
case 10:
case 25:
case 34:
return provider0.collations((org.apache.calcite.rel.core.Filter) r,
mq);
case 14:
case 26:
case 38:
return provider0.collations((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.collations((org.apache.calcite.rel.core.Sort) r, mq);
case 18:
case 28:
case 42:
case 50:
return provider0.collations((org.apache.calcite.rel.core.TableScan)
r, mq);
case 20:
case 44:
return provider0.collations((org.apache.calcite.rel.core.Values) r,
mq);
case 21:
case 45:
return provider0.collations((org.apache.calcite.rel.core.Window) r,
mq);
case 27:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableHashJoin)
r, mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NodeTypes implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NodeTypes.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdNodeTypes provider0;
public GeneratedMetadataHandler_NodeTypes(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdNodeTypes provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes.DEF;
}
public com.google.common.collect.Multimap getNodeTypes(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.Multimap) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.Multimap x = getNodeTypes_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.Multimap getNodeTypes_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getNodeTypes((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getNodeTypes((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getNodeTypes(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 6:
case 24:
case 30:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Project)
r, mq);
case 15:
case 39:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getNodeTypes((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getNodeTypes((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
case 51:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
case 52:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
case 51:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Collation implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdCollation provider0;
public GeneratedMetadataHandler_Collation(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdCollation provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF;
}
public com.google.common.collect.ImmutableList collations(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.ImmutableList) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.ImmutableList x = collations_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.ImmutableList collations_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.collations((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.collations((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return collations(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 7:
case 31:
return provider0.collations((org.apache.calcite.rel.core.Calc) r, mq);
case 10:
case 25:
case 34:
return provider0.collations((org.apache.calcite.rel.core.Filter) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.collations((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.collations((org.apache.calcite.rel.core.Sort) r, mq);
case 18:
case 28:
case 42:
case 50:
return provider0.collations((org.apache.calcite.rel.core.TableScan)
r, mq);
case 20:
case 44:
return provider0.collations((org.apache.calcite.rel.core.Values) r,
mq);
case 21:
case 45:
return provider0.collations((org.apache.calcite.rel.core.Window) r,
mq);
case 27:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableHashJoin)
r, mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
case 52:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
case 53:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
case 53:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
case 51:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Collation implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdCollation provider0;
public GeneratedMetadataHandler_Collation(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdCollation provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF;
}
public com.google.common.collect.ImmutableList collations(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.ImmutableList) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.ImmutableList x = collations_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.ImmutableList collations_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.collations((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.collations((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return collations(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 7:
case 31:
return provider0.collations((org.apache.calcite.rel.core.Calc) r, mq);
case 10:
case 25:
case 34:
return provider0.collations((org.apache.calcite.rel.core.Filter) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.collations((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.collations((org.apache.calcite.rel.core.Sort) r, mq);
case 18:
case 28:
case 42:
case 50:
return provider0.collations((org.apache.calcite.rel.core.TableScan)
r, mq);
case 20:
case 44:
return provider0.collations((org.apache.calcite.rel.core.Values) r,
mq);
case 21:
case 45:
return provider0.collations((org.apache.calcite.rel.core.Window) r,
mq);
case 27:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableHashJoin)
r, mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
case 52:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
case 53:
case 54:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
case 53:
case 54:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
case 51:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Collation implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdCollation provider0;
public GeneratedMetadataHandler_Collation(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdCollation provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF;
}
public com.google.common.collect.ImmutableList collations(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Collation.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (com.google.common.collect.ImmutableList) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final com.google.common.collect.ImmutableList x = collations_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private com.google.common.collect.ImmutableList collations_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.collations((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.collations((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return collations(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 7:
case 31:
return provider0.collations((org.apache.calcite.rel.core.Calc) r, mq);
case 10:
case 25:
case 34:
return provider0.collations((org.apache.calcite.rel.core.Filter) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.collations((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.collations((org.apache.calcite.rel.core.Sort) r, mq);
case 18:
case 28:
case 42:
case 50:
return provider0.collations((org.apache.calcite.rel.core.TableScan)
r, mq);
case 20:
case 44:
return provider0.collations((org.apache.calcite.rel.core.Values) r,
mq);
case 21:
case 45:
return provider0.collations((org.apache.calcite.rel.core.Window) r,
mq);
case 27:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableHashJoin)
r, mq);
case 54:
return
provider0.collations((org.apache.calcite.adapter.enumerable.EnumerableMergeJoin)
r, mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_ExplainVisibility implements
org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdExplainVisibility
provider0;
public GeneratedMetadataHandler_ExplainVisibility(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdExplainVisibility provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF;
}
public java.lang.Boolean isVisibleInExplain(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF,
r, org.apache.calcite.rel.metadata.NullSentinel.mask(a0));
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Boolean) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Boolean x = isVisibleInExplain_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Boolean isVisibleInExplain_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.isVisibleInExplain((org.apache.calcite.rel.RelNode)
r, mq, a0);
case 3:
return isVisibleInExplain(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_CumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.CumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_CumulativeCost(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getCumulativeCost((org.apache.calcite.rel.RelNode)
r, mq);
case 3:
return getCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_ExplainVisibility implements
org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdExplainVisibility
provider0;
public GeneratedMetadataHandler_ExplainVisibility(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdExplainVisibility provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF;
}
public java.lang.Boolean isVisibleInExplain(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility.DEF,
r, org.apache.calcite.rel.metadata.NullSentinel.mask(a0));
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Boolean) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Boolean x = isVisibleInExplain_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Boolean isVisibleInExplain_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.sql.SqlExplainLevel a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.isVisibleInExplain((org.apache.calcite.rel.RelNode)
r, mq, a0);
case 3:
return isVisibleInExplain(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_RowCount implements
org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdRowCount provider0;
public GeneratedMetadataHandler_RowCount(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdRowCount provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF;
}
public java.lang.Double getRowCount(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getRowCount_(r, mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getRowCount_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getRowCount((org.apache.calcite.rel.RelNode) r, mq);
case 2:
return
provider0.getRowCount((org.apache.calcite.plan.volcano.RelSubset) r, mq);
case 3:
return getRowCount(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case 4:
case 5:
case 9:
case 17:
case 21:
case 22:
case 23:
case 29:
case 33:
case 41:
case 45:
case 46:
case 47:
case 52:
return provider0.getRowCount((org.apache.calcite.rel.SingleRel) r,
mq);
case 6:
case 24:
case 30:
return provider0.getRowCount((org.apache.calcite.rel.core.Aggregate)
r, mq);
case 7:
case 31:
case 55:
return provider0.getRowCount((org.apache.calcite.rel.core.Calc) r,
mq);
case 10:
case 25:
case 34:
return provider0.getRowCount((org.apache.calcite.rel.core.Filter) r,
mq);
case 11:
case 35:
return provider0.getRowCount((org.apache.calcite.rel.core.Intersect)
r, mq);
case 12:
case 27:
case 36:
case 53:
case 54:
return provider0.getRowCount((org.apache.calcite.rel.core.Join) r,
mq);
case 13:
case 37:
return provider0.getRowCount((org.apache.calcite.rel.core.Minus) r,
mq);
case 14:
case 26:
case 38:
case 51:
return provider0.getRowCount((org.apache.calcite.rel.core.Project) r,
mq);
case 15:
case 39:
return provider0.getRowCount((org.apache.calcite.rel.core.Sort) r,
mq);
case 18:
case 28:
case 42:
case 50:
return provider0.getRowCount((org.apache.calcite.rel.core.TableScan)
r, mq);
case 19:
case 43:
return provider0.getRowCount((org.apache.calcite.rel.core.Union) r,
mq);
case 20:
case 44:
return provider0.getRowCount((org.apache.calcite.rel.core.Values) r,
mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_Selectivity implements
org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdSelectivity provider0;
public GeneratedMetadataHandler_Selectivity(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdSelectivity provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF;
}
public java.lang.Double getSelectivity(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity.DEF,
r, a0 == null ? "" : a0.toString());
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (java.lang.Double) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final java.lang.Double x = getSelectivity_(r, mq, a0);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private java.lang.Double getSelectivity_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq,
org.apache.calcite.rex.RexNode a0) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getSelectivity((org.apache.calcite.rel.RelNode) r,
mq, a0);
case 3:
return getSelectivity(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq, a0);
case 6:
case 24:
case 30:
return
provider0.getSelectivity((org.apache.calcite.rel.core.Aggregate) r, mq, a0);
case 10:
case 25:
case 34:
return provider0.getSelectivity((org.apache.calcite.rel.core.Filter)
r, mq, a0);
case 12:
case 27:
case 36:
case 53:
case 54:
return provider0.getSelectivity((org.apache.calcite.rel.core.Join) r,
mq, a0);
case 14:
case 26:
case 38:
case 51:
return provider0.getSelectivity((org.apache.calcite.rel.core.Project)
r, mq, a0);
case 15:
case 39:
return provider0.getSelectivity((org.apache.calcite.rel.core.Sort) r,
mq, a0);
case 19:
case 43:
return provider0.getSelectivity((org.apache.calcite.rel.core.Union)
r, mq, a0);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_CumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.CumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_CumulativeCost(java.util.List relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return provider0.getCumulativeCost((org.apache.calcite.rel.RelNode)
r, mq);
case 3:
return getCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
public final class GeneratedMetadataHandler_NonCumulativeCost implements
org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost.Handler {
private final java.util.List relClasses;
public final org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0;
public GeneratedMetadataHandler_NonCumulativeCost(java.util.List
relClasses,
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows
provider0) {
this.relClasses = relClasses;
this.provider0 = provider0;
}
public org.apache.calcite.rel.metadata.MetadataDef getDef() {
return
org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF;
}
public org.apache.calcite.plan.RelOptCost getNonCumulativeCost(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
final java.util.List key =
org.apache.calcite.runtime.FlatLists.of(org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost.DEF,
r);
final Object v = mq.map.get(key);
if (v != null) {
if (v == org.apache.calcite.rel.metadata.NullSentinel.ACTIVE) {
throw
org.apache.calcite.rel.metadata.CyclicMetadataException.INSTANCE;
}
if (v == org.apache.calcite.rel.metadata.NullSentinel.INSTANCE) {
return null;
}
return (org.apache.calcite.plan.RelOptCost) v;
}
mq.map.put(key,org.apache.calcite.rel.metadata.NullSentinel.ACTIVE);
try {
final org.apache.calcite.plan.RelOptCost x = getNonCumulativeCost_(r,
mq);
mq.map.put(key, org.apache.calcite.rel.metadata.NullSentinel.mask(x));
return x;
} catch (java.lang.Exception e) {
mq.map.remove(key);
throw e;
}
}
private org.apache.calcite.plan.RelOptCost getNonCumulativeCost_(
org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.metadata.RelMetadataQuery mq) {
switch (relClasses.indexOf(r.getClass())) {
default:
return
provider0.getNonCumulativeCost((org.apache.calcite.rel.RelNode) r, mq);
case 3:
return
getNonCumulativeCost(((org.apache.calcite.plan.hep.HepRelVertex)
r).getCurrentRel(), mq);
case -1:
throw new
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$NoHandler(r.getClass());
}
}
}
EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}])
EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner])
JdbcToEnumerableConverter
JdbcTableScan(table=[[perm, user_table]])
JdbcToEnumerableConverter
JdbcProject(id=[$0])
JdbcTableScan(table=[[insight_user, user_tab]])
Process finished with exit code 0
Michael Mior <[email protected]> 于2020年2月7日周五 上午3:51写道:
> If you set the system property calcite.debug, then the actual SQL sent
> to the database will be printed to the console inside [] when it is
> executed.
> --
> Michael Mior
> [email protected]
>
> Le jeu. 6 févr. 2020 à 05:32, Yang Liu <[email protected]> a écrit :
> >
> > Yang Liu <[email protected]> 于2020年2月6日周四 下午5:59写道:
> >
> > > Hi there, recently I am studying Apache Calcite, by now I can use
> explain
> > > plan for via JDBC to view the logical plan, and I am wondering how can
> I
> > > view the physical sql in the plan execution? Since there may be bugs
> in the
> > > physical sql generation so I need to make sure the correctness.
> > >
> > > val connection = DriverManager.getConnection("jdbc:calcite:")
> > > val calciteConnection = connection.asInstanceOf[CalciteConnection]
> > > val rootSchema = calciteConnection.getRootSchema()
> > >
> > > val dsInsightUser =
> JdbcSchema.dataSource("jdbc:mysql://localhost:13306/insight?useSSL=false&serverTimezone=UTC",
> "com.mysql.jdbc.Driver", "insight_admin","xxxxxx")
> > > val dsPerm =
> JdbcSchema.dataSource("jdbc:mysql://localhost:13307/permission?useSSL=false&serverTimezone=UTC",
> "com.mysql.jdbc.Driver", "perm_admin", "xxxxxx")
> > >
> > > rootSchema.add("insight_user", JdbcSchema.create(rootSchema,
> "insight_user", dsInsightUser, null, null))
> > > rootSchema.add("perm", JdbcSchema.create(rootSchema, "perm",
> dsPerm, null, null))
> > >
> > > val stmt = connection.createStatement()
> > > val rs = stmt.executeQuery("""explain plan for select
> "perm"."user_table".* from "perm"."user_table" join
> "insight_user"."user_tab" on
> "perm"."user_table"."id"="insight_user"."user_tab"."id" """)
> > > val metaData = rs.getMetaData()
> > >
> > > while(rs.next()) {
> > > for(i <- 1 to metaData.getColumnCount) printf("%s ",
> rs.getObject(i))
> > > println()
> > > }
> > >
> > > result is
> > >
> > > EnumerableCalc(expr#0..3=[{inputs}], proj#0..2=[{exprs}])
> > > EnumerableHashJoin(condition=[=($0, $3)], joinType=[inner])
> > > JdbcToEnumerableConverter
> > > JdbcTableScan(table=[[perm, user_table]])
> > > JdbcToEnumerableConverter
> > > JdbcProject(id=[$0])
> > > JdbcTableScan(table=[[insight_user, user_tab]])
> > >
> > >
>