aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql_into_tables.h
blob: 0e40f5669bb96d51b547655ed6443759312e7aa8 (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
27
28
29
30
#pragma once

#include "sql_translation.h"
#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h>

namespace NSQLTranslationV1 {

using namespace NSQLv1Generated;

class TSqlIntoTable: public TSqlTranslation {
public:
    TSqlIntoTable(TContext& ctx, NSQLTranslation::ESqlMode mode)
        : TSqlTranslation(ctx, mode)
    {
    }

    TNodePtr Build(const TRule_into_table_stmt& node);

private:
    //bool BuildValuesRow(const TRule_values_source_row& inRow, TVector<TNodePtr>& outRow);
    //TSourcePtr ValuesSource(const TRule_values_source& node, TVector<TString>& columnsHint);
    //TSourcePtr IntoValuesSource(const TRule_into_values_source& node);

    bool ValidateServiceName(const TRule_into_table_stmt& node, const TTableRef& table, ESQLWriteColumnMode mode,
        const TPosition& pos);
    TString SqlIntoModeStr;
    TString SqlIntoUserModeStr;
};

} // namespace NSQLTranslationV1