[ https://issues.apache.org/jira/browse/CASSANDRA-8286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tyler Hobbs updated CASSANDRA-8286: ----------------------------------- Attachment: 8286-2.0.txt 8286-trunk.txt 8286-2.1.txt In 2.0, the problem was in {{SelectStatement.processOrderingClause()}} where {{ColumnIdentifier.Raw}} instances were being compared with {{ColumnIdentifier}} instances. In 2.1 and trunk, the behavior of {{processOrderingClause()}} was changed, so that problem didn't appear. However, there were two additional issues: First, in {{Selection.usingFunctions()}} simply checked {{instanceof ColumnIdentifier}}, which is false for {{ColumnIdentifier.Raw}}, causing all selections to be treated as function/field selections ({{SelectionWithFunctions}}). Second, there was an existing bug with {{SelectionWithFunctions}}. In {{Selection.addColumnForOrdering()}}, the internal list of {{columns}} is updated, which works for {{SimpleSelection}}, but is insufficient for {{SelectionWithFunctions}}, which depends on its pre-built list of {{Selectors}}. So, if there were any functions or field selections, {{ORDER BY}} columns would not be properly added to the list of selections. Since the previously mentioned bug resulted in all selections being {{SelectionWithFunctions}}, the normal selection case was also broken. The 2.1 and trunk patches override {{addColumnForOrdering()}} in {{SelectionWithFunctions}} to update the selectors, and I pushed an [additional dtest|https://github.com/riptano/cassandra-dtest/commit/da86a8eae38179c12b3576ec3d4beaaa0750144c] to cover selecting functions with {{ORDER BY}} clauses. > Regression in ORDER BY > ---------------------- > > Key: CASSANDRA-8286 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8286 > Project: Cassandra > Issue Type: Bug > Reporter: Philip Thompson > Assignee: Tyler Hobbs > Labels: cql > Fix For: 2.0.12, 2.1.3 > > Attachments: 8286-2.0.txt, 8286-2.1.txt, 8286-trunk.txt > > > The dtest {{cql_tests.py:TestCQL.order_by_multikey_test}} is now failing in > 2.0: > http://cassci.datastax.com/job/cassandra-2.0_dtest/lastCompletedBuild/testReport/cql_tests/TestCQL/order_by_multikey_test/history/ > This failure began at the commit for CASSANDRA-8178. > The error message reads > {code}====================================================================== > ERROR: order_by_multikey_test (cql_tests.TestCQL) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "/Users/philipthompson/cstar/cassandra-dtest/dtest.py", line 524, in > wrapped > f(obj) > File "/Users/philipthompson/cstar/cassandra-dtest/cql_tests.py", line 1807, > in order_by_multikey_test > res = cursor.execute("SELECT col1 FROM test WHERE my_id in('key1', > 'key2', 'key3') ORDER BY col1;") > File "/Library/Python/2.7/site-packages/cassandra/cluster.py", line 1281, > in execute > result = future.result(timeout) > File "/Library/Python/2.7/site-packages/cassandra/cluster.py", line 2771, > in result > raise self._final_exception > InvalidRequest: code=2200 [Invalid query] message="ORDER BY could not be used > on columns missing in select clause."{code} > and occurs at the query {{SELECT col1 FROM test WHERE my_id in('key1', > 'key2', 'key3') ORDER BY col1;}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)