2011-10-31 06:37:12 +00:00
|
|
|
|
#pragma once
|
2010-05-21 19:52:50 +00:00
|
|
|
|
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_NAME "ClickHouse"
|
2016-05-18 14:15:54 +00:00
|
|
|
|
#define DBMS_VERSION_MAJOR 1
|
|
|
|
|
#define DBMS_VERSION_MINOR 1
|
2012-03-09 15:46:52 +00:00
|
|
|
|
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_DEFAULT_HOST "localhost"
|
|
|
|
|
#define DBMS_DEFAULT_PORT 9000
|
2016-07-30 05:03:20 +00:00
|
|
|
|
#define DBMS_DEFAULT_PORT_STR #DBMS_DEFAULT_PORT
|
2015-05-25 13:20:17 +00:00
|
|
|
|
#define DBMS_DEFAULT_HTTP_PORT 8123
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_DEFAULT_CONNECT_TIMEOUT_SEC 10
|
2012-11-06 18:20:00 +00:00
|
|
|
|
#define DBMS_DEFAULT_CONNECT_TIMEOUT_WITH_FAILOVER_MS 50
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_DEFAULT_SEND_TIMEOUT_SEC 300
|
|
|
|
|
#define DBMS_DEFAULT_RECEIVE_TIMEOUT_SEC 300
|
2015-03-06 09:37:16 +00:00
|
|
|
|
#define DBMS_DEFAULT_PING_TIMEOUT_SEC 5
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_DEFAULT_POLL_INTERVAL 10
|
2012-07-06 18:12:52 +00:00
|
|
|
|
|
2015-04-12 04:39:20 +00:00
|
|
|
|
/// Размер буфера ввода-вывода по-умолчанию.
|
|
|
|
|
#define DBMS_DEFAULT_BUFFER_SIZE 1048576ULL
|
|
|
|
|
|
2014-04-08 15:29:12 +00:00
|
|
|
|
/// При записи данных, для сжатия выделяется буфер размером max_compress_block_size. При переполнении буфера или если в буфер
|
|
|
|
|
/// записано данных больше или равно, чем min_compress_block_size, то при очередной засечке, данные так же будут сжиматься
|
|
|
|
|
/// В результате, для маленьких столбцов (числа 1-8 байт), при index_granularity = 8192, размер блока будет 64 KБ.
|
|
|
|
|
/// А для больших столбцов (Title - строка ~100 байт), размер блока будет ~819 КБ. За счёт этого, коэффициент сжатия почти не ухудшится.
|
2014-03-28 14:36:24 +00:00
|
|
|
|
#define DEFAULT_MIN_COMPRESS_BLOCK_SIZE 65536
|
|
|
|
|
#define DEFAULT_MAX_COMPRESS_BLOCK_SIZE 1048576
|
2014-04-08 15:29:12 +00:00
|
|
|
|
|
2014-04-29 20:22:57 +00:00
|
|
|
|
/** Какими блоками по-умолчанию читаются данные (в числе строк).
|
|
|
|
|
* Меньшие значения дают лучшую кэш-локальность, меньшее потребление оперативки, но больший оверхед на обработку запроса.
|
|
|
|
|
*/
|
|
|
|
|
#define DEFAULT_BLOCK_SIZE 65536
|
|
|
|
|
|
|
|
|
|
/** Какие блоки следует формировать для вставки в таблицу, если мы управляем формированием блоков.
|
|
|
|
|
* (Иногда в таблицу вставляются ровно такие блоки, какие были считаны / переданы извне, и на их размер этот параметр не влияет.)
|
|
|
|
|
* Больше, чем DEFAULT_BLOCK_SIZE, так как в некоторых таблицах на каждый блок создаётся кусок данных на диске (довольно большая штука),
|
|
|
|
|
* и если бы куски были маленькими, то их было бы накладно потом объединять.
|
|
|
|
|
*/
|
|
|
|
|
#define DEFAULT_INSERT_BLOCK_SIZE 1048576
|
|
|
|
|
|
|
|
|
|
/** То же самое, но для операций слияния. Меньше DEFAULT_BLOCK_SIZE для экономии оперативки (так как читаются все столбцы).
|
|
|
|
|
* Сильно меньше, так как бывают 10-way слияния.
|
|
|
|
|
*/
|
2014-04-22 15:34:59 +00:00
|
|
|
|
#define DEFAULT_MERGE_BLOCK_SIZE 8192
|
2013-09-13 23:28:40 +00:00
|
|
|
|
|
2015-09-03 18:48:41 +00:00
|
|
|
|
#define DEFAULT_MAX_QUERY_SIZE 262144
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define SHOW_CHARS_ON_SYNTAX_ERROR 160L
|
2013-09-08 10:16:55 +00:00
|
|
|
|
#define DEFAULT_MAX_DISTRIBUTED_CONNECTIONS 1024
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DEFAULT_INTERACTIVE_DELAY 100000
|
2013-09-08 10:16:55 +00:00
|
|
|
|
#define DBMS_DEFAULT_DISTRIBUTED_CONNECTIONS_POOL_SIZE 1024
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define DBMS_CONNECTION_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES 3
|
2015-03-05 15:12:54 +00:00
|
|
|
|
/// каждый период уменьшаем счетчик ошибок в 2 раза
|
|
|
|
|
/// слишком маленький период может приводить, что ошибки исчезают сразу после создания.
|
2016-07-30 05:03:20 +00:00
|
|
|
|
#define DBMS_CONNECTION_POOL_WITH_FAILOVER_DEFAULT_DECREASE_ERROR_PERIOD (2 * DBMS_DEFAULT_SEND_TIMEOUT_SEC)
|
2013-09-07 04:54:59 +00:00
|
|
|
|
#define DEFAULT_QUERIES_QUEUE_WAIT_TIME_MS 5000 /// Максимальное время ожидания в очереди запросов.
|
2016-07-30 05:03:20 +00:00
|
|
|
|
#define DBMS_DEFAULT_BACKGROUND_POOL_SIZE 6
|
2012-08-26 11:14:52 +00:00
|
|
|
|
|
2013-02-03 18:39:09 +00:00
|
|
|
|
/// Используется в методе reserve, когда известно число строк, но неизвестны их размеры.
|
|
|
|
|
#define DBMS_APPROX_STRING_SIZE 64
|
|
|
|
|
|
2012-08-26 11:14:52 +00:00
|
|
|
|
/// Суффикс имени для столбца, содержащего смещения массива.
|
2012-11-02 20:13:41 +00:00
|
|
|
|
#define ARRAY_SIZES_COLUMN_NAME_SUFFIX ".size"
|
2013-05-22 14:57:43 +00:00
|
|
|
|
|
2014-04-01 23:42:26 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_TEMPORARY_TABLES 50264
|
2014-10-25 18:33:52 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_TOTAL_ROWS_IN_PROGRESS 51554
|
2015-01-03 03:18:49 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_BLOCK_INFO 51903
|
2016-10-24 21:40:39 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_CLIENT_INFO 54032
|
2016-11-15 10:11:05 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_SERVER_TIMEZONE 54058
|
2016-11-16 05:09:41 +00:00
|
|
|
|
#define DBMS_MIN_REVISION_WITH_QUOTA_KEY_IN_CLIENT_INFO 54060
|
2016-07-31 03:53:16 +00:00
|
|
|
|
|
|
|
|
|
/// Version of ClickHouse TCP protocol. Set to git tag with latest protocol change.
|
2016-11-16 06:15:38 +00:00
|
|
|
|
#define DBMS_TCP_PROTOCOL_VERSION 54060
|
2014-08-15 09:50:05 +00:00
|
|
|
|
|
|
|
|
|
#define DBMS_DISTRIBUTED_DIRECTORY_MONITOR_SLEEP_TIME_MS 100
|
2014-10-06 22:48:20 +00:00
|
|
|
|
|
2015-03-12 16:22:49 +00:00
|
|
|
|
/// Граница, на которых должны быть выровнены блоки для асинхронных файловых операций.
|
2015-03-16 10:41:58 +00:00
|
|
|
|
#define DEFAULT_AIO_FILE_BLOCK_SIZE 4096
|
2015-03-12 16:22:49 +00:00
|
|
|
|
|
2015-06-28 07:34:58 +00:00
|
|
|
|
#define DEFAULT_QUERY_LOG_FLUSH_INTERVAL_MILLISECONDS_STR "7500"
|
2015-06-26 20:48:10 +00:00
|
|
|
|
|
2014-10-06 22:48:20 +00:00
|
|
|
|
#define ALWAYS_INLINE __attribute__((__always_inline__))
|
2014-10-29 01:18:50 +00:00
|
|
|
|
#define NO_INLINE __attribute__((__noinline__))
|
2016-01-13 02:11:40 +00:00
|
|
|
|
|
|
|
|
|
#define PLATFORM_NOT_SUPPORTED "The only supported platforms are x86_64 and AArch64 (work in progress)"
|
|
|
|
|
|
|
|
|
|
#if !defined(__x86_64__) && !defined(__aarch64__)
|
|
|
|
|
#error PLATFORM_NOT_SUPPORTED
|
|
|
|
|
#endif
|
2016-06-10 18:58:04 +00:00
|
|
|
|
|
2016-07-30 04:44:04 +00:00
|
|
|
|
/// Check for presence of address sanitizer
|
2016-06-10 18:58:04 +00:00
|
|
|
|
#if defined(__has_feature)
|
|
|
|
|
#if __has_feature(address_sanitizer)
|
|
|
|
|
#define ADDRESS_SANITIZER 1
|
|
|
|
|
#endif
|
|
|
|
|
#elif defined(__SANITIZE_ADDRESS__)
|
|
|
|
|
#define ADDRESS_SANITIZER 1
|
|
|
|
|
#endif
|
2016-07-30 04:44:04 +00:00
|
|
|
|
|
|
|
|
|
#if defined(__has_feature)
|
|
|
|
|
#if __has_feature(thread_sanitizer)
|
|
|
|
|
#define THREAD_SANITIZER 1
|
|
|
|
|
#endif
|
|
|
|
|
#elif defined(__SANITIZE_THREAD__)
|
|
|
|
|
#define THREAD_SANITIZER 1
|
|
|
|
|
#endif
|