Files
scylladb/cql3
Avi Kivity 91cdaa72bd cql3: selection: evaluate aggregation queries via expr::evaluate()
When constructing a selection_with_processing, split the
selectors into an inner loop and an outer loop with split_aggregation().
We can then reimplement add_input_row() and get_output_row() as follows:

 - add_input_row(): evaluate the inner loop expressions and store
   the results in temporaries
 - get_output_row(): evaluate the outer loop expressions, pulling in
   values from those temporaries.

reset(), which is called between groups, simply copies the initial
values rathered by split_aggregation() into the temporaries.

The only complexity comes from add_column_for_post_query_processing(),
which essentially re-does the work of split_aggregation(). It would
be much better if we added the column before split_aggregation() was
called, but some refactoring has to take place before that happens.
2023-07-03 19:45:17 +03:00
..
2023-02-28 22:26:43 +02:00
2023-06-22 14:19:43 +03:00
2023-06-12 10:41:04 +03:00
2023-06-12 10:41:04 +03:00
2023-06-12 10:41:04 +03:00
2023-04-28 16:59:29 +08:00
2023-02-19 21:05:45 +02:00