public class QuerySqlStatisticProvider extends Object implements SqlStatisticProvider
SqlStatisticProvider that generates and executes
SQL queries.| Modifier and Type | Field and Description |
|---|---|
static SqlStatisticProvider |
SILENT_CACHING_INSTANCE
Instance that uses SQL to compute statistics,
does not log SQL statements,
and caches up to 1,024 results for up to 30 minutes.
|
static SqlStatisticProvider |
VERBOSE_CACHING_INSTANCE
As
SILENT_CACHING_INSTANCE but prints SQL statements to
System.out. |
| Constructor and Description |
|---|
QuerySqlStatisticProvider(Consumer<String> sqlConsumer)
Creates a QuerySqlStatisticProvider.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
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.
|
boolean |
isKey(RelOptTable table,
List<Integer> columns)
Returns whether a collection of columns is a unique (or primary) key.
|
double |
tableCardinality(RelOptTable table)
Returns an estimate of the number of rows in
table. |
protected String |
toSql(RelNode rel,
SqlDialect dialect) |
public static final SqlStatisticProvider SILENT_CACHING_INSTANCE
public static final SqlStatisticProvider VERBOSE_CACHING_INSTANCE
SILENT_CACHING_INSTANCE but prints SQL statements to
System.out.public double tableCardinality(RelOptTable table)
SqlStatisticProvidertable.tableCardinality in interface SqlStatisticProviderpublic boolean isForeignKey(RelOptTable fromTable, List<Integer> fromColumns, RelOptTable toTable, List<Integer> toColumns)
SqlStatisticProviderFor example, isForeignKey(EMP, [DEPTNO], DEPT, [DEPTNO])
returns true.
To change "at least one" to "exactly one", you also need to call
SqlStatisticProvider.isKey(org.apache.calcite.plan.RelOptTable, java.util.List<java.lang.Integer>).
isForeignKey in interface SqlStatisticProviderpublic boolean isKey(RelOptTable table, List<Integer> columns)
SqlStatisticProviderFor example, isKey(EMP, [DEPTNO] returns true;
For example, isKey(DEPT, [DEPTNO] returns false.
isKey in interface SqlStatisticProviderprotected String toSql(RelNode rel, SqlDialect dialect)
Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.