2022-07-22 15:09:56 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <Analyzer/IQueryTreeNode.h>
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
{
|
|
|
|
|
|
|
|
/// Returns true if node part of root tree, false otherwise
|
|
|
|
bool isNodePartOfTree(const IQueryTreeNode * node, const IQueryTreeNode * root);
|
|
|
|
|
|
|
|
/// Returns true if function name is name of IN function or its variations, false otherwise
|
|
|
|
bool isNameOfInFunction(const std::string & function_name);
|
|
|
|
|
2022-08-15 16:34:10 +00:00
|
|
|
/** Add table expression in tables in select query children.
|
|
|
|
* If table expression node is not of identifier node, table node, query node, table function node, join node or array join node type throws logical error exception.
|
|
|
|
*/
|
2022-08-31 15:21:17 +00:00
|
|
|
void addTableExpressionOrJoinIntoTablesInSelectQuery(ASTPtr & tables_in_select_query_ast, const QueryTreeNodePtr & table_expression);
|
|
|
|
|
|
|
|
/// Extract table, table function query, union from join tree
|
|
|
|
QueryTreeNodes extractTableExpressions(const QueryTreeNodePtr & join_tree_node);
|
2022-08-15 16:34:10 +00:00
|
|
|
|
2022-07-22 15:09:56 +00:00
|
|
|
}
|