Interface SqlStatisticProvider
- All Known Implementing Classes:
- CachingSqlStatisticProvider,- MapSqlStatisticProvider,- QuerySqlStatisticProvider
Unlike LatticeStatisticProvider, works on raw tables and columns
 and does not need a Lattice.
 
It uses RelOptTable because that contains
 enough information to generate and execute SQL, while not being tied to a
 lattice.
 
The main implementation,
 QuerySqlStatisticProvider, executes
 queries on a populated database. Implementations that use database statistics
 (from ANALYZE TABLE, etc.) and catalog information (e.g. primary and
 foreign key constraints) would also be possible.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanisForeignKey(RelOptTable fromTable, List<Integer> fromColumns, RelOptTable toTable, List<Integer> toColumns) Returns whether a join is a foreign key; that is, whether every row in the referencing table is matched by at least one row in the referenced table.booleanisKey(RelOptTable table, List<Integer> columns) Returns whether a collection of columns is a unique (or primary) key.doubletableCardinality(RelOptTable table) Returns an estimate of the number of rows intable.
- 
Method Details- 
tableCardinalityReturns an estimate of the number of rows intable.
- 
isForeignKeyboolean isForeignKey(RelOptTable fromTable, List<Integer> fromColumns, RelOptTable toTable, List<Integer> toColumns) Returns whether a join is a foreign key; that is, whether every row in the referencing table is matched by at least one row in the referenced table.For example, isForeignKey(EMP, [DEPTNO], DEPT, [DEPTNO])returns true.To change "at least one" to "exactly one", you also need to call isKey(org.apache.calcite.plan.RelOptTable, java.util.List<java.lang.Integer>).
- 
isKeyReturns whether a collection of columns is a unique (or primary) key.For example, isKey(EMP, [DEPTNO]returns true;isKey(DEPT, [DEPTNO]returns false.
 
-