#pragma once #include #include #include namespace DB { class IAST; class Context; /** For given ClickHouse query, * creates another query in a form of * * SELECT columns... FROM db.table WHERE ... * * where 'columns' are all required columns to read from "left" table of original query, * and WHERE contains subset of (AND-ed) conditions from original query, * that contain only compatible expressions. * * Compatible expressions are comparisons of identifiers, constants, and logical operations on them. */ String transformQueryForExternalDatabase( const IAST & query, const NamesAndTypesList & available_columns, IdentifierQuotingStyle identifier_quoting_style, const String & database, const String & table, const Context & context); }