allow_aggregate_partitions_independently
GROUP BY. يكون ذلك مفيدًا عندما يكون عدد partitions قريبًا من عدد الأنوية وتكون أحجام partitions متقاربة إلى حدٍّ ما. تقوم الآليات الاستدلالية في ReadFromMergeTree تلقائيًا بتعطيل هذا التحسين في التخطيطات غير الملائمة (عدد قليل جدًا من partitions، أو عدد كبير جدًا منها، أو أحجام partitions غير متوازنة بشكل ملحوظ)؛ راجع force_aggregate_partitions_independently لتجاوز هذه الفحوصات.
allow_archive_path_syntax
<archive> :: <file> إذا كان للأرشيف امتداد صحيح.
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout)؛ وإلا فسنُعطّل تغيير الـ replica بعد أول مرة نُحرز فيها تقدّمًا.
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_delta_kernel_rs
allow_experimental_delta_kernel_rs
يسمح باستخدام تنفيذ delta-kernel-rs لقراءة جداول Delta Lake.
allow_distinct_partitions_independently
DISTINCT لكل partition على خيوط تنفيذ منفصلة عندما يكون تعبير partition دالة حتمية لأعمدة DISTINCT، مع تجاوز الدمج بين التدفقات. يفيد ذلك عندما يكون عدد partitionات قريبًا من عدد الأنوية وتكون partitionات متقاربة الحجم؛ وإلا، تتجاوزه آلية استدلالية للتكلفة. راجع max_number_of_partitions_for_independent_distinct وforce_distinct_partitions_independently. لا يُطبَّق مع FINAL أو النسخ المتماثلة المتوازية.
لا يُطبَّق عند تعيين max_rows_in_distinct أو max_bytes_in_distinct: إذ تُفرض هذه الحدود بواسطة تحويل DISTINCT الواحد الذي يعالج النتيجة المدمجة بالكامل، لذلك يُحتفظ بالدمج بين التدفقات للحفاظ على دلالتها الشاملة.
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_fuzz_query_functions
fuzzQuery التي تُجري تعديلات عشوائية على AST لاستعلامٍ ما.
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader التي تتيح الحصول على قيمة ترويسة طلب HTTP الحالي. وهي غير مُمكّنة افتراضيًا لأسباب أمنية، لأن بعض الترويسات، مثل Cookie، قد تحتوي على معلومات حساسة. لاحظ أن ترويسات X-ClickHouse-* وAuthentication وAuthorization تكون مقيّدة دائمًا، ولا يمكن الحصول عليها باستخدام هذه الدالة.
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
يسمح بتنفيذ استعلامات insert في Iceberg.
allow_introspection_functions
- 1 — دوال فحص المكونات الداخلية مُمكّنة.
- 0 — دوال فحص المكونات الداخلية مُعطّلة.
- Sampling Query Profiler
- جدول النظام trace_log
allow_key_condition_coalesce_rewrite
coalesce(a_1, ..., a_N) <op> const (وكذلك ifNull بصورة مكافئة، أو عندما يكون الثابت على اليسار) إلى الفصل المنطقي (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const) قبل تحليل الفهارس، بحيث يمكن استخدام المفتاح الأساسي وفهارس التخطي الخاصة بكل عمود على كل a_i. تُعالَج الأشكال ذات الثوابت الجزئية مثل coalesce(a, 42, b) وcoalesce(a, b, 42): إذ تُطبَّع قائمة الوسائط كما يفعل coalesce نفسه (تُحذف القيم الحرفية NULL، وتُحذف الوسائط التي تلي أول وسيطة غير Nullable)، ويُضاف الثابت غير NULL الختامي، إن وُجد، باعتباره الفرع الأخير. تُستخدم إعادة الكتابة فقط كإضافة لتحسين استبعاد البيانات عبر الفهارس؛ ويستمر الترشيح وقت التشغيل في استخدام الشرط الأصلي.
بالإضافة إلى ذلك، يُعاد كتابة شروط المساواة الدقيقة من الشكل nullIf(key, sentinel) = const (حيث sentinel != const وتتطابق الأنواع تمامًا) إلى key = const، بحيث يتمكن المفتاح الأساسي وpartition وفهارس التخطي على key من استبعاد الحبيبات مباشرةً. لا يُدعم استبعاد البيانات عبر nullIf للنطاقات أو الشروط الفصلية.
allow_limit_by_partitions_independently
LIMIT BY لكل partition على خيوط تنفيذ منفصلة عندما يكون تعبير partition دالة حتمية لأعمدة LIMIT BY.
allow_lossy_numeric_supertype
if/multiIf/coalesce/ifNull/array/map مجموعةً من الوسائط الرقمية التي لا نوعًا مشتركًا بينها دون فقدان (مثل Decimal وFloat64، أو Int64 وFloat64) إلى نوع فائق رقمي (Float64) بدلًا من أن تفشل، مع احتمال فقدان الدقة. يتيح ذلك استخدام النتيجة مباشرةً مع دوال التجميع التي تدمج القيم، مثل sum وavg وmin وmax. وهذا مستقل عن use_variant_as_common_type: إذ يُنتَج النوع الفائق الرقمي سواء أكان use_variant_as_common_type مُمكّنًا أم لا. عند التعطيل (الإعداد الافتراضي)، لا يكون لهذه المجموعات من الوسائط نوع مشترك، لذا فإنها إما تصبح Variant (إذا كان use_variant_as_common_type مُمكّنًا) أو تُصدر NO_COMMON_TYPE.
allow_materialized_view_with_bad_select
allow_metadata_only_named_tuple_alter
allow_minmax_index_for_json
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nullable_tuple_in_extracted_subcolumns
Nullable(Tuple(...)) إلى الأعمدة الفرعية المستخرجة من النوع Tuple(...).
false: أعدTuple(...)واستخدم قيم tuple الافتراضية للصفوف التي يكون فيها العمود الفرعي مفقودًا.true: أعدNullable(Tuple(...))واستخدمNULLللصفوف التي يكون فيها العمود الفرعي مفقودًا.
Nullable(Tuple(...)) في الجداول؛ فهذا يتحكم فيه enable_nullable_tuple_type.
يستخدم ClickHouse القيمة المحمّلة لهذا الإعداد عند بدء تشغيل الخادم.
ولا تؤدي التغييرات التي تُجرى باستخدام SET أو SETTINGS على مستوى الاستعلام إلى تغيير سلوك الأعمدة الفرعية المستخرجة.
ولتغيير سلوك الأعمدة الفرعية المستخرجة، حدّث allow_nullable_tuple_in_extracted_subcolumns في تهيئة ملف التعريف عند بدء التشغيل (على سبيل المثال، users.xml) ثم أعد تشغيل الخادم.
allow_rank_dense_rank_arguments
RANK وDENSE_RANK للحفاظ على التوافق مع الإصدارات السابقة.
وفقًا لمعيار SQL، لا تقبل RANK وDENSE_RANK أي وسائط — إذ ترتبان الصفوف استنادًا فقط إلى
النافذة OVER (ORDER BY ...). في إصدارات ClickHouse السابقة لـ 26.5، كانت الاستعلامات مثل
RANK(x) OVER (...) تُقبل بصمت مع تجاهل الوسيطة، مما سبّب إرباكًا للمستخدمين
(إذ توحي الوسيطة الظاهرة بأنها تؤثر في الترتيب، لكنها في الواقع لا تفعل ذلك).
عندما يكون هذا الإعداد false (وهو الخيار الافتراضي)، ترفض RANK وDENSE_RANK أي وسائط وتُطلق
الاستثناء NUMBER_OF_ARGUMENTS_DOESNT_MATCH. وعند ضبطه على true، يُستعاد السلوك القديم المتساهل
— إذ تُتجاهل الوسائط بصمت، بما يطابق السلوك السابق قبل الإصدار 26.5.
allow_reorder_prewhere_conditions
allow_replace_partition_from_empty_source
ALTER TABLE ... REPLACE PARTITION ... FROM ... بحذف partition الوجهة بصمت عندما لا يحتوي المصدر على أي أجزاء في ذلك الـ partition.
بشكل افتراضي، هذا غير مسموح به: إذ إن REPLACE PARTITION من مصدر لا يحتوي على بيانات في الـ partition المطلوب يُطلق استثناءً، لأن العملية في هذه الحالة تصبح فعليًا DROP PARTITION صامتًا على الوجهة (تُزال بيانات الوجهة ولا يستبدلها شيء)، وهو سبب شائع لفقدان البيانات عن طريق الخطأ (راجع #23727).
فعّل هذا الإعداد لاستعادة السلوك السابق، على سبيل المثال عندما تستخدم عمدًا partition فارغًا في المصدر لمسح البيانات في الوجهة. وإذا أردت حذفًا غير مشروط، فالأفضل استخدام ALTER TABLE ... DROP PARTITION ... بدلًا من ذلك.
allow_settings_after_format_in_insert
SETTINGS بعد FORMAT في استعلامات INSERT من عدمه. لا يُنصح باستخدام هذا، لأن ذلك قد يؤدي إلى تفسير جزء من SETTINGS على أنه قيم.
مثال:
allow_settings_after_format_in_insert:
- 0 — غير مسموح.
- 1 — مسموح.
استخدم هذا الإعداد فقط للحفاظ على التوافق مع الإصدارات السابقة إذا كانت حالات الاستخدام لديك تعتمد على الصياغة القديمة.