public class RelMdColumnUniqueness extends Object implements MetadataHandler<BuiltInMetadata.ColumnUniqueness>
RelMetadataQuery.areColumnsUnique(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet) for the standard logical algebra.| Modifier and Type | Field and Description |
|---|---|
private static com.google.common.base.Predicate<RelNode> |
SAFE_REL
Aggregate and Calc are "safe" children of a RelSubset to delve into.
|
static RelMetadataProvider |
SOURCE |
| Modifier | Constructor and Description |
|---|---|
private |
RelMdColumnUniqueness() |
public static final RelMetadataProvider SOURCE
private static final com.google.common.base.Predicate<RelNode> SAFE_REL
public MetadataDef<BuiltInMetadata.ColumnUniqueness> getDef()
getDef in interface MetadataHandler<BuiltInMetadata.ColumnUniqueness>public Boolean areColumnsUnique(TableScan rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Filter rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(RelNode rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean),
invoked using reflection, for any relational expression not
handled by a more specific method.rel - Relational expressionmq - Metadata querycolumns - column mask representing the subset of columns for which
uniqueness will be determinedignoreNulls - if true, ignore null values when determining column
uniquenessRelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet, boolean)public Boolean areColumnsUnique(SetOp rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Intersect rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Minus rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Sort rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Exchange rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Correlate rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Project rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Join rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(SemiJoin rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Aggregate rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Values rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(Converter rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(HepRelVertex rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
public Boolean areColumnsUnique(RelSubset rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
private boolean simplyProjects(RelNode rel, ImmutableBitSet columns)
private static Pair<ImmutableBitSet,ImmutableBitSet> splitLeftAndRightColumns(int leftCount, ImmutableBitSet columns)
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.