2019-12-12 15:28:24 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Core/NamesAndTypes.h>
|
2021-04-10 23:33:54 +00:00
|
|
|
#include <Interpreters/Context_fwd.h>
|
2019-12-12 15:28:24 +00:00
|
|
|
#include <Interpreters/DatabaseAndTableWithAlias.h>
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
{
|
|
|
|
|
|
|
|
struct ASTTableExpression;
|
|
|
|
class ASTSelectQuery;
|
|
|
|
|
2021-06-23 14:03:39 +00:00
|
|
|
using ASTTableExprConstPtrs = std::vector<const ASTTableExpression *>;
|
|
|
|
|
2019-12-12 16:54:04 +00:00
|
|
|
NameSet removeDuplicateColumns(NamesAndTypesList & columns);
|
|
|
|
|
2021-06-23 14:03:39 +00:00
|
|
|
ASTTableExprConstPtrs getTableExpressions(const ASTSelectQuery & select_query);
|
|
|
|
|
2019-12-12 15:28:24 +00:00
|
|
|
const ASTTableExpression * getTableExpression(const ASTSelectQuery & select, size_t table_number);
|
2021-06-23 14:03:39 +00:00
|
|
|
|
2019-12-12 15:28:24 +00:00
|
|
|
ASTPtr extractTableExpression(const ASTSelectQuery & select, size_t table_number);
|
|
|
|
|
2023-03-21 17:29:26 +00:00
|
|
|
/// The parameter is_create_parameterized_view is used in getSampleBlock of the subquery. It is forwarded to getColumnsFromTableExpression.
|
|
|
|
/// If it is set to true, then query parameters are allowed in the subquery, and that expression is not evaluated.
|
2021-06-23 14:03:39 +00:00
|
|
|
TablesWithColumns getDatabaseAndTablesWithColumns(
|
2023-03-19 18:41:19 +00:00
|
|
|
const ASTTableExprConstPtrs & table_expressions, ContextPtr context, bool include_alias_cols, bool include_materialized_cols, bool is_create_parameterized_view = false);
|
2019-12-12 15:28:24 +00:00
|
|
|
|
|
|
|
}
|