[
https://issues.apache.org/jira/browse/CASSANDRA-21739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Suvidh Jain reassigned CASSANDRA-21739:
---------------------------------------
Assignee: Suvidh Jain
> 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
> Assignee: Suvidh Jain
> Priority: Normal
>
> 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
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]