[ 
https://issues.apache.org/jira/browse/CASSANDRA-17818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17730761#comment-17730761
 ] 

Brandon Williams commented on CASSANDRA-17818:
----------------------------------------------

LGTM.

||Branch||CI||
|[3.11|https://github.com/driftx/cassandra/tree/CASSANDRA-17818-3.11]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1049/workflows/d762e9d3-6d0f-4be5-be86-7fd286ad2746]|
|[4.0|https://github.com/driftx/cassandra/tree/CASSANDRA-17818-4.0]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1048/workflows/4c444cba-26de-4770-aa1f-e783a2a1d89d],
 
[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1048/workflows/06eab6b4-a791-49a7-b1bc-ffd7d5c0ae55]|
|[4.1|https://github.com/driftx/cassandra/tree/CASSANDRA-17818-4.1]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1047/workflows/7e5c83ae-30af-43ce-9183-f68cbcdd9a9b],
 
[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1047/workflows/ae932163-8a40-4af0-80c8-00ad50c25149]|
|[trunk|https://github.com/driftx/cassandra/tree/CASSANDRA-17818-trunk]|[j8|https://app.circleci.com/pipelines/github/driftx/cassandra/1050/workflows/72962ea6-8d12-4f59-b9f3-f3058a9af827],
 
[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1050/workflows/b859f11c-2996-4ee2-872f-95d1adc3275c]|


> Fix error message handling when trying to use CLUSTERING ORDER with 
> non-clustering column
> -----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17818
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17818
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Syntax
>            Reporter: Ekaterina Dimitrova
>            Assignee: Ningzi Zhan
>            Priority: Normal
>              Labels: lhf
>             Fix For: 3.11.x, 4.0.x, 4.1.x, 5.x
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Imagine ck1, ck2, v columns. For "CLUSTERING ORDER ck1 ASC, v DESC" error msg 
> will suggest that information for ck2 is missing. But if you add it it will 
> still be wrong as "v" cannot be used. So the problem here is really about 
> using non-clustering column rather than about not providing information about 
> some clustering column.
> The following is example from 3.11, but the code is the same in 4.0, 4.1, 
> trunk:
> {code:java}
> cqlsh:k_test> CREATE TABLE test2 (pk int, ck1 int, ck2 int, v int, PRIMARY 
> KEY ((pk),ck1, ck2)) WITH CLUSTERING ORDER BY (v ASC);
> InvalidRequest: Error from server: code=2200 [Invalid query] message="Missing 
> CLUSTERING ORDER for column ck1"
> cqlsh:k_test> CREATE TABLE test2 (pk int, ck1 int, ck2 int, v int, PRIMARY 
> KEY ((pk),ck1, ck2)) WITH CLUSTERING ORDER BY (ck1 ASC, v ASC);
> InvalidRequest: Error from server: code=2200 [Invalid query] message="Missing 
> CLUSTERING ORDER for column ck2"
> cqlsh:k_test> CREATE TABLE test2 (pk int, ck1 int, ck2 int, v int, PRIMARY 
> KEY ((pk),ck1, ck2)) WITH CLUSTERING ORDER BY (ck1 ASC, ck2 DESC, v ASC);
> InvalidRequest: Error from server: code=2200 [Invalid query] message="Only 
> clustering key columns can be defined in CLUSTERING ORDER directive"{code}
> We need to be sure that we return to the user the same correct error message 
> in all three cases and it should be "Only clustering key columns can be 
> defined in CLUSTERING ORDER directive"
> +Additional information for newcomers+
>  * 
> [This|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/cql3/statements/schema/CreateTableStatement.java#L251-L252]
>  is where we handle the issue incorrectly as proved by the example. The 
> easiest way to handle this issue would be to  check the key set content of 
> {_}clusteringOrder{_}.
>  * It would be good also to add more unit tests in 
> [CreateTableValidationTest|https://github.com/apache/cassandra/blob/trunk/test/unit/org/apache/cassandra/schema/CreateTableValidationTest.java]
>  to cover different cases. 
>  * I suggest we create patch first for 3.11 and then we can propagate it up 
> to the next versions.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to