diff --git a/cql3/statements/select_statement.cc b/cql3/statements/select_statement.cc index ab2d8d7e23..277ae70a72 100644 --- a/cql3/statements/select_statement.cc +++ b/cql3/statements/select_statement.cc @@ -428,7 +428,7 @@ GCC6_CONCEPT( requires (std::is_same_v || std::is_same_v) ) static KeyType -generate_base_key_from_index_pk(const partition_key& index_pk, const clustering_key& index_ck, const schema& base_schema, const schema& view_schema) { +generate_base_key_from_index_pk(const partition_key& index_pk, const std::optional& index_ck, const schema& base_schema, const schema& view_schema) { const auto& base_columns = std::is_same_v ? base_schema.partition_key_columns() : base_schema.clustering_key_columns(); std::vector exploded_base_key; exploded_base_key.reserve(base_columns.size()); @@ -437,8 +437,8 @@ generate_base_key_from_index_pk(const partition_key& index_pk, const clustering_ const column_definition* view_col = view_schema.view_info()->view_column(base_col); if (view_col->is_partition_key()) { exploded_base_key.push_back(index_pk.get_component(view_schema, view_col->id)); - } else { - exploded_base_key.push_back(index_ck.get_component(view_schema, view_col->id)); + } else if (index_ck) { + exploded_base_key.push_back(index_ck->get_component(view_schema, view_col->id)); } } return KeyType::from_range(exploded_base_key); @@ -502,9 +502,9 @@ indexed_table_select_statement::do_execute_base_query( auto old_paging_state = options.get_paging_state(); if (old_paging_state && concurrency == 1) { auto base_pk = generate_base_key_from_index_pk(old_paging_state->get_partition_key(), - *old_paging_state->get_clustering_key(), *_schema, *_view_schema); + old_paging_state->get_clustering_key(), *_schema, *_view_schema); auto base_ck = generate_base_key_from_index_pk(old_paging_state->get_partition_key(), - *old_paging_state->get_clustering_key(), *_schema, *_view_schema); + old_paging_state->get_clustering_key(), *_schema, *_view_schema); command->slice.set_range(*_schema, base_pk, std::vector{query::clustering_range::make_starting_with(range_bound(base_ck, false))}); }