[
https://issues.apache.org/jira/browse/DRILL-7340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Arina Ielchiieva updated DRILL-7340:
------------------------------------
Reviewer: Volodymyr Vysotskyi
> Filter is not pushed to JDBC database when several databases are used in the
> query
> ----------------------------------------------------------------------------------
>
> Key: DRILL-7340
> URL: https://issues.apache.org/jira/browse/DRILL-7340
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - JDBC
> Affects Versions: 1.16.0
> Reporter: Volodymyr Vysotskyi
> Assignee: Igor Guzenko
> Priority: Major
> Fix For: 1.17.0
>
>
> For the case when several databases are used in the query, some rules weren'tÂ
> added to the rule set for one of the conventions. It is observed in queries
> similar to the next query:
> {code:sql}
> select * from mysql.`drill_mysql_test`.person t1
> INNER JOIN h2.drill_h2_test.person t2 on t1.person_id = t2.person_id where
> t1.first_name = 'first_name_1' and t2.last_name = 'last_name_1
> {code}
> Plan for this query is the following:
> {noformat}
> 00-00 Screen
> 00-01 Project(person_id=[$0], first_name=[$1], last_name=[$2],
> address=[$3], city=[$4], state=[$5], zip=[$6], json=[$7], bigint_field=[$8],
> smallint_field=[$9], numeric_field=[$10], boolean_field=[$11],
> double_field=[$12], float_field=[$13], real_field=[$14], time_field=[$15],
> timestamp_field=[$16], date_field=[$17], datetime_field=[$18],
> year_field=[$19], text_field=[$20], tiny_text_field=[$21],
> medium_text_field=[$22], long_text_field=[$23], blob_field=[$24],
> bit_field=[$25], enum_field=[$26], PERSON_ID0=[$27], FIRST_NAME0=[$28],
> LAST_NAME0=[$29], ADDRESS0=[$30], CITY0=[$31], STATE0=[$32], ZIP0=[$33],
> JSON0=[$34], BIGINT_FIELD0=[$35], SMALLINT_FIELD0=[$36],
> NUMERIC_FIELD0=[$37], BOOLEAN_FIELD0=[$38], DOUBLE_FIELD0=[$39],
> FLOAT_FIELD0=[$40], REAL_FIELD0=[$41], TIME_FIELD0=[$42],
> TIMESTAMP_FIELD0=[$43], DATE_FIELD0=[$44], CLOB_FIELD=[$45])
> 00-02 HashJoin(condition=[=($0, $27)], joinType=[inner], semi-join:
> =[false])
> 00-03 Project(PERSON_ID0=[$0], FIRST_NAME0=[$1], LAST_NAME0=[$2],
> ADDRESS0=[$3], CITY0=[$4], STATE0=[$5], ZIP0=[$6], JSON0=[$7],
> BIGINT_FIELD0=[$8], SMALLINT_FIELD0=[$9], NUMERIC_FIELD0=[$10],
> BOOLEAN_FIELD0=[$11], DOUBLE_FIELD0=[$12], FLOAT_FIELD0=[$13],
> REAL_FIELD0=[$14], TIME_FIELD0=[$15], TIMESTAMP_FIELD0=[$16],
> DATE_FIELD0=[$17], CLOB_FIELD=[$18])
> 00-05 SelectionVectorRemover
> 00-06 Filter(condition=[=($2, 'last_name_1')])
> 00-07 Jdbc(sql=[SELECT * FROM "TMP"."DRILL_H2_TEST"."PERSON" ])
> 00-04 Jdbc(sql=[SELECT * FROM `drill_mysql_test`.`person` WHERE
> `first_name` = 'first_name_1' ])
> {noformat}
> {{DrillJdbcFilterRule}} wasn't applied for H2 convention and Filter wasn't
> pushed to H2 database.
> This issue may be fixed by specifying {{JdbcConvention}} in rules
> descriptions in Drill {{DrillJdbcFilterRule}} and {{DrillJdbcProjectRule}}
> rules and other rules should be fixed in Calcite in the scope of CALCITE-3115.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)