You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Kondakov (Jira)" <ji...@apache.org> on 2020/05/18 18:45:00 UTC

[jira] [Created] (IGNITE-13026) Calcite integration. Fix metadata for IgniteTable when it has embedded filters.

Roman Kondakov created IGNITE-13026:
---------------------------------------

             Summary: Calcite integration. Fix metadata for IgniteTable when it has embedded filters.
                 Key: IGNITE-13026
                 URL: https://issues.apache.org/jira/browse/IGNITE-13026
             Project: Ignite
          Issue Type: Bug
          Components: sql
            Reporter: Roman Kondakov


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
{code:java}
IgniteFilter(name='Vasya') <- estimated cardinality = 50 rows 
  IgniteTableScan(filters=null) <- estimated cardinality = 1000 rows.
{code}
but after merging {{Filter}} into {{Scan}} we get the wrong estimation
{code:java}
IgniteTableScan(filters={name='Vasya'}) <- estimated cardinality = 1000 rows. But should be 50 rows.
{code}
We need to add a special case in order to compute the actual cardinality returned by {{IgniteTableScan}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)