Call prepare_expression() on selector expressions to resolve types. This leaves us with just one way to move from the unprepared domain to the prepared domain. The change is somewhat awkward since do_prepare_selectable() is re-doing work that is done by prepare_expression(), but somehow it all works. The next patch will tear down the unnecessary double-preparation.
23 lines
543 B
C++
23 lines
543 B
C++
/*
|
|
* Copyright (C) 2021-present ScyllaDB
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "selectable.hh"
|
|
#include "cql3/expr/expression.hh"
|
|
#include "data_dictionary/data_dictionary.hh"
|
|
|
|
namespace cql3::selection {
|
|
|
|
expr::expression make_count_rows_function_expression();
|
|
shared_ptr<selectable> prepare_selectable(const schema& s, const expr::expression& raw_selectable, data_dictionary::database db, const sstring& keyspace);
|
|
bool selectable_processes_selection(const expr::expression& raw_selectable);
|
|
|
|
}
|