[ 
https://issues.apache.org/jira/browse/CALCITE-4985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ZheHu updated CALCITE-4985:
---------------------------
    Description: 
When running the following test in AggregationTest:
{code:java}
@Test void testPrepare() {
    String sql = "select * from view where cat5=?";
    CalciteAssert.that()
        .with(newConnectionFactory())
        .query(sql)
        // currently, it doesn't work with or without the following 
PrepareStatementConsumer
        .consumesPreparedStatement(p -> p.setInt(1, 1))
        .returns("a");
  }
{code}
I got such exception:
{code:java}
Suppressed: 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$PredicateAnalyzerException:
 Unexpected combination of expressions [left: 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$NamedFieldExpression@4a325e09]
 [right: null]
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.swap(PredicateAnalyzer.java:506)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.binary(PredicateAnalyzer.java:353)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:243)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:127)
org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer.analyze(PredicateAnalyzer.java:112)
org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter$PredicateAnalyzerTranslator.translateMatch(ElasticsearchFilter.java:102)
org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter.implement(ElasticsearchFilter.java:67)
org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
org.apache.calcite.adapter.elasticsearch.ElasticsearchProject.implement(ElasticsearchProject.java:62)
org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
org.apache.calcite.adapter.elasticsearch.ElasticsearchToEnumerableConverter.implement(ElasticsearchToEnumerableConverter.java:67)
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:111)
{code}

Useful reference in JDBC Adapter: see 
https://issues.apache.org/jira/browse/CALCITE-563

  was:
When running the following test in AggregationTest:
{code:java}
@Test void testPrepare() {
    String sql = "select * from view where cat5=?";
    CalciteAssert.that()
        .with(newConnectionFactory())
        .query(sql)
        .consumesPreparedStatement(p -> p.setInt(1, 1))
        .returns("a");
  }
{code}
I got such exception:
{code:java}
Suppressed: 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$PredicateAnalyzerException:
 Unexpected combination of expressions [left: 
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$NamedFieldExpression@4a325e09]
 [right: null]
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.swap(PredicateAnalyzer.java:506)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.binary(PredicateAnalyzer.java:353)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:243)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:127)
org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer.analyze(PredicateAnalyzer.java:112)
org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter$PredicateAnalyzerTranslator.translateMatch(ElasticsearchFilter.java:102)
org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter.implement(ElasticsearchFilter.java:67)
org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
org.apache.calcite.adapter.elasticsearch.ElasticsearchProject.implement(ElasticsearchProject.java:62)
org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
org.apache.calcite.adapter.elasticsearch.ElasticsearchToEnumerableConverter.implement(ElasticsearchToEnumerableConverter.java:67)
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:111)
{code}

Useful reference in JDBC Adapter: see 
https://issues.apache.org/jira/browse/CALCITE-563


> Elasticsearch Adapter fails to execute a prepared statement
> -----------------------------------------------------------
>
>                 Key: CALCITE-4985
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4985
>             Project: Calcite
>          Issue Type: Bug
>          Components: elasticsearch-adapter
>    Affects Versions: 1.29.0
>            Reporter: ZheHu
>            Assignee: ZheHu
>            Priority: Major
>
> When running the following test in AggregationTest:
> {code:java}
> @Test void testPrepare() {
>     String sql = "select * from view where cat5=?";
>     CalciteAssert.that()
>         .with(newConnectionFactory())
>         .query(sql)
>         // currently, it doesn't work with or without the following 
> PrepareStatementConsumer
>         .consumesPreparedStatement(p -> p.setInt(1, 1))
>         .returns("a");
>   }
> {code}
> I got such exception:
> {code:java}
> Suppressed: 
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$PredicateAnalyzerException:
>  Unexpected combination of expressions [left: 
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$NamedFieldExpression@4a325e09]
>  [right: null]
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.swap(PredicateAnalyzer.java:506)
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.binary(PredicateAnalyzer.java:353)
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:243)
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer$Visitor.visitCall(PredicateAnalyzer.java:127)
> org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
> org.apache.calcite.adapter.elasticsearch.PredicateAnalyzer.analyze(PredicateAnalyzer.java:112)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter$PredicateAnalyzerTranslator.translateMatch(ElasticsearchFilter.java:102)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchFilter.implement(ElasticsearchFilter.java:67)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchProject.implement(ElasticsearchProject.java:62)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchRel$Implementor.visitChild(ElasticsearchRel.java:129)
> org.apache.calcite.adapter.elasticsearch.ElasticsearchToEnumerableConverter.implement(ElasticsearchToEnumerableConverter.java:67)
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:111)
> {code}
> Useful reference in JDBC Adapter: see 
> https://issues.apache.org/jira/browse/CALCITE-563



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to