Nadav Har'El
c8bb147f84
Merge 'cql3: don't ignore other restrictions when a multi column restriction is present during filtering' from Jan Ciołek
...
When filtering with multi column restriction present all other restrictions were ignored.
So a query like:
`SELECT * FROM WHERE pk = 0 AND (ck1, ck2) < (0, 0) AND regular_col = 0 ALLOW FILTERING;`
would ignore the restriction `regular_col = 0`.
This was caused by a bug in the filtering code:
2779a171fc/cql3/selection/selection.cc (L433-L449)
When multi column restrictions were detected, the code checked if they are satisfied and returned immediately.
This is fixed by returning only when these restrictions are not satisfied. When they are satisfied the other restrictions are checked as well to ensure all of them are satisfied.
This code was introduced back in 2019, when fixing #3574 .
Perhaps back then it was impossible to mix multi column and regular columns and this approach was correct.
Fixes : #6200
Fixes : #12014
Closes #12031
* github.com:scylladb/scylladb:
cql-pytest: add a reproducer for #12014 , verify that filtering multi column and regular restrictions works
boost/restrictions-test: uncomment part of the test that passes now
cql-pytest: enable test for filtering combined multi column and regular column restrictions
cql3: don't ignore other restrictions when a multi column restriction is present during filtering
(cherry picked from commit 2d2034ea28 )
2022-11-21 14:02:33 +02:00
..
2022-02-13 14:16:16 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-01 08:33:55 +03:00
2022-02-13 14:16:16 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-12 00:23:29 +03:00
2022-04-20 10:59:09 +03:00
2022-02-25 01:42:15 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-23 16:14:41 +02:00
2022-01-18 12:15:18 +01:00
2022-06-21 11:58:13 +03:00
2022-04-12 16:37:11 +03:00
2022-09-30 00:01:26 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-29 13:26:51 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-11 09:17:30 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-02-07 11:33:57 +02:00
2022-02-08 11:08:42 +01:00
2022-01-18 12:15:18 +01:00
2022-07-16 21:35:06 -03:00
2022-01-18 12:15:18 +01:00
2022-07-25 09:53:33 +02:00
2022-01-18 12:15:18 +01:00
2022-03-30 15:42:51 +03:00
2022-08-02 08:08:11 +03:00
2022-07-28 11:17:55 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-21 11:58:13 +03:00
2022-01-18 12:15:18 +01:00
2022-02-16 10:06:10 +02:00
2022-07-05 16:41:09 +02:00
2022-07-05 16:41:09 +02:00
2022-07-05 16:41:09 +02:00
2022-07-22 20:14:48 +03:00
2022-05-10 09:56:44 +03:00
2022-04-26 14:46:42 +03:00
2022-06-15 11:30:01 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-31 23:42:34 +03:00
2022-05-03 10:57:40 +03:00
2022-05-19 17:21:35 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-18 19:24:18 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-02-22 12:55:38 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-03-16 12:31:50 +03:00
2022-06-28 19:58:06 -03:00
2022-01-18 12:15:18 +01:00
2022-07-28 10:48:58 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-28 14:43:33 +03:00
2022-05-31 23:42:34 +03:00
2022-02-21 12:29:25 +02:00
2022-01-18 12:15:18 +01:00
2022-03-31 13:29:11 +03:00
2022-07-12 08:41:51 +03:00
2022-06-20 19:37:31 +03:00
2022-09-20 23:21:58 +02:00
2022-05-31 23:42:34 +03:00
2022-08-11 16:51:59 +02:00
2022-05-03 10:57:40 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-22 20:16:49 +02:00
2022-09-02 10:41:22 +03:00
2022-05-01 08:33:55 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-22 20:16:48 +02:00
2022-09-02 10:41:22 +03:00
2022-05-31 23:42:34 +03:00
2022-11-21 14:02:33 +02:00
2022-03-15 11:42:42 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-09-20 23:21:54 +02:00
2022-05-11 16:49:31 +02:00
2022-07-11 09:17:30 +02:00
2022-05-10 22:10:40 +03:00
2022-02-17 15:24:24 +02:00
2022-05-05 13:06:04 +03:00
2022-06-23 13:36:20 +03:00
2022-05-18 19:10:13 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-03 10:57:40 +03:00
2022-06-20 19:37:31 +03:00
2022-08-02 07:57:41 +03:00
2022-05-10 22:10:40 +03:00
2022-09-29 23:42:01 +03:00
2022-07-19 12:14:41 +03:00
2022-06-20 19:37:31 +03:00
2022-06-03 07:26:29 +03:00
2022-05-25 09:27:04 +03:00
2022-06-20 19:37:31 +03:00
2022-06-21 11:58:13 +03:00
2022-06-20 19:37:31 +03:00
2022-07-27 14:04:55 +03:00
2022-01-18 12:15:18 +01:00
2022-07-22 20:14:48 +03:00
2022-02-01 21:14:41 +01:00
2022-07-27 16:58:52 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-27 08:28:56 +03:00
2022-07-11 09:17:30 +02:00
2022-06-07 11:16:12 +02:00
2022-01-18 12:15:18 +01:00
2022-02-16 10:19:47 +02:00
2022-03-30 15:42:51 +03:00
2022-07-16 21:35:06 -03:00
2022-01-18 12:15:18 +01:00
2022-03-08 15:34:26 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-31 23:42:34 +03:00
2022-01-18 12:15:18 +01:00