Package org.apache.calcite.rel.metadata
Class RelMdColumnUniqueness
java.lang.Object
org.apache.calcite.rel.metadata.RelMdColumnUniqueness
- All Implemented Interfaces:
MetadataHandler<BuiltInMetadata.ColumnUniqueness>
public class RelMdColumnUniqueness extends Object implements MetadataHandler<BuiltInMetadata.ColumnUniqueness>
RelMdColumnUniqueness supplies a default implementation of
RelMetadataQuery.areColumnsUnique(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet)
for the standard logical algebra.-
Field Summary
Fields Modifier and Type Field Description static RelMetadataProvider
SOURCE
-
Method Summary
-
Field Details
-
Method Details
-
getDef
- Specified by:
getDef
in interfaceMetadataHandler<BuiltInMetadata.ColumnUniqueness>
-
areColumnsUnique
public Boolean areColumnsUnique(TableScan rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Filter rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(RelNode rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)Catch-all implementation forBuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)
, invoked using reflection, for any relational expression not handled by a more specific method.- Parameters:
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 uniqueness- Returns:
- whether the columns are unique, or null if not enough information is available to make that determination
- See Also:
RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet, boolean)
-
areColumnsUnique
public Boolean areColumnsUnique(SetOp rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Intersect rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Minus rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Sort rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(TableModify rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Exchange rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Correlate rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Project rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Calc rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Join rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Aggregate rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Values rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(Converter rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(HepRelVertex rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls) -
areColumnsUnique
public Boolean areColumnsUnique(RelSubset rel, RelMetadataQuery mq, ImmutableBitSet columns, boolean ignoreNulls)
-