Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
None
-
Release Notes Required
Description
By default RelMdRowCount return the actual row count for IgniteTables. But current implementation of IgniteTableScan may contain embedded filters and rows that are filtered out by these filters are not taken into account by the metadata subsystem.
For example, table emps contains 1000 rows. Filter name='Vasya' filters out 95% of rows. For now we end up with situation
IgniteFilter(name='Vasya') <- estimated cardinality = 50 rows IgniteTableScan(filters=null) <- estimated cardinality = 1000 rows.
but after merging Filter into Scan we get the wrong estimation
IgniteTableScan(filters={name='Vasya'}) <- estimated cardinality = 1000 rows. But should be 50 rows.
We need to add a special case in order to compute the actual cardinality returned by IgniteTableScan
Attachments
Issue Links
- is fixed by
-
IGNITE-12715 Calcite integration. Secondary indexes support.
- Resolved
- is part of
-
IGNITE-12248 Apache Calcite based query execution engine
- Open