/// Construct a conjunction from given functions static ASTPtr buildWhereExpression(const ASTs & functions) { if (functions.size() == 0) return nullptr; if (functions.size() == 1) return functions[0]; ASTPtr new_query = std::make_shared<ASTFunction>(); ASTFunction & new_function = typeid_cast<ASTFunction & >(*new_query); new_function.name = "and"; new_function.arguments = std::make_shared<ASTExpressionList>(); new_function.arguments->children = functions; new_function.children.push_back(new_function.arguments); return new_query; }