2011-10-30 05:19:41 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <DB/Parsers/IParserBase.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Варианты:
|
|
|
|
|
*
|
|
|
|
|
* Обычный вариант:
|
2012-12-11 20:32:08 +00:00
|
|
|
|
* INSERT INTO [db.]table (c1, c2, c3) VALUES (v11, v12, v13), (v21, v22, v23), ...
|
|
|
|
|
* INSERT INTO [db.]table VALUES (v11, v12, v13), (v21, v22, v23), ...
|
2011-10-30 05:19:41 +00:00
|
|
|
|
*
|
2011-10-31 06:37:12 +00:00
|
|
|
|
* Вставка данных в произвольном формате.
|
|
|
|
|
* Сами данные идут после перевода строки, если он есть, или после всех пробельных символов, иначе.
|
2012-12-11 20:32:08 +00:00
|
|
|
|
* INSERT INTO [db.]table (c1, c2, c3) FORMAT format \n ...
|
|
|
|
|
* INSERT INTO [db.]table FORMAT format \n ...
|
2011-10-30 05:19:41 +00:00
|
|
|
|
*
|
|
|
|
|
* Вставка результата выполнения SELECT запроса.
|
2012-12-11 20:32:08 +00:00
|
|
|
|
* INSERT INTO [db.]table (c1, c2, c3) SELECT ...
|
|
|
|
|
* INSERT INTO [db.]table SELECT ...
|
2011-10-30 05:19:41 +00:00
|
|
|
|
*/
|
|
|
|
|
class ParserInsertQuery : public IParserBase
|
|
|
|
|
{
|
|
|
|
|
protected:
|
2014-03-10 12:25:37 +00:00
|
|
|
|
const char * getName() const { return "INSERT query"; }
|
2015-04-11 03:10:23 +00:00
|
|
|
|
bool parseImpl(Pos & pos, Pos end, ASTPtr & node, Pos & max_parsed_pos, Expected & expected);
|
2011-10-30 05:19:41 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|