Aleksey Plekhanov created IGNITE-21421:
------------------------------------------

             Summary: Calcite engine. Tuple (row) comparison is not working
                 Key: IGNITE-21421
                 URL: https://issues.apache.org/jira/browse/IGNITE-21421
             Project: Ignite
          Issue Type: Bug
            Reporter: Aleksey Plekhanov
            Assignee: Aleksey Plekhanov


Currentrly, row comparison fails with an error and don't use index.

Reproducer:
{code:java}
sql("CREATE TABLE test (id INTEGER, val INTEGER)");
sql("CREATE INDEX test_idx ON test (id, val)");
sql("INSERT INTO test VALUES (0, 0), (0, 1), (1, 0), (1, 1)");

assertQuery("SELECT * FROM test WHERE (id, val) >= (?, ?)")
    .withParams(0, 1)
    //.matches(QueryChecker.containsIndexScan("PUBLIC", "TEST", "TEST_IDX"))
    .returns(0, 1)
    .returns(1, 0)
    .returns(1, 1)
    .check(); {code}
Exception:
{noformat}
Caused by: java.lang.RuntimeException: while resolving method 'ge[class 
[Ljava.lang.Object;, class [Ljava.lang.Object;]' in class class 
org.apache.calcite.runtime.SqlFunctions
    at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
    at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:449)
    at 
org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$BinaryImplementor.implementSafe(RexImpTable.java:1233)
    at 
org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.genValueStatement(RexImpTable.java:1950)
    at 
org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.implement(RexImpTable.java:1911)
{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to