Vladimir Steshin created IGNITE-24773:
-----------------------------------------

             Summary: Calcite. IgniteReduceSortAggregate misses collation.
                 Key: IGNITE-24773
                 URL: https://issues.apache.org/jira/browse/IGNITE-24773
             Project: Ignite
          Issue Type: Improvement
            Reporter: Vladimir Steshin


*Reproducer:*
{code:java}
CREATE TABLE tab4(pk INTEGER PRIMARY KEY, col0 INTEGER, col1 FLOAT, col3 
INTEGER)

CREATE INDEX idx_tab4_1 ON tab4 (col3)
CREATE INDEX idx_tab4_3 ON tab4 (col1,col0 DESC)

INSERT INTO tab4 VALUES(0,544,473.59,846)
INSERT INTO tab4 VALUES(1,551,716.92,562)
INSERT INTO tab4 VALUES(2,481,975.35,652)
INSERT INTO tab4 VALUES(3,345,371.4,51)

SELECT pk, col0 FROM tab4 WHERE (col0 IN (SELECT col3 FROM tab4 WHERE col0 >= 
955)) ORDER BY 1 DESC
{code}

*Error:*
{code:java}
java.lang.AssertionError: null
        at 
org.apache.ignite.internal.processors.query.calcite.exec.rel.SortAggregateNode.<init>(SortAggregateNode.java:81)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:860)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:124)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.rel.agg.IgniteReduceSortAggregate.accept(IgniteReduceSortAggregate.java:111)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:885)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:895)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:176)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:124)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender.accept(IgniteSender.java:100)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:885)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:900)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeFragment(ExecutionServiceImpl.java:849)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:912)
 ~[classes/:?]
{code}

*Assumption:*
`_IgniteReduceSortAggregate_` loses traits in 
`_IgniteReduceSortAggregate(RelInput input)_` and doesn't return the collation 
in `_public RelCollation collation()_` directly. Instead, it tries to get it 
from the traits which are already lost.




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

Reply via email to