Nadav Har'El
97d444bbf7
Merge 'cql3/expression: implement evaluate(field_selection) ' from Jan Ciołek
...
Implement `expr:valuate()` for `expr::field_selection`.
`field_selection` is used to represent access to a struct field.
For example, with a UDT value:
```
CREATE TYPE my_type (a int, b int);
```
The expression `my_type_value.a` would be represented as a `field_selection`, which selects the field `a`.
Evaluating such an expression consists of finding the right element's value in a serialized UDT value and returning it.
Note that it's still not possible to use `field_selection` inside the `WHERE` clause. Enabling it would require changes to the grammar, as well as query planning, Current `statement_restrictions` just reacts with `on_internal_error` when it encounters a `field_selection`.
Nonetheless it's a step towards relaxing the grammar, and now it's finally possible to evaluate all kinds of prepared expressions (#12906 )
Fixes: https://github.com/scylladb/scylladb/issues/12906
Closes #14235
* github.com:scylladb/scylladb:
boost/expr_test: test evaluate(field_selection)
cql3/expr: fix printing of field_selection
cql3/expression: implement evaluate(field_selection)
types/user: modify idx_of_field to use bytes_view
column_identifer: add column_identifier_raw::text()
types: add read_nth_user_type_field()
types: add read_nth_tuple_element()
2023-06-18 11:08:25 +03:00
..
2023-03-07 17:54:53 +08:00
2023-05-02 11:04:05 +03:00
2023-04-07 20:32:28 +08:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-03-22 13:48:50 +02:00
2023-02-01 20:14:51 -03:00
2023-05-04 02:37:29 +02:00
2023-06-06 13:29:16 +03:00
2023-02-15 11:01:50 +02:00
2023-02-14 11:19:03 +02:00
2023-02-01 20:14:51 -03:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-03-21 13:15:12 +02:00
2023-02-19 12:58:22 +08:00
2023-02-01 20:14:51 -03:00
2023-06-15 17:54:59 +08:00
2023-02-01 20:14:51 -03:00
2023-06-06 13:29:16 +03:00
2023-02-15 11:01:50 +02:00
2023-02-01 20:14:51 -03:00
2023-04-19 05:20:42 -04:00
2023-05-24 22:58:43 +02:00
2023-05-23 08:52:56 +03:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-05-07 17:17:36 +03:00
2023-02-15 11:01:50 +02:00
2023-05-30 15:10:12 +03:00
2022-11-16 16:30:38 +02:00
2023-04-17 14:08:37 +03:00
2023-06-15 17:54:59 +08:00
2023-02-01 20:14:51 -03:00
2023-04-27 10:24:46 +03:00
2023-02-15 11:09:04 +02:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-06-18 11:08:25 +03:00
2023-02-28 21:56:53 +08:00
2023-02-01 20:14:51 -03:00
2023-06-06 13:29:16 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-02-28 21:56:53 +08:00
2023-06-06 08:36:09 +03:00
2023-02-01 20:14:51 -03:00
2023-04-24 14:06:43 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-19 21:05:45 +02:00
2023-02-19 21:05:45 +02:00
2023-02-01 20:14:51 -03:00
2023-05-23 10:40:55 +03:00
2023-02-01 20:14:51 -03:00
2023-04-20 23:39:18 +02:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-04-17 14:08:37 +03:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-05-30 15:10:12 +03:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-05-24 22:58:43 +02:00
2023-06-06 13:29:16 +03:00
2023-05-04 03:35:15 +02:00
2023-05-22 17:56:27 +02:00
2023-02-15 11:01:50 +02:00
2023-04-24 10:49:37 +02:00
2023-02-14 11:19:03 +02:00
2023-06-06 13:29:16 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-15 11:01:50 +02:00
2023-02-14 11:19:03 +02:00
2023-04-26 09:00:25 +03:00
2023-02-28 21:56:53 +08:00
2023-06-06 13:29:16 +03:00
2023-02-03 19:04:32 +01:00
2023-02-28 21:56:53 +08:00
2023-06-07 12:12:19 +03:00
2023-02-28 21:56:53 +08:00
2023-04-26 22:09:17 +02:00
2023-02-01 20:14:51 -03:00
2023-06-06 13:29:16 +03:00
2023-06-07 20:25:49 +03:00
2023-05-23 08:52:56 +03:00
2023-03-22 13:59:47 +02:00
2023-05-23 08:52:56 +03:00
2023-02-15 11:01:50 +02:00
2023-05-31 23:30:57 +03:00
2023-04-21 09:43:53 +03:00
2023-05-11 16:31:23 +03:00
2023-04-27 10:24:46 +03:00
2023-04-27 10:24:46 +03:00
2023-02-28 21:56:53 +08:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-06-06 13:29:16 +03:00
2023-06-15 17:54:59 +08:00
2023-06-15 17:54:59 +08:00
2023-05-11 12:32:22 +08:00
2023-05-23 11:29:04 +03:00
2023-02-17 17:58:26 +03:00
2023-06-06 13:29:16 +03:00
2023-05-17 11:31:07 +03:00
2023-05-23 10:40:54 +03:00
2023-03-22 13:59:47 +02:00
2023-04-23 21:34:02 +03:00
2023-05-30 15:10:12 +03:00
2023-04-24 10:49:36 +02:00
2023-05-29 23:03:24 +03:00
2023-03-27 01:44:00 -04:00
2023-04-24 10:49:37 +02:00
2023-05-15 10:19:39 +03:00
2023-05-21 13:17:42 +04:00
2023-04-17 14:08:37 +03:00
2023-02-15 11:09:04 +02:00
2023-06-15 09:48:54 +02:00
2023-02-01 20:14:51 -03:00
2023-02-19 21:05:45 +02:00
2023-03-09 17:51:15 +01:00
2023-05-23 08:52:56 +03:00
2023-04-26 14:09:58 +08:00
2023-06-06 13:29:16 +03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-02-01 20:14:51 -03:00
2023-05-17 15:38:03 +02:00
2023-03-06 13:17:21 +03:00
2023-06-06 13:29:16 +03:00
2023-02-01 20:14:51 -03:00
2023-06-06 08:36:09 +03:00
2023-06-06 08:36:09 +03:00