هذه الإعدادات متاحة في system.settings، ويجري توليدها تلقائيًا من المصدر.
aggregate_function_input_format
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 25.12 | state | إعداد جديد للتحكم في تنسيق إدخال AggregateFunction أثناء عمليات INSERT. تُضبط قيمة الإعداد على state افتراضيًا |
تنسيق إدخال AggregateFunction أثناء عمليات INSERT.
القيم الممكنة:
state— سلسلة ثنائية تتضمن الحالة المُسلسلة (الافتراضي). وهذا هو السلوك الافتراضي، حيث يُتوقع أن تكون قيم AggregateFunction على هيئة بيانات ثنائية.value— يتوقع التنسيق قيمة واحدة لوسيط الدالة التجميعية، أو Tuple من القيم في حال وجود عدة وسائط. ويُفك تسلسلها باستخدام IDataType أو DataTypeTuple المقابل، ثم تُجمع لتكوين الحالة.array— يتوقع التنسيق Array من القيم، كما هو موضح في الخيارvalueأعلاه. وتُجمع جميع عناصر المصفوفة لتكوين الحالة.
أمثلة
لجدول ذي بنية:
CREATE TABLE example (
user_id UInt64,
avg_session_length AggregateFunction(avg, UInt32)
);عند استخدام aggregate_function_input_format = 'value':
INSERT INTO example FORMAT CSV
123,456عند استخدام aggregate_function_input_format = 'array':
INSERT INTO example FORMAT CSV
123,"[456,789,101]"ملاحظة: إن تنسيقي value وarray أبطأ من تنسيق state الافتراضي، لأنهما يتطلبان إنشاء القيم وتجميعها أثناء الإدراج.
aggregate_functions_null_for_empty
يُمكّن أو يعطّل إعادة كتابة جميع الدوال التجميعية في الاستعلام عبر إضافة اللاحقة -OrNull إليها. فعِّله لتحقيق التوافق مع معيار SQL. ويُنفَّذ ذلك من خلال إعادة كتابة الاستعلام (على غرار الإعداد count_distinct_implementation) للحصول على نتائج متسقة في الاستعلامات الموزعة.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
مثال
انظر إلى الاستعلام التالي الذي يتضمن دوال تجميعية:
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;عند ضبط aggregate_functions_null_for_empty = 0، سينتج:
┌─SUM(-1)─┬─MAX(0)─┐
│ 0 │ 0 │
└─────────┴────────┘مع aggregate_functions_null_for_empty = 1 ستكون النتيجة كما يلي:
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│ NULL │ NULL │
└───────────────┴──────────────┘