mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 01:22:04 +00:00
AST fuzzer: Print data of INSERT VALUES
This commit is contained in:
parent
8776b2f566
commit
ad95846b2b
@ -28,9 +28,10 @@
|
|||||||
|
|
||||||
#include <IO/ReadBufferFromString.h>
|
#include <IO/ReadBufferFromString.h>
|
||||||
#include <IO/ReadHelpers.h>
|
#include <IO/ReadHelpers.h>
|
||||||
#include <IO/WriteHelpers.h>
|
|
||||||
#include <IO/WriteBufferFromOStream.h>
|
|
||||||
#include <IO/UseSSL.h>
|
#include <IO/UseSSL.h>
|
||||||
|
#include <IO/WriteBufferFromOStream.h>
|
||||||
|
#include <IO/WriteHelpers.h>
|
||||||
|
#include <IO/copyData.h>
|
||||||
|
|
||||||
#include <Parsers/ASTCreateQuery.h>
|
#include <Parsers/ASTCreateQuery.h>
|
||||||
#include <Parsers/ASTDropQuery.h>
|
#include <Parsers/ASTDropQuery.h>
|
||||||
@ -39,6 +40,8 @@
|
|||||||
#include <Parsers/ASTInsertQuery.h>
|
#include <Parsers/ASTInsertQuery.h>
|
||||||
#include <Parsers/ASTSelectQuery.h>
|
#include <Parsers/ASTSelectQuery.h>
|
||||||
|
|
||||||
|
#include <Processors/Transforms/getSourceFromASTInsertQuery.h>
|
||||||
|
|
||||||
#include <Interpreters/InterpreterSetQuery.h>
|
#include <Interpreters/InterpreterSetQuery.h>
|
||||||
|
|
||||||
#include <Functions/registerFunctions.h>
|
#include <Functions/registerFunctions.h>
|
||||||
@ -829,6 +832,20 @@ bool Client::processWithFuzzing(const String & full_query)
|
|||||||
WriteBufferFromOStream ast_buf(std::cout, 4096);
|
WriteBufferFromOStream ast_buf(std::cout, 4096);
|
||||||
formatAST(*query, ast_buf, false /*highlight*/);
|
formatAST(*query, ast_buf, false /*highlight*/);
|
||||||
ast_buf.next();
|
ast_buf.next();
|
||||||
|
if (const auto * insert = query->as<ASTInsertQuery>())
|
||||||
|
{
|
||||||
|
/// For inserts with data it's really useful to have the data itself available in the logs, as formatAST doesn't print it
|
||||||
|
if (insert->hasInlinedData())
|
||||||
|
{
|
||||||
|
String bytes;
|
||||||
|
{
|
||||||
|
auto read_buf = getReadBufferFromASTInsertQuery(query);
|
||||||
|
WriteBufferFromString write_buf(bytes);
|
||||||
|
copyData(*read_buf, write_buf);
|
||||||
|
}
|
||||||
|
std::cout << std::endl << bytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
std::cout << std::endl << std::endl;
|
std::cout << std::endl << std::endl;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Tags: long
|
|
||||||
|
|
||||||
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
# shellcheck source=../shell_config.sh
|
# shellcheck source=../shell_config.sh
|
||||||
|
Loading…
Reference in New Issue
Block a user