mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
Adding support for output_format_enable_streaming
format setting.
This commit is contained in:
parent
cf8bc71b21
commit
369b4d53ef
@ -176,6 +176,7 @@ struct Settings : public SettingsCollection<Settings>
|
|||||||
\
|
\
|
||||||
M(SettingString, count_distinct_implementation, "uniqExact", "What aggregate function to use for implementation of count(DISTINCT ...)", 0) \
|
M(SettingString, count_distinct_implementation, "uniqExact", "What aggregate function to use for implementation of count(DISTINCT ...)", 0) \
|
||||||
\
|
\
|
||||||
|
M(SettingBool, output_format_enable_streaming, false, "Enable streaming in output formats that support it.", 0) \
|
||||||
M(SettingBool, output_format_write_statistics, true, "Write statistics about read rows, bytes, time elapsed in suitable output formats.", 0) \
|
M(SettingBool, output_format_write_statistics, true, "Write statistics about read rows, bytes, time elapsed in suitable output formats.", 0) \
|
||||||
\
|
\
|
||||||
M(SettingBool, add_http_cors_header, false, "Write add http CORS header.", 0) \
|
M(SettingBool, add_http_cors_header, false, "Write add http CORS header.", 0) \
|
||||||
|
@ -87,6 +87,7 @@ static FormatSettings getInputFormatSetting(const Settings & settings, const Con
|
|||||||
static FormatSettings getOutputFormatSetting(const Settings & settings, const Context & context)
|
static FormatSettings getOutputFormatSetting(const Settings & settings, const Context & context)
|
||||||
{
|
{
|
||||||
FormatSettings format_settings;
|
FormatSettings format_settings;
|
||||||
|
format_settings.enable_streaming = settings.output_format_enable_streaming;
|
||||||
format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers;
|
format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers;
|
||||||
format_settings.json.quote_denormals = settings.output_format_json_quote_denormals;
|
format_settings.json.quote_denormals = settings.output_format_json_quote_denormals;
|
||||||
format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes;
|
format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes;
|
||||||
|
@ -13,6 +13,8 @@ namespace DB
|
|||||||
*/
|
*/
|
||||||
struct FormatSettings
|
struct FormatSettings
|
||||||
{
|
{
|
||||||
|
bool enable_streaming = false;
|
||||||
|
|
||||||
struct JSON
|
struct JSON
|
||||||
{
|
{
|
||||||
bool quote_64bit_integers = true;
|
bool quote_64bit_integers = true;
|
||||||
|
@ -18,6 +18,12 @@ CSVRowOutputFormat::CSVRowOutputFormat(WriteBuffer & out_, const Block & header_
|
|||||||
data_types[i] = sample.safeGetByPosition(i).type;
|
data_types[i] = sample.safeGetByPosition(i).type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVRowOutputFormat::consume(DB::Chunk chunk)
|
||||||
|
{
|
||||||
|
IRowOutputFormat::consume(std::move(chunk));
|
||||||
|
if (format_settings.enable_streaming)
|
||||||
|
flush();
|
||||||
|
}
|
||||||
|
|
||||||
void CSVRowOutputFormat::writePrefix()
|
void CSVRowOutputFormat::writePrefix()
|
||||||
{
|
{
|
||||||
|
@ -39,6 +39,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
void consume(Chunk chunk) override;
|
||||||
bool with_names;
|
bool with_names;
|
||||||
const FormatSettings format_settings;
|
const FormatSettings format_settings;
|
||||||
DataTypes data_types;
|
DataTypes data_types;
|
||||||
|
@ -24,6 +24,9 @@ with client(name='client1>', log=log) as client1, client(name='client2>', log=lo
|
|||||||
client1.send('SET allow_experimental_live_view = 1')
|
client1.send('SET allow_experimental_live_view = 1')
|
||||||
client1.expect(prompt)
|
client1.expect(prompt)
|
||||||
|
|
||||||
|
client1.send('SET output_format_enable_streaming = 1')
|
||||||
|
client1.expect(prompt)
|
||||||
|
|
||||||
client1.send('DROP TABLE IF EXISTS test.lv')
|
client1.send('DROP TABLE IF EXISTS test.lv')
|
||||||
client1.expect(prompt)
|
client1.expect(prompt)
|
||||||
client1.send('DROP TABLE IF EXISTS test.mt')
|
client1.send('DROP TABLE IF EXISTS test.mt')
|
||||||
|
Loading…
Reference in New Issue
Block a user