Nadav Har'El created CASSANDRA-21739:
----------------------------------------

             Summary: floor() in GROUP BY reports invalid arguments as a 
ReadFailure instead of an InvalidRequest
                 Key: CASSANDRA-21739
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21739
             Project: Apache Cassandra
          Issue Type: Bug
            Reporter: Nadav Har'El


When floor() is used in a GROUP BY clause with an invalid duration or starting 
time, the request fails with a ReadFailure ("Operation failed - received 0 
responses and 1 failures: UNKNOWN from ...") instead of an InvalidRequest 
error. The InvalidRequestException is thrown on the replica while reading, and 
appears only in the server's log:
{code:sql}
CREATE TABLE ks.t (pk int, time timestamp, v int, PRIMARY KEY (pk, time));
INSERT INTO ks.t (pk, time, v) VALUES (1, '2016-09-27 16:10:00 UTC', 1);
SELECT pk, floor(time, 10us), min(v) FROM ks.t GROUP BY pk, floor(time, 10us);
{code}
{noformat}
ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] 
message="Operation failed - received 0 responses and 1 failures: UNKNOWN from 
/127.0.0.1:7000"
{noformat}
The server log shows:
{noformat}
java.lang.RuntimeException: 
org.apache.cassandra.exceptions.InvalidRequestException: The floor cannot be 
computed for the 10us duration as precision is below 1 millisecond
{noformat}
The same happens for the other argument checks of floor() in GROUP BY: a 
negative duration, a starting time later than the value, a duration below 1 day 
for date values, and a duration of a day or more for time values. In contrast, 
the same floor() call outside GROUP BY (e.g. SELECT floor(time, 10us) FROM ks.t 
WHERE pk = 1) correctly fails with InvalidRequest.

Reproduced on Cassandra 5.0.9 and 6.0-alpha2. SelectGroupByTest 
(testGroupByTimeRanges*WithoutPaging) checks these errors with 
assertInvalidMessage(), but doesn't notice the problem, because CQLTester's 
execute() runs the query internally, where the InvalidRequestException surfaces 
unwrapped.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to