-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathsettings.ts
More file actions
2142 lines (2111 loc) · 150 KB
/
settings.ts
File metadata and controls
2142 lines (2111 loc) · 150 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import type { DataFormat } from './data_formatter'
/**
* @see {@link https://github.com/ClickHouse/ClickHouse/blob/46ed4f6cdf68fbbdc59fbe0f0bfa9a361cc0dec1/src/Core/Settings.h}
* @see {@link https://github.com/ClickHouse/ClickHouse/blob/eae2667a1c29565c801be0ffd465f8bfcffe77ef/src/Storages/MergeTree/MergeTreeSettings.h}
*/
///// regex / replace for common and format settings entries
///// M\((?<type>.+?), {0,1}(?<name>.+?), {0,1}(?<default_value>.+?), {0,1}"{0,1}(?<description>.+)"{0,1}?,.*
///// /** $4 */\n$2?: $1,\n
interface ClickHouseServerSettings {
/** Write add http CORS header. */
add_http_cors_header?: Bool
/** Additional filter expression which would be applied to query result */
additional_result_filter?: string
/** Additional filter expression which would be applied after reading from specified table. Syntax: {'table1': 'expression', 'database.table2': 'expression'} */
additional_table_filters?: Map
/** Rewrite all aggregate functions in a query, adding -OrNull suffix to them */
aggregate_functions_null_for_empty?: Bool
/** Maximal size of block in bytes accumulated during aggregation in order of primary key. Lower block size allows to parallelize more final merge stage of aggregation. */
aggregation_in_order_max_block_bytes?: UInt64
/** Number of threads to use for merge intermediate aggregation results in memory efficient mode. When bigger, then more memory is consumed. 0 means - same as 'max_threads'. */
aggregation_memory_efficient_merge_threads?: UInt64
/** Enable independent aggregation of partitions on separate threads when partition key suits group by key. Beneficial when number of partitions close to number of cores and partitions have roughly the same size */
allow_aggregate_partitions_independently?: Bool
/** Use background I/O pool to read from MergeTree tables. This setting may increase performance for I/O bound queries */
allow_asynchronous_read_from_io_pool_for_merge_tree?: Bool
/** Allow HedgedConnections to change replica until receiving first data packet */
allow_changing_replica_until_first_data_packet?: Bool
/** Allow CREATE INDEX query without TYPE. Query will be ignored. Made for SQL compatibility tests. */
allow_create_index_without_type?: Bool
/** Enable custom error code in function throwIf(). If true, thrown exceptions may have unexpected error codes. */
allow_custom_error_code_in_throwif?: Bool
/** If it is set to true, then a user is allowed to executed DDL queries. */
allow_ddl?: Bool
/** Allow to create databases with deprecated Ordinary engine */
allow_deprecated_database_ordinary?: Bool
/** Allow to create *MergeTree tables with deprecated engine definition syntax */
allow_deprecated_syntax_for_merge_tree?: Bool
/** If it is set to true, then a user is allowed to executed distributed DDL queries. */
allow_distributed_ddl?: Bool
/** Allow ALTER TABLE ... DROP DETACHED PART[ITION] ... queries */
allow_drop_detached?: Bool
/** Allow execute multiIf function columnar */
allow_execute_multiif_columnar?: Bool
/** Allow atomic alter on Materialized views. Work in progress. */
allow_experimental_alter_materialized_view_structure?: Bool
/** Allow experimental analyzer */
allow_experimental_analyzer?: Bool
/** Allows to use Annoy index. Disabled by default because this feature is experimental */
allow_experimental_annoy_index?: Bool
/** If it is set to true, allow to specify experimental compression codecs (but we don't have those yet and this option does nothing). */
allow_experimental_codecs?: Bool
/** Allow to create database with Engine=MaterializedMySQL(...). */
allow_experimental_database_materialized_mysql?: Bool
/** Allow to create database with Engine=MaterializedPostgreSQL(...). */
allow_experimental_database_materialized_postgresql?: Bool
/** Allow to create databases with Replicated engine */
allow_experimental_database_replicated?: Bool
/** Enable experimental functions for funnel analysis. */
allow_experimental_funnel_functions?: Bool
/** Enable experimental hash functions */
allow_experimental_hash_functions?: Bool
/** If it is set to true, allow to use experimental inverted index. */
allow_experimental_inverted_index?: Bool
/** Enable LIVE VIEW. Not mature enough. */
allow_experimental_live_view?: Bool
/** Enable experimental functions for natural language processing. */
allow_experimental_nlp_functions?: Bool
/** Allow Object and JSON data types */
allow_experimental_object_type?: Bool
/** Use all the replicas from a shard for SELECT query execution. Reading is parallelized and coordinated dynamically. 0 - disabled, 1 - enabled, silently disable them in case of failure, 2 - enabled, throw an exception in case of failure */
allow_experimental_parallel_reading_from_replicas?: UInt64
/** Experimental data deduplication for SELECT queries based on part UUIDs */
allow_experimental_query_deduplication?: Bool
/** Allow to use undrop query to restore dropped table in a limited time */
allow_experimental_undrop_table_query?: Bool
/** Enable WINDOW VIEW. Not mature enough. */
allow_experimental_window_view?: Bool
/** Support join with inequal conditions which involve columns from both left and right table. e.g. t1.y < t2.y. */
allow_experimental_join_condition?: Bool
/** Since ClickHouse 24.1 */
allow_experimental_variant_type?: Bool
/** Since ClickHouse 24.5 */
allow_experimental_dynamic_type?: Bool
/** Since ClickHouse 24.8 */
allow_experimental_json_type?: Bool
/** Since ClickHouse 25.3 */
enable_json_type?: Bool
/** Since ClickHouse 25.6 */
enable_time_time64_type?: Bool
/** Allow functions that use Hyperscan library. Disable to avoid potentially long compilation times and excessive resource usage. */
allow_hyperscan?: Bool
/** Allow functions for introspection of ELF and DWARF for query profiling. These functions are slow and may impose security considerations. */
allow_introspection_functions?: Bool
/** Allow to execute alters which affects not only tables metadata, but also data on disk */
allow_non_metadata_alters?: Bool
/** Allow non-const timezone arguments in certain time-related functions like toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*() */
allow_nonconst_timezone_arguments?: Bool
/** Allow non-deterministic functions in ALTER UPDATE/ALTER DELETE statements */
allow_nondeterministic_mutations?: Bool
/** Allow non-deterministic functions (includes dictGet) in sharding_key for optimize_skip_unused_shards */
allow_nondeterministic_optimize_skip_unused_shards?: Bool
/** Prefer prefethed threadpool if all parts are on remote filesystem */
allow_prefetched_read_pool_for_local_filesystem?: Bool
/** Prefer prefethed threadpool if all parts are on remote filesystem */
allow_prefetched_read_pool_for_remote_filesystem?: Bool
/** Allows push predicate when subquery contains WITH clause */
allow_push_predicate_when_subquery_contains_with?: Bool
/** Allow SETTINGS after FORMAT, but note, that this is not always safe (note: this is a compatibility setting). */
allow_settings_after_format_in_insert?: Bool
/** Allow using simdjson library in 'JSON*' functions if AVX2 instructions are available. If disabled rapidjson will be used. */
allow_simdjson?: Bool
/** If it is set to true, allow to specify meaningless compression codecs. */
allow_suspicious_codecs?: Bool
/** In CREATE TABLE statement allows creating columns of type FixedString(n) with n > 256. FixedString with length >= 256 is suspicious and most likely indicates misusage */
allow_suspicious_fixed_string_types?: Bool
/** Reject primary/secondary indexes and sorting keys with identical expressions */
allow_suspicious_indices?: Bool
/** In CREATE TABLE statement allows specifying LowCardinality modifier for types of small fixed size (8 or less). Enabling this may increase merge times and memory consumption. */
allow_suspicious_low_cardinality_types?: Bool
/** Allow unrestricted (without condition on path) reads from system.zookeeper table, can be handy, but is not safe for zookeeper */
allow_unrestricted_reads_from_keeper?: Bool
/** Output information about affected parts. Currently, works only for FREEZE and ATTACH commands. */
alter_partition_verbose_result?: Bool
/** Wait for actions to manipulate the partitions. 0 - do not wait, 1 - wait for execution only of itself, 2 - wait for everyone. */
alter_sync?: UInt64
/** SELECT queries search up to this many nodes in Annoy indexes. */
annoy_index_search_k_nodes?: Int64
/** Enable old ANY JOIN logic with many-to-one left-to-right table keys mapping for all ANY JOINs. It leads to confusing not equal results for 't1 ANY LEFT JOIN t2' and 't2 ANY RIGHT JOIN t1'. ANY RIGHT JOIN needs one-to-many keys mapping to be consistent with LEFT one. */
any_join_distinct_right_table_keys?: Bool
/** Include ALIAS columns for wildcard query */
asterisk_include_alias_columns?: Bool
/** Include MATERIALIZED columns for wildcard query */
asterisk_include_materialized_columns?: Bool
/** If true, data from INSERT query is stored in queue and later flushed to table in background. If wait_for_async_insert is false, INSERT query is processed almost instantly, otherwise client will wait until data will be flushed to table */
async_insert?: Bool
/** Maximum time to wait before dumping collected data per query since the first data appeared.
*
* @see https://clickhouse.com/docs/operations/settings/settings#async_insert_busy_timeout_max_ms
*/
async_insert_busy_timeout_max_ms?: Milliseconds
/** For async INSERT queries in the replicated table, specifies that deduplication of insertings blocks should be performed */
async_insert_deduplicate?: Bool
/** Maximum size in bytes of unparsed data collected per query before being inserted */
async_insert_max_data_size?: UInt64
/** Maximum number of insert queries before being inserted */
async_insert_max_query_number?: UInt64
/** Asynchronously create connections and send query to shards in remote query */
async_query_sending_for_remote?: Bool
/** Asynchronously read from socket executing remote query */
async_socket_for_remote?: Bool
/** Enables or disables creating a new file on each insert in azure engine tables */
azure_create_new_file_on_insert?: Bool
/** Maximum number of files that could be returned in batch by ListObject request */
azure_list_object_keys_size?: UInt64
/** The maximum size of object to upload using singlepart upload to Azure blob storage. */
azure_max_single_part_upload_size?: UInt64
/** The maximum number of retries during single Azure blob storage read. */
azure_max_single_read_retries?: UInt64
/** Enables or disables truncate before insert in azure engine tables. */
azure_truncate_on_insert?: Bool
/** Maximum size of batch for multiread request to [Zoo]Keeper during backup or restore */
backup_restore_batch_size_for_keeper_multiread?: UInt64
/** Approximate probability of failure for a keeper request during backup or restore. Valid value is in interval [0.0f, 1.0f] */
backup_restore_keeper_fault_injection_probability?: Float
/** 0 - random seed, otherwise the setting value */
backup_restore_keeper_fault_injection_seed?: UInt64
/** Max retries for keeper operations during backup or restore */
backup_restore_keeper_max_retries?: UInt64
/** Initial backoff timeout for [Zoo]Keeper operations during backup or restore */
backup_restore_keeper_retry_initial_backoff_ms?: UInt64
/** Max backoff timeout for [Zoo]Keeper operations during backup or restore */
backup_restore_keeper_retry_max_backoff_ms?: UInt64
/** Maximum size of data of a [Zoo]Keeper's node during backup */
backup_restore_keeper_value_max_size?: UInt64
/** Text to represent bool value in TSV/CSV formats. */
bool_false_representation?: string
/** Text to represent bool value in TSV/CSV formats. */
bool_true_representation?: string
/** Calculate text stack trace in case of exceptions during query execution. This is the default. It requires symbol lookups that may slow down fuzzing tests when huge amount of wrong queries are executed. In normal cases you should not disable this option. */
calculate_text_stack_trace?: Bool
/** Cancel HTTP readonly queries when a client closes the connection without waiting for response.
* @see https://clickhouse.com/docs/operations/settings/settings#cancel_http_readonly_queries_on_client_close
*/
cancel_http_readonly_queries_on_client_close?: Bool
/** CAST operator into IPv4, CAST operator into IPV6 type, toIPv4, toIPv6 functions will return default value instead of throwing exception on conversion error. */
cast_ipv4_ipv6_default_on_conversion_error?: Bool
/** CAST operator keep Nullable for result data type */
cast_keep_nullable?: Bool
/** Return check query result as single 1/0 value */
check_query_single_value_result?: Bool
/** Check that DDL query (such as DROP TABLE or RENAME) will not break referential dependencies */
check_referential_table_dependencies?: Bool
/** Check that DDL query (such as DROP TABLE or RENAME) will not break dependencies */
check_table_dependencies?: Bool
/** Validate checksums on reading. It is enabled by default and should be always enabled in production. Please do not expect any benefits in disabling this setting. It may only be used for experiments and benchmarks. The setting only applicable for tables of MergeTree family. Checksums are always validated for other table engines and when receiving data over network. */
checksum_on_read?: Bool
/** Cluster for a shard in which current server is located */
cluster_for_parallel_replicas?: string
/** Enable collecting hash table statistics to optimize memory allocation */
collect_hash_table_stats_during_aggregation?: Bool
/** The list of column names to use in schema inference for formats without column names. The format: 'column1,column2,column3,...' */
column_names_for_schema_inference?: string
/** Changes other settings according to provided ClickHouse version. If we know that we changed some behaviour in ClickHouse by changing some settings in some version, this compatibility setting will control these settings */
compatibility?: string
/** Ignore AUTO_INCREMENT keyword in column declaration if true, otherwise return error. It simplifies migration from MySQL */
compatibility_ignore_auto_increment_in_create_table?: Bool
/** Compatibility ignore collation in create table */
compatibility_ignore_collation_in_create_table?: Bool
/** Compile aggregate functions to native code. This feature has a bug and should not be used. */
compile_aggregate_expressions?: Bool
/** Compile some scalar functions and operators to native code. */
compile_expressions?: Bool
/** Compile sort description to native code. */
compile_sort_description?: Bool
/** Connection timeout if there are no replicas. */
connect_timeout?: Seconds
/** Connection timeout for selecting first healthy replica. */
connect_timeout_with_failover_ms?: Milliseconds
/** Connection timeout for selecting first healthy replica (for secure connections). */
connect_timeout_with_failover_secure_ms?: Milliseconds
/** The wait time when the connection pool is full. */
connection_pool_max_wait_ms?: Milliseconds
/** The maximum number of attempts to connect to replicas. */
connections_with_failover_max_tries?: UInt64
/** Convert SELECT query to CNF */
convert_query_to_cnf?: Bool
/** What aggregate function to use for implementation of count(DISTINCT ...) */
count_distinct_implementation?: string
/** Rewrite count distinct to subquery of group by */
count_distinct_optimization?: Bool
/** Use inner join instead of comma/cross join if there're joining expressions in the WHERE section. Values: 0 - no rewrite, 1 - apply if possible for comma/cross, 2 - force rewrite all comma joins, cross - if possible */
cross_to_inner_join_rewrite?: UInt64
/** Data types without NULL or NOT NULL will make Nullable */
data_type_default_nullable?: Bool
/** When executing DROP or DETACH TABLE in Atomic database, wait for table data to be finally dropped or detached. */
database_atomic_wait_for_drop_and_detach_synchronously?: Bool
/** Allow to create only Replicated tables in database with engine Replicated */
database_replicated_allow_only_replicated_engine?: Bool
/** Allow to create only Replicated tables in database with engine Replicated with explicit arguments */
database_replicated_allow_replicated_engine_arguments?: Bool
/** Execute DETACH TABLE as DETACH TABLE PERMANENTLY if database engine is Replicated */
database_replicated_always_detach_permanently?: Bool
/** Enforces synchronous waiting for some queries (see also database_atomic_wait_for_drop_and_detach_synchronously, mutation_sync, alter_sync). Not recommended to enable these settings. */
database_replicated_enforce_synchronous_settings?: Bool
/** How long initial DDL query should wait for Replicated database to precess previous DDL queue entries */
database_replicated_initial_query_timeout_sec?: UInt64
/** Method to read DateTime from text input formats. Possible values: 'basic', 'best_effort' and 'best_effort_us'. */
date_time_input_format?: DateTimeInputFormat
/** Method to write DateTime to text output. Possible values: 'simple', 'iso', 'unix_timestamp'. */
date_time_output_format?: DateTimeOutputFormat
/** Check overflow of decimal arithmetic/comparison operations */
decimal_check_overflow?: Bool
/** Should deduplicate blocks for materialized views if the block is not a duplicate for the table. Use true to always deduplicate in dependent tables. */
deduplicate_blocks_in_dependent_materialized_views?: Bool
/** Maximum size of right-side table if limit is required but max_bytes_in_join is not set. */
default_max_bytes_in_join?: UInt64
/** Default table engine used when ENGINE is not set in CREATE statement. */
default_table_engine?: DefaultTableEngine
/** Default table engine used when ENGINE is not set in CREATE TEMPORARY statement. */
default_temporary_table_engine?: DefaultTableEngine
/** Deduce concrete type of columns of type Object in DESCRIBE query */
describe_extend_object_types?: Bool
/** If true, subcolumns of all table columns will be included into result of DESCRIBE query */
describe_include_subcolumns?: Bool
/** Which dialect will be used to parse query */
dialect?: Dialect
/** Execute a pipeline for reading from a dictionary with several threads. It's supported only by DIRECT dictionary with CLICKHOUSE source. */
dictionary_use_async_executor?: Bool
/** Allows to disable decoding/encoding path in uri in URL table engine */
disable_url_encoding?: Bool
/** What to do when the limit is exceeded. */
distinct_overflow_mode?: OverflowMode
/** Is the memory-saving mode of distributed aggregation enabled. */
distributed_aggregation_memory_efficient?: Bool
/** Maximum number of connections with one remote server in the pool. */
distributed_connections_pool_size?: UInt64
/** Compatibility version of distributed DDL (ON CLUSTER) queries */
distributed_ddl_entry_format_version?: UInt64
/** Format of distributed DDL query result */
distributed_ddl_output_mode?: DistributedDDLOutputMode
/** Timeout for DDL query responses from all hosts in cluster. If a ddl request has not been performed on all hosts, a response will contain a timeout error and a request will be executed in an async mode. Negative value means infinite. Zero means async mode. */
distributed_ddl_task_timeout?: Int64
/** Should StorageDistributed DirectoryMonitors try to batch individual inserts into bigger ones. */
distributed_directory_monitor_batch_inserts?: Bool
/** Maximum sleep time for StorageDistributed DirectoryMonitors, it limits exponential growth too. */
distributed_directory_monitor_max_sleep_time_ms?: Milliseconds
/** Sleep time for StorageDistributed DirectoryMonitors, in case of any errors delay grows exponentially. */
distributed_directory_monitor_sleep_time_ms?: Milliseconds
/** Should StorageDistributed DirectoryMonitors try to split batch into smaller in case of failures. */
distributed_directory_monitor_split_batch_on_failure?: Bool
/** If 1, Do not merge aggregation states from different servers for distributed queries (shards will process query up to the Complete stage, initiator just proxies the data from the shards). If 2 the initiator will apply ORDER BY and LIMIT stages (it is not in case when shard process query up to the Complete stage) */
distributed_group_by_no_merge?: UInt64
/** How are distributed subqueries performed inside IN or JOIN sections? */
distributed_product_mode?: DistributedProductMode
/** If 1, LIMIT will be applied on each shard separately. Usually you don't need to use it, since this will be done automatically if it is possible, i.e. for simple query SELECT FROM LIMIT. */
distributed_push_down_limit?: UInt64
/** Max number of errors per replica, prevents piling up an incredible amount of errors if replica was offline for some time and allows it to be reconsidered in a shorter amount of time. */
distributed_replica_error_cap?: UInt64
/** Time period reduces replica error counter by 2 times. */
distributed_replica_error_half_life?: Seconds
/** Number of errors that will be ignored while choosing replicas */
distributed_replica_max_ignored_errors?: UInt64
/** Merge parts only in one partition in select final */
do_not_merge_across_partitions_select_final?: Bool
/** Return empty result when aggregating by constant keys on empty set. */
empty_result_for_aggregation_by_constant_keys_on_empty_set?: Bool
/** Return empty result when aggregating without keys on empty set. */
empty_result_for_aggregation_by_empty_set?: Bool
/** Enable/disable the DEFLATE_QPL codec. */
enable_deflate_qpl_codec?: Bool
/** Enable query optimization where we analyze function and subqueries results and rewrite query if there're constants there */
enable_early_constant_folding?: Bool
/** Enable date functions like toLastDayOfMonth return Date32 results (instead of Date results) for Date32/DateTime64 arguments. */
enable_extended_results_for_datetime_functions?: Bool
/** Use cache for remote filesystem. This setting does not turn on/off cache for disks (must be done via disk config), but allows to bypass cache for some queries if intended */
enable_filesystem_cache?: Bool
/** Allows to record the filesystem caching log for each query */
enable_filesystem_cache_log?: Bool
/** Write into cache on write operations. To actually work this setting requires be added to disk config too */
enable_filesystem_cache_on_write_operations?: Bool
/** Log to system.filesystem prefetch_log during query. Should be used only for testing or debugging, not recommended to be turned on by default */
enable_filesystem_read_prefetches_log?: Bool
/** Propagate WITH statements to UNION queries and all subqueries */
enable_global_with_statement?: Bool
/** Compress the result if the client over HTTP said that it understands data compressed by gzip or deflate. */
enable_http_compression?: Bool
/** Output stack trace of a job creator when job results in exception */
enable_job_stack_trace?: Bool
/** Enable lightweight DELETE mutations for mergetree tables. */
enable_lightweight_delete?: Bool
/** Enable memory bound merging strategy for aggregation. */
enable_memory_bound_merging_of_aggregation_results?: Bool
/** Move more conditions from WHERE to PREWHERE and do reads from disk and filtering in multiple steps if there are multiple conditions combined with AND */
enable_multiple_prewhere_read_steps?: Bool
/** If it is set to true, optimize predicates to subqueries. */
enable_optimize_predicate_expression?: Bool
/** Allow push predicate to final subquery. */
enable_optimize_predicate_expression_to_final_subquery?: Bool
/** Enable positional arguments in ORDER BY, GROUP BY and LIMIT BY */
enable_positional_arguments?: Bool
/** Enable reading results of SELECT queries from the query cache */
enable_reads_from_query_cache?: Bool
/** Enable very explicit logging of S3 requests. Makes sense for debug only. */
enable_s3_requests_logging?: Bool
/** If it is set to true, prevent scalar subqueries from (de)serializing large scalar values and possibly avoid running the same subquery more than once. */
enable_scalar_subquery_optimization?: Bool
/** Allow sharing set objects build for IN subqueries between different tasks of the same mutation. This reduces memory usage and CPU consumption */
enable_sharing_sets_for_mutations?: Bool
/** Enable use of software prefetch in aggregation */
enable_software_prefetch_in_aggregation?: Bool
/** Allow ARRAY JOIN with multiple arrays that have different sizes. When this settings is enabled, arrays will be resized to the longest one. */
enable_unaligned_array_join?: Bool
/** Enable storing results of SELECT queries in the query cache */
enable_writes_to_query_cache?: Bool
/** Enables or disables creating a new file on each insert in file engine tables if format has suffix. */
engine_file_allow_create_multiple_files?: Bool
/** Allows to select data from a file engine table without file */
engine_file_empty_if_not_exists?: Bool
/** Allows to skip empty files in file table engine */
engine_file_skip_empty_files?: Bool
/** Enables or disables truncate before insert in file engine tables */
engine_file_truncate_on_insert?: Bool
/** Allows to skip empty files in url table engine */
engine_url_skip_empty_files?: Bool
/** Method to write Errors to text output. */
errors_output_format?: string
/** When enabled, ClickHouse will provide exact value for rows_before_limit_at_least statistic, but with the cost that the data before limit will have to be read completely */
exact_rows_before_limit?: Bool
/** Set default mode in EXCEPT query. Possible values: empty string, 'ALL', 'DISTINCT'. If empty, query without mode will throw exception. */
except_default_mode?: SetOperationMode
/** Connect timeout in seconds. Now supported only for MySQL */
external_storage_connect_timeout_sec?: UInt64
/** Limit maximum number of bytes when table with external engine should flush history data. Now supported only for MySQL table engine, database engine, dictionary and MaterializedMySQL. If equal to 0, this setting is disabled */
external_storage_max_read_bytes?: UInt64
/** Limit maximum number of rows when table with external engine should flush history data. Now supported only for MySQL table engine, database engine, dictionary and MaterializedMySQL. If equal to 0, this setting is disabled */
external_storage_max_read_rows?: UInt64
/** Read/write timeout in seconds. Now supported only for MySQL */
external_storage_rw_timeout_sec?: UInt64
/** If it is set to true, external table functions will implicitly use Nullable type if needed. Otherwise NULLs will be substituted with default values. Currently supported only by 'mysql', 'postgresql' and 'odbc' table functions. */
external_table_functions_use_nulls?: Bool
/** If it is set to true, transforming expression to local filter is forbidden for queries to external tables. */
external_table_strict_query?: Bool
/** Max number pairs that can be produced by extractKeyValuePairs function. Used to safeguard against consuming too much memory. */
extract_kvp_max_pairs_per_row?: UInt64
/** Calculate minimums and maximums of the result columns. They can be output in JSON-formats. */
extremes?: Bool
/** Suppose max_replica_delay_for_distributed_queries is set and all replicas for the queried table are stale. If this setting is enabled, the query will be performed anyway, otherwise the error will be reported. */
fallback_to_stale_replicas_for_distributed_queries?: Bool
/** Max remote filesystem cache size that can be downloaded by a single query */
filesystem_cache_max_download_size?: UInt64
/** Maximum memory usage for prefetches. Zero means unlimited */
filesystem_prefetch_max_memory_usage?: UInt64
/** Do not parallelize within one file read less than this amount of bytes. E.g. one reader will not receive a read task of size less than this amount. This setting is recommended to avoid spikes of time for aws getObject requests to aws */
filesystem_prefetch_min_bytes_for_single_read_task?: UInt64
/** Prefetch step in bytes. Zero means `auto` - approximately the best prefetch step will be auto deduced, but might not be 100% the best. The actual value might be different because of setting filesystem_prefetch_min_bytes_for_single_read_task */
filesystem_prefetch_step_bytes?: UInt64
/** Prefetch step in marks. Zero means `auto` - approximately the best prefetch step will be auto deduced, but might not be 100% the best. The actual value might be different because of setting filesystem_prefetch_min_bytes_for_single_read_task */
filesystem_prefetch_step_marks?: UInt64
/** Maximum number of prefetches. Zero means unlimited. A setting `filesystem_prefetches_max_memory_usage` is more recommended if you want to limit the number of prefetches */
filesystem_prefetches_limit?: UInt64
/** Query with the FINAL modifier by default. If the engine does not support final, it does not have any effect. On queries with multiple tables final is applied only on those that support it. It also works on distributed tables */
final?: Bool
/** If true, columns of type Nested will be flattened to separate array columns instead of one array of tuples */
flatten_nested?: Bool
/** Force the use of optimization when it is applicable, but heuristics decided not to use it */
force_aggregate_partitions_independently?: Bool
/** Force use of aggregation in order on remote nodes during distributed aggregation. PLEASE, NEVER CHANGE THIS SETTING VALUE MANUALLY! */
force_aggregation_in_order?: Bool
/** Comma separated list of strings or literals with the name of the data skipping indices that should be used during query execution, otherwise an exception will be thrown. */
force_data_skipping_indices?: string
/** Make GROUPING function to return 1 when argument is not used as an aggregation key */
force_grouping_standard_compatibility?: Bool
/** Throw an exception if there is a partition key in a table, and it is not used. */
force_index_by_date?: Bool
/** If projection optimization is enabled, SELECT queries need to use projection */
force_optimize_projection?: Bool
/** Throw an exception if unused shards cannot be skipped (1 - throw only if the table has the sharding key, 2 - always throw. */
force_optimize_skip_unused_shards?: UInt64
/** Same as force_optimize_skip_unused_shards, but accept nesting level until which it will work. */
force_optimize_skip_unused_shards_nesting?: UInt64
/** Throw an exception if there is primary key in a table, and it is not used. */
force_primary_key?: Bool
/** Recursively remove data on DROP query. Avoids 'Directory not empty' error, but may silently remove detached data */
force_remove_data_recursively_on_drop?: Bool
/** For AvroConfluent format: Confluent Schema Registry URL. */
format_avro_schema_registry_url?: URI
/** The maximum allowed size for Array in RowBinary format. It prevents allocating large amount of memory in case of corrupted data. 0 means there is no limit */
format_binary_max_array_size?: UInt64
/** The maximum allowed size for String in RowBinary format. It prevents allocating large amount of memory in case of corrupted data. 0 means there is no limit */
format_binary_max_string_size?: UInt64
/** How to map ClickHouse Enum and CapnProto Enum */
format_capn_proto_enum_comparising_mode?: CapnProtoEnumComparingMode
/** If it is set to true, allow strings in double quotes. */
format_csv_allow_double_quotes?: Bool
/** If it is set to true, allow strings in single quotes. */
format_csv_allow_single_quotes?: Bool
/** The character to be considered as a delimiter in CSV data. If setting with a string, a string has to have a length of 1. */
format_csv_delimiter?: Char
/** Custom NULL representation in CSV format */
format_csv_null_representation?: string
/** Field escaping rule (for CustomSeparated format) */
format_custom_escaping_rule?: EscapingRule
/** Delimiter between fields (for CustomSeparated format) */
format_custom_field_delimiter?: string
/** Suffix after result set (for CustomSeparated format) */
format_custom_result_after_delimiter?: string
/** Prefix before result set (for CustomSeparated format) */
format_custom_result_before_delimiter?: string
/** Delimiter after field of the last column (for CustomSeparated format) */
format_custom_row_after_delimiter?: string
/** Delimiter before field of the first column (for CustomSeparated format) */
format_custom_row_before_delimiter?: string
/** Delimiter between rows (for CustomSeparated format) */
format_custom_row_between_delimiter?: string
/** Do not hide secrets in SHOW and SELECT queries. */
format_display_secrets_in_show_and_select?: Bool
/** The name of column that will be used as object names in JSONObjectEachRow format. Column type should be String */
format_json_object_each_row_column_for_object_name?: string
/** Regular expression (for Regexp format) */
format_regexp?: string
/** Field escaping rule (for Regexp format) */
format_regexp_escaping_rule?: EscapingRule
/** Skip lines unmatched by regular expression (for Regexp format) */
format_regexp_skip_unmatched?: Bool
/** Schema identifier (used by schema-based formats) */
format_schema?: string
/** Path to file which contains format string for result set (for Template format) */
format_template_resultset?: string
/** Path to file which contains format string for rows (for Template format) */
format_template_row?: string
/** Delimiter between rows (for Template format) */
format_template_rows_between_delimiter?: string
/** Custom NULL representation in TSV format */
format_tsv_null_representation?: string
/** Formatter '%f' in function 'formatDateTime()' produces a single zero instead of six zeros if the formatted value has no fractional seconds. */
formatdatetime_f_prints_single_zero?: Bool
/** Formatter '%M' in functions 'formatDateTime()' and 'parseDateTime()' produces the month name instead of minutes. */
formatdatetime_parsedatetime_m_is_month_name?: Bool
/** Do fsync after changing metadata for tables and databases (.sql files). Could be disabled in case of poor latency on server with high load of DDL queries and high load of disk subsystem. */
fsync_metadata?: Bool
/** Choose function implementation for specific target or variant (experimental). If empty enable all of them. */
function_implementation?: string
/** Allow function JSON_VALUE to return complex type, such as: struct, array, map. */
function_json_value_return_type_allow_complex?: Bool
/** Allow function JSON_VALUE to return nullable type. */
function_json_value_return_type_allow_nullable?: Bool
/** Maximum number of values generated by function `range` per block of data (sum of array sizes for every row in a block, see also 'max_block_size' and 'min_insert_block_size_rows'). It is a safety threshold. */
function_range_max_elements_in_block?: UInt64
/** Maximum number of microseconds the function `sleep` is allowed to sleep for each block. If a user called it with a larger value, it throws an exception. It is a safety threshold. */
function_sleep_max_microseconds_per_block?: UInt64
/** Maximum number of allowed addresses (For external storages, table functions, etc). */
glob_expansion_max_elements?: UInt64
/** Initial number of grace hash join buckets */
grace_hash_join_initial_buckets?: UInt64
/** Limit on the number of grace hash join buckets */
grace_hash_join_max_buckets?: UInt64
/** What to do when the limit is exceeded. */
group_by_overflow_mode?: OverflowModeGroupBy
/** From what number of keys, a two-level aggregation starts. 0 - the threshold is not set. */
group_by_two_level_threshold?: UInt64
/** From what size of the aggregation state in bytes, a two-level aggregation begins to be used. 0 - the threshold is not set. Two-level aggregation is used when at least one of the thresholds is triggered. */
group_by_two_level_threshold_bytes?: UInt64
/** Treat columns mentioned in ROLLUP, CUBE or GROUPING SETS as Nullable */
group_by_use_nulls?: Bool
/** Timeout for receiving HELLO packet from replicas. */
handshake_timeout_ms?: Milliseconds
/** Enables or disables creating a new file on each insert in hdfs engine tables */
hdfs_create_new_file_on_insert?: Bool
/** The actual number of replications can be specified when the hdfs file is created. */
hdfs_replication?: UInt64
/** Allow to skip empty files in hdfs table engine */
hdfs_skip_empty_files?: Bool
/** Enables or disables truncate before insert in s3 engine tables */
hdfs_truncate_on_insert?: Bool
/** Connection timeout for establishing connection with replica for Hedged requests */
hedged_connection_timeout_ms?: Milliseconds
/** Expired time for hsts. 0 means disable HSTS. */
hsts_max_age?: UInt64
/** HTTP connection timeout. */
http_connection_timeout?: Seconds
/** Do not send HTTP headers X-ClickHouse-Progress more frequently than at each specified interval. */
http_headers_progress_interval_ms?: UInt64
/** Maximum value of a chunk size in HTTP chunked transfer encoding */
http_max_chunk_size?: UInt64
/** Maximum length of field name in HTTP header */
http_max_field_name_size?: UInt64
/** Maximum length of field value in HTTP header */
http_max_field_value_size?: UInt64
/** Maximum number of fields in HTTP header */
http_max_fields?: UInt64
/** Limit on size of multipart/form-data content. This setting cannot be parsed from URL parameters and should be set in user profile. Note that content is parsed and external tables are created in memory before start of query execution. And this is the only limit that has effect on that stage (limits on max memory usage and max execution time have no effect while reading HTTP form data). */
http_max_multipart_form_data_size?: UInt64
/** Limit on size of request data used as a query parameter in predefined HTTP requests. */
http_max_request_param_data_size?: UInt64
/** Max attempts to read via http. */
http_max_tries?: UInt64
/** Maximum URI length of HTTP request */
http_max_uri_size?: UInt64
/** If you uncompress the POST data from the client compressed by the native format, do not check the checksum. */
http_native_compression_disable_checksumming_on_decompress?: Bool
/** HTTP receive timeout */
http_receive_timeout?: Seconds
/** The number of bytes to buffer in the server memory before sending a HTTP response to the client or flushing to disk (when http_wait_end_of_query is enabled). */
http_response_buffer_size?: UInt64
/** Min milliseconds for backoff, when retrying read via http */
http_retry_initial_backoff_ms?: UInt64
/** Max milliseconds for backoff, when retrying read via http */
http_retry_max_backoff_ms?: UInt64
/** HTTP send timeout */
http_send_timeout?: Seconds
/** Skip url's for globs with HTTP_NOT_FOUND error */
http_skip_not_found_url_for_globs?: Bool
/** Enable HTTP response buffering on the server-side. */
http_wait_end_of_query?: Bool
/** Compression level - used if the client on HTTP said that it understands data compressed by gzip or deflate. */
http_zlib_compression_level?: Int64
/** Close idle TCP connections after specified number of seconds. */
idle_connection_timeout?: UInt64
/** Comma separated list of strings or literals with the name of the data skipping indices that should be excluded during query execution. */
ignore_data_skipping_indices?: string
/** If enabled and not already inside a transaction, wraps the query inside a full transaction (begin + commit or rollback) */
implicit_transaction?: Bool
/** Maximum absolute amount of errors while reading text formats (like CSV, TSV). In case of error, if at least absolute or relative amount of errors is lower than corresponding value, will skip until next line and continue. */
input_format_allow_errors_num?: UInt64
/** Maximum relative amount of errors while reading text formats (like CSV, TSV). In case of error, if at least absolute or relative amount of errors is lower than corresponding value, will skip until next line and continue. */
input_format_allow_errors_ratio?: Float
/** Allow seeks while reading in ORC/Parquet/Arrow input formats */
input_format_allow_seeks?: Bool
/** Allow missing columns while reading Arrow input formats */
input_format_arrow_allow_missing_columns?: Bool
/** Ignore case when matching Arrow columns with CH columns. */
input_format_arrow_case_insensitive_column_matching?: Bool
/** Allow to insert array of structs into Nested table in Arrow input format. */
input_format_arrow_import_nested?: Bool
/** Skip columns with unsupported types while schema inference for format Arrow */
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference?: Bool
/** For Avro/AvroConfluent format: when field is not found in schema use default value instead of error */
input_format_avro_allow_missing_fields?: Bool
/** For Avro/AvroConfluent format: insert default in case of null and non Nullable column */
input_format_avro_null_as_default?: Bool
/** Skip fields with unsupported types while schema inference for format BSON. */
input_format_bson_skip_fields_with_unsupported_types_in_schema_inference?: Bool
/** Skip columns with unsupported types while schema inference for format CapnProto */
input_format_capn_proto_skip_fields_with_unsupported_types_in_schema_inference?: Bool
/** Ignore extra columns in CSV input (if file has more columns than expected) and treat missing fields in CSV input as default values */
input_format_csv_allow_variable_number_of_columns?: Bool
/** Allow to use spaces and tabs(\\t) as field delimiter in the CSV strings */
input_format_csv_allow_whitespace_or_tab_as_delimiter?: Bool
/** When reading Array from CSV, expect that its elements were serialized in nested CSV and then put into string. Example: `"[""Hello"", ""world"", ""42"""" TV""]"`. Braces around array can be omitted. */
input_format_csv_arrays_as_nested_csv?: Bool
/** Automatically detect header with names and types in CSV format */
input_format_csv_detect_header?: Bool
/** Treat empty fields in CSV input as default values. */
input_format_csv_empty_as_default?: Bool
/** Treat inserted enum values in CSV formats as enum indices */
input_format_csv_enum_as_number?: Bool
/** Skip specified number of lines at the beginning of data in CSV format */
input_format_csv_skip_first_lines?: UInt64
/** Skip trailing empty lines in CSV format */
input_format_csv_skip_trailing_empty_lines?: Bool
/** Trims spaces and tabs (\\t) characters at the beginning and end in CSV strings */
input_format_csv_trim_whitespaces?: Bool
/** Use some tweaks and heuristics to infer schema in CSV format */
input_format_csv_use_best_effort_in_schema_inference?: Bool
/** Allow to set default value to column when CSV field deserialization failed on bad value */
input_format_csv_use_default_on_bad_values?: Bool
/** Automatically detect header with names and types in CustomSeparated format */
input_format_custom_detect_header?: Bool
/** Skip trailing empty lines in CustomSeparated format */
input_format_custom_skip_trailing_empty_lines?: Bool
/** For input data calculate default expressions for omitted fields (it works for JSONEachRow, -WithNames, -WithNamesAndTypes formats). */
input_format_defaults_for_omitted_fields?: Bool
/** Delimiter between collection(array or map) items in Hive Text File */
input_format_hive_text_collection_items_delimiter?: Char
/** Delimiter between fields in Hive Text File */
input_format_hive_text_fields_delimiter?: Char
/** Delimiter between a pair of map key/values in Hive Text File */
input_format_hive_text_map_keys_delimiter?: Char
/** Map nested JSON data to nested tables (it works for JSONEachRow format). */
input_format_import_nested_json?: Bool
/** Deserialization of IPv4 will use default values instead of throwing exception on conversion error. */
input_format_ipv4_default_on_conversion_error?: Bool
/** Deserialization of IPV6 will use default values instead of throwing exception on conversion error. */
input_format_ipv6_default_on_conversion_error?: Bool
/** Insert default value in named tuple element if it's missing in json object */
input_format_json_defaults_for_missing_elements_in_named_tuple?: Bool
/** Ignore unknown keys in json object for named tuples */
input_format_json_ignore_unknown_keys_in_named_tuple?: Bool
/** Deserialize named tuple columns as JSON objects */
input_format_json_named_tuples_as_objects?: Bool
/** Allow to parse bools as numbers in JSON input formats */
input_format_json_read_bools_as_numbers?: Bool
/** Allow to parse numbers as strings in JSON input formats */
input_format_json_read_numbers_as_strings?: Bool
/** Allow to parse JSON objects as strings in JSON input formats */
input_format_json_read_objects_as_strings?: Bool
/** Throw an exception if JSON string contains bad escape sequence. If disabled, bad escape sequences will remain as is in the data. Default value - true. */
input_format_json_throw_on_bad_escape_sequence?: Bool
/** Try to infer numbers from string fields while schema inference */
input_format_json_try_infer_numbers_from_strings?: Bool
/** For JSON/JSONCompact/JSONColumnsWithMetadata input formats this controls whether format parser should check if data types from input metadata match data types of the corresponding columns from the table */
input_format_json_validate_types_from_metadata?: Bool
/** The maximum bytes of data to read for automatic schema inference */
input_format_max_bytes_to_read_for_schema_inference?: UInt64
/** The maximum rows of data to read for automatic schema inference */
input_format_max_rows_to_read_for_schema_inference?: UInt64
/** The number of columns in inserted MsgPack data. Used for automatic schema inference from data. */
input_format_msgpack_number_of_columns?: UInt64
/** Match columns from table in MySQL dump and columns from ClickHouse table by names */
input_format_mysql_dump_map_column_names?: Bool
/** Name of the table in MySQL dump from which to read data */
input_format_mysql_dump_table_name?: string
/** Allow data types conversion in Native input format */
input_format_native_allow_types_conversion?: Bool
/** Initialize null fields with default values if the data type of this field is not nullable and it is supported by the input format */
input_format_null_as_default?: Bool
/** Allow missing columns while reading ORC input formats */
input_format_orc_allow_missing_columns?: Bool
/** Ignore case when matching ORC columns with CH columns. */
input_format_orc_case_insensitive_column_matching?: Bool
/** Allow to insert array of structs into Nested table in ORC input format. */
input_format_orc_import_nested?: Bool
/** Batch size when reading ORC stripes. */
input_format_orc_row_batch_size?: Int64
/** Skip columns with unsupported types while schema inference for format ORC */
input_format_orc_skip_columns_with_unsupported_types_in_schema_inference?: Bool
/** Enable parallel parsing for some data formats. */
input_format_parallel_parsing?: Bool
/** Allow missing columns while reading Parquet input formats */
input_format_parquet_allow_missing_columns?: Bool
/** Ignore case when matching Parquet columns with CH columns. */
input_format_parquet_case_insensitive_column_matching?: Bool
/** Allow to insert array of structs into Nested table in Parquet input format. */
input_format_parquet_import_nested?: Bool
/** Max block size for parquet reader. */
input_format_parquet_max_block_size?: UInt64
/** Avoid reordering rows when reading from Parquet files. Usually makes it much slower. */
input_format_parquet_preserve_order?: Bool
/** Skip columns with unsupported types while schema inference for format Parquet */
input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference?: Bool
/** Enable Google wrappers for regular non-nested columns, e.g. google.protobuf.StringValue 'str' for String column 'str'. For Nullable columns empty wrappers are recognized as defaults, and missing as nulls */
input_format_protobuf_flatten_google_wrappers?: Bool
/** Skip fields with unsupported types while schema inference for format Protobuf */
input_format_protobuf_skip_fields_with_unsupported_types_in_schema_inference?: Bool
/** Path of the file used to record errors while reading text formats (CSV, TSV). */
input_format_record_errors_file_path?: string
/** Skip columns with unknown names from input data (it works for JSONEachRow, -WithNames, -WithNamesAndTypes and TSKV formats). */
input_format_skip_unknown_fields?: Bool
/** Try to infer dates from string fields while schema inference in text formats */
input_format_try_infer_dates?: Bool
/** Try to infer datetimes from string fields while schema inference in text formats */
input_format_try_infer_datetimes?: Bool
/** Try to infer integers instead of floats while schema inference in text formats */
input_format_try_infer_integers?: Bool
/** Automatically detect header with names and types in TSV format */
input_format_tsv_detect_header?: Bool
/** Treat empty fields in TSV input as default values. */
input_format_tsv_empty_as_default?: Bool
/** Treat inserted enum values in TSV formats as enum indices. */
input_format_tsv_enum_as_number?: Bool
/** Skip specified number of lines at the beginning of data in TSV format */
input_format_tsv_skip_first_lines?: UInt64
/** Skip trailing empty lines in TSV format */
input_format_tsv_skip_trailing_empty_lines?: Bool
/** Use some tweaks and heuristics to infer schema in TSV format */
input_format_tsv_use_best_effort_in_schema_inference?: Bool
/** For Values format: when parsing and interpreting expressions using template, check actual type of literal to avoid possible overflow and precision issues. */
input_format_values_accurate_types_of_literals?: Bool
/** For Values format: if the field could not be parsed by streaming parser, run SQL parser, deduce template of the SQL expression, try to parse all rows using template and then interpret expression for all rows. */
input_format_values_deduce_templates_of_expressions?: Bool
/** For Values format: if the field could not be parsed by streaming parser, run SQL parser and try to interpret it as SQL expression. */
input_format_values_interpret_expressions?: Bool
/** For -WithNames input formats this controls whether format parser is to assume that column data appear in the input exactly as they are specified in the header. */
input_format_with_names_use_header?: Bool
/** For -WithNamesAndTypes input formats this controls whether format parser should check if data types from the input match data types from the header. */
input_format_with_types_use_header?: Bool
/** If setting is enabled, Allow materialized columns in INSERT. */
insert_allow_materialized_columns?: Bool
/** For INSERT queries in the replicated table, specifies that deduplication of insertings blocks should be performed */
insert_deduplicate?: Bool
/** If not empty, used for duplicate detection instead of data digest */
insert_deduplication_token?: string
/** If setting is enabled, inserting into distributed table will choose a random shard to write when there is no sharding key */
insert_distributed_one_random_shard?: Bool
/** If setting is enabled, insert query into distributed waits until data will be sent to all nodes in cluster. */
insert_distributed_sync?: Bool
/** Timeout for insert query into distributed. Setting is used only with insert_distributed_sync enabled. Zero value means no timeout. */
insert_distributed_timeout?: UInt64
/** Approximate probability of failure for a keeper request during insert. Valid value is in interval [0.0f, 1.0f] */
insert_keeper_fault_injection_probability?: Float
/** 0 - random seed, otherwise the setting value */
insert_keeper_fault_injection_seed?: UInt64
/** Max retries for keeper operations during insert */
insert_keeper_max_retries?: UInt64
/** Initial backoff timeout for keeper operations during insert */
insert_keeper_retry_initial_backoff_ms?: UInt64
/** Max backoff timeout for keeper operations during insert */
insert_keeper_retry_max_backoff_ms?: UInt64
/** Insert DEFAULT values instead of NULL in INSERT SELECT (UNION ALL) */
insert_null_as_default?: Bool
/** For INSERT queries in the replicated table, wait writing for the specified number of replicas and linearize the addition of the data. 0 - disabled, 'auto' - use majority */
insert_quorum?: UInt64Auto
/** For quorum INSERT queries - enable to make parallel inserts without linearizability */
insert_quorum_parallel?: Bool
/** If the quorum of replicas did not meet in specified time (in milliseconds), exception will be thrown and insertion is aborted. */
insert_quorum_timeout?: Milliseconds
/** If non-zero, when insert into a distributed table, the data will be inserted into the shard `insert_shard_id` synchronously. Possible values range from 1 to `shards_number` of corresponding distributed table */
insert_shard_id?: UInt64
/** The interval in microseconds to check if the request is cancelled, and to send progress info. */
interactive_delay?: UInt64
/** Set default mode in INTERSECT query. Possible values: empty string, 'ALL', 'DISTINCT'. If empty, query without mode will throw exception. */
intersect_default_mode?: SetOperationMode
/** Textual representation of Interval. Possible values: 'kusto', 'numeric'. */
interval_output_format?: IntervalOutputFormat
/** Specify join algorithm. */
join_algorithm?: JoinAlgorithm
/** When disabled (default) ANY JOIN will take the first found row for a key. When enabled, it will take the last row seen if there are multiple rows for the same key. */
join_any_take_last_row?: Bool
/** Set default strictness in JOIN query. Possible values: empty string, 'ANY', 'ALL'. If empty, query without strictness will throw exception. */
join_default_strictness?: JoinStrictness
/** For MergeJoin on disk set how much files it's allowed to sort simultaneously. Then this value bigger then more memory used and then less disk I/O needed. Minimum is 2. */
join_on_disk_max_files_to_merge?: UInt64
/** What to do when the limit is exceeded. */
join_overflow_mode?: OverflowMode
/** Use NULLs for non-joined rows of outer JOINs for types that can be inside Nullable. If false, use default value of corresponding columns data type. */
join_use_nulls?: Bool
/** Force joined subqueries and table functions to have aliases for correct name qualification. */
joined_subquery_requires_alias?: Bool
/** Disable limit on kafka_num_consumers that depends on the number of available CPU cores */
kafka_disable_num_consumers_limit?: Bool
/** The wait time for reading from Kafka before retry. */
kafka_max_wait_ms?: Milliseconds
/** Enforce additional checks during operations on KeeperMap. E.g. throw an exception on an insert for already existing key */
keeper_map_strict_mode?: Bool
/** List all names of element of large tuple literals in their column names instead of hash. This settings exists only for compatibility reasons. It makes sense to set to 'true', while doing rolling update of cluster from version lower than 21.7 to higher. */
legacy_column_name_of_tuple_literal?: Bool
/** Limit on read rows from the most 'end' result for select query, default 0 means no limit length */
limit?: UInt64
/** Controls the synchronicity of lightweight DELETE operations. It determines whether a DELETE statement will wait for the operation to complete before returning to the client. */
lightweight_deletes_sync?: UInt64
/** The heartbeat interval in seconds to indicate live query is alive. */
live_view_heartbeat_interval?: Seconds
/** Which replicas (among healthy replicas) to preferably send a query to (on the first attempt) for distributed processing. */
load_balancing?: LoadBalancing
/** Which replica to preferably send a query when FIRST_OR_RANDOM load balancing strategy is used. */
load_balancing_first_offset?: UInt64
/** Load MergeTree marks asynchronously */
load_marks_asynchronously?: Bool
/** Method of reading data from local filesystem, one of: read, pread, mmap, io_uring, pread_threadpool. The 'io_uring' method is experimental and does not work for Log, TinyLog, StripeLog, File, Set and Join, and other tables with append-able files in presence of concurrent reads and writes. */
local_filesystem_read_method?: string
/** Should use prefetching when reading data from local filesystem. */
local_filesystem_read_prefetch?: Bool
/** How long locking request should wait before failing */
lock_acquire_timeout?: Seconds
/** Log comment into system.query_log table and server log. It can be set to arbitrary string no longer than max_query_size. */
log_comment?: string
/** Log formatted queries and write the log to the system table. */
log_formatted_queries?: Bool
/** Log Processors profile events. */
log_processors_profiles?: Bool
/** Log query performance statistics into the query_log, query_thread_log and query_views_log. */
log_profile_events?: Bool
/** Log requests and write the log to the system table. */
log_queries?: Bool
/** If query length is greater than specified threshold (in bytes), then cut query when writing to query log. Also limit length of printed query in ordinary text log. */
log_queries_cut_to_length?: UInt64
/** Minimal time for the query to run, to get to the query_log/query_thread_log/query_views_log. */
log_queries_min_query_duration_ms?: Milliseconds
/** Minimal type in query_log to log, possible values (from low to high): QUERY_START, QUERY_FINISH, EXCEPTION_BEFORE_START, EXCEPTION_WHILE_PROCESSING. */
log_queries_min_type?: LogQueriesType
/** Log queries with the specified probabality. */
log_queries_probability?: Float
/** Log query settings into the query_log. */
log_query_settings?: Bool
/** Log query threads into system.query_thread_log table. This setting have effect only when 'log_queries' is true. */
log_query_threads?: Bool
/** Log query dependent views into system.query_views_log table. This setting have effect only when 'log_queries' is true. */
log_query_views?: Bool
/** Use LowCardinality type in Native format. Otherwise, convert LowCardinality columns to ordinary for select query, and convert ordinary columns to required LowCardinality for insert query. */
low_cardinality_allow_in_native_format?: Bool
/** Maximum size (in rows) of shared global dictionary for LowCardinality type. */
low_cardinality_max_dictionary_size?: UInt64
/** LowCardinality type serialization setting. If is true, than will use additional keys when global dictionary overflows. Otherwise, will create several shared dictionaries. */
low_cardinality_use_single_dictionary_for_part?: Bool
/** Apply TTL for old data, after ALTER MODIFY TTL query */
materialize_ttl_after_modify?: Bool
/** Allows to ignore errors for MATERIALIZED VIEW, and deliver original block to the table regardless of MVs */
materialized_views_ignore_errors?: Bool
/** Maximum number of analyses performed by interpreter. */
max_analyze_depth?: UInt64
/** Maximum depth of query syntax tree. Checked after parsing. */
max_ast_depth?: UInt64
/** Maximum size of query syntax tree in number of nodes. Checked after parsing. */
max_ast_elements?: UInt64
/** The maximum read speed in bytes per second for particular backup on server. Zero means unlimited. */
max_backup_bandwidth?: UInt64
/** Maximum block size for reading */
max_block_size?: UInt64
/** If memory usage during GROUP BY operation is exceeding this threshold in bytes, activate the 'external aggregation' mode (spill data to disk). Recommended value is half of available system memory. */
max_bytes_before_external_group_by?: UInt64
/** If memory usage during ORDER BY operation is exceeding this threshold in bytes, activate the 'external sorting' mode (spill data to disk). Recommended value is half of available system memory. */
max_bytes_before_external_sort?: UInt64
/** In case of ORDER BY with LIMIT, when memory usage is higher than specified threshold, perform additional steps of merging blocks before final merge to keep just top LIMIT rows. */
max_bytes_before_remerge_sort?: UInt64
/** Maximum total size of state (in uncompressed bytes) in memory for the execution of DISTINCT. */
max_bytes_in_distinct?: UInt64
/** Maximum size of the hash table for JOIN (in number of bytes in memory). */
max_bytes_in_join?: UInt64
/** Maximum size of the set (in bytes in memory) resulting from the execution of the IN section. */
max_bytes_in_set?: UInt64
/** Limit on read bytes (after decompression) from the most 'deep' sources. That is, only in the deepest subquery. When reading from a remote server, it is only checked on a remote server. */
max_bytes_to_read?: UInt64
/** Limit on read bytes (after decompression) on the leaf nodes for distributed queries. Limit is applied for local reads only excluding the final merge stage on the root node. */
max_bytes_to_read_leaf?: UInt64
/** If more than specified amount of (uncompressed) bytes have to be processed for ORDER BY operation, the behavior will be determined by the 'sort_overflow_mode' which by default is - throw an exception */
max_bytes_to_sort?: UInt64
/** Maximum size (in uncompressed bytes) of the transmitted external table obtained when the GLOBAL IN/JOIN section is executed. */
max_bytes_to_transfer?: UInt64
/** If a query requires reading more than specified number of columns, exception is thrown. Zero value means unlimited. This setting is useful to prevent too complex queries. */
max_columns_to_read?: UInt64
/** The maximum size of blocks of uncompressed data before compressing for writing to a table. */
max_compress_block_size?: UInt64
/** The maximum number of concurrent requests for all users. */
max_concurrent_queries_for_all_users?: UInt64
/** The maximum number of concurrent requests per user. */
max_concurrent_queries_for_user?: UInt64
/** The maximum number of connections for distributed processing of one query (should be greater than max_threads). */
max_distributed_connections?: UInt64
/** Maximum distributed query depth */
max_distributed_depth?: UInt64
/** The maximal size of buffer for parallel downloading (e.g. for URL engine) per each thread. */
max_download_buffer_size?: UInt64
/** The maximum number of threads to download data (e.g. for URL engine). */
max_download_threads?: MaxThreads
/** How many entries hash table statistics collected during aggregation is allowed to have */
max_entries_for_hash_table_stats?: UInt64
/** Maximum number of execution rows per second. */
max_execution_speed?: UInt64
/** Maximum number of execution bytes per second. */
max_execution_speed_bytes?: UInt64
/** If query run time exceeded the specified number of seconds, the behavior will be determined by the 'timeout_overflow_mode' which by default is - throw an exception. Note that the timeout is checked and query can stop only in designated places during data processing. It currently cannot stop during merging of aggregation states or during query analysis, and the actual run time will be higher than the value of this setting. */
max_execution_time?: Seconds
/** Maximum size of query syntax tree in number of nodes after expansion of aliases and the asterisk. */
max_expanded_ast_elements?: UInt64
/** Amount of retries while fetching partition from another host. */
max_fetch_partition_retries_count?: UInt64
/** The maximum number of threads to read from table with FINAL. */
max_final_threads?: MaxThreads
/** Max number of http GET redirects hops allowed. Make sure additional security measures are in place to prevent a malicious server to redirect your requests to unexpected services. */
max_http_get_redirects?: UInt64
/** Max length of regexp than can be used in hyperscan multi-match functions. Zero means unlimited. */
max_hyperscan_regexp_length?: UInt64
/** Max total length of all regexps than can be used in hyperscan multi-match functions (per every function). Zero means unlimited. */
max_hyperscan_regexp_total_length?: UInt64
/** The maximum block size for insertion, if we control the creation of blocks for insertion. */
max_insert_block_size?: UInt64
/** The maximum number of streams (columns) to delay final part flush. Default - auto (1000 in case of underlying storage supports parallel write, for example S3 and disabled otherwise) */
max_insert_delayed_streams_for_parallel_write?: UInt64
/** The maximum number of threads to execute the INSERT SELECT query. Values 0 or 1 means that INSERT SELECT is not run in parallel. Higher values will lead to higher memory usage. Parallel INSERT SELECT has effect only if the SELECT part is run on parallel, see 'max_threads' setting. */
max_insert_threads?: UInt64
/** Maximum block size for JOIN result (if join algorithm supports it). 0 means unlimited. */
max_joined_block_size_rows?: UInt64
/** SELECT queries with LIMIT bigger than this setting cannot use ANN indexes. Helps to prevent memory overflows in ANN search indexes. */
max_limit_for_ann_queries?: UInt64
/** Limit maximum number of inserted blocks after which mergeable blocks are dropped and query is re-executed. */
max_live_view_insert_blocks_before_refresh?: UInt64
/** The maximum speed of local reads in bytes per second. */
max_local_read_bandwidth?: UInt64
/** The maximum speed of local writes in bytes per second. */
max_local_write_bandwidth?: UInt64
/** Maximum memory usage for processing of single query. Zero means unlimited. */
max_memory_usage?: UInt64
/** Maximum memory usage for processing all concurrently running queries for the user. Zero means unlimited. */
max_memory_usage_for_user?: UInt64
/** The maximum speed of data exchange over the network in bytes per second for a query. Zero means unlimited. */
max_network_bandwidth?: UInt64
/** The maximum speed of data exchange over the network in bytes per second for all concurrently running queries. Zero means unlimited. */
max_network_bandwidth_for_all_users?: UInt64
/** The maximum speed of data exchange over the network in bytes per second for all concurrently running user queries. Zero means unlimited. */
max_network_bandwidth_for_user?: UInt64
/** The maximum number of bytes (compressed) to receive or transmit over the network for execution of the query. */
max_network_bytes?: UInt64
/** Maximal number of partitions in table to apply optimization */
max_number_of_partitions_for_independent_aggregation?: UInt64
/** The maximum number of replicas of each shard used when the query is executed. For consistency (to get different parts of the same partition), this option only works for the specified sampling key. The lag of the replicas is not controlled. */
max_parallel_replicas?: UInt64
/** Maximum parser depth (recursion depth of recursive descend parser). */
max_parser_depth?: UInt64
/** Limit maximum number of partitions in single INSERTed block. Zero means unlimited. Throw exception if the block contains too many partitions. This setting is a safety threshold, because using large number of partitions is a common misconception. */
max_partitions_per_insert_block?: UInt64
/** Limit the max number of partitions that can be accessed in one query. <= 0 means unlimited. */
max_partitions_to_read?: Int64
/** The maximum number of bytes of a query string parsed by the SQL parser. Data in the VALUES clause of INSERT queries is processed by a separate stream parser (that consumes O(1) RAM) and not affected by this restriction. */
max_query_size?: UInt64
/** The maximum size of the buffer to read from the filesystem. */
max_read_buffer_size?: UInt64
/** The maximum size of the buffer to read from local filesystem. If set to 0 then max_read_buffer_size will be used. */
max_read_buffer_size_local_fs?: UInt64
/** The maximum size of the buffer to read from remote filesystem. If set to 0 then max_read_buffer_size will be used. */
max_read_buffer_size_remote_fs?: UInt64
/** The maximum speed of data exchange over the network in bytes per second for read. */
max_remote_read_network_bandwidth?: UInt64
/** The maximum speed of data exchange over the network in bytes per second for write. */
max_remote_write_network_bandwidth?: UInt64
/** If set, distributed queries of Replicated tables will choose servers with replication delay in seconds less than the specified value (not inclusive). Zero means do not take delay into account. */
max_replica_delay_for_distributed_queries?: UInt64
/** Limit on result size in bytes (uncompressed). The query will stop after processing a block of data if the threshold is met, but it will not cut the last block of the result, therefore the result size can be larger than the threshold. Caveats: the result size in memory is taken into account for this threshold. Even if the result size is small, it can reference larger data structures in memory, representing dictionaries of LowCardinality columns, and Arenas of AggregateFunction columns, so the threshold can be exceeded despite the small result size. The setting is fairly low level and should be used with caution. */
max_result_bytes?: UInt64
/** Limit on result size in rows. The query will stop after processing a block of data if the threshold is met, but it will not cut the last block of the result, therefore the result size can be larger than the threshold. */
max_result_rows?: UInt64
/** Maximum number of elements during execution of DISTINCT. */
max_rows_in_distinct?: UInt64
/** Maximum size of the hash table for JOIN (in number of rows). */
max_rows_in_join?: UInt64
/** Maximum size of the set (in number of elements) resulting from the execution of the IN section. */
max_rows_in_set?: UInt64
/** Maximal size of the set to filter joined tables by each other row sets before joining. 0 - disable. */
max_rows_in_set_to_optimize_join?: UInt64
/** If aggregation during GROUP BY is generating more than specified number of rows (unique GROUP BY keys), the behavior will be determined by the 'group_by_overflow_mode' which by default is - throw an exception, but can be also switched to an approximate GROUP BY mode. */
max_rows_to_group_by?: UInt64
/** Limit on read rows from the most 'deep' sources. That is, only in the deepest subquery. When reading from a remote server, it is only checked on a remote server. */
max_rows_to_read?: UInt64
/** Limit on read rows on the leaf nodes for distributed queries. Limit is applied for local reads only excluding the final merge stage on the root node. */
max_rows_to_read_leaf?: UInt64
/** If more than specified amount of records have to be processed for ORDER BY operation, the behavior will be determined by the 'sort_overflow_mode' which by default is - throw an exception */
max_rows_to_sort?: UInt64
/** Maximum size (in rows) of the transmitted external table obtained when the GLOBAL IN/JOIN section is executed. */
max_rows_to_transfer?: UInt64
/** For how many elements it is allowed to preallocate space in all hash tables in total before aggregation */
max_size_to_preallocate_for_aggregation?: UInt64
/** If is not zero, limit the number of reading streams for MergeTree table. */
max_streams_for_merge_tree_reading?: UInt64
/** Ask more streams when reading from Merge table. Streams will be spread across tables that Merge table will use. This allows more even distribution of work across threads and especially helpful when merged tables differ in size. */
max_streams_multiplier_for_merge_tables?: Float
/** Allows you to use more sources than the number of threads - to more evenly distribute work across threads. It is assumed that this is a temporary solution, since it will be possible in the future to make the number of sources equal to the number of threads, but for each source to dynamically select available work for itself. */
max_streams_to_max_threads_ratio?: Float
/** If a query has more than specified number of nested subqueries, throw an exception. This allows you to have a sanity check to protect the users of your cluster from going insane with their queries. */
max_subquery_depth?: UInt64
/** If a query generates more than the specified number of temporary columns in memory as a result of intermediate calculation, exception is thrown. Zero value means unlimited. This setting is useful to prevent too complex queries. */
max_temporary_columns?: UInt64
/** The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running queries. Zero means unlimited. */
max_temporary_data_on_disk_size_for_query?: UInt64
/** The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running user queries. Zero means unlimited. */
max_temporary_data_on_disk_size_for_user?: UInt64
/** Similar to the 'max_temporary_columns' setting but applies only to non-constant columns. This makes sense, because constant columns are cheap and it is reasonable to allow more of them. */
max_temporary_non_const_columns?: UInt64
/** The maximum number of threads to execute the request. By default, it is determined automatically. */
max_threads?: MaxThreads
/** Small allocations and deallocations are grouped in thread local variable and tracked or profiled only when amount (in absolute value) becomes larger than specified value. If the value is higher than 'memory_profiler_step' it will be effectively lowered to 'memory_profiler_step'. */
max_untracked_memory?: UInt64
/** It represents soft memory limit on the user level. This value is used to compute query overcommit ratio. */
memory_overcommit_ratio_denominator?: UInt64
/** It represents soft memory limit on the global level. This value is used to compute query overcommit ratio. */
memory_overcommit_ratio_denominator_for_user?: UInt64
/** Collect random allocations and deallocations and write them into system.trace_log with 'MemorySample' trace_type. The probability is for every alloc/free regardless to the size of the allocation. Note that sampling happens only when the amount of untracked memory exceeds 'max_untracked_memory'. You may want to set 'max_untracked_memory' to 0 for extra fine grained sampling. */
memory_profiler_sample_probability?: Float
/** Whenever query memory usage becomes larger than every next step in number of bytes the memory profiler will collect the allocating stack trace. Zero means disabled memory profiler. Values lower than a few megabytes will slow down query processing. */
memory_profiler_step?: UInt64