aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/clickhouse/src/Parsers/getInsertQuery.cpp
blob: 9d111b147bd73f7faf95782e469a82ae61b4bf4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <Parsers/getInsertQuery.h>

#include <Parsers/ASTInsertQuery.h>
#include <Parsers/ASTIdentifier.h>
#include <Parsers/ASTExpressionList.h>
#include <IO/WriteBufferFromString.h>


namespace DB
{
std::string getInsertQuery(const std::string & db_name, const std::string & table_name, const ColumnsWithTypeAndName & columns, IdentifierQuotingStyle quoting)
{
    ASTInsertQuery query;
    query.table_id.database_name = db_name;
    query.table_id.table_name = table_name;
    query.columns = std::make_shared<ASTExpressionList>(',');
    query.children.push_back(query.columns);
    for (const auto & column : columns)
        query.columns->children.emplace_back(std::make_shared<ASTIdentifier>(column.name));

    WriteBufferFromOwnString buf;
    IAST::FormatSettings settings(buf, /*one_line*/ true, /*hilite*/ false, /*always_quote_identifiers*/ true, /*identifier_quoting_style*/ quoting);
    query.IAST::format(settings);
    return buf.str();
}
}