kate created CALCITE-6399: ----------------------------- Summary: The predicate IN is transformed by the sqltorelConverter into join Key: CALCITE-6399 URL: https://issues.apache.org/jira/browse/CALCITE-6399 Project: Calcite Issue Type: Wish Components: core Affects Versions: 1.36.0 Reporter: kate
*Simple Example:* My SqlToRelConverter: {code:java} SqlToRelConverter.Config config = new SqlToRelNodeConfig() .withTrimUnusedFields(true) .withRelBuilderFactory(RelFactories.LOGICAL_BUILDER) .withRelBuilderConfigTransform(relBuilderConfig -> relBuilderConfig .withSimplify(false)) .withHintStrategyTable(HintStrategyTable.EMPTY); RelRoot root = sqlToRelConverter.convertQuery(sqlNode, false, false); {code} SQL {code:java} SELECT cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_countFROM pg.tpcds.customer c, pg.tpcds. customer_address ca, pg.tpcds.customer_demographics WHERE c.c_current_addr_sk = ca.ca_address_sk AND cd_demo_sk = c.c_current_cdemo_sk AND ca_county IN ( 'Lycoming County', 'Sheridan County', 'Kandiyohi County',Pike County','Greene County' ) {code} RelNode tree after converting {code:java} LogicalProject(cd_gender=[$32], cd_marital_status=[$33], cd_education_status=[$34], cd_purchase_estimate=[$35], cd_credit_rating=[$36], cd_dep_count=[$37], cd_dep_employed_count=[$38], cd_dep_college_count=[$39]) LogicalFilter(condition=[AND(=($4, $18), true, =($31, $2))]) LogicalJoin(condition=[=($25, $40)], joinType=[inner]) LogicalJoin(condition=[true], joinType=[inner]) LogicalJoin(condition=[true], joinType=[inner]) LogicalTableScan(table=[[tpcds, customer]]) LogicalTableScan(table=[[tpcds, customer_address]]) LogicalTableScan(table=[[tpcds, customer_demographics]]) LogicalAggregate(group=[{0}]) LogicalUnion(all=[true]) LogicalValues(tuples=[[{ 'Lycoming County' }]]) LogicalValues(tuples=[[{ 'Sheridan County' }]]) LogicalValues(tuples=[[{ 'Kandiyohi County' }]]) LogicalValues(tuples=[[{ 'Pike County' }]]) LogicalValues(tuples=[[{ 'Greene County' }]]) {code} I'm trying to figure out how to keep in as a filter instead of converting it to a join value. -- This message was sent by Atlassian Jira (v8.20.10#820010)