query: partition_slice: add range_scan_data_variant option

Switching to the data variant of range scans have to be coordinated by
the coordinator to avoid replicas noticing the availability of the
respective feature in different time, resulting in some using the
mutation variant, some using the data variant.
So the plan is that it will be the coordinator's job to check the
cluster feature and set the option in the partition slice which will
tell the replicas to use the data variant for the query.
This commit is contained in:
Botond Dénes
2021-02-24 18:11:12 +02:00
parent 5c84aa52db
commit f15551d23a

View File

@@ -142,6 +142,10 @@ public:
// key restrictions and the partition doesn't have any rows matching
// the restrictions, see #589. This flag overrides this behavior.
always_return_static_content,
// Use the new data range scan variant, which builds query::result
// directly, bypassing the intermediate reconcilable_result format used
// in pre 4.5 range scans.
range_scan_data_variant,
};
using option_set = enum_set<super_enum<option,
option::send_clustering_key,
@@ -155,7 +159,8 @@ public:
option::allow_short_read,
option::with_digest,
option::bypass_cache,
option::always_return_static_content>>;
option::always_return_static_content,
option::range_scan_data_variant>>;
clustering_row_ranges _row_ranges;
public:
column_id_vector static_columns; // TODO: consider using bitmap