Package org.apache.calcite.rel.metadata
Class RelMdSize
- java.lang.Object
-
- org.apache.calcite.rel.metadata.RelMdSize
-
- All Implemented Interfaces:
MetadataHandler<BuiltInMetadata.Size>
public class RelMdSize extends java.lang.Object implements MetadataHandler<BuiltInMetadata.Size>
Default implementations of theBuiltInMetadata.Size
metadata provider for the standard logical algebra.
-
-
Field Summary
Fields Modifier and Type Field Description static int
BYTES_PER_CHARACTER
Bytes per character (2).static RelMetadataProvider
SOURCE
Source forBuiltInMetadata.Size
.
-
Constructor Summary
Constructors Modifier Constructor Description protected
RelMdSize()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.Double>
averageColumnSizes(Aggregate rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Exchange rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Filter rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Intersect rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Join rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Minus rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Project rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(SemiJoin rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Sort rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(TableScan rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Union rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(Values rel, RelMetadataQuery mq)
java.util.List<java.lang.Double>
averageColumnSizes(RelNode rel, RelMetadataQuery mq)
Catch-all implementation forBuiltInMetadata.Size.averageColumnSizes()
, invoked using reflection.protected java.lang.Double
averageFieldValueSize(RelDataTypeField field)
Estimates the average size (in bytes) of a value of a field, knowing nothing more than its type.private java.util.List<java.lang.Double>
averageJoinColumnSizes(Join rel, RelMetadataQuery mq, boolean semijoin)
java.lang.Double
averageRexSize(RexNode node, java.util.List<java.lang.Double> inputColumnSizes)
java.lang.Double
averageRowSize(RelNode rel, RelMetadataQuery mq)
Catch-all implementation forBuiltInMetadata.Size.averageRowSize()
, invoked using reflection.java.lang.Double
averageTypeValueSize(RelDataType type)
Estimates the average size (in bytes) of a value of a type.MetadataDef<BuiltInMetadata.Size>
getDef()
double
typeValueSize(RelDataType type, java.lang.Comparable value)
Estimates the average size (in bytes) of a value of a type.
-
-
-
Field Detail
-
SOURCE
public static final RelMetadataProvider SOURCE
Source forBuiltInMetadata.Size
.
-
BYTES_PER_CHARACTER
public static final int BYTES_PER_CHARACTER
Bytes per character (2).- See Also:
- Constant Field Values
-
-
Method Detail
-
getDef
public MetadataDef<BuiltInMetadata.Size> getDef()
- Specified by:
getDef
in interfaceMetadataHandler<BuiltInMetadata.Size>
-
averageRowSize
public java.lang.Double averageRowSize(RelNode rel, RelMetadataQuery mq)
Catch-all implementation forBuiltInMetadata.Size.averageRowSize()
, invoked using reflection.
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(RelNode rel, RelMetadataQuery mq)
Catch-all implementation forBuiltInMetadata.Size.averageColumnSizes()
, invoked using reflection.
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Filter rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Sort rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Exchange rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Project rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Values rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(TableScan rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Aggregate rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(SemiJoin rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Join rel, RelMetadataQuery mq)
-
averageJoinColumnSizes
private java.util.List<java.lang.Double> averageJoinColumnSizes(Join rel, RelMetadataQuery mq, boolean semijoin)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Intersect rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Minus rel, RelMetadataQuery mq)
-
averageColumnSizes
public java.util.List<java.lang.Double> averageColumnSizes(Union rel, RelMetadataQuery mq)
-
averageFieldValueSize
protected java.lang.Double averageFieldValueSize(RelDataTypeField field)
Estimates the average size (in bytes) of a value of a field, knowing nothing more than its type.We assume that the proportion of nulls is negligible, even if the field is nullable.
-
averageTypeValueSize
public java.lang.Double averageTypeValueSize(RelDataType type)
Estimates the average size (in bytes) of a value of a type.We assume that the proportion of nulls is negligible, even if the type is nullable.
-
typeValueSize
public double typeValueSize(RelDataType type, java.lang.Comparable value)
Estimates the average size (in bytes) of a value of a type.Nulls count as 1 byte.
-
averageRexSize
public java.lang.Double averageRexSize(RexNode node, java.util.List<java.lang.Double> inputColumnSizes)
-
-