إصدار ClickHouse 19.17
إصدار ClickHouse 19.17.6.36، 2019-12-27
إصلاح الأخطاء
- تم إصلاح احتمال حدوث تجاوز سعة في buffer أثناء فك الضغط. يمكن لمستخدم خبيث تمرير بيانات مضغوطة ملفّقة قد تتسبب في القراءة خارج buffer. اكتشف هذه المشكلة Eldar Zaitov من فريق أمن المعلومات في Yandex. #8404 (alexey-milovidov)
- تم إصلاح تعطل محتمل في الخادم (
std::terminate) عندما يتعذر على الخادم إرسال البيانات أو كتابتها بتنسيق JSON أو XML مع قيم من نوع البيانات String (التي تتطلب التحقق من UTF-8)، أو عند ضغط بيانات النتائج باستخدام خوارزمية Brotli، أو في بعض الحالات النادرة الأخرى. #8384 (alexey-milovidov) - تم إصلاح القواميس التي يكون مصدرها
VIEWفي ClickHouse، ولم تعد قراءة هذه القواميس تتسبب في الخطأThere is no query. #8351 (Nikolai Kochetov) - تم إصلاح التحقق مما إذا كان host الخاص بالعميل مسموحًا به وفقًا لـ host_regexp المحدد في users.xml. #8241, #8342 (Vitaly Baranov)
- أصبح
RENAME TABLEلجدول موزّع يعيد تسمية المجلد الذي يحتوي على البيانات المُدرجة قبل إرسالها إلى الشظايا. ويعالج هذا مشكلة في عمليات إعادة التسمية المتتاليةtableA->tableB,tableC->tableA. #8306 (tavplubix) - أصبحت القواميس الخارجية
range_hashedالتي أُنشئت بواسطة استعلامات DDL تسمح الآن بنطاقات من أنواع رقمية عشوائية. #8275 (alesapin) - تم إصلاح table function
INSERT INTO table SELECT ... FROM mysql(...). #8234 (tavplubix) - تم إصلاح segfault في
INSERT INTO TABLE FUNCTION file()عند الإدراج في ملف غير موجود. والآن، في هذه الحالة، سيتم إنشاء الملف ثم معالجة عملية insert. #8177 (Olga Khvostikova) - تم إصلاح الخطأ bitmapAnd عند التقاطع بين bitmap مُجمّع وbitmap scalar. #8082 (Yue Huang)
- تم إصلاح segfault عند استخدام استعلام
EXISTSمن دون المحددTABLEأوDICTIONARY، مثلEXISTS t. #8213 (alexey-milovidov) - تم إصلاح return type للدالتين
randوrandConstantفي حالة وجود argument من النوع Nullable. وتعِيد الدالتان الآن دائمًاUInt32وليسNullable(UInt32)مطلقًا. #8204 (Nikolai Kochetov) - تم إصلاح
DROP DICTIONARY IF EXISTS db.dict، ولم يعد يطلق exception إذا لم تكنdbموجودة. #8185 (Vitaly Baranov) - إذا لم يُحذف الجدول بالكامل بسبب تعطل الخادم، فسيحاول الخادم استعادته وتحميله #8176 (tavplubix)
- تم إصلاح استعلام count بسيط لجدول موزّع إذا كان هناك أكثر من جدول محلي واحد لكل shard. #8164 (小路)
- أُصلِح خطأ كان يؤدي إلى حدوث data race في
DB::BlockStreamProfileInfo::calculateRowsBeforeLimit()#8143 (Alexander Kazakov) - أُصلِح تنفيذ
ALTER table MOVE partمباشرةً بعد دمج الـ part المحدد، وهو ما كان قد يتسبب في نقل الـ part الذي اندمج فيه الـ part المحدد. والآن يُنقَل الـ part المحدد على نحو صحيح. #8104 (Vladimir Chebotarev) - يمكن الآن تحديد expressions الخاصة بـ dictionaries على هيئة سلاسل نصية. وهذا مفيد لحساب attributes أثناء استخراج البيانات من sources غير ClickHouse، لأنه يتيح استخدام صياغة غير خاصة بـ ClickHouse لتلك expressions. #8098 (alesapin)
- أُصلِح تسابق نادر جدًا في
clickhouse-copierبسبب overflow في ZXid. #8088 (Ding Xiang Fei) - أُصلِح الخطأ الذي كان يحدث عندما يفشل الاستعلام (بسبب “Too many simultaneous queries” على سبيل المثال)، إذ لم يكن يقرأ معلومات external tables، وكان
الطلب التالي يفسّر هذه المعلومات على أنها بداية الاستعلام التالي، مما يؤدي إلى خطأ مثل
Unknown packet from client. #8084 (Azat Khuzhin) - تجنُّب إلغاء الإشارة إلى null بعد “Unknown packet X from server” #8071 (Azat Khuzhin)
- استُعيد دعم جميع الإعدادات المحلية لـ ICU، وأُضيفت إمكانية تطبيق collations على expressions الثابتة، مع إضافة اسم اللغة إلى table system.collations. #8051 (alesapin)
- أصبح عدد streams لقراءة
StorageFileوStorageHDFSمحدودًا الآن لتجنب تجاوز memory limit. #7981 (alesapin) - أُصلِح استعلام
CHECK TABLEلجداول*MergeTreeالتي لا تحتوي على key. #7979 (alesapin) - أُزيل رقم mutation من اسم الـ part في حال عدم وجود mutations. وقد حسّنت هذه الإزالة التوافق مع الإصدارات الأقدم. #8250 (alesapin)
- أُصلِح الخطأ الذي كانت بسببه تُتخطى mutations لبعض parts المرفقة لأن قيمة
data_versionالخاصة بها كانت أكبر من إصدار mutation الخاص بالـ table. #7812 (Zhichang Yu) - السماح ببدء تشغيل server مع نسخ زائدة من parts بعد نقلها إلى جهاز آخر. #7810 (Vladimir Chebotarev)
- أُصلِح الخطأ “Sizes of columns does not match” الذي قد يظهر عند استخدام columns لدوال aggregate function. #7790 (Boris Granveaud)
- الآن سيُرمى استثناء عند استخدام WITH TIES إلى جانب LIMIT BY. كما أصبح من الممكن الآن استخدام TOP مع LIMIT BY. #7637 (Nikita Mikhaylov)
- أُصلِحَت إعادة تحميل dictionary إذا كان يحتوي على
invalidate_query، وهو ما كان يوقف التحديثات ويتسبب في بعض الاستثناءات عند محاولات التحديث السابقة. #8029 (alesapin)
إصدار ClickHouse 19.17.4.11، 2019-11-22
تغيير غير متوافق مع الإصدارات السابقة
- استخدام عمود بدلًا من AST لتخزين نتائج الاستعلامات الفرعية القيمية لتحسين الأداء. أُضيف الإعداد
enable_scalar_subquery_optimizationفي الإصدار 19.17 وكان مفعّلًا افتراضيًا. وقد يؤدي ذلك إلى ظهور أخطاء مثل هذا عند الترقية إلى 19.17.2 أو 19.17.3 من الإصدارات السابقة. وقد عُطِّل هذا الإعداد افتراضيًا في 19.17.4 لإتاحة الترقية من 19.16 والإصدارات الأقدم دون أخطاء. #7392 (Amos Bird)
ميزة جديدة
- إتاحة إنشاء القواميس عبر استعلامات DDL. #7360 (alesapin)
- إضافة دعم
LowCardinalityوNullableإلى نوع الفهرسbloom_filter#7363 #7561 (Nikolai Kochetov) - إضافة الدالة
isValidJSONللتحقق من أن السلسلة النصية المُمرَّرة هي JSON صالح. #5910 #7293 (Vdimir) - تنفيذ الدالة
arrayCompact#7328 (Memo) - إنشاء الدالة
hexللأعداد من النوع Decimal. وهي تعمل مثلhex(reinterpretAsString())، لكنها لا تحذف البايتات الصفرية الأخيرة. #7355 (Mikhail Korotov) - إضافة الدالتين
arrayFillوarrayReverseFill، اللتين تستبدلان عناصر المصفوفة بعناصر أخرى قبلها/بعدها. #7380 (hcz) - إضافة دعم
CRC32IEEE()/CRC64()#7480 (Azat Khuzhin) - تنفيذ الدالة
charالمشابهة لتلك الموجودة في mysql #7486 (sundyli) - إضافة الدالة
bitmapTransform. وهي تحوّل مصفوفة من القيم داخل bitmap إلى مصفوفة أخرى من القيم، وتكون النتيجة bitmap جديدة #7598 (Zhichang Yu) - تنفيذ الدالة
javaHashUTF16LE()#7651 (achimbab) - إضافة العمود الافتراضي
_shard_numلمحرك Distributed #7624 (Azat Khuzhin)
ميزة تجريبية
- دعم المعالجات (خط أنابيب تنفيذ الاستعلام الجديد) في
MergeTree. #7181 (Nikolai Kochetov)
إصلاح الخطأ
- إصلاح التحليل غير الصحيح لقيم الفاصلة العائمة في
Values#7817 #7870 (tavplubix) - إصلاح حالة توقف متبادل نادرة قد تحدث عند تمكين trace_log. #7838 (filimonov)
- منع تكرار الرسائل عند الإنتاج إلى Kafka table إذا كانت هناك أي MVs تستخرج البيانات منه #7265 (Ivan)
- دعم
Array(LowCardinality(Nullable(String)))فيIN. يحل #7364 #7366 (achimbab) - إضافة دعم
SQL_TINYINTوSQL_BIGINT، وإصلاح معالجة source types الخاصة بـSQL_FLOATفي ODBC Bridge. #7491 (Denis Glazachev) - إصلاح aggregation (
avgو quantiles) على أعمدة decimal الفارغة #7431 (Andrey Konyaev) - إصلاح
INSERTفي Distributed مع أعمدةMATERIALIZED#7377 (Azat Khuzhin) - جعل
MOVE PARTITIONيعمل إذا كانت بعض parts الخاصة بـ partition موجودة بالفعل على disk أو volume الوجهة #7434 (Vladimir Chebotarev) - إصلاح خلل كان يؤدي إلى فشل إنشاء الروابط الصلبة أثناء mutations في
ReplicatedMergeTreeضمن configurations متعددة الأقراص. #7558 (Vladimir Chebotarev) - إصلاح خلل في mutation على MergeTree عندما يبقى part بالكامل دون تغيير بينما يُعثر على أفضل مساحة على disk آخر #7602 (Vladimir Chebotarev)
- إصلاح خلل عدم قراءة
keep_free_space_ratioمن configuration الخاصة بـ disks #7645 (Vladimir Chebotarev) - إصلاح خلل في table يحتوي فقط على أعمدة
Tupleأو أعمدة ذات paths معقدة. يُصلح 7541. #7545 (alesapin) - عدم احتساب الذاكرة الخاصة بمحرك Buffer ضمن حد max_memory_usage #7552 (Azat Khuzhin)
- إصلاح استخدام mark الأخير في جداول
MergeTreeالمرتبة حسبtuple(). وفي حالات نادرة، قد يؤدي ذلك إلى ظهور الخطأCan't adjust last granuleأثناء select. #7639 (Anton Popov) - إصلاح خلل في mutations التي تحتوي على predicate مع actions تتطلب context (مثل دوال json)، مما قد يؤدي إلى أعطال أو استثناءات غير معتادة. #7664 (alesapin)
- إصلاح عدم تطابق أسلوب تهريب أسماء database و table في الدليلين
data/وshadow/#7575 (Alexander Burmak) - دعم المفاتيح المكررة في عمليات
RIGHT|FULL JOIN، مثلON t.x = u.x AND t.x = u.y. إصلاح التعطل في هذه الحالة. #7586 (Artem Zuikov) - إصلاح الخطأ
Not found column <expression> in blockعند إجراء join على تعبير باستخدامRIGHTأوFULL JOIN. #7641 (Artem Zuikov) - محاولة أخرى لإصلاح الحلقة اللانهائية في تنسيق
PrettySpace#7591 (Olga Khvostikova) - إصلاح خلل في الدالة
concatعندما تكون جميع الوسيطات من النوعFixedStringوبالحجم نفسه. #7635 (alesapin) - إصلاح استثناء عند استخدام وسيطة واحدة فقط عند تعريف وحدات التخزين S3 وURL وHDFS. #7618 (Vladimir Chebotarev)
- إصلاح نطاق
InterpreterSelectQueryللعروض التي تتضمن استعلامًا #7601 (Azat Khuzhin)
تحسين
- التعرّف على أعمدة
Nullableوالتعامل مع قيم NULL بشكل صحيح بواسطة ODBC-bridge #7402 (Vasily Nemkov) - كتابة الدفعة الحالية للإرسال الموزّع بشكل ذري #7600 (Azat Khuzhin)
- طرح استثناء إذا تعذّر تحديد الجدول لاسم العمود في الاستعلام. #7358 (Artem Zuikov)
- إضافة الإعداد
merge_max_block_sizeإلىMergeTreeSettings#7412 (Artem Zuikov) - تفترض الاستعلامات التي تحتوي على
HAVINGولا تحتوي علىGROUP BYإجراء group by على ثابت. لذلك، يعيدSELECT 1 HAVING 1الآن نتيجة. #7496 (Amos Bird) - دعم تحليل الصيغة
(X,)على أنها tuple، على غرار بايثون. #7501, #7562 (Amos Bird) - جعل سلوك الدالة
rangeأقرب إلى سلوك نظيرتها في بايثون. #7518 (sundyli) - إضافة أعمدة
constraintsإلى الجدولsystem.settings#7553 (Vitaly Baranov) - تحسين تنسيق Null لمعالج TCP، بحيث يصبح من الممكن استخدام
select ignore(<expression>) from table format Nullلقياس الأداء عبر clickhouse-client #7606 (Amos Bird) - تحليل الاستعلامات مثل
CREATE TABLE ... AS (SELECT (1, 2))بشكل صحيح #7542 (hcz)
تحسين الأداء
- تم تحسين أداء التجميع على مفاتيح السلاسل النصية القصيرة. #6243 (Alexander Kuzmenkov, Amos Bird)
- تنفيذ تمريرة إضافية لتحليل الصياغة/التعبيرات للحصول على تحسينات محتملة بعد طيّ شروط التصفية الثابتة. #7497 (Amos Bird)
- استخدام البيانات الوصفية للتخزين لتقييم الاستعلام البسيط
SELECT count() FROM table;#7510 (Amos Bird, alexey-milovidov) - تحويل معالجة
arrayReduceإلى المعالجة المتجهة، على غرارaddBatchفي Aggregator. #7608 (Amos Bird) - تحسينات طفيفة في أداء استهلاك
Kafka#7475 (Ivan)
تحسين البناء والاختبار والتحزيم
- إضافة دعم للتجميع المتقاطع لمعمارية CPU AARCH64، مع إعادة هيكلة سكربت packager. #7370 #7539 (Ivan)
- فكّ حزم سلاسل الأدوات darwin-x86_64 و linux-aarch64 داخل وحدة تخزين Docker مربوطة عند بناء الحزم #7534 (Ivan)
- تحديث Docker image الخاصة بمُحزِّم الملفات التنفيذية #7474 (Ivan)
- إصلاح أخطاء التجميع على macOS Catalina #7585 (Ernest Poletaev)
- بعض إعادة الهيكلة في منطق تحليل الاستعلام: تقسيم فئة معقّدة إلى عدة فئات أبسط. #7454 (Artem Zuikov)
- إصلاح البناء من دون وحدات فرعية #7295 (proller)
- تحسين
add_globsفي ملفات CMake #7418 (Amos Bird) - إزالة المسارات المضمّنة صراحةً في الهدف
unwind#7460 (Konstantin Podshumok) - السماح باستخدام تنسيق mysql بدون ssl #7524 (proller)
أخرى
- تمت إضافة قواعد ANTLR4 الخاصة بلهجة ClickHouse SQL #7595 #7596 (alexey-milovidov)
إصدار ClickHouse 19.16
إصدار ClickHouse 19.16.14.65، 2020-03-25
- أُصلِح خطأ في الحسابات المجمّعة للعمليات المنطقية الثلاثية على معاملات متعددة (أكثر من 10). #8718 (Alexander Kazakov) وقد نُقل هذا الإصلاح أيضًا إلى الإصدار 19.16 بطلب خاص من Altinity.
إصدار ClickHouse 19.16.14.65، 2020-03-05
- إصلاح عدم توافق الاستعلامات الفرعية الموزعة مع إصدارات ClickHouse الأقدم. يُصلح #7851 (tabplubix)
- عند تنفيذ استعلام
CREATE، تُختزل التعبيرات الثابتة في وسيطات محرك التخزين. ويُستبدل اسم قاعدة البيانات الفارغ بقاعدة البيانات الحالية. يُصلح #6508، #3492. كما يُصلح فحص العنوان المحلي فيClickHouseDictionarySource. #9262 (tabplubix) - تحافظ عمليات الدمج في الخلفية في عائلة محركات الجداول
*MergeTreeالآن على ترتيب وحدات التخزين ضمن سياسة التخزين بدقة أكبر. #8549 (Vladimir Chebotarev) - منع فقدان البيانات في
Kafkaفي حالات نادرة عند حدوث استثناء بعد قراءة اللاحقة ولكن قبل تنفيذ commit. يُصلح #9378. ذو صلة: #7175 #9507 (filimonov) - إصلاح خطأ كان يؤدي إلى توقف الخادم عند محاولة استخدام / حذف جدول
Kafkaأُنشئ باستخدام معلمات خاطئة. يُصلح #9494. ويتضمن #9507. #9513 (filimonov) - السماح باستخدام
MaterializedViewمع الاستعلامات الفرعية على جداولKafka. #8197 (filimonov)
ميزة جديدة
- أُضيف الخيار
deduplicate_blocks_in_dependent_materialized_viewsللتحكم في سلوك عملياتinsertمتطابقة الأثر في الجداول ذات العروض المادية. أُضيفت هذه الميزة الجديدة إلى إصدار إصلاحات الأخطاء بناءً على طلب خاص من Altinity. #9070 (urykhy)
إصدار ClickHouse 19.16.2.2، 2019-10-30
تغيير غير متوافق مع الإصدارات السابقة
- إضافة التحقق المفقود من عدد الوسائط للدالتين count/counIf. #7095 #7298 (Vdimir)
- إزالة الإعداد القديم
asterisk_left_columns_only(كان معطّلًا افتراضيًا). #7335 (Artem Zuikov) - أصبحت سلاسل التنسيق الخاصة بتنسيق البيانات Template تُحدَّد في ملفات. #7118 (tavplubix)
ميزة جديدة
- تقديم uniqCombined64() لحساب الكاردينالية التي تتجاوز UINT_MAX. #7213, #7222 (Azat Khuzhin)
- دعم فهارس Bloom filter على أعمدة Array. #6984 (achimbab)
- إضافة دالة
getMacro(name)تُرجع قيمة String لعنصر<macros>المقابل من إعدادات الخادم. #7240 (alexey-milovidov) - تعيين خياري إعدادات لقاموس يعتمد على مصدر HTTP:
credentialsوhttp-headers. #7092 (Guillaume Tassery) - إضافة ProfileEvent جديد باسم
Mergeيحسب عدد عمليات الدمج الخلفية التي تم تشغيلها. #7093 (Mikhail Korotov) - إضافة الدالة fullHostName التي تُرجع اسم مجال مؤهلاً بالكامل. #7263 #7291 (sundyli)
- إضافة الدالتين
arraySplitوarrayReverseSplitاللتين تقسّمان المصفوفة وفق شروط “الاقتطاع”. وهما مفيدتان في التعامل مع التسلسلات الزمنية. #7294 (hcz) - إضافة دوال جديدة تُرجع Array لكل الفهارس المتطابقة في عائلة دوال multiMatch. #7299 (Danila Kutenin)
- إضافة محرك قاعدة بيانات جديد باسم
Lazyومحسّن لتخزين عدد كبير من جداول -Log الصغيرة. #7171 (Nikita Vasilev) - إضافة aggregate functions groupBitmapAnd و -Or و -Xor لأعمدة bitmap. #7109 (Zhichang Yu)
- إضافة combinators جديدة للدوال التجميعية هي -OrNull و -OrDefault، والتي تُرجع NULL أو قيمًا افتراضية عندما لا يوجد ما يمكن تجميعه. #7331 (hcz)
- تقديم تنسيق البيانات CustomSeparated الذي يدعم قواعد escape و delimiter مخصصة. #7118 (tavplubix)
- دعم Redis كمصدر لقاموس خارجي. #4361 #6962 (comunodi, Anton Popov)
إصلاح الأخطاء
- إصلاح نتيجة استعلام غير صحيحة إذا كان يتضمن المقطع
WHERE IN (SELECT ...)مع استخدامoptimize_read_in_order. #7371 (Anton Popov) - تعطيل plugin المصادقة الخاص بـ MariaDB، لأنه يعتمد على ملفات خارج المشروع. #7140 (Yuriy Baranov)
- إصلاح الاستثناء
Cannot convert column ... because it is constant but values of constants are different in source and resultالذي كان قد يحدث نادرًا عند استخدام الدوالnow(),today(),yesterday(),randConstant(). #7156 (Nikolai Kochetov) - إصلاح مشكلة استخدام مهلة HTTP keep alive بدلًا من مهلة TCP keep alive. #7351 (Vasily Nemkov)
- إصلاح fault segmentation في groupBitmapOr (المشكلة #7109). #7289 (Zhichang Yu)
- بالنسبة إلى materialized views، يُستدعى commit الخاص بـ Kafka بعد كتابة جميع البيانات. #7175 (Ivan)
- إصلاح قيمة
duration_msغير الصحيحة في الجدولsystem.part_log. كانت أكبر بعشرة أضعاف. #7172 (Vladimir Chebotarev) - إصلاح سريع لمعالجة crash في جدول LIVE VIEW وإعادة تفعيل جميع اختبارات LIVE VIEW. #7201 (vzakaznikov)
- إجراء serialize صحيح لقيم NULL في فهارس min/max لأجزاء MergeTree. #7234 (Alexander Kuzmenkov)
- عدم تضمين virtual columns في بيانات التعريف .sql عند إنشاء الجدول باستخدام
CREATE TABLE AS. #7183 (Ivan) - إصلاح fault segmentation في استعلام
ATTACH PART. #7185 (alesapin) - إصلاح نتيجة غير صحيحة لبعض queries الناتجة عن تحسين subqueries الفارغة في IN وعمليات INNER/RIGHT JOIN الفارغة. #7284 (Nikolai Kochetov)
- إصلاح خطأ AddressSanitizer في method
getHeader()الخاصة بـ LIVE VIEW. #7271 (vzakaznikov)
تحسين
- إضافة رسالة عند حدوث انتظار
queue_wait_max_ms. #7390 (Azat Khuzhin) - تم جعل الإعداد
s3_min_upload_part_sizeعلى مستوى الجدول. #7059 (Vladimir Chebotarev) - التحقق من TTL في StorageFactory. #7304 (sundyli)
- دمج كتل الجانب الأيسر في partial merge join (كتحسين). #7122 (Artem Zuikov)
- عدم السماح بالدوال غير الحتمية في عمليات mutations الخاصة بمحركات الجداول Replicated، لأن ذلك قد يؤدي إلى حالات عدم اتساق بين النسخ المتماثلة. #7247 (Alexander Kazakov)
- تعطيل متعقّب الذاكرة أثناء تحويل أثر مكدس الاستثناء إلى سلسلة نصية. ويمكن أن يمنع ذلك فقدان
رسائل الخطأ من النوع
Memory limit exceededعلى الخادم، والذي تسبب في الاستثناءAttempt to read after eofعلى العميل. #7264 (Nikolai Kochetov) - تحسينات متنوعة على التنسيقات. يحل #6033, #2633, #6611, #6742 #7215 (tavplubix)
- يتجاهل ClickHouse القيم الموجودة على الجانب الأيمن من العامل IN التي لا يمكن تحويلها إلى نوع الجانب الأيسر. وتم جعل ذلك يعمل بشكل صحيح مع الأنواع المركبة – Array و Tuple. #7283 (Alexander Kuzmenkov)
- دعم حالات غياب معاملات عدم المساواة في ASOF JOIN. أصبح من الممكن إجراء join باستخدام صيغة الأقل أو يساوي، وكذلك الصيغتين الصارمتين الأكبر والأقل، لعمود ASOF ضمن صياغة ON. #7282 (Artem Zuikov)
- تحسين partial merge join. #7070 (Artem Zuikov)
- عدم استخدام أكثر من 98K من الذاكرة في دوال uniqCombined. #7236, #7270 (Azat Khuzhin)
- تفريغ أجزاء جدول joining الأيمن إلى القرص في PartialMergeJoin (إذا لم تتوفر ذاكرة كافية). ثم إعادة تحميل البيانات عند الحاجة. #7186 (Artem Zuikov)
تحسين الأداء
- تسريع joinGet عند استخدام وسائط ثابتة عبر تجنب تكرار البيانات. #7359 (Amos Bird)
- العودة مبكرًا إذا كان الاستعلام الفرعي فارغًا. #7007 (小路)
- تحسين تحليل تعبير SQL في Values. #6781 (tavplubix)
تحسينات البناء والاختبار والتحزيم
- تعطيل بعض مكونات contrib للتجميع المتقاطع إلى Mac OS. #7101 (Ivan)
- إضافة الربط المفقود مع PocoXML لـ clickhouse_common_io. #7200 (Azat Khuzhin)
- قبول عدة وسائط لتصفية الاختبارات في clickhouse-test. #7226 (Alexander Kuzmenkov)
- تمكين musl و jemalloc لمعمارية ARM. #7300 (Amos Bird)
- إضافة المعلَمة
--client-optionإلىclickhouse-testلتمرير معلمات إضافية إلى العميل. #7277 (Nikolai Kochetov) - الحفاظ على إعدادات config الحالية عند ترقية حزمة rpm. #7103 (filimonov)
- إصلاح الأخطاء التي اكتشفها PVS. #7153 (Artem Zuikov)
- إصلاح build على Darwin. #7149 (Ivan)
- التوافق مع glibc 2.29. #7142 (Amos Bird)
- التأكد من أن dh_clean لا يلمس ملفات source المحتملة. #7205 (Amos Bird)
- محاولة تجنب التعارض عند التحديث من altinity rpm، إذ يحتوي على ملف config مُعبّأ بشكل منفصل في clickhouse-server-common. #7073 (filimonov)
- تحسين بعض ملفات الترويسة لتسريع عمليات إعادة البناء. #7212, #7231 (Alexander Kuzmenkov)
- إضافة اختبارات أداء لـ Date و DateTime. #7332 (Vasily Nemkov)
- إصلاح بعض الاختبارات التي كانت تحتوي على mutations غير حتمية. #7132 (Alexander Kazakov)
- إضافة build مع MemorySanitizer إلى CI. #7066 (Alexander Kuzmenkov)
- تجنب استخدام قيم غير مهيأة في MetricsTransmitter. #7158 (Azat Khuzhin)
- إصلاح بعض المشكلات في Fields التي اكتشفها MemorySanitizer. #7135, #7179 (Alexander Kuzmenkov), #7376 (Amos Bird)
- إصلاح السلوك غير المعرّف في murmurhash32. #7388 (Amos Bird)
- إصلاح السلوك غير المعرّف في StoragesInfoStream. #7384 (tavplubix)
- إصلاح اختزال التعبيرات الثابتة لمحركات قواعد البيانات الخارجية (MySQL و ODBC و JDBC). في الإصدارات السابقة، لم يكن ذلك يعمل مع عدة تعبيرات ثابتة، ولم يكن يعمل إطلاقًا مع Date و DateTime و UUID. يعالج هذا #7245 #7252 (alexey-milovidov)
- إصلاح خطأ data race الذي يرصده ThreadSanitizer في LIVE VIEW عند الوصول إلى المتغير no_users_thread. #7353 (vzakaznikov)
- إزالة رموز malloc من libcommon #7134, #7065 (Amos Bird)
- إضافة الراية العامة ENABLE_LIBRARIES لتعطيل جميع المكتبات. #7063 (proller)
تنظيف الشيفرة
- تعميم مستودع الإعدادات تمهيدًا لدعم DDL لـ Dictionaries. #7155 (alesapin)
- محلّل لـ DDL الخاص بالقواميس دون أي دلالات. #7209 (alesapin)
- تقسيم
ParserCreateQueryإلى محلّلات أصغر ومنفصلة. #7253 (alesapin) - إعادة هيكلة بسيطة وإعادة تسمية في ما يتعلق بالقواميس الخارجية. #7111 (alesapin)
- إعادة هيكلة بعض الشيفرة تمهيدًا للتحكم في الوصول المستند إلى الأدوار. #7235 (Vitaly Baranov)
- بعض التحسينات في شيفرة DatabaseOrdinary. #7086 (Nikita Vasilev)
- عدم استخدام المكرّرات في الدالتين
find()وemplace()في جداول التجزئة. #7026 (Alexander Kuzmenkov) - إصلاح
getMultipleValuesFromConfigفي الحالة التي لا يكون فيها جذر المعامل فارغًا. #7374 (Mikhail Korotov) - إزالة بعض الشيفرة المكررة (TemporaryFile و TemporaryFileStream) #7166 (Artem Zuikov)
- تحسين قابلية قراءة الشيفرة قليلًا (
MergeTreeData::getActiveContainingPart). #7361 (Vladimir Chebotarev) - انتظار جميع المهام المجدولة التي تستخدم كائنات محلية إذا كانت
ThreadPool::schedule(...)تُطلق استثناءً. إعادة تسميةThreadPool::schedule(...)إلىThreadPool::scheduleOrThrowOnError(...)و إصلاح التعليقات لتوضيح أنها قد تُطلق استثناءً. #7350 (tavplubix)
إصدار ClickHouse 19.15
إصدار ClickHouse 19.15.4.10، 2019-10-31
إصلاح الأخطاء
- أُضيفت معالجة SQL_TINYINT وSQL_BIGINT، وأُصلحت معالجة نوع مصدر البيانات SQL_FLOAT في ODBC Bridge. #7491 (Denis Glazachev)
- أصبح مسموحًا بوجود بعض الأجزاء على القرص أو وحدة التخزين الوجهة في MOVE PARTITION. #7434 (Vladimir Chebotarev)
- أُصلحت قيم NULL في الأعمدة من النوع Nullable عبر ODBC-bridge. #7402 (Vasily Nemkov)
- أُصلح INSERT إلى Distributed على عقدة غير محلية مع أعمدة MATERIALIZED. #7377 (Azat Khuzhin)
- أُصلحت الدالة getMultipleValuesFromConfig. #7374 (Mikhail Korotov)
- أُصلحت مشكلة استخدام timeout الخاص بـ HTTP keep alive بدلًا من timeout الخاص بـ TCP keep alive. #7351 (Vasily Nemkov)
- الانتظار حتى انتهاء جميع المهام عند حدوث استثناء (يُصلح حالات segfault نادرة). #7350 (tavplubix)
- عدم الدفع إلى MVs عند الإدراج في Kafka table. #7265 (Ivan)
- تعطيل متعقب الذاكرة لمكدس الاستثناءات. #7264 (Nikolai Kochetov)
- أُصلح كود غير سليم في تحويل الاستعلام لقاعدة بيانات خارجية. #7252 (alexey-milovidov)
- تجنّب استخدام قيم غير مهيأة في MetricsTransmitter. #7158 (Azat Khuzhin)
- أُضيف مثال على إعداد يتضمن وحدات macro للاختبارات (alexey-milovidov)
إصدار ClickHouse 19.15.3.6، 2019-10-09
إصلاح الأخطاء
- تم إصلاح
bad_variantفي القاموس المعتمد على hash. (alesapin) - تم إصلاح خلل في استعلام ATTACH PART كان يتسبب في segmentation fault. (alesapin)
- تم إصلاح حساب الوقت في
MergeTreeData. (Vladimir Chebotarev) - تنفيذ
commitإلى Kafka بشكل صريح بعد اكتمال الكتابة. #7175 (Ivan) - تم تسلسل قيم NULL بشكل صحيح في فهارس min/max لأجزاء MergeTree. #7234 (Alexander Kuzmenkov)
إصدار ClickHouse 19.15.2.2، 2019-10-01
ميزة جديدة
- التخزين المتدرج: دعم استخدام وحدات تخزين متعددة للجداول التي تستخدم محرك MergeTree. يمكن تخزين البيانات الحديثة على SSD ونقل البيانات القديمة تلقائيًا إلى HDD. (مثال). #4918 (Igr) #6489 (alesapin)
- إضافة دالة جدول
inputلقراءة البيانات الواردة في استعلامINSERT SELECT. #5450 (palasonic1) #6832 (Anton Popov) - إضافة تخطيط dictionary
sparse_hashed، وهو مكافئ وظيفيًا للتخطيطhashed، لكنه أكثر كفاءة في استخدام الذاكرة. فهو يستخدم ذاكرة أقل بنحو الضعف، مقابل بطء في استرجاع القيم. #6894 (Azat Khuzhin) - تنفيذ إمكانية تحديد قائمة بالمستخدمين للوصول إلى القواميس. ولا تُستخدم إلا قاعدة البيانات المتصلة حاليًا. #6907 (Guillaume Tassery)
- إضافة الخيار
LIMITإلى استعلامSHOW. #6944 (Philipp Malkovsky) - إضافة الدالة
bitmapSubsetLimit(bitmap, range_start, limit)، التي تُرجع مجموعة فرعية من أصغرlimitقيم في المجموعة بحيث لا تقل عنrange_start. #6957 (Zhichang Yu) - إضافة الدالتين
bitmapMinوbitmapMax. #6970 (Zhichang Yu) - إضافة الدالة
repeatالمرتبطة بـ issue-6648 #6999 (flynn)
ميزة تجريبية
- تنفيذ إصدار من Merge Join (داخل الذاكرة) لا يغيّر الـ pipeline الحالية. تكون النتيجة مرتبة جزئيًا حسب مفتاح الدمج. عيّن
partial_merge_join = 1لاستخدام هذه الميزة. لا يزال Merge Join قيد التطوير. #6940 (Artem Zuikov) - إضافة محرك
S3ودالة جدول. لا يزال هذا قيد التطوير (لا يوجد دعم للمصادقة بعد). #5596 (Vladimir Chebotarev)
تحسينات
- يُدرَج كلّ سجل يُقرأ من Kafka إدراجًا ذريًا. وهذا يحلّ تقريبًا جميع المشكلات المعروفة في محرك Kafka. #6950 (Ivan)
- تحسينات على التبديل التلقائي عند الفشل للاستعلامات الموزعة. تم تقليل وقت التعافي، وأصبح الآن قابلًا للتهيئة ويمكن الاطلاع عليه في
system.clusters. #6399 (Vasily Nemkov) - دعم القيم الرقمية لتعدادات Enums مباشرةً في قسم
IN. #6766 #6941 (dimarub2000) - دعم عمليات إعادة التوجيه في تخزين URL (اختياري، ومعطّل افتراضيًا). #6914 (maqroll)
- إضافة رسالة معلومات عند اتصال عميل بإصدار أقدم بخادم. #6893 (Philipp Malkovsky)
- إزالة الحد الأقصى لمدة الانتظار لآلية backoff عند إرسال البيانات في الجداول الموزعة #6895 (Azat Khuzhin)
- إضافة إمكانية إرسال profile events (counters) بقيم cumulative إلى graphite. ويمكن تمكين ذلك ضمن
<events_cumulative>فيconfig.xmlالخاص بالخادم. #6969 (Azat Khuzhin) - إضافة إمكانية تحويل النوع
Tتلقائيًا إلىLowCardinality(T)عند إدراج البيانات في عمود من النوعLowCardinality(T)بصيغة Native format عبر HTTP. #6891 (Nikolai Kochetov) - إضافة إمكانية استخدام الدالة
hexمن دون استخدامreinterpretAsStringمعFloat32وFloat64. #7024 (Mikhail Korotov)
تحسينات البناء/الاختبار/إعداد الحزم
- أُضيف
gdb-indexإلى الملف التنفيذيclickhouseمع معلومات تصحيح الأخطاء. سيؤدي ذلك إلى تسريع وقت بدء تشغيلgdb. #6947 (alesapin) - تسريع تحزيم deb باستخدام
dpkg-debالمعدَّل الذي يستخدمpigz. #6960 (alesapin) - ضبط
enable_fuzzing = 1لتمكين instrumentation الخاصة بـ libfuzzer في جميع شيفرات المشروع. #7042 (kyprizel) - إضافة اختبار smoke للبناء المُجزّأ في CI. #7061 (alesapin)
- إضافة بناء باستخدام MemorySanitizer إلى CI. #7066 (Alexander Kuzmenkov)
- استبدال
libsparsehashبـsparsehash-c11#6965 (Azat Khuzhin)
إصلاح الأخطاء
- إصلاح تراجع الأداء في تحليل الفهارس للمفاتيح المعقدة في الجداول الكبيرة. ويعالج هذا المشكلة #6924. #7075 (alexey-milovidov)
- إصلاح خطأ منطقي كان يتسبب في حدوث أعطال segfault عند القراءة من topic فارغ في Kafka. #6909 (Ivan)
- إصلاح الإغلاق المبكر جدًا لاتصال MySQL في
MySQLBlockInputStream.cpp. #6882 (Clément Rodriguez) - استعادة دعم نوى Linux القديمة جدًا (إصلاح #6841) #6853 (alexey-milovidov)
- إصلاح احتمال فقدان البيانات في استعلام
insert selectفي حال وجود block فارغ في تدفق الإدخال. #6834 #6862 #6911 (Nikolai Kochetov) - إصلاح الدالة
АrrayEnumerateUniqRankedعند وجود مصفوفات فارغة في params #6928 (proller) - إصلاح الاستعلامات المعقدة التي تتضمن ARRAY JOIN والاستعلامات الفرعية العامة. #6934 (Ivan)
- إصلاح الخطأ
Unknown identifierفي ORDER BY و GROUP BY عند وجود عدة JOINs #7022 (Artem Zuikov) - إصلاح تحذير
MSanأثناء تنفيذ دالة تحتوي على argument من نوعLowCardinality. #7062 (Nikolai Kochetov)
تغيير غير متوافق مع الإصدارات السابقة
- تم تغيير تنسيق تسلسل حالات الدوال التجميعية bitmap* لتحسين الأداء. ولا يمكن قراءة الحالات المُسلسلة لـ bitmap* من الإصدارات السابقة. #6908 (Zhichang Yu)
إصدار ClickHouse 19.14
إصدار ClickHouse 19.14.7.15، 2019-10-02
إصلاح الأخطاء
- يتضمن هذا الإصدار أيضًا جميع إصلاحات الأخطاء الواردة في 19.11.12.69.
- أُصلح التوافق للاستعلامات الموزعة بين 19.14 والإصدارات الأقدم. ويعالج ذلك #7068. #7069 (alexey-milovidov)
إصدار ClickHouse 19.14.6.12، 2019-09-19
إصلاح الأخطاء
- إصلاح للدالة
АrrayEnumerateUniqRankedعند وجود مصفوفات فارغة في المعلمات. #6928 (proller) - تم إصلاح اسم الاستعلام الفرعي في الاستعلامات التي تتضمن
ARRAY JOINوGLOBAL IN subqueryمع alias. يُستخدَم alias الاستعلام الفرعي كاسم للجدول الخارجي إذا كان محددًا. #6934 (Ivan)
تحسينات البناء/الاختبار/إعداد الحزم
- إصلاح الاختبار غير المستقر
00715_fetch_merged_or_mutated_part_zookeeperبإعادة كتابته كسكربت shell لأنه يتطلب انتظار تطبيق عمليات mutations. #6977 (Alexander Kazakov) - إصلاح فشل UBSan وMemSan في الدالة
groupUniqArrayمع وسيط مصفوفة فارغ. وكان السبب وضعPaddedPODArrayفارغ في الخلية الصفرية منhash tableلأن المُنشئ لقيمة الخلية الصفرية لم يُستدعَ. #6937 (Amos Bird)
إصدار ClickHouse 19.14.3.3، 2019-09-10
ميزة جديدة
- المُعدِّل
WITH FILLلـORDER BY. (استكمالًا لـ #5069) #6610 (Anton Popov) - المُعدِّل
WITH TIESلـLIMIT. (استكمالًا لـ #5069) #6610 (Anton Popov) - تفسير القيمة الحرفية
NULLغير المحاطة بعلامات اقتباس على أنها NULL (إذا كان الإعدادformat_csv_unquoted_null_literal_as_null=1). وتهيئة الحقول الفارغة بالقيم الافتراضية إذا كان نوع بيانات هذا الحقل غير Nullable (إذا كان الإعدادinput_format_null_as_default=1). #5990 #6055 (tavplubix) - دعم أحرف البدل في مسارات دوال الجدول
fileوhdfs. إذا كان المسار يحتوي على أحرف بدل، فسيكون الجدول للقراءة فقط. مثال على الاستخدام:select * from hdfs('hdfs://hdfs1:9000/some_dir/another_dir/*/file{0..9}{0..9}')وselect * from file('some_dir/{some_file,another_file,yet_another}.tsv', 'TSV', 'value UInt32'). #6092 (Olga Khvostikova) - جدول
system.metric_logجديد يخزّن قيمsystem.eventsوsystem.metricsبفاصل زمني محدد. #6363 #6467 (Nikita Mikhaylov) #6530 (alexey-milovidov) - السماح بكتابة السجلات النصية الخاصة بـ ClickHouse إلى جدول
system.text_log. #6037 #6103 (Nikita Mikhaylov) #6164 (alexey-milovidov) - عرض الرموز الخاصة في تتبعات المكدس (ويتم ذلك عبر تحليل جداول الرموز لملفات ELF). أُضيفت معلومات عن الملف ورقم السطر في تتبعات المكدس إذا كانت معلومات Debug موجودة. تسريع البحث عن أسماء الرموز عبر فهرسة الرموز الموجودة في البرنامج. أُضيفت دوال SQL جديدة للفحص الداخلي:
demangleوaddressToLine. أُعيدت تسمية الدالةsymbolizeAddressإلىaddressToSymbolلتحقيق الاتساق. ستُرجع الدالةaddressToSymbolالاسم المشوَّه لأسباب تتعلق بالأداء، وعليك تطبيقdemangle. أُضيف الإعدادallow_introspection_functionsوهو معطّل افتراضيًا. #6201 (alexey-milovidov) - دالة الجدول
values(الاسم غير حساس لحالة الأحرف). تتيح القراءة من قائمةVALUESالمقترحة في #5984. مثال:SELECT * FROM VALUES('a UInt64, s String', (1, 'one'), (2, 'two'), (3, 'three')). #6217. #6209 (dimarub2000) - أُضيفت إمكانية تعديل إعدادات التخزين. الصياغة:
ALTER TABLE <table> MODIFY SETTING <setting> = <value>. #6366 #6669 #6685 (alesapin) - دعم إزالة الأجزاء المفصولة. الصياغة:
ALTER TABLE <table_name> DROP DETACHED PART '<part_id>'. #6158 (tavplubix) - قيود الجداول. تتيح إضافة قيد إلى تعريف الجدول ليُتحقق منه عند الإدراج. #5273 (Gleb Novikov) #6652 (alexey-milovidov)
- دعم العروض المادية المتسلسلة. #6324 (Amos Bird)
- تفعيل محلل الاستعلامات افتراضيًا لأخذ عيّنة من كل خيط تنفيذ للاستعلام مرة واحدة كل ثانية. #6283 (alexey-milovidov)
- تنسيق الإدخال
ORC. #6454 #6703 (akonyaev90) - أُضيفت دالتان جديدتان:
sigmoidوtanh(وهما مفيدتان لتطبيقات تعلّم الآلة). #6254 (alexey-milovidov) - الدالتان
hasToken(haystack, token)وhasTokenCaseInsensitive(haystack, token)للتحقق مما إذا كان الـ token المعطى موجودًا في haystack. والـ token هو أطول سلسلة فرعية بين محرفين ASCII غير أبجديين رقميين (أو عند حدود haystack). ويجب أن يكون الـ token سلسلة ثابتة. ويدعم ذلك تخصيص الفهرس tokenbf_v1. #6596, #6662 (Vasily Nemkov) - دالة جديدة
neighbor(value, offset[, default_value]). تتيح الوصول إلى القيمة السابقة أو التالية داخل العمود ضمن كتلة من البيانات. #5925 (Alex Krash) 6685365ab8c5b74f9650492c88a012596eb1b0c6 341e2e4587a18065c2da1ca888c73389f48ce36c Alexey Milovidov - أُنشئت الدالة
currentUser()التي تعيد اسم تسجيل دخول المستخدم المخوَّل. وأُضيف الاسم البديلuser()للتوافق مع MySQL. #6470 (Alex Krash) - دوال تجميعية جديدة
quantilesExactInclusiveوquantilesExactExclusive، كانت قد اقتُرحت في #5885. #6477 (dimarub2000) - الدالة
bitmapRange(bitmap, range_begin, range_end)التي تُرجع مجموعة جديدة ضمن النطاق المحدد (من دون تضمينrange_end). #6314 (Zhichang Yu) - الدالة
geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)التي تنشئ مصفوفة من سلاسل geohash بطول precision تغطي المنطقة المحددة. #6127 (Vasily Nemkov) - تنفيذ دعم استعلام INSERT مع جداول
Kafka. #6012 (Ivan) - أُضيف دعم العمودين الافتراضيين
_partitionو_timestampإلى محرك Kafka. #6400 (Ivan) - إمكانية إزالة البيانات الحساسة من
query_logوسجلات الخادم وقائمة العمليات باستخدام قواعد قائمة على التعبيرات النمطية. #5710 (filimonov)
ميزة تجريبية
- تنسيق بيانات الإدخال والإخراج
Template. يتيح تحديد format string مخصّصة لكلٍّ من الإدخال والإخراج. #4354 #6727 (tavplubix) - تنفيذ جداول
LIVE VIEWالتي طُرحت في الأصل في #2898، ثم جرى إعدادها في #3925، وبعد ذلك جرى تحديثها في #5541. راجع #5541 للاطلاع على وصف تفصيلي. #5541 (vzakaznikov) #6425 (Nikolai Kochetov) #6656 (vzakaznikov) لاحظ أن ميزةLIVE VIEWقد تُزال في الإصدارات القادمة.
إصلاح الأخطاء
- يحتوي هذا الإصدار أيضًا على جميع إصلاحات الأخطاء من 19.13 و19.11.
- إصلاح خطأ segfault عندما يحتوي الجدول على فهارس تخطٍّ ويحدث دمج رأسي. #6723 (alesapin)
- إصلاح TTL لكل عمود مع القيم الافتراضية غير البسيطة للأعمدة. سابقًا، في حالة force TTL merge مع الاستعلام
OPTIMIZE ... FINAL، كانت القيم منتهية الصلاحية تُستبدل بالقيم الافتراضية للنوع بدلًا من القيم الافتراضية للأعمدة التي يحددها المستخدم. #6796 (Anton Popov) - إصلاح مشكلة تكرار رسائل Kafka عند إعادة تشغيل الخادم بشكل عادي. #6597 (Ivan)
- إصلاح حلقة لا نهائية عند قراءة رسائل Kafka. لا توقِف/تستأنف الـ consumer عند الـ subscription مطلقًا، وإلا فقد يبقى متوقفًا إلى أجل غير مسمى في بعض السيناريوهات. #6354 (Ivan)
- إصلاح الاستثناء
Key expression contains comparison between inconvertible typesفي الدالةbitmapContains. #6136 #6146 #6156 (dimarub2000) - إصلاح خطأ segfault عند تفعيل
optimize_skip_unused_shardsمع غياب sharding key. #6384 (Anton Popov) - إصلاح شيفرة غير صحيحة في mutations قد تؤدي إلى تلف الذاكرة. إصلاح خطأ segfault عند قراءة العنوان
0x14c0، والذي قد يحدث بسبب تزامنDROP TABLEوSELECTمنsystem.partsأوsystem.parts_columns. إصلاح race condition في تجهيز mutation queries. إصلاح deadlock ناتج عنOPTIMIZEعلى الجداول Replicated وعمليات التعديل المتزامنة مثل ALTERs. #6514 (alexey-milovidov) - إزالة تسجيل verbose إضافي في واجهة MySQL #6389 (alexey-milovidov)
- استعادة إمكانية تحليل الإعدادات المنطقية من ‘true’ و’false’ في ملف الإعدادات. #6278 (alesapin)
- إصلاح تعطل في الدالتين
quantileوmedianمعNullable(Decimal128). #6378 (Artem Zuikov) - إصلاح احتمال إرجاع نتيجة غير مكتملة من استعلام
SELECTمع شرطWHEREعلى المفتاح الأساسي يتضمن تحويلًا إلى النوع Float. وكان السبب تحققًا غير صحيح من الرتابة في الدالةtoFloat. #6248 #6374 (dimarub2000) - التحقق من الإعداد
max_expanded_ast_elementsبالنسبة إلى mutations. مسح mutations بعدTRUNCATE TABLE. #6205 (Winter Zhang) - إصلاح نتائج JOIN لأعمدة المفتاح عند استخدامها مع
join_use_nulls. إرفاق قيم NULL بدلًا من القيم الافتراضية للأعمدة. #6249 (Artem Zuikov) - إصلاح فهارس التخطي مع الدمج الرأسي وalter. إصلاح الاستثناء
Bad size of marks file. #6594 #6713 (alesapin) - إصلاح تعطل نادر في
ALTER MODIFY COLUMNوالدمج العمودي عندما يكون أحد الأجزاء المدمجة/المعدلة فارغًا (0 صفوف) #6746 #6780 (alesapin) - أُصلح خلل في تحويل أنواع
LowCardinalityفيAggregateFunctionFactory. ويعالج هذا المشكلة #6257. #6281 (Nikolai Kochetov) - إصلاح سلوك غير صحيح واحتمال حدوث segfault في الدالتين التجميعيتين
topKوtopKWeighted. #6404 (Anton Popov) - أُصلح كود غير آمن في الدالة
getIdentifier. #6401 #6409 (alexey-milovidov) - أُصلح خلل في MySQL wire protocol (يُستخدم عند الاتصال بـ ClickHouse من عميل MySQL). وكان سببه heap buffer overflow في
PacketPayloadWriteBuffer. #6212 (Yuriy Baranov) - أُصلح تسرّب للذاكرة في الدالة
bitmapSubsetInRange. #6819 (Zhichang Yu) - إصلاح خلل نادر عند تنفيذ mutation بعد تغيير granularity. #6816 (alesapin)
- السماح افتراضيًا برسائل protobuf التي تحتوي على جميع الحقول. #6132 (Vitaly Baranov)
- معالجة خلل في الدالة
nullIfعند تمرير وسيطة بقيمةNULLكوسيطة ثانية. #6446 (Guillaume Tassery) - إصلاح خلل نادر في تخصيص/إلغاء تخصيص الذاكرة بشكل غير صحيح في قواميس cache ذات المفاتيح المعقدة مع حقول نصية، مما يؤدي إلى استهلاك غير محدود للذاكرة (ويبدو كتسرّب للذاكرة). يمكن إعادة إنتاج الخلل عندما يكون حجم السلسلة النصية قوة للعدد اثنين بدءًا من ثمانية (8، 16، 32، إلخ). #6447 (alesapin)
- أُصلح ترميز Gorilla مع التسلسلات الصغيرة، والذي كان يسبب الاستثناء
Cannot write after end of buffer. #6398 #6444 (Vasily Nemkov) - السماح باستخدام الأنواع غير القابلة لأن تكون Nullable في JOINs عند تفعيل
join_use_nulls. #6705 (Artem Zuikov) - تعطيل substitutions الخاصة بـ
Poco::AbstractConfigurationفي الاستعلام داخلclickhouse-client. #6706 (alexey-milovidov) - تجنب حدوث deadlock في
REPLACE PARTITION. #6677 (alexey-milovidov) - قد يؤدي استخدام
arrayReduceمع الوسيطات الثابتة إلى حدوث segfault. #6242 #6326 (alexey-milovidov) - إصلاح الأجزاء غير المتسقة التي قد تظهر إذا جرت استعادة replica بعد
DROP PARTITION. #6522 #6523 (tavplubix) - إصلاح حالة تعليق في الدالة
JSONExtractRaw. #6195 #6198 (alexey-milovidov) - إصلاح خطأ في التسلسل غير الصحيح لفهارس التخطي وفي aggregation مع adaptive granularity. #6594. #6748 (alesapin)
- إصلاح المعدّلات
WITH ROLLUPوWITH CUBEالخاصة بـGROUP BYمع two-level aggregation. #6225 (Anton Popov) - إصلاح خطأ في كتابة marks الخاصة بـ secondary indices مع adaptive granularity. #6126 (alesapin)
- إصلاح ترتيب التهيئة أثناء بدء تشغيل server. ونظرًا إلى أن
StorageMergeTree::background_task_handleيُهيَّأ فيstartup()، فقد تحاولMergeTreeBlockOutputStream::write()استخدامه قبل تهيئته. يكفي فقط التحقق مما إذا كان قد جرت تهيئته. #6080 (Ivan) - مسح buffer البيانات من عملية القراءة السابقة التي انتهت بحدوث error. #6026 (Nikolay)
- إصلاح خطأ عند تمكين adaptive granularity أثناء إنشاء replica جديدة لجدول Replicated*MergeTree. #6394 #6452 (alesapin)
- إصلاح crash محتمل أثناء بدء تشغيل server في حال وقوع Exception في
libunwindعند الوصول إلى البنيةThreadStatusغير المهيأة أثناء معالجة استثناء. #6456 (Nikita Mikhaylov) - إصلاح crash في الدالة
yandexConsistentHash. اكتُشف بواسطة اختبار fuzz. #6304 #6305 (alexey-milovidov) - إصلاح احتمال تعليق queries عندما يكون server مثقلاً ويصبح Global Thread pool قريبًا من الامتلاء. وتزداد احتمالية حدوث ذلك في clusters التي تضم عددًا كبيرًا من shards (بالمئات)، لأن distributed queries تخصص thread لكل connection إلى كل shard. على سبيل المثال، يمكن إعادة إنتاج هذه المشكلة إذا كانت cluster مكوّنة من 330 shard تعالج 30 query موزعة concurrent. تؤثر هذه المشكلة في جميع الإصدارات بدءًا من 19.2. #6301 (alexey-milovidov)
- إصلاح منطق الدالة
arrayEnumerateUniqRanked. #6423 (alexey-milovidov) - إصلاح segfault عند فك ترميز جدول الرموز. #6603 (Amos Bird)
- إصلاح Exception غير ذي صلة عند cast من
LowCardinality(Nullable)إلى column غير Nullable إذا لم يكن يحتوي على Nulls (على سبيل المثال، في query مثلSELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String). #6094 #6119 (Nikolai Kochetov) - أُزيلت علامات الاقتباس الزائدة من الوصف في جدول
system.settings. #6696 #6699 (alexey-milovidov) - تجنُّب احتمال حدوث توقف متبادل أثناء تنفيذ
TRUNCATEعلى جدول Replicated. #6695 (alexey-milovidov) - إصلاح القراءة وفق ترتيب مفتاح الفرز. #6189 (Anton Popov)
- إصلاح الاستعلام
ALTER TABLE ... UPDATEللجداول التي تستخدمenable_mixed_granularity_parts=1. #6543 (alesapin) - إصلاح الخلل الذي تسبّب به #4405 (منذ 19.4.0). كان يظهر في الاستعلامات على الجداول الموزعة فوق جداول MergeTree عندما لا يتضمن الاستعلام أي أعمدة (
SELECT 1). #6236 (alesapin) - أُصلح تجاوز السعة في القسمة الصحيحة من نوع موقّع إلى نوع غير موقّع. كان السلوك مطابقًا تمامًا لما يحدث في C أو C++ (قواعد ترقية الأعداد الصحيحة)، وقد يكون ذلك مفاجئًا. يُرجى ملاحظة أن تجاوز السعة لا يزال ممكنًا عند قسمة عدد موقّع كبير على عدد غير موقّع كبير أو العكس، لكن هذه الحالة أقل شيوعًا. كانت المشكلة موجودة في جميع إصدارات الخادم. #6214 #6233 (alexey-milovidov)
- تقييد الحد الأقصى لمدة السكون لآلية throttling عند تعيين
max_execution_speedأوmax_execution_speed_bytes. كما أُصلحت أخطاء غير صحيحة مثلEstimated query execution time (inf seconds) is too long. #5547 #6232 (alexey-milovidov) - أُصلحت المشكلات المتعلقة باستخدام الأعمدة
MATERIALIZEDوالأسماء المستعارة فيMaterializedView. #448 #3484 #3450 #2878 #2285 #3796 (Amos Bird) #6316 (alexey-milovidov) - إصلاح سلوك
FormatFactoryلتدفّقات الإدخال التي لم تُنفَّذ بوصفها processor. #6495 (Nikolai Kochetov) - أُصلح خطأ مطبعي. #6631 (Alex Ryndin)
- خطأ مطبعي في رسالة الخطأ ( is -> are ). #6839 (Denis Zhuravlev)
- أُصلح خطأ أثناء parsing قائمة الأعمدة من سلسلة نصية إذا كان النوع يحتوي على فاصلة (وكانت هذه المشكلة مرتبطة بوحدات التخزين
FileوURLوHDFS). #6217. #6209 (dimarub2000)
إصلاح أمني
- يتضمن هذا الإصدار أيضًا جميع إصلاحات الثغرات الأمنية من 19.13 و19.11.
- أُصلحت إمكانية أن يتسبب استعلام مُفبرك في تعطل الخادم بسبب تجاوز سعة المكدس في محلل SQL. كما أُصلحت أيضًا إمكانية حدوث تجاوز سعة المكدس في جداول Merge وDistributed، والعروض المادية، وشروط الأمان على مستوى الصف التي تتضمن استعلامات فرعية. #6433 (alexey-milovidov)
تحسينات
- تنفيذ صحيح للمنطق الثلاثي لـ
AND/OR. #6048 (Alexander Kazakov) - الآن ستُزال القيم والصفوف التي انتهت صلاحية TTL الخاصة بها بعد استعلام
OPTIMIZE ... FINALمن الأجزاء القديمة التي لا تحتوي على معلومات TTL أو التي تحتوي على معلومات TTL قديمة، مثلًا بعد استعلامALTER ... MODIFY TTL. أُضيفت الاستعلاماتSYSTEM STOP/START TTL MERGESلمنع/السماح بجدولة عمليات الدمج مع TTL وتصفية القيم منتهية الصلاحية في جميع عمليات الدمج. #6274 (Anton Popov) - إمكانية تغيير موقع ملف السجل الخاص بالعميل في ClickHouse باستخدام متغير البيئة
CLICKHOUSE_HISTORY_FILE. #6840 (filimonov) - إزالة الراية
dry_runمنInterpreterSelectQuery. … #6375 (Nikolai Kochetov) - دعم
ASOF JOINمع بندON. #6211 (Artem Zuikov) - دعم أفضل لفهارس التخطي في الطفرات والنسخ المتماثل. دعم للاستعلام
MATERIALIZE/CLEAR INDEX ... IN PARTITION. تؤديUPDATE x = xإلى إعادة حساب جميع الفهارس التي تستخدم العمودx. #5053 (Nikita Vasilev) - السماح بـ
ATTACHللعروض الحية (على سبيل المثال، عند بدء تشغيل الخادم) بغض النظر عن الإعدادallow_experimental_live_view. #6754 (alexey-milovidov) - بالنسبة إلى آثار المكدس التي يجمعها مُحلّل الاستعلامات، لا تُضمَّن إطارات المكدس التي يُنشئها مُحلّل الاستعلامات نفسه. #6250 (alexey-milovidov)
- تدعم الآن دوال الجداول
valuesوfileوurlوhdfsأعمدة ALIAS. #6255 (alexey-milovidov) - طرح استثناء إذا لم يكن لملف
config.dعنصر الجذر المطابق لعنصر الجذر في ملف الإعداد. #6123 (dimarub2000) - طباعة معلومات إضافية في رسالة الاستثناء لحالة
no space left on device. #6182, #6252 #6352 (tavplubix) - عند تحديد الشظايا في جدول
Distributedالتي سيغطيها استعلام قراءة (لأجلoptimize_skip_unused_shards= 1)، يتحقق ClickHouse الآن من الشروط في كلٍّ من البندينprewhereوwhereفي عبارةselect. #6521 (Alexander Kazakov) - تم تمكين
SIMDJSONللأجهزة التي لا تدعم AVX2 ولكنها تدعم SSE 4.2 ومجموعة التعليمات PCLMUL. #6285 #6320 (alexey-milovidov) - يمكن لـ ClickHouse العمل على أنظمة ملفات لا تدعم
O_DIRECT(مثل ZFS وBtrFS) دون أي ضبط إضافي. #4449 #6730 (alexey-milovidov) - دعم تمرير predicate إلى المصدر في الاستعلام الفرعي النهائي. #6120 (TCeason) #6162 (alexey-milovidov)
- تحسين استخراج المفاتيح في
JOIN ON#6131 (Artem Zuikov) - تحديث
SIMDJSON. #6285. #6306 (alexey-milovidov) - تحسين اختيار أصغر column للاستعلام
SELECT count(). #6344 (Amos Bird) - تمت إضافة parameter
strictإلىwindowFunnel(). عند تعيينstrict، تطبّقwindowFunnel()الشروط على القيم الفريدة فقط. #6548 (achimbab) - واجهة أكثر أمانًا لـ
mysqlxx::Pool. #6150 (avasiliev) - أصبح طول سطر الخيارات عند التنفيذ باستخدام الخيار
--helpمتوافقًا الآن مع حجم الطرفية. #6590 (dimarub2000) - تعطيل تحسين “القراءة بالترتيب” لعمليات aggregation من دون مفاتيح. #6599 (Anton Popov)
- تم تغيير رمز حالة HTTP لرموز الخطأ
INCORRECT_DATAوTYPE_MISMATCHمن500 Internal Server Errorالافتراضي إلى400 Bad Request. #6271 (Alexander Rodin) - نقل object Join من
ExpressionActionإلىAnalyzedJoin. ولم تعدExpressionAnalyzerوExpressionActionتعرفان شيئًا عن class Join. وأصبح منطقها مخفيًا خلف interface AnalyzedJoin. #6801 (Artem Zuikov) - إصلاح حالة deadlock محتملة في distributed queries عندما يكون أحد segments هو localhost لكن يُرسَل الاستعلام عبر connection شبكية. #6759 (alexey-milovidov)
- تغيير semantics الخاصة بـ
RENAMEلعدة جداول لتجنب حالات deadlocks المحتملة. #6757. #6756 (alexey-milovidov) - إعادة كتابة خادم التوافق مع MySQL لمنع تحميل payload الحزمة بالكامل في الذاكرة. مع تقليل استهلاك الذاكرة لكل connection إلى نحو
2 * DBMS_DEFAULT_BUFFER_SIZE(مخازن buffer للقراءة/الكتابة). #5811 (Yuriy Baranov) - نقل منطق تفسير alias في AST إلى خارج parser الذي لا يلزمه معرفة أي شيء عن دلالات الاستعلام. #6108 (Artem Zuikov)
- parsing أكثر أمانًا قليلًا لـ
NamesAndTypesList. #6408. #6410 (alexey-milovidov) clickhouse-copier: السماح باستخدامwhere_conditionمن config مع الاسم المستعارpartition_keyفي الاستعلام المستخدَم للتحقق من وجود partition (وكان يُستخدم سابقًا فقط في استعلامات قراءة البيانات). #6577 (proller)- تمت إضافة وسيطة
messageاختيارية إلىthrowIf. (#5772) #6329 (Vdimir) - أصبح استثناء الخادم الذي يحدث أثناء إرسال بيانات الإدراج يُعالَج في العميل أيضًا. #5891 #6711 (dimarub2000)
- تمت إضافة مقياس
DistributedFilesToInsert، الذي يعرض العدد الإجمالي للملفات في نظام الملفات المحددة للإرسال إلى الخوادم البعيدة بواسطة الجداول Distributed. ويُجمع هذا العدد عبر جميع الشاردات. #6600 (alexey-milovidov) - نُقل معظم منطق تجهيز JOINs من
ExpressionAction/ExpressionAnalyzerإلىAnalyzedJoin. #6785 (Artem Zuikov) - إصلاح تحذير TSan warning ‘lock-order-inversion’. #6740 (Vasily Nemkov)
- تحسين الرسائل المعلوماتية المتعلقة بغياب Linux capabilities. وتسجيل الأخطاء القاتلة بالمستوى “fatal”، ما يسهّل العثور عليها في
system.text_log. #6441 (alexey-milovidov) - عند تمكين تفريغ البيانات المؤقتة إلى disk لتقييد استخدام الذاكرة أثناء
GROUP BYوORDER BY، لم يكن يجري التحقق من المساحة الحرة على disk. يضيف هذا الإصلاح إعدادًا جديدًا هوmin_free_disk_space؛ وعندما تصبح المساحة الحرة على disk أقل من threshold، يتوقف الاستعلام ويُطلقErrorCodes::NOT_ENOUGH_SPACE. #6678 (Weiqing Xu) #6691 (alexey-milovidov) - أُزيل قفل القراءة/الكتابة التعاودي المرتبط بـ thread. فهذا لا معنى له، لأن threads يُعاد استخدامها بين queries. فقد يحصل استعلام
SELECTعلى قفل في thread واحدة، ويحتفظ بالقفل من thread أخرى، ثم يخرج من thread الأولى. وفي الوقت نفسه، قد يُعاد استخدام thread الأولى بواسطة استعلامDROP. ويؤدي ذلك إلى رسائل خاطئة مثل “Attempt to acquire exclusive lock recursively”. #6771 (alexey-milovidov) - تقسيم
ExpressionAnalyzer.appendJoin(). وتجهيز موضع فيExpressionAnalyzerمن أجلMergeJoin. #6524 (Artem Zuikov) - تمت إضافة plugin المصادقة
mysql_native_passwordإلى خادم التوافق مع MySQL. #6194 (Yuriy Baranov) - تقليل عدد استدعاءات
clock_gettime؛ وإصلاح توافق ABI بين debug/release فيAllocator(مشكلة طفيفة). #6197 (alexey-milovidov) - نُقلت
collectUsedColumnsمنExpressionAnalyzerإلىSyntaxAnalyzer. وأصبحSyntaxAnalyzerالآن يُنشئrequired_source_columnsبنفسه. #6416 (Artem Zuikov) - أُضيف الإعداد
joined_subquery_requires_aliasلفرض استخدام الأسماء المستعارة للاستعلامات الفرعية ودوال الجداول فيFROMعند وجود أكثر من جدول واحد (أي في الاستعلامات التي تتضمن JOINs). #6733 (Artem Zuikov) - استُخرج الصنف
GetAggregatesVisitorمنExpressionAnalyzer. #6458 (Artem Zuikov) system.query_log: تغيير نوع البيانات للعمودtypeإلىEnum. #6265 (Nikita Mikhaylov)- ربط ثابت لإضافة authentication
sha256_password. #6512 (Yuriy Baranov) - تجنّب تبعية إضافية لازمة لعمل الإعداد
compile. في الإصدارات السابقة، كان قد يظهر للمستخدم خطأ مثلcannot open crti.oوunable to find library -lcوما إلى ذلك. #6309 (alexey-milovidov) - مزيد من التحقق من صحة المُدخلات التي قد تأتي من replica خبيثة. #6303 (alexey-milovidov)
- أصبح ملف
clickhouse-obfuscatorمتاحًا الآن ضمن حزمةclickhouse-client. وفي الإصدارات السابقة، كان متاحًا باسمclickhouse obfuscator(مع مسافة). #5816 #6609 (dimarub2000) - تم إصلاح حالة توقف تام عند وجود استعلامين على الأقل يقرآن جدولين على الأقل بترتيب مختلف، مع استعلام آخر يُجري عملية DDL على أحد الجدولين. كما تم إصلاح حالة توقف تام أخرى نادرة جدًا. #6764 (alexey-milovidov)
- أُضيف العمود
os_thread_idsإلىsystem.processesوsystem.query_logلتحسين إمكانات تصحيح الأخطاء. #6763 (alexey-milovidov) - حل بديل لمشكلات extension
mysqlndفي PHP التي تحدث عند استخدامsha256_passwordكإضافة authentication افتراضية (كما هو موضح في #6031). #6113 (Yuriy Baranov) - إزالة موضع غير ضروري يتعامل مع أعمدة تغيّرت قابليتها لـ NULL. #6693 (Artem Zuikov)
- تعيين القيمة الافتراضية لـ
queue_max_wait_msإلى صفر، لأن القيمة الحالية (خمس ثوانٍ) غير منطقية. ونادرًا ما تكون لهذا الإعداد أي فائدة. وأُضيفت الإعداداتreplace_running_query_max_wait_msوkafka_max_wait_msوconnection_pool_max_wait_msلإزالة الالتباس. #6692 (alexey-milovidov) - استُخرج
SelectQueryExpressionAnalyzerمنExpressionAnalyzer، مع الإبقاء على الأخير للاستعلامات غير التابعة لـ SELECT. #6499 (Artem Zuikov) - أُزيلت تنسيقات الإدخال والإخراج المكررة. #6239 (Nikolai Kochetov)
- أصبح بإمكان المستخدم تجاوز إعدادَي
poll_intervalوidle_connection_timeoutعلى مستوى connection. #6230 (alexey-milovidov) - أصبح لدى
MergeTreeالآن خيار إضافي هوttl_only_drop_parts(مُعطَّل افتراضيًا) لتجنّب التقليم الجزئي للأجزاء، بحيث تُحذف بالكامل عند انتهاء صلاحية جميع الصفوف في الجزء. #6191 (Sergi Vladykin) - أُضيفت فحوصات للنوع إلى دوال فهرس Set. ويُطرَح استثناء إذا تلقّت الدالة نوعًا غير صحيح. ويُصلح هذا اختبار fuzz باستخدام UBSan. #6511 (Nikita Vasilev)
تحسينات الأداء
- تحسين الاستعلامات التي تتضمن العبارة
ORDER BY expressions، عندما يكون لـexpressionsبادئة مطابقة لمفتاح الترتيب في جداولMergeTree. ويخضع هذا التحسين للإعدادoptimize_read_in_order. #6054 #6629 (Anton Popov) - إتاحة استخدام عدة خيوط أثناء تحميل
partsوإزالتها. #6372 #6074 #6438 (alexey-milovidov) - تنفيذ صيغة دفعية لتحديث حالات الدوال التجميعية. وقد يؤدي ذلك إلى تحسينات في الأداء. #6435 (alexey-milovidov)
- استخدام مكتبة
FastOpsللدوالexpوlogوsigmoidوtanh. وFastOps هي مكتبة سريعة للرياضيات المتجهية من Michael Parakhin (المدير التقني في Yandex). وقد تحسن أداء الدالتينexpوlogبأكثر من 6 مرات. وستُرجع الدالتانexpوlogعند استخدام وسيطة من النوعFloat32قيمة من النوعFloat32(في الإصدارات السابقة كانتا تُرجعان دائمًاFloat64). والآن قد تُرجعexp(nan)القيمةinf. وقد لا تكون نتيجة الدالتينexpوlogأقرب قيمة يمكن للآلة تمثيلها إلى الإجابة الصحيحة. #6254 (alexey-milovidov) استخدام نسخة Danila Kutenin لجعل fastops يعمل #6317 (alexey-milovidov) - تعطيل تحسين المفاتيح المتتالية لـ
UInt8/16. #6298 #6701 (akuzm) - تحسين أداء مكتبة
simdjsonعبر التخلص من التخصيص الديناميكي فيParsedJson::Iterator. #6479 (Vitaly Baranov) - جلب الصفحات مسبقًا عند تخصيص الذاكرة باستخدام
mmap(). #6667 (akuzm) - إصلاح مشكلة أداء في مقارنة
Decimal. #6380 (Artem Zuikov)
تحسينات البناء/الاختبار/إعداد الحزم
- إزالة Compiler (إنشاء القوالب وقت التشغيل) لأن أداءه لم يعد يتفوق على الأداء الحالي. #6646 (alexey-milovidov)
- أُضيف اختبار أداء لإظهار تراجع الأداء في gcc-9 بصورة أكثر عزلاً. #6302 (alexey-milovidov)
- أُضيفت دالة الجدول
numbers_mt، وهي نسخة متعددة الخيوط منnumbers. كما جرى تحديث اختبارات الأداء بدوال hash. #6554 (Nikolai Kochetov) - وضع المقارنة في
clickhouse-benchmark#6220 #6343 (dimarub2000) - تحسين طباعة تتبعات المكدس قدر الإمكان. كما أُضيفت
SIGPROFكإشارة لتصحيح الأخطاء لطباعة تتبع المكدس لخيط تنفيذ قيد التشغيل. #6529 (alexey-milovidov) - كل دالة في ملف مستقل، الجزء 10. #6321 (alexey-milovidov)
- إزالة الثابت المكرر
TABLE_IS_READ_ONLY. #6566 (filimonov) - تغييرات تنسيق لطلب السحب الخاص بـ
StringHashMap#5417. #6700 (akuzm) - تحسين الاستعلام الفرعي المستخدم لإنشاء join في
ExpressionAnalyzer. #6824 (Artem Zuikov) - إزالة شرط زائد (اكتشفه PVS Studio). #6775 (akuzm)
- فصل واجهة جدول hash الخاصة بـ
ReverseIndex. #6672 (akuzm) - إعادة هيكلة الإعدادات. #6689 (alesapin)
- إضافة تعليقات إلى دوال فهرس
set. #6319 (Nikita Vasilev) - زيادة قيمة OOM score في إصدار Debug على Linux. #6152 (akuzm)
- أصبح HDFS HA يعمل الآن في إصدار التصحيح. #6650 (Weiqing Xu)
- أُضيف اختبار إلى
transform_query_for_external_database. #6388 (alexey-milovidov) - إضافة اختبار لعدة عروض مادية لجدول Kafka. #6509 (Ivan)
- إنشاء آلية build أفضل. #6500 (Ivan)
- إصلاح تكامل
test_external_dictionariesعند تشغيله تحت مستخدم غير root. #6507 (Nikolai Kochetov) - يظهر الخطأ عندما يتجاوز الحجم الإجمالي للحزم المكتوبة
DBMS_DEFAULT_BUFFER_SIZE. #6204 (Yuriy Baranov) - أُضيف اختبار لحالة تسابق في الجدول
RENAME#6752 (alexey-milovidov) - تجنّب تسابق البيانات في Settings ضمن
KILL QUERY. #6753 (alexey-milovidov) - أُضيف اختبار تكامل للتعامل مع الأخطاء في قاموس cache. #6755 (Vitaly Baranov)
- تعطيل تحليل ملفات الكائن ELF على Mac OS، لأن ذلك غير منطقي. #6578 (alexey-milovidov)
- محاولة تحسين مولّد سجل التغييرات. #6327 (alexey-milovidov)
- إضافة الخيار
-Wshadowإلى GCC. #6325 (kreuzerkrieg) - أُزيلت الشيفرة القديمة الخاصة بدعم
mimalloc. #6715 (alexey-milovidov) - يحدّد
zlib-ngإمكانات x86 ويحفظ هذه المعلومات في متغيرات عامة. يتم ذلك في استدعاء defalteInit، الذي قد تستدعيه خيوط مختلفة في الوقت نفسه. ولتجنب الكتابة متعددة الخيوط، يُنفَّذ ذلك عند بدء تشغيل المكتبة. #6141 (akuzm) - اختبار تراجعي لخطأ في join تم إصلاحه في #5192. #6147 (Bakhtiyor Ruziev)
- أُصلح تقرير MSan. #6144 (alexey-milovidov)
- إصلاح اختبار TTL غير المستقر. #6782 (Anton Popov)
- أُصلح تسابق بيانات زائف في الحقل
MergeTreeDataPart::is_frozen. #6583 (alexey-milovidov) - أُصلحت حالات timeout في اختبار fuzz. في الإصدار السابق، تمكّن من العثور على حالة تعليق زائفة في الاستعلام
SELECT * FROM numbers_mt(gccMurmurHash('')). #6582 (alexey-milovidov) - أُضيفت فحوصات Debug إلى
static_castللأعمدة. #6581 (alexey-milovidov) - دعم Oracle Linux في حزم RPM الرسمية. #6356 #6585 (alexey-milovidov)
- تغيير اختبارات أداء json من النوع
onceإلى النوعloop. #6536 (Nikolai Kochetov) - يعرّف
odbc-bridge.cppالدالةmain()، لذا يجب عدم تضمينه ضمنclickhouse-lib. #6538 (Orivej Desh) - اختبار لحالة crash في
FULL|RIGHT JOINعند وجود قيم NULL في مفاتيح الجدول الأيمن. #6362 (Artem Zuikov) - أُضيف اختبار لحدّ توسعة الأسماء المستعارة احتياطًا. #6442 (alexey-milovidov)
- جرى التحول من
boost::filesystemإلىstd::filesystemحيثما كان ذلك مناسبًا. #6253 #6385 (alexey-milovidov) - أُضيفت حزم RPM إلى الموقع الإلكتروني. #6251 (alexey-milovidov)
- أُضيف اختبار للاستثناء
Unknown identifierبعد إصلاحه في قسمIN. #6708 (Artem Zuikov) - جرى تبسيط
shared_ptr_helperلأن كثيرين يواجهون صعوبة في فهمه. #6675 (alexey-milovidov) - أُضيفت اختبارات الأداء للـ codec Gorilla وDoubleDelta بعد إصلاحهما. #6179 (Vasily Nemkov)
- قُسِّم اختبار integration
test_dictionariesإلى 4 اختبارات منفصلة. #6776 (Vitaly Baranov) - أُصلح تحذير PVS-Studio في
PipelineExecutor. #6777 (Nikolai Kochetov) - أصبح استخدام dictionary source من نوع
libraryمع ASan مسموحًا. #6482 (alexey-milovidov) - أُضيف خيار لإنشاء changelog من قائمة بطلبات السحب. #6350 (alexey-milovidov)
- جرى قفل
TinyLogStorage أثناء القراءة. #6226 (akuzm) - أُضيف check للتحقق من الروابط الرمزية المعطلة في CI. #6634 (alexey-milovidov)
- زِيدت المهلة لاختبار “stack overflow” لأنه قد يستغرق وقتًا طويلًا في build تصحيح الأخطاء. #6637 (alexey-milovidov)
- أُضيف check لرصد المسافات البيضاء المزدوجة. #6643 (alexey-milovidov)
- أُصلح تتبّع الذاكرة لـ
new/deleteعند الـ build باستخدام sanitizers. التتبّع غير واضح، وهو يمنع فقط استثناءات memory limit في الاختبارات. #6450 (Artem Zuikov) - أُعيد تفعيل التحقق من الرموز غير المعرّفة أثناء الربط. #6453 (Ivan)
- تجنّب إعادة بناء
hyperscanيوميًا. #6307 (alexey-milovidov) - إصلاح تقرير UBSan في
ProtobufWriter. #6163 (alexey-milovidov) - عدم السماح باستخدام query profiler مع sanitizers لأنه غير متوافق معها. #6769 (alexey-milovidov)
- إضافة اختبار لإعادة تحميل Dictionary بعد الإخفاق عبر المؤقّت. #6114 (Vitaly Baranov)
- إصلاح عدم الاتساق في نوع argument لـ
PipelineExecutor::prepareProcessor. #6494 (Nikolai Kochetov) - إضافة اختبار لعناوين URI غير الصالحة. #6493 (alexey-milovidov)
- إضافة المزيد من عمليات التحقق إلى الدالة
CAST. من المفترض أن يوفّر ذلك مزيدًا من المعلومات حول segmentation fault في الاختبار الضبابي. #6346 (Nikolai Kochetov) - إضافة دعم
gcc-9إلى الحاويةdocker/builderالتي تبني image محليًا. #6333 (Gleb Novikov) - اختبار للمفتاح الأساسي مع
LowCardinality(String). #5044 #6219 (dimarub2000) - إصلاح الاختبارات المتأثرة ببطء طباعة stack traces. #6315 (alexey-milovidov)
- إضافة حالة اختبار للعطل في
groupUniqArrayالذي أُصلح في #6029. #4402 #6129 (akuzm) - إصلاح اختبارات mutations الخاصة بالفهارس. #6645 (Nikita Vasilev)
- في اختبار الأداء، لا تقرأ query log للاستعلامات التي لم نشغّلها. #6427 (akuzm)
- أصبح الآن بالإمكان إنشاء materialized view بأي low cardinality types، بغضّ النظر عن الإعداد الخاص بالأنواع منخفضة عدد القيم المميزة المشبوهة. #6428 (Olga Khvostikova)
- تحديث الاختبارات للإعداد
send_logs_level. #6207 (Nikolai Kochetov) - إصلاح البناء مع gcc-8.2. #6196 (Max Akhmedov)
- إصلاح البناء مع libc++ الداخلي. #6724 (Ivan)
- إصلاح البناء المشترك مع مكتبة
rdkafka#6101 (Ivan) - إصلاحات لبناء Mac OS (غير مكتملة). #6390 (alexey-milovidov) #6429 (alex-zaitsev)
- إصلاح البناء “المقسَّم”. #6618 (alexey-milovidov)
- إصلاحات أخرى متعلقة بالبناء: #6186 (Amos Bird) #6486 #6348 (vxider) #6744 (Ivan) #6016 #6421 #6491 (proller)
تغيير غير متوافق مع الإصدارات السابقة
- أُزيلت دالة جدول نادرة الاستخدام
catBoostPoolوآلية التخزينCatBoostPool. إذا كنت قد استخدمت دالة جدول هذه، فيُرجى إرسال رسالة بريد إلكتروني إلىfeedback@clickhouse.com. لاحظ أن تكامل CatBoost لا يزال متاحًا وسيظل مدعومًا. #6279 (alexey-milovidov) - عُطِّل
ANY RIGHT JOINوANY FULL JOINافتراضيًا. اضبط الإعدادany_join_distinct_right_table_keysلتمكينهما. #5126 #6351 (Artem Zuikov)
إصدار ClickHouse 19.13
إصدار ClickHouse 19.13.6.51، 2019-10-02
إصلاح الأخطاء
- يتضمن هذا الإصدار أيضًا جميع إصلاحات الأخطاء الواردة في 19.11.12.69.
إصدار ClickHouse 19.13.5.44، 2019-09-20
إصلاحات الأخطاء
- يتضمن هذا الإصدار أيضًا جميع إصلاحات الأخطاء الواردة في 19.14.6.12.
- أُصلحت مشكلة احتمال دخول الجدول في حالة غير متسقة أثناء تنفيذ استعلام
DROPعلى جدول مُكرَّر عندما يتعذر الوصول إلى ZooKeeper. #6045 #6413 (Nikita Mikhaylov) - إصلاح خلل سباق بيانات في StorageMerge #6717 (alexey-milovidov)
- إصلاح خلل أُدخل في مُحلِّل الاستعلامات، وكان يؤدي إلى
recvلا نهائي من socket. #6386 (alesapin) - إصلاح الاستهلاك المفرط لـ CPU أثناء تنفيذ الدالة
JSONExtractRawعلى قيمة منطقية. #6208 (Vitaly Baranov) - إصلاح التراجع الذي حدث أثناء الدفع إلى materialized view. #6415 (Ivan)
- كانت دالة الجدول
urlتحتوي على ثغرة تسمح للمهاجم بحقن ترويسات HTTP عشوائية في الطلب. اكتشف هذه المشكلة Nikita Tikhomirov. #6466 (alexey-milovidov) - إصلاح فحص
ASTغير الضروري في فهرس Set. #6510 #6651 (Nikita Vasilev) - أُصلح تحليل قيم
AggregateFunctionالمضمّنة في الاستعلام. #6575 #6773 (Zhichang Yu) - أُصلح السلوك غير الصحيح لعائلة دوال
trim. #6647 (alexey-milovidov)
إصدار ClickHouse 19.13.4.32، 2019-09-10
إصلاحات الأخطاء
- يحتوي هذا الإصدار أيضًا على جميع إصلاحات أخطاء الأمان الواردة في 19.11.9.52 و19.11.10.54.
- تم إصلاح حالة
سباق بياناتفي الجدولsystem.partsوالاستعلامALTER. #6245 #6513 (alexey-milovidov) - تم إصلاح عدم تطابق الترويسة في التدفقات، والذي كان يحدث عند القراءة من جدول موزّع فارغ مع
sampleوprewhere. #6167 (Lixiang Qian) #6823 (Nikolai Kochetov) - تم إصلاح تعطل كان يحدث عند استخدام العبارة
INمع استعلام فرعي يحتوي علىTuple. #6125 #6550 (tavplubix) - تم إصلاح الحالة التي تتضمن أسماء الأعمدة نفسها في القسم
GLOBAL JOIN ON. #6181 (Artem Zuikov) - تم إصلاح تعطل عند تحويل الأنواع إلى
Decimalإذا كانت لا تدعم ذلك. ويُرمى استثناء بدلًا من ذلك. #6297 (Artem Zuikov) - تم إصلاح تعطل في الدالة
extractAll(). #6644 (Artem Zuikov) - أصبح تحويل الاستعلامات لدوال الجدول
MySQLوODBCوJDBCيعمل الآن بشكل صحيح مع استعلاماتSELECT WHEREالتي تحتوي على عدة تعبيراتAND. #6381 #6676 (dimarub2000) - تمت إضافة فحوصات للإعلانات المسبقة لتكامل MySQL 8. #6569 (Rafael David Tinoco)
إصلاح أمني
- إصلاح ثغرتين في codecs خلال مرحلة فك الضغط (يمكن لمستخدم خبيث تزوير بيانات مضغوطة بما يؤدي إلى تجاوز سعة المخزن المؤقت أثناء فك الضغط). #6670 (Artem Zuikov)
إصدار ClickHouse 19.13.3.26، 2019-08-22
إصلاحات الأخطاء
- إصلاح استعلام
ALTER TABLE ... UPDATEللجداول التي تحتوي علىenable_mixed_granularity_parts=1. #6543 (alesapin) - إصلاح NPE عند استخدام العبارة
INمع استعلام فرعي يحتوي على Tuple. #6125 #6550 (tavplubix) - تم إصلاح مشكلة تتمثل في أنه إذا عادت نسخة متماثلة متقادمة إلى العمل، فقد تظل تحتوي على جزء بيانات أزيلت بواسطة DROP PARTITION. #6522 #6523 (tavplubix)
- تم إصلاح مشكلة في parsing لملفات CSV #6426 #6559 (tavplubix)
- تم إصلاح سباق بيانات في جدول system.parts واستعلام ALTER. ويعالج هذا #6245. #6513 (alexey-milovidov)
- تم إصلاح كود خاطئ في عملية التعديل قد يؤدي إلى تلف الذاكرة. كما تم إصلاح segfault عند قراءة العنوان
0x14c0، الذي قد يحدث بسبب التزامن بينDROP TABLEوSELECTمنsystem.partsأوsystem.parts_columns. وتم أيضًا إصلاح race condition في إعداد mutation queries. كما تم إصلاح deadlock ناتج عنOPTIMIZEفي جداول Replicated وعمليات التعديل المتزامنة مثل ALTERs. #6514 (alexey-milovidov) - تم إصلاح احتمال فقدان البيانات بعد استعلام
ALTER DELETEعلى جدول يحتوي على skipping index. #6224 #6282 (Nikita Vasilev)
إصلاح أمني
- إذا كان لدى المهاجم حق الكتابة في ZooKeeper، وكان قادرًا على تشغيل خادم مخصّص يمكن الوصول إليه من الشبكة التي يعمل ضمنها ClickHouse، فبإمكانه إنشاء خادم خبيث مُعدّ خصيصًا يتصرف كنسخة متماثلة من ClickHouse وتسجيله في ZooKeeper. وعندما تجلب نسخة متماثلة أخرى جزء بيانات من النسخة المتماثلة الخبيثة، يمكنه إجبار clickhouse-server على الكتابة إلى أي مسار على نظام الملفات. اكتشف ذلك Eldar Zaitov من فريق أمن المعلومات في Yandex. #6247 (alexey-milovidov)
إصدار ClickHouse 19.13.2.19، 2019-08-14
ميزة جديدة
- محلل أداء بأخذ العينات على مستوى الاستعلام. مثال. #4247 (laplab) #6124 (alexey-milovidov) #6250 #6283 #6386
- أصبح بالإمكان تحديد قائمة من الأعمدة باستخدام التعبير
COLUMNS('regexp')، الذي يعمل كصيغة أكثر تطورًا من النجمة*. #5951 (mfridental), (alexey-milovidov) - أصبح
CREATE TABLE AS table_function()ممكنًا الآن #6057 (dimarub2000) - يُستخدم مُحسِّن Adam للانحدار التدرجي العشوائي افتراضيًا في دوال التجميع
stochasticLinearRegression()وstochasticLogisticRegression()، لأنه يحقق جودة جيدة من دون حاجة تُذكر إلى الضبط. #6000 (Quid37) - أُضيفت دوال للعمل مع رقم الأسبوع المخصص #5212 (Andy Yang)
- تعمل استعلامات
RENAMEالآن مع جميع محركات التخزين. #5953 (Ivan) - يمكن للعميل الآن تلقي السجلات من الخادم بأي مستوى مطلوب عبر تعيين
send_logs_level، بغض النظر عن مستوى السجل المحدد في إعدادات الخادم. #5964 (Nikita Mikhaylov)
تغيير غير متوافق مع الإصدارات السابقة
- أصبح الإعداد
input_format_defaults_for_omitted_fieldsمفعّلًا افتراضيًا. تتطلب عمليات الإدراج في الجداول من نوع Distributed أن تكون قيمة هذا الإعداد موحّدة على مستوى العنقود (يجب ضبطه قبل إجراء تحديث متدرّج). ويتيح ذلك احتساب تعبيرات القيم الافتراضية المعقدة للحقول المتروكة في تنسيقاتJSONEachRowوCSV*. وهذا هو السلوك المفترض، لكنه قد يؤدي إلى فرق طفيف جدًا في الأداء. #6043 (Artem Zuikov), #5625 (akuzm)
الميزات التجريبية
- خط معالجة جديد للاستعلامات. استخدم الخيار
experimental_use_processors=1لتمكينه. استخدمه على مسؤوليتك الخاصة. #4914 (Nikolai Kochetov)
إصلاحات الأخطاء
- تم إصلاح تكامل Kafka في هذا الإصدار.
- تم إصلاح ترميز
DoubleDeltaلـInt64عند استخدام قيمDoubleDeltaكبيرة، كما جرى تحسين ترميزDoubleDeltaللبيانات العشوائية فيInt32. #5998 (Vasily Nemkov) - تم إصلاح التقدير المبالغ فيه لـ
max_rows_to_readإذا كان الإعدادmerge_tree_uniform_read_distributionمضبوطًا على 0. #6019 (alexey-milovidov)
تحسين
- يُصدر استثناءً إذا كان ملف
config.dلا يحتوي على عنصر الجذر المطابق لعنصر الجذر في ملف الإعدادات #6123 (dimarub2000)
تحسين الأداء
تحسينات البناء/الاختبار/التحزيم
- إضافة الإبلاغ عن استخدام الذاكرة في اختبارات الأداء. #5899 (akuzm)
- إصلاح عملية البناء عند استخدام
libcxxخارجي #6010 (Ivan) - إصلاح عملية البناء المشترك مع مكتبة
rdkafka#6101 (Ivan)
إصدار ClickHouse 19.11
إصدار ClickHouse 19.11.13.74، 2019-11-01
إصلاحات الأخطاء
- تم إصلاح تعطل نادر في
ALTER MODIFY COLUMNوعمليات الدمج الرأسي عندما يكون أحد الأجزاء المدمجة/المعدّلة فارغًا (0 صفوف). #6780 (alesapin) - تحديث يدوي لـ
SIMDJSON. يعالج هذا احتمال إغراق ملفات stderr برسائل تشخيص JSON زائفة. #7548 (Alexander Kazakov) - تم إصلاح خطأ في امتداد ملف
mrkلعمليات التعديل (alesapin)
إصدار ClickHouse 19.11.12.69، 2019-10-02
إصلاحات الأخطاء
- تم إصلاح تراجع الأداء في تحليل الفهارس للمفاتيح المعقدة في الجداول الكبيرة. ويعالج هذا #6924. #7075 (alexey-milovidov)
- تجنّب حدوث SIGSEGV نادر أثناء إرسال البيانات في الجداول التي تستخدم محرك Distributed (
Failed to send batch: file with index XXXXX is absent). #7032 (Azat Khuzhin) - إصلاح الخطأ
Unknown identifierعند وجود عدة عمليات JOIN. ويعالج هذا #5254. #7022 (Artem Zuikov)
إصدار ClickHouse 19.11.11.57، 2019-09-13
- إصلاح خطأ منطقي كان يتسبب في تعطل segfault عند القراءة من topic فارغ في Kafka. #6902 #6909 (Ivan)
- إصلاح للدالة
АrrayEnumerateUniqRankedعند وجود مصفوفات فارغة في params. #6928 (proller)
إصدار ClickHouse 19.11.10.54، 2019-09-10
إصلاحات الأخطاء
- تخزين offsets لرسائل Kafka يدويًا ليتسنى تنفيذ commit لها كلها دفعة واحدة عبر جميع partitions. يعالج هذا احتمال حدوث تكرار في سيناريو «مستهلك واحد - عدة partitions». #6872 (Ivan)
إصدار ClickHouse 19.11.9.52، 2019-09-6
- تحسين معالجة الأخطاء في قواميس cache. #6737 (Vitaly Baranov)
- إصلاح خطأ في الدالة
arrayEnumerateUniqRanked. #6779 (proller) - إصلاح الدالة
JSONExtractعند استخراجTupleمن JSON. #6718 (Vitaly Baranov) - إصلاح فقدان محتمل للبيانات بعد استعلام
ALTER DELETEعلى جدول يحتوي على فهرس تخطٍ. #6224 #6282 (Nikita Vasilev) - إصلاح اختبار الأداء. #6392 (alexey-milovidov)
- Parquet: إصلاح قراءة الأعمدة المنطقية. #6579 (alexey-milovidov)
- إصلاح السلوك الخاطئ للدالة
nullIfمع الوسائط الثابتة. #6518 (Guillaume Tassery) #6580 (alexey-milovidov) - إصلاح مشكلة تكرار رسائل Kafka عند إعادة تشغيل الخادم بشكل عادي. #6597 (Ivan)
- إصلاح مشكلة قد تؤدي فيها عمليات
ALTER UPDATEأوALTER DELETEالطويلة إلى منع تشغيل عمليات الدمج العادية. ومنع تنفيذ التعديلات إذا لم يتوفر عدد كافٍ من الخيوط الحرة. #6502 #6617 (tavplubix) - إصلاح خطأ في معالجة “timezone” في ملف تهيئة الخادم. #6709 (alexey-milovidov)
- إصلاح اختبارات Kafka. #6805 (Ivan)
إصلاح أمني
- إذا كان لدى المهاجم صلاحية الكتابة إلى ZooKeeper، وكان قادرًا على تشغيل خادم مخصص متاح عبر الشبكة التي يعمل عليها ClickHouse، فيمكنه إنشاء خادم خبيث مُعدّ خصيصًا يتصرف كنسخة متماثلة لـ ClickHouse ويسجّله في ZooKeeper. وعندما تجلب نسخة متماثلة أخرى جزء بيانات من النسخة المتماثلة الخبيثة، يمكنه إجبار clickhouse-server على الكتابة إلى مسار عشوائي على نظام الملفات. اكتشف ذلك Eldar Zaitov من فريق أمن المعلومات في Yandex. #6247 (alexey-milovidov)
إصدار ClickHouse 19.11.8.46، 2019-08-22
إصلاحات الأخطاء
- إصلاح استعلام
ALTER TABLE ... UPDATEللجداول التي تستخدمenable_mixed_granularity_parts=1. #6543 (alesapin) - إصلاح NPE عند استخدام العبارة
INمع استعلام فرعي يحتوي على tuple. #6125 #6550 (tavplubix) - أُصلحت مشكلة تتمثل في أن النسخة المتماثلة المتقادمة، إذا عادت للعمل، قد تظل تحتوي على أجزاء بيانات أُزيلت بواسطة
DROP PARTITION. #6522 #6523 (tavplubix) - أُصلحت مشكلة في تحليل ملفات CSV #6426 #6559 (tavplubix)
- أُصلح سباق بيانات في جدول
system.partsواستعلامALTER. ويؤدي ذلك إلى إصلاح #6245. #6513 (alexey-milovidov) - أُصلح كود غير صحيح في mutations قد يؤدي إلى تلف الذاكرة. كما أُصلح segfault عند قراءة العنوان
0x14c0، والذي قد يحدث بسبب التزامن بينDROP TABLEوSELECTمنsystem.partsأوsystem.parts_columns. وأُصلحت أيضًا حالة سباق في تجهيز mutation queries. وأُصلح توقف متبادل ناتج عنOPTIMIZEلجداول Replicated وعمليات التعديل المتزامنة مثل عبارات ALTER. #6514 (alexey-milovidov)
إصدار ClickHouse 19.11.7.40، 2019-08-14
إصلاح الأخطاء
- تم إصلاح تكامل Kafka في هذا الإصدار.
- إصلاح عطل segfault عند استخدام
arrayReduceمع الوسيطات الثابتة. #6326 (alexey-milovidov) - تم إصلاح خاصية الرتابة في
toFloat(). #6374 (dimarub2000) - إصلاح عطل segfault عند تفعيل
optimize_skip_unused_shardsوغياب مفتاح التقسيم إلى shards. #6384 (CurtizJ) - تم إصلاح منطق الدالة
arrayEnumerateUniqRanked. #6423 (alexey-milovidov) - أُزيل التسجيل التفصيلي الزائد من معالج MySQL. #6389 (alexey-milovidov)
- إصلاح السلوك غير الصحيح واحتمال حدوث أعطال segfault في الدالتين التجميعيتين
topKوtopKWeighted. #6404 (CurtizJ) - عدم إظهار الأعمدة الافتراضية في جدول
system.columns. وهذا مطلوب للحفاظ على التوافق مع الإصدارات السابقة. #6406 (alexey-milovidov) - إصلاح خلل في تخصيص الذاكرة للحقول النصية في قاموس cache ذي المفتاح المركب. #6447 (alesapin)
- إصلاح خلل عند تفعيل adaptive granularity أثناء إنشاء نسخة متماثلة جديدة لجدول
Replicated*MergeTree. #6452 (alesapin) - إصلاح حلقة لا نهائية عند قراءة رسائل Kafka. #6354 (abyss7)
- تم إصلاح احتمال تسبّب استعلام مُفبرك في تعطل الخادم بسبب تجاوز سعة المكدس في محلل SQL، وكذلك احتمال تجاوز سعة المكدس في جدولي
MergeوDistributed#6433 (alexey-milovidov) - تم إصلاح خطأ ترميز Gorilla في التسلسلات الصغيرة. #6444 (Enmk)
تحسين
- السماح للمستخدم بتجاوز إعدادَي
poll_intervalوidle_connection_timeoutعلى مستوى الاتصال. #6230 (alexey-milovidov)
إصدار ClickHouse 19.11.5.28، 2019-08-05
إصلاح الأخطاء
- أُصلحت مشكلة احتمال تعليق الاستعلامات عند زيادة الحمل على الخادم. #6301 (alexey-milovidov)
- أُصلح خطأ FPE في الدالة yandexConsistentHash. ويعالج هذا #6304. #6126 (alexey-milovidov)
- أُصلح خطأ في تحويل الأنواع
LowCardinalityداخلAggregateFunctionFactory. ويعالج هذا #6257. #6281 (Nikolai Kochetov) - أُصلح تحليل إعدادات
boolمن السلسلتينtrueوfalseفي ملفات التكوين. #6278 (alesapin) - أُصلح خطأ نادر يتعلق بعدم توافق ترويسات التدفق في الاستعلامات على جدول
Distributedفوق جدولMergeTreeعندما ينتقل جزء منWHEREإلىPREWHERE. #6236 (alesapin) - أُصلح تجاوز السعة في القسمة الصحيحة من نوع موقَّع إلى نوع غير موقَّع. ويعالج هذا #6214. #6233 (alexey-milovidov)
تغيير غير متوافق مع الإصدارات السابقة
- لا يزال
Kafkaمعطّلًا.
إصدار ClickHouse 19.11.4.24، 2019-08-01
إصلاح الأخطاء
- إصلاح خطأ في كتابة علامات الفهارس الثانوية مع adaptive granularity. #6126 (alesapin)
- إصلاح المعدِّلين
WITH ROLLUPوWITH CUBEفيGROUP BYمع two-level aggregation. #6225 (Anton Popov) - إصلاح تعليق في الدالة
JSONExtractRaw. أُصلح في #6195 #6198 (alexey-milovidov) - إصلاح segfault في
ExternalLoader::reloadOutdated(). #6082 (Vitaly Baranov) - إصلاح الحالة التي قد يُغلق فيها الخادم sockets الاستماع دون أن يتوقف، ويواصل خدمة الاستعلامات المتبقية. وقد ينتهي الأمر بوجود عمليتَي clickhouse-server قيد التشغيل. وأحيانًا قد يعيد الخادم الخطأ
bad_function_callللاستعلامات المتبقية. #6231 (alexey-milovidov) - إصلاح شرط غير صحيح وغير ضروري في حقل التحديث أثناء initial load للقواميس الخارجية عبر ODBC وMySQL وClickHouse وHTTP. يُصلح هذا #6069 #6083 (alexey-milovidov)
- إصلاح استثناء غير ذي صلة عند تحويل
LowCardinality(Nullable)إلى عمود غير Nullable إذا لم يكن يحتوي على NULLs (على سبيل المثال، في استعلام مثلSELECT CAST(CAST('Hello' AS LowCardinality(Nullable(String))) AS String). #6094 #6119 (Nikolai Kochetov) - إصلاح نتيجة غير deterministic للدالة التجميعية “uniq” في حالات نادرة جدًا. كان هذا الخطأ موجودًا في جميع إصدارات ClickHouse. #6058 (alexey-milovidov)
- حدوث segfault عند تعيين CIDR أعلى قليلًا من اللازم للدالة
IPv6CIDRToRange. #6068 (Guillaume Tassery) - إصلاح تسرّب صغير في الذاكرة عندما يُطلق الخادم عددًا كبيرًا من الاستثناءات من Contexts مختلفة. #6144 (alexey-milovidov)
- إصلاح الحالة التي يتوقف فيها الـ consumer مؤقتًا قبل الاشتراك ولا يُستأنف بعد ذلك. #6075 (Ivan) لاحظ أن Kafka معطّل في هذا الإصدار.
- مسح buffer بيانات Kafka من عملية القراءة السابقة التي انتهت بخطأ #6026 (Nikolay) لاحظ أن Kafka معطّل في هذا الإصدار.
- بما أن
StorageMergeTree::background_task_handleيُهيَّأ فيstartup()، فقد تحاولMergeTreeBlockOutputStream::write()استخدامه قبل تهيئته. ما عليك سوى التحقق مما إذا كان قد جرت تهيئته. #6080 (Ivan)
تحسينات في البناء/الاختبار/التحزيم
- أُضيفت حزم
rpmالرسمية. #5740 (proller) (alesapin) - أُضيفت إمكانية إنشاء حزم
.rpmو.tgzباستخدام سكربتpackager. #5769 (alesapin) - إصلاحات على نظام البناء «Arcadia». #6223 (proller)
تغيير غير متوافق مع الإصدارات السابقة
- لا يعمل
Kafkaفي هذا الإصدار.
إصدار ClickHouse 19.11.3.11، 2019-07-18
ميزة جديدة
- أُضيف دعم للعبارات المُحضّرة. #5331 (Alexander) #5630 (alexey-milovidov)
- مرمّزات ضغط الأعمدة
DoubleDeltaوGorilla#5600 (Vasily Nemkov) - أُضيف الإعداد
os_thread_priorityالذي يتيح التحكم في قيمة “nice” لخيوط معالجة الاستعلامات، والتي يستخدمها نظام التشغيل لضبط أولوية الجدولة الديناميكية. ويتطلب ذلك صلاحياتCAP_SYS_NICEلكي يعمل. ينفّذ هذا #5858 #5909 (alexey-milovidov) - أُضيفت الأعمدة
_topicو_offsetو_keyلمحرك Kafka #5382 (Ivan) لاحظ أن Kafka معطّل في هذا الإصدار. - إضافة مُركِّب الدالة التجميعية
-Resample#5590 (hcz) - الدالتان التجميعيتان
groupArrayMovingSum(win_size)(x)وgroupArrayMovingAvg(win_size)(x)، اللتان تحسبان المجموع/المتوسط المتحرك مع تقييد حجم النافذة أو بدونه. #5595 (inv2004) - إضافة المرادف
arrayFlatten<->flatten#5764 (hcz) - دمج الدالة H3
geoToH3من Uber. #4724 (Remen Ivan) #5805 (alexey-milovidov)
إصلاح الأخطاء
- تنفيذ DNS cache مع تحديث غير متزامن. تتولى thread منفصلة تحليل جميع المضيفين وتحديث DNS cache دوريًا (الإعداد
dns_cache_update_period). من المفترض أن يساعد ذلك عندما يتغير عنوان IP للمضيفين كثيرًا. #5857 (Anton Popov) - إصلاح segfault في codec
Deltaالذي يؤثر في الأعمدة ذات القيم التي يقل حجمها عن 32 بت. وقد أدى هذا الخطأ إلى تلف عشوائي في الذاكرة. #5786 (alesapin) - إصلاح segfault في merge الخاصة بـ TTL مع الأعمدة غير الفيزيائية في block. #5819 (Anton Popov)
- إصلاح خطأ نادر عند التحقق من part التي تحتوي على عمود
LowCardinality. سابقًا، كانcheckDataPartيفشل دائمًا مع أي part تحتوي على عمودLowCardinality. #5832 (alesapin) - تجنّب تعليق connections عندما يكون thread pool الخاص بالخادم ممتلئًا. وهذا مهم بالنسبة إلى connections القادمة من table function
remoteأو connections إلى shard من دون replicas عند طول مهلة الاتصال. يعالج هذا #5878 #5881 (alexey-milovidov) - دعم argument الثابتة للدالة
evalMLModel. يعالج هذا #5817 #5820 (alexey-milovidov) - إصلاح المشكلة التي كان فيها ClickHouse يحدد المنطقة الزمنية الافتراضية على أنها
UCTبدلًا منUTC. يعالج هذا #5804. #5828 (alexey-milovidov) - إصلاح underflow في buffer داخل
visitParamExtractRaw. يعالج هذا #5901 #5902 (alexey-milovidov) - ستُنفَّذ الآن queries الموزعة
DROP/ALTER/TRUNCATE/OPTIMIZE ON CLUSTERمباشرةً على replica القائد. #5757 (alesapin) - إصلاح
coalesceلـColumnConstمعColumnNullable، إلى جانب تغييرات ذات صلة. #5755 (Artem Zuikov) - إصلاح
ReadBufferFromKafkaConsumerبحيث يواصل قراءة الرسائل الجديدة بعدcommit()حتى إذا كان قد توقف سابقًا. #5852 (Ivan) - إصلاح نتائج JOIN من النوعين
FULLوRIGHTعند joining على مفاتيحNullableفي right table. #5859 (Artem Zuikov) - إصلاح محتمل لمشكلة النوم اللانهائي للاستعلامات منخفضة الأولوية. #5842 (alexey-milovidov)
- إصلاح race condition كان يتسبب في عدم ظهور بعض queries في query_log بعد استعلام
SYSTEM FLUSH LOGS. #5456 #5685 (Anton Popov) - تم إصلاح تحذير ASan
heap-use-after-freeفي ClusterCopier، وكان سببه watch يحاول استخدام كائن copier أُزيل بالفعل. #5871 (Nikolai Kochetov) - تم إصلاح مؤشّر
StringRefالخاطئ الذي تُعيده بعض تطبيقاتIColumn::deserializeAndInsertFromArena. كان هذا الخطأ يؤثر فقط على اختبارات الوحدة. #5973 (Nikolai Kochetov) - منع أعمدة ARRAY JOIN المصدرية والوسيطة من حجب الأعمدة الأخرى التي تحمل الاسم نفسه. #5941 (Artem Zuikov)
- إصلاح استعلامَي insert و select على محرك MySQL عند استخدام اقتباس المعرّفات بأسلوب MySQL. #5704 (Winter Zhang)
- أصبح استعلام
CHECK TABLEالآن يعمل مع عائلة محركات MergeTree. ويُرجع حالة الفحص ورسالة، إن وجدت، لكل part (أو لكل ملف في حالة المحركات الأبسط). كذلك تم إصلاح خطأ في fetch لجزء تالف. #5865 (alesapin) - إصلاح runtime لـ SPLIT_SHARED_LIBRARIES #5793 (Danila Kutenin)
- تم إصلاح تهيئة time zone عندما يكون
/etc/localtimeرابطًا رمزيًا نسبيًا مثل../usr/share/zoneinfo/Asia/Istanbul#5922 (alexey-milovidov) - clickhouse-copier: إصلاح use-after-free عند الإيقاف #5752 (proller)
- تم تحديث
simdjson. كما تم إصلاح المشكلة التي كانت تسمح بتحليل بعض ملفات JSON غير الصالحة التي تحتوي على بايتات صفرية بنجاح. #5938 (alexey-milovidov) - إصلاح مشكلة إيقاف تشغيل SystemLogs #5802 (Anton Popov)
- إصلاح التعليق عند اعتماد الشرط في invalidate_query على Dictionary. #6011 (Vitaly Baranov)
تحسين
- السماح بالعناوين التي يتعذر حلّها في إعدادات العنقود. ستُعتبر غير متاحة، وستُعاد محاولة حلّها عند كل محاولة connection. وهذا مفيد بشكل خاص في Kubernetes. يُصلح هذا #5714 #5924 (alexey-milovidov)
- إغلاق اتصالات TCP الخاملة (بمهلة قدرها ساعة واحدة افتراضيًا). وهذا مهم بشكل خاص للعناقيد الكبيرة التي تحتوي على distributed tables متعددة على كل server، لأن كل server قد يحتفظ بـ connection pool إلى كل server آخر، وبعد ذروة Concurrency للاستعلامات، قد تبقى connections معلّقة. يُصلح هذا #5879 #5880 (alexey-milovidov)
- تحسين جودة الدالة
topK. تم تغيير سلوك مجموعة SavingSpace لإزالة العنصر الأخير إذا كان وزن العنصر الجديد أكبر. #5833 #5850 (Guillaume Tassery) - يمكن الآن لدوال URL الخاصة بالتعامل مع domains أن تعمل مع عناوين URL غير المكتملة من دون scheme #5725 (alesapin)
- أُضيفت checksums إلى table
system.parts_columns. #5874 (Nikita Mikhaylov) - أُضيف Data type
Enumكمرادف لـEnum8أوEnum16. #5886 (dimarub2000) - إضافة variant منقول كامل البتات لـ codec
T64. وقد يؤدي ذلك إلى Compression أفضل معzstd. #5742 (Artem Zuikov) - يمكن الآن للشرط على الدالة
startsWithاستخدام primary key. يُصلح هذا #5310 و#5882 #5919 (dimarub2000) - السماح باستخدام
clickhouse-copierمع cluster topology ذات replication متقاطعة، عبر السماح باسم database فارغ. #5745 (nvartolomei) - استخدام
UTCكـ timezone افتراضية على نظام لا يحتوي علىtzdata(مثل حاوية Docker مجردة). قبل هذه الرقعة، كانت رسالة الخطأCould not determine local time zoneتُطبع، وكان server أو client يرفضان البدء. #5827 (alexey-milovidov) - استُعيد دعم argument ذي الفاصلة العائمة في الدالة
quantileTimingحفاظًا على backward compatibility. #5911 (alexey-milovidov) - إظهار table الذي ينقصه column في رسائل الخطأ. #5768 (Ivan)
- منع تشغيل query بنفس query_id من قِبل مستخدمين مختلفين #5430 (proller)
- كود أكثر متانة لإرسال metrics إلى Graphite. وسيعمل حتى أثناء عملية
RENAME TABLEطويلة ومتعددة. #5875 (alexey-milovidov) - ستُعرض رسائل خطأ أكثر وضوحًا عندما يتعذر على ThreadPool جدولة مهمة للتنفيذ. يعالج هذا #5305 #5801 (alexey-milovidov)
- عكس منطق ngramSearch ليصبح أكثر بداهة #5807 (Danila Kutenin)
- إضافة تحليل المستخدم في منشئ محرك HDFS #5946 (akonyaev90)
- تحديث القيمة الافتراضية للمعامل
max_ast_elements parameter#5933 (Artem Konovalov) - أُضيف مفهوم الإعدادات المهملة. ويمكن استخدام الإعداد المهمل
allow_experimental_low_cardinality_typeمن دون أي تأثير. 0f15c01c6802f7ce1a1494c12c846be8c98944cd Alexey Milovidov
تحسين الأداء
- زيادة عدد التدفقات لأوامر
SELECTمن جدول Merge لتحقيق توزيع أكثر اتساقًا للخيوط. تمت إضافة الإعدادmax_streams_multiplier_for_merge_tables. يحل هذا المشكلة #5797 #5915 (alexey-milovidov)
تحسينات في البناء/الاختبار/التحزيم
- إضافة اختبار للتوافق مع الإصدارات السابقة لتفاعل العميل والخادم مع إصدارات مختلفة من ClickHouse. #5868 (alesapin)
- معلومات تغطية الاختبارات في كل commit وطلب سحب. #5896 (alesapin)
- التكامل مع address sanitizer لدعم مخصصات الذاكرة المخصصة لدينا (
ArenaوArenaWithFreeLists) لتحسين تصحيح أخطاء “use-after-free”. #5728 (akuzm) - التحول إلى تنفيذ LLVM libunwind لمعالجة استثناءات C++ وطباعة تتبعات المكدس #4828 (Nikita Lapkov)
- إضافة تحذيرين آخرين من -Weverything #5923 (alexey-milovidov)
- إتاحة بناء ClickHouse باستخدام Memory Sanitizer. #3949 (alexey-milovidov)
- إصلاح تقرير ubsan المتعلق بالدالة
bitTestفي اختبار fuzz. #5943 (alexey-milovidov) - Docker: أضيفت إمكانية تهيئة مثيل ClickHouse يتطلب المصادقة. #5727 (Korviakov Andrey)
- تحديث librdkafka إلى الإصدار 1.1.0 #5872 (Ivan)
- إضافة مهلة عامة لاختبارات التكامل وتعطيل بعضها في شيفرة الاختبارات. #5741 (alesapin)
- إصلاح بعض حالات الفشل في ThreadSanitizer. #5854 (akuzm)
- يفرض الخيار
--no-undefinedعلى الرابط التحقق من وجود جميع الأسماء الخارجية أثناء الربط. وهذا مفيد جدًا لتتبع التبعيات الفعلية بين المكتبات في وضع البناء المنقسم. #5855 (Ivan) - إضافة اختبار أداء للمشكلة #5797 #5914 (alexey-milovidov)
- إصلاح التوافق مع gcc-7. #5840 (alexey-milovidov)
- إضافة دعم gcc-9. وهذا يصلح #5717 #5774 (alexey-milovidov)
- إصلاح خطأ قد يؤدي إلى ربط libunwind بشكل غير صحيح. #5948 (alexey-milovidov)
- إصلاح بعض التحذيرات التي اكتشفها PVS-Studio. #5921 (alexey-milovidov)
- إضافة دعم مبدئي للمحلل الساكن
clang-tidy. #5806 (alexey-milovidov) - تحويل وحدات الماكرو
endianالخاصة بـ BSD/Linux ( ‘be64toh’ and ‘htobe64’) إلى مكافئاتها في Mac OS X #5785 (Fu Chen) - تحسين دليل اختبارات التكامل. #5796 (Vladimir Chebotarev)
- إصلاح عملية البناء على macosx + gcc9 #5822 (filimonov)
- إصلاح خطأ مطبعي يصعب الانتباه إليه: aggreAGte -> aggregate. #5753 (akuzm)
- إصلاح عملية البناء على freebsd #5760 (proller)
- إضافة رابط إلى قناة YouTube التجريبية على الموقع الإلكتروني #5845 (Ivan Blinkov)
- CMake: إضافة خيار لرايات التغطية: WITH_COVERAGE #5776 (proller)
- إصلاح الحجم المبدئي لبعض عناصر
PODArrayالمضمنة. #5787 (akuzm) - clickhouse-server.postinst: إصلاح اكتشاف نظام التشغيل لـ centos 6 #5788 (proller)
- إضافة إنشاء حزمة Arch linux. #5719 (Vladimir Chebotarev)
- تقسيم Common/config.h حسب المكتبات (dbms) #5715 (proller)
- إصلاحات لمنصة البناء “Arcadia” #5795 (proller)
- إصلاحات لعملية بناء غير تقليدية (gcc9، بدون وحدات فرعية) #5792 (proller)
- اشتراط نوع صريح في
unalignedStoreبعد ثبوت قابليته للتسبب في أخطاء #5791 (akuzm) - إصلاحات لبناء macOS #5830 (filimonov)
- اختبار أداء يتعلق بميزة JIT الجديدة مع مجموعة بيانات أكبر، كما طُلب هنا #5263 #5887 (Guillaume Tassery)
- تشغيل الاختبارات ذات الحالة ضمن اختبار الإجهاد 12693e568722f11e19859742f56428455501fd2a (alesapin)
تغيير غير متوافق مع الإصدارات السابقة
Kafkaمعطّل في هذا الإصدار.- تم تفعيل
adaptive_index_granularity= 10MB افتراضيًا لجداولMergeTreeالجديدة. إذا أنشأت جداولMergeTreeجديدة على الإصدار 19.11+، فسيستحيل الرجوع إلى الإصدارات الأقدم من 19.6. #5628 (alesapin) - أُزيلت القواميس المضمّنة القديمة غير الموثقة التي كانت تستخدمها Yandex.Metrica. لم تعد الدوال
OSIn,SEIn,OSToRoot,SEToRoot,OSHierarchy,SEHierarchyمتاحة. إذا كنت تستخدم هذه الدوال، فأرسل بريدًا إلكترونيًا إلى clickhouse-feedback@yandex-team.com. ملاحظة: في اللحظة الأخيرة قررنا الإبقاء على هذه الدوال لفترة من الوقت. #5780 (alexey-milovidov)
إصدار ClickHouse 19.10
إصدار ClickHouse 19.10.1.5، 2019-07-12
ميزة جديدة
- إضافة
codecجديد للأعمدة:T64. صُمم لأعمدة(U)IntX/EnumX/Data(Time)/DecimalX. ويُفترض أن يكون مناسبًا للأعمدة ذات القيم الثابتة أو ذات النطاق الصغير. كما يتيحcodecنفسه تكبير نوع البيانات أو تصغيره دون إعادة الضغط. #5557 (Artem Zuikov) - إضافة محرك قاعدة بيانات
MySQLيتيح عرض جميع الجداول على خادم MySQL بعيد #5599 (Winter Zhang) - تنفيذ
bitmapContains. وهو أسرع بمرتين منbitmapHasAnyإذا كانت الصورة النقطية الثانية تحتوي على عنصر واحد. #5535 (Zhichang Yu) - دعم الدالة
crc32(بسلوك مطابق تمامًا لما هو موجود في MySQL أو PHP). لا تستخدمها إذا كنت بحاجة إلى دالة hash. #5661 (Remen Ivan) - تنفيذ استعلامات
SYSTEM START/STOP DISTRIBUTED SENDSللتحكم في عمليات insert غير المتزامنة إلى جداولDistributed. #4935 (Winter Zhang)
إصلاح الأخطاء
- تجاهل حدود تنفيذ الاستعلام والحد الأقصى لحجم الأجزاء ضمن حدود الدمج أثناء تنفيذ التعديلات. #5659 (Anton Popov)
- إصلاح خطأ قد يؤدي إلى إزالة التكرار من الكتل العادية (وهو نادر جدًا) وإدراج كتل مكررة (بمعدل أكثر شيوعًا). #5549 (alesapin)
- إصلاح الدالة
arrayEnumerateUniqRankedللوسائط التي تحتوي على مصفوفات فارغة #5559 (proller) - عدم الاشتراك في موضوعات Kafka من دون نية لجلب أي رسائل. #5698 (Ivan)
- جعل الإعداد
join_use_nullsبلا تأثير على الأنواع التي لا يمكن أن تكون داخل Nullable #5700 (Olga Khvostikova) - إصلاح أخطاء
Incorrect size of index granularity#5720 (coraxster) - إصلاح تجاوز السعة عند التحويل من Float إلى Decimal #5607 (coraxster)
- تفريغ المخزن المؤقت عند استدعاء المُدمِّر الخاص بـ
WriteBufferFromHDFS. وهذا يُصلح الكتابة إلىHDFS. #5684 (Xindong Peng)
تحسين
- التعامل مع الخلايا الفارغة في
CSVعلى أنها قيم افتراضية عند تفعيل الإعدادinput_format_defaults_for_omitted_fields. #5625 (akuzm) - تحميل القواميس الخارجية دون حظر. #5567 (Vitaly Baranov)
- يمكن تغيير مهلات الشبكة ديناميكياً للاتصالات المُنشأة بالفعل وفقاً للإعدادات. #4558 (Konstantin Podshumok)
- استخدام “public_suffix_list” للدالتين
firstSignificantSubdomainوcutToFirstSignificantSubdomain. ويستخدم هذا جدول hash مثالياً مُولَّداً بواسطةgperfمع قائمة مُولَّدة من الملف: https://publicsuffix.org/list/public_suffix_list.dat. (على سبيل المثال، أصبحنا الآن نتعرّف على النطاقac.ukعلى أنه غير مهم). #5030 (Guillaume Tassery) - اعتماد نوع البيانات
IPv6في جداول النظام؛ وتوحيد أعمدة معلومات العميل فيsystem.processesوsystem.query_log#5640 (alexey-milovidov) - استخدام الجلسات للاتصالات مع بروتوكول التوافق الخاص بـ MySQL. #5476 #5646 (Yuriy Baranov)
- دعم المزيد من استعلامات
ALTERمعON CLUSTER. #5593 #5613 (sundyli) - دعم القسم
<logger>في ملف الإعدادات الخاص بـclickhouse-local. #5540 (proller) - السماح بتشغيل استعلام باستخدام دالة الجدول
remoteفيclickhouse-local#5627 (proller)
تحسين الأداء
- أُضيفت إمكانية كتابة العلامة النهائية في نهاية أعمدة MergeTree. يتيح ذلك تجنّب عمليات القراءة غير الضرورية للمفاتيح الواقعة خارج نطاق بيانات الجدول. ولا يُفعَّل هذا إلا عند استخدام adaptive index granularity. #5624 (alesapin)
- جرى تحسين أداء جداول MergeTree على أنظمة الملفات البطيئة جدًا من خلال تقليل عدد استدعاءات النظام
stat. #5648 (alexey-milovidov) - أُصلح تراجع الأداء عند القراءة من جداول MergeTree الذي أُدخل في الإصدار 19.6. ويعالج المشكلة #5631. #5633 (alexey-milovidov)
تحسينات في البناء/الاختبار/التحزيم
- تم تنفيذ
TestKeeperكتطبيق لواجهة ZooKeeper يُستخدم للاختبار #5643 (alexey-milovidov) (levushkin aleksej) - اعتبارًا من الآن، يمكن تشغيل اختبارات
.sqlبشكل معزول لكل خادم، وبالتوازي، مع قاعدة بيانات عشوائية. يتيح ذلك تشغيلها بصورة أسرع، وإضافة اختبارات جديدة بإعدادات خادم مخصصة، والتأكد من أن الاختبارات المختلفة لا يؤثر بعضها في بعض. #5554 (Ivan) - إزالة
<name>و<metrics>من اختبارات الأداء #5672 (Olga Khvostikova) - تم إصلاح اختبار الأداء “select_format” لصيغ
Pretty#5642 (alexey-milovidov)
إصدار ClickHouse 19.9
إصدار ClickHouse 19.9.3.31، 2019-07-05
إصلاح الأخطاء
- إصلاح عطل segfault في ترميز Delta، الذي يؤثر في الأعمدة ذات القيم التي يقل حجمها عن 32 بت. وكان هذا الخطأ يؤدي إلى تلف عشوائي في الذاكرة. #5786 (alesapin)
- إصلاح خطأ نادر عند التحقق من جزء يحتوي على عمود LowCardinality. #5832 (alesapin)
- إصلاح عطل segfault في دمج TTL مع الأعمدة غير الفيزيائية في الكتلة. #5819 (Anton Popov)
- إصلاح احتمال تعليق الاستعلامات منخفضة الأولوية في حالة سكون لا نهائية. #5842 (alexey-milovidov)
- إصلاح طريقة تحديد ClickHouse للمنطقة الزمنية الافتراضية على أنها UCT بدلًا من UTC. #5828 (alexey-milovidov)
- إصلاح خطأ متعلق بتنفيذ استعلامات DROP/ALTER/TRUNCATE/OPTIMIZE ON CLUSTER الموزعة على النسخة المتماثلة التابعة قبل النسخة المتماثلة القائدة. والآن ستُنفَّذ مباشرةً على النسخة المتماثلة القائدة. #5757 (alesapin)
- إصلاح حالة تسابق كانت تتسبب في عدم ظهور بعض الاستعلامات في query_log فورًا بعد استعلام SYSTEM FLUSH LOGS. #5685 (Anton Popov)
- إضافة الدعم المفقود للوسائط الثابتة إلى الدالة
evalMLModel. #5820 (alexey-milovidov)
إصدار ClickHouse 19.9.2.4، 2019-06-24
ميزة جديدة
- طباعة معلومات عن الأجزاء المجمّدة في جدول
system.parts. #5471 (proller) - طلب كلمة مرور العميل عند بدء تشغيل
clickhouse-clientعلى tty إذا لم تكن مُعيّنة في الوسيطات #5092 (proller) - تنفيذ الدالتين
dictGetوdictGetOrDefaultلأنواع Decimal. #5394 (Artem Zuikov)
تحسين
- تهيئة Debian: إضافة مهلة انتظار لإيقاف الخدمة #5522 (proller)
- إضافة إعداد يمنع افتراضيًا إنشاء جدول بأنواع مشبوهة لـ LowCardinality #5448 (Olga Khvostikova)
- تُرجِع دوال الانحدار أوزان النموذج عند عدم استخدامها بصفتها State في الدالة
evalMLMethod. #5411 (Quid37) - إعادة تسمية طرائق الانحدار وتحسينها. #5492 (Quid37)
- واجهات أوضح لأدوات البحث في السلاسل النصية. #5586 (Danila Kutenin)
إصلاح خلل
- إصلاح فقدان محتمل للبيانات في Kafka #5445 (Ivan)
- إصلاح احتمال حدوث حلقة لا نهائية في تنسيق
PrettySpaceعند استدعائه من دون أي أعمدة #5560 (Olga Khvostikova) - إصلاح خطأ تجاوز السعة في UInt32 في النماذج الخطية. والسماح بتنفيذ eval لنموذج ML عندما تكون قيمة argument الخاصة بالنموذج غير ثابتة. #5516 (Nikolai Kochetov)
- يجب ألا يؤدي
ALTER TABLE ... DROP INDEX IF EXISTS ...إلى raise an exception إذا كان الفهرس المحدد غير موجود #5524 (Gleb Novikov) - إصلاح segfault مع
bitmapHasAnyفي scalar subquery #5528 (Zhichang Yu) - إصلاح خطأ يحدث عندما لا تعيد connection pool الخاصة بـ replication محاولة resolve للمضيف، حتى بعد إسقاط DNS cache. #5534 (alesapin)
- إصلاح
ALTER ... MODIFY TTLعلى ReplicatedMergeTree. #5539 (Anton Popov) - إصلاح INSERT في distributed table مع materialized column #5429 (Azat Khuzhin)
- إصلاح bad alloc عند تنفيذ TRUNCATE على تخزين Join #5437 (TCeason)
- في الإصدارات الحديثة من الحزمة tzdata، أصبحت بعض الملفات الآن روابط رمزية. وقد تعطلت الآلية الحالية لاكتشاف timezone الافتراضية، مما يؤدي إلى إعطاء أسماء خاطئة لبعض timezones. والآن، على الأقل، نفرض اسم timezone ليتوافق مع محتويات TZ إذا تم توفيره. #5443 (Ivan)
- إصلاح بعض الحالات النادرة جدًا في أداة البحث MultiVolnitsky عندما تكون needles الثابتة في sum بطول لا يقل عن 16KB. إذ كانت الخوارزمية تتجاهل النتائج السابقة أو تكتب فوقها، ما قد يؤدي إلى نتيجة غير صحيحة لـ
multiSearchAny. #5588 (Danila Kutenin) - إصلاح المشكلة التي كانت تمنع إعدادات طلبات ExternalData من استخدام ClickHouse settings. كذلك، لا يمكن حاليًا استخدام الإعدادات
date_time_input_formatوlow_cardinality_allow_in_native_formatبسبب غموض الأسماء (إذ يمكن تفسيرها في البيانات الخارجية على أنها format للجدول، وفي query على أنها setting). #5455 (Danila Kutenin) - إصلاح خلل كانت فيه parts تُزال من FS فقط من دون dropping لها من Zookeeper. #5520 (alesapin)
- إزالة debug logging من بروتوكول MySQL #5478 (alexey-milovidov)
- تخطي ZNONODE أثناء query processing الخاصة بـ DDL query #5489 (Azat Khuzhin)
- إصلاح تعارض نوع عمود النتيجة في
UNION ALL. فقد كانت هناك حالات تظهر فيها البيانات وcolumn types الخاصة بالأعمدة الناتجة بشكل غير متسق. #5503 (Artem Zuikov) - تنفيذ throw an exception عند وجود أعداد صحيحة غير صحيحة في دوال
dictGetTبدلًا من crash. #5446 (Artem Zuikov) - إصلاح القيمتين الخاطئتين لـ element_count و load_factor في القاموس المعتمد على التجزئة ضمن جدول
system.dictionaries. #5440 (Azat Khuzhin)
تحسينات على البناء/الاختبار/التغليف
- تم إصلاح البناء بدون دعم ضغط HTTP من
Brotli(متغير cmake ENABLE_BROTLI=OFF). #5521 (Anton Yuzhaninov) - تضمين roaring.h بصيغة roaring/roaring.h #5523 (Orivej Desh)
- إصلاح تحذيرات gcc9 في hyperscan (توجيه #line مزعج!) #5546 (Danila Kutenin)
- إصلاح جميع التحذيرات عند البناء باستخدام gcc-9. وإصلاح بعض المشكلات في contrib. وإصلاح خطأ ICE في gcc9 وإرساله إلى bugzilla. #5498 (Danila Kutenin)
- تم إصلاح الربط مع lld #5477 (alexey-milovidov)
- إزالة التخصيصات غير المستخدمة في Dictionaries #5452 (Artem Zuikov)
- تحسين اختبارات الأداء الخاصة بتنسيق الجداول وتحليلها لأنواع ملفات مختلفة #5497 (Olga Khvostikova)
- إصلاحات لتشغيل الاختبارات المتوازي #5506 (proller)
- Docker: استخدام إعدادات clickhouse-test #5531 (proller)
- إصلاح البناء على FreeBSD #5447 (proller)
- ترقية boost إلى 1.70 #5570 (proller)
- إصلاح بناء clickhouse باعتباره submodule #5574 (proller)
- تحسين اختبارات الأداء الخاصة بـ JSONExtract #5444 (Vitaly Baranov)
إصدار ClickHouse 19.8
إصدار ClickHouse 19.8.3.8، 2019-06-11
الميزات الجديدة
- أُضيفت دوال للعمل مع JSON #4686 (hcz) #5124. (Vitaly Baranov)
- أُضيفت الدالة basename، بسلوك مماثل لدالة basename الموجودة في كثير من اللغات (
os.path.basenameفي بايثون، وbasenameفي PHP، إلخ…). وتعمل مع كلٍّ من المسارات الشبيهة بـ UNIX ومسارات Windows. #5136 (Guillaume Tassery) - أُضيفت صياغة
LIMIT n, m BYأوLIMIT m OFFSET n BYلتعيين إزاحة بمقدار n لعبارة LIMIT BY. #5138 (Anton Popov) - أُضيف نوع البيانات الجديد
SimpleAggregateFunction، الذي يتيح استخدام أعمدة ذات تجميع بسيط فيAggregatingMergeTree. ولا يمكن استخدامه إلا مع الدوال البسيطة مثلanyوanyLastوsumوminوmax. #4629 (Boris Granveaud) - أُضيف دعم الوسيطات غير الثابتة في الدالة
ngramDistance#5198 (Danila Kutenin) - أُضيفت الدوال
skewPopوskewSampوkurtPopوkurtSampلحساب التواء التوزيع، والتواء العينة، والتفلطح، وتفلطح العينة، على التوالي. #5200 (hcz) - أُضيف دعم عملية rename لتخزين
MaterializeView. #5209 (Guillaume Tassery) - أُضيف خادم يتيح الاتصال بـ ClickHouse باستخدام عميل MySQL. #4715 (Yuriy Baranov)
- أُضيفت الدالتان
toDecimal*OrZeroوtoDecimal*OrNull. #5291 (Artem Zuikov) - أُضيف دعم الأنواع Decimal في الدوال:
quantileوquantilesوmedianوquantileExactWeightedوquantilesExactWeightedوmedianExactWeighted. #5304 (Artem Zuikov) - أُضيفت الدالة
toValidUTF8، التي تستبدل جميع محارف UTF-8 غير الصالحة بمحرف الاستبدال � (U+FFFD). #5322 (Danila Kutenin) - أُضيفت الدالة
format. لتنسيق نمط ثابت (نمط تنسيق مبسط لبايثون) باستخدام السلاسل النصية المُدرجة في الوسيطات. #5330 (Danila Kutenin) - أُضيف الجدول
system.detached_partsالذي يحتوي على معلومات عن الأجزاء المنفصلة في جداولMergeTree. #5353 (akuzm) - أُضيفت الدالة
ngramSearchلحساب الفرق غير المتماثل بين needle وhaystack. #5418#5422 (Danila Kutenin) - تنفيذ أساليب أساسية لتعلّم الآلة (الانحدار الخطي العشوائي والانحدار اللوجستي) باستخدام واجهة الدوال التجميعية. ويتضمن ذلك استراتيجيات مختلفة لتحديث أوزان النموذج (الانحدار التدرجي البسيط، وطريقة momentum، وطريقة Nesterov). كما يدعم أيضًا الدفعات المصغّرة بأحجام مخصّصة. #4943 (Quid37)
- تنفيذ الدالتين
geohashEncodeوgeohashDecode. #5003 (Vasily Nemkov) - أُضيفت الدالة التجميعية
timeSeriesGroupSum، ويمكنها تجميع سلاسل زمنية مختلفة لا تكون فيها الطوابع الزمنية للعينات متحاذية. وتستخدم الاستيفاء الخطي بين طابعين زمنيين لعينتين ثم تجمع السلاسل الزمنية معًا. كما أُضيفت الدالة التجميعيةtimeSeriesGroupRateSum، التي تحسب معدل السلاسل الزمنية ثم تجمع هذه المعدلات معًا. #4542 (Yangkuan Liu) - أُضيفت الدالتان
IPv4CIDRtoIPv4RangeوIPv6CIDRtoIPv6Rangeلحساب الحدين الأدنى والأعلى لعنوان IP في الشبكة الفرعية باستخدام CIDR. #5095 (Guillaume Tassery) - أُضيفت ترويسة X-ClickHouse-Summary عند إرسال استعلام عبر HTTP مع تفعيل الإعداد
send_progress_in_http_headers. وهي تُرجع المعلومات المعتادة الخاصة بـ X-ClickHouse-Progress، مع معلومات إضافية مثل عدد الصفوف والبايتات التي أُدرجت في الاستعلام. #5116 (Guillaume Tassery)
تحسينات
- تمت إضافة الإعداد
max_parts_in_totalلجداول عائلة MergeTree (القيمة الافتراضية: 100 000) لمنع التحديد غير الآمن لمفتاح التقسيم #5166. #5171 (alexey-milovidov) clickhouse-obfuscator: اشتقاق seed لكل عمود على حدة عبر دمج seed الأولي مع اسم العمود، وليس مع موضعه. يهدف ذلك إلى تحويل datasets التي تحتوي على عدة جداول مترابطة، بحيث تظل الجداول قابلة لتنفيذ JOIN عليها بعد التحويل. #5178 (alexey-milovidov)- تمت إضافة الدالتين
JSONExtractRawوJSONExtractKeyAndValues. وأُعيدت تسمية الدوالjsonExtract<type>إلىJSONExtract<type>. وعند حدوث خطأ، تُرجع هذه الدوال القيم المقابلة، وليسNULL. كما عُدّلت الدالةJSONExtractبحيث تستمد return type من آخر parameter فيها ولا تُدخل Nullable. ونُفِّذ fallback إلى RapidJSON في حال عدم توفر تعليمات AVX2. كما جرى تحديث مكتبة Simdjson إلى إصدار جديد. #5235 (Vitaly Baranov) - لم تعد الدالتان
ifوmultiIfتعتمدان الآن علىNullableالخاص بالشرط، بل على الفروع، لتحقيق التوافق مع SQL. #5238 (Jian Wu) - أصبح predicate
Inالآن يُنتج نتيجةNullمن مُدخلNull، مثل الدالةEqual. #5152 (Jian Wu) - تحقّق من المهلة الزمنية كل عدد من الصفوف يساوي (flush_interval / poll_timeout) من Kafka. يتيح ذلك إيقاف القراءة من Kafka consumer بوتيرة أكثر تكرارًا، والتحقق من الحدود الزمنية للـ streams ذات المستوى الأعلى #5249 (Ivan)
- ربط rdkafka مع SASL المضمّن. من المفترض أن يتيح ذلك استخدام مصادقة SASL SCRAM #5253 (Ivan)
- إصدار Batch من RowRefList لجميع ALL JOINS. #5267 (Artem Zuikov)
- clickhouse-server: رسائل أخطاء الاستماع أصبحت أكثر إفادة. #5268 (proller)
- دعم القواميس في clickhouse-copier للدوال داخل
<sharding_key>#5270 (proller) - إضافة الإعداد الجديد
kafka_commit_every_batchلتنظيم سياسة commit في Kafka. يتيح ذلك ضبط نمط commit: بعد معالجة كل batch من الرسائل، أو بعد كتابة block بالكامل إلى التخزين. وهذه موازنة بين فقدان بعض الرسائل أو قراءتها مرتين في بعض الحالات القصوى. #5308 (Ivan) - جعل
windowFunnelيدعم أنواع الأعداد الصحيحة غير الموقعة الأخرى. #5320 (sundyli) - السماح بحجب العمود الافتراضي
_tableفي محرك Merge. #5325 (Ivan) - جعل aggregate functions
sequenceMatchتدعم أنواع الأعداد الصحيحة غير الموقعة الأخرى #5339 (sundyli) - رسائل error أفضل إذا كان عدم تطابق checksum ناجمًا على الأرجح عن أعطال في العتاد. #5355 (alexey-milovidov)
- التحقق من أن الجداول الأساسية تدعم أخذ العينات لـ
StorageMerge#5366 (Ivan) - إغلاق اتصالات MySQL بعد استخدامها في external dictionaries. وهذا مرتبط بالمشكلة #893. #5395 (Clément Rodriguez)
- تحسينات على MySQL wire protocol. تم تغيير اسم التنسيق إلى MySQLWire. استخدام RAII عند استدعاء RSA_free. وتعطيل SSL إذا تعذّر إنشاء السياق. #5419 (Yuriy Baranov)
- clickhouse-client: السماح بالتشغيل حتى عند تعذّر الوصول إلى ملف المحفوظات (للقراءة فقط، لا توجد مساحة على القرص، الملف عبارة عن مجلد، …). #5431 (proller)
- مراعاة إعدادات query في عمليات INSERT غير المتزامنة إلى الجداول الموزعة. #4936 (TCeason)
- أُعيدت تسمية الدوال
leastSqrإلىsimpleLinearRegression، وLinearRegressionإلىlinearRegression، وLogisticRegressionإلىlogisticRegression. #5391 (Nikolai Kochetov)
تحسينات الأداء
- موازاة معالجة الأجزاء في جداول MergeTree غير المكررة ضمن استعلام ALTER MODIFY. #4639 (Ivan Kush)
- تحسينات في استخراج التعبيرات النمطية. #5193 #5191 (Danila Kutenin)
- عدم إضافة عمود مفتاح الربط الأيمن إلى ناتج join إذا كان مستخدمًا فقط في قسم ON الخاص بـ join. #5260 (Artem Zuikov)
- تجميد مخزن Kafka المؤقت بعد أول استجابة فارغة. هذا يجنّب استدعاء
ReadBuffer::next()عدة مرات عند وجود نتيجة فارغة في بعض تدفقات تحليل الصفوف. #5283 (Ivan) - تحسين الدالة
concatعند استخدام وسائط متعددة. #5357 (Danila Kutenin) - تحسين الاستعلامات: السماح بدفع عبارة IN إلى المصدر عند إعادة كتابة comma/CROSS JOIN إلى INNER JOIN. #5396 (Artem Zuikov)
- ترقية تنفيذ LZ4 لدينا إلى التنفيذ المرجعي للحصول على فك ضغط أسرع. #5070 (Danila Kutenin)
- تنفيذ فرز radix من نوع MSD (استنادًا إلى kxsort)، بالإضافة إلى الفرز الجزئي. #5129 (Evgenii Pravda)
إصلاحات الأخطاء
- إصلاح مشكلة كانت تجعل push يتطلب أعمدة مع join #5192 (Winter Zhang)
- أُصلِح خلل كان يمنع الأمر
sudo service clickhouse-server forcerestartمن العمل كما هو متوقع عندما يكون ClickHouse قيد التشغيل بواسطة systemd. #5204 (proller) - إصلاح رموز أخطاء HTTP في DataPartsExchange (كان خادم HTTP بين الخوادم على المنفذ 9009 يعيد دائمًا الرمز 200، حتى عند حدوث أخطاء). #5216 (proller)
- إصلاح SimpleAggregateFunction عندما يكون String أطول من MAX_SMALL_STRING_SIZE #5311 (Azat Khuzhin)
- إصلاح الخطأ في التحويل من
DecimalإلىNullable(Decimal)في IN. كما أُضيف دعم لتحويلات Decimal الأخرى إلى Decimal (بما في ذلك المقاييس المختلفة). #5350 (Artem Zuikov) - أُصلِح خلل في FPU ضمن مكتبة simdjson أدى إلى حساب غير صحيح للدالة التجميعية
uniqHLLوuniqCombinedولدوال رياضية مثلlog. #5354 (alexey-milovidov) - أُصلِحت معالجة الحالات المختلطة const/nonconst في JSON functions. #5435 (Vitaly Baranov)
- إصلاح الدالة
retention. الآن تُضاف جميع الشروط المتحققة في صف البيانات إلى حالة البيانات. #5119 (小路) - إصلاح نوع النتيجة للدالة
quantileExactمع Decimals. #5304 (Artem Zuikov)
التوثيق
- ترجمة وثائق
CollapsingMergeTreeإلى الصينية. #5168 (张风啸) - ترجمة بعض الوثائق المتعلقة بمحركات الجداول إلى الصينية. #5134 #5328 (never lee)
تحسينات البناء/الاختبار/التغليف
- إصلاح بعض تقارير sanitizer التي تشير إلى احتمال استخدام الذاكرة بعد تحريرها.#5139 #5143 #5393 (Ivan)
- نقل اختبارات الأداء من المجلدات المنفصلة لتسهيل العمل بها. #5158 (alexey-milovidov)
- إصلاح اختبارات أداء غير صحيحة. #5255 (alesapin)
- إضافة أداة لحساب قيم checksum الناتجة عن انقلاب البِتّات لاستكشاف مشكلات العتاد. #5334 (alexey-milovidov)
- جعل سكربت التشغيل أكثر قابلية للاستخدام. #5340#5360 (filimonov)
- إضافة تعليمات موجزة حول كيفية كتابة اختبارات الأداء. #5408 (alesapin)
- إضافة إمكانية إجراء استبدالات في استعلامات create و fill و drop ضمن اختبارات الأداء #5367 (Olga Khvostikova)
إصدار ClickHouse 19.7
إصدار ClickHouse 19.7.5.29، 2019-07-05
إصلاح خلل
- إصلاح تراجع في الأداء في بعض الاستعلامات التي تتضمن JOIN. #5192 (Winter Zhang)
إصدار ClickHouse 19.7.5.27، 2019-06-09
الميزات الجديدة
- أُضيفت الدالتان المتعلقتان بـ bitmap، وهما
bitmapHasAnyوbitmapHasAll، على غرار الدالتينhasAnyوhasAllالخاصتين بالمصفوفات. #5279 (Sergi Vladykin)
إصلاحات الأخطاء
- إصلاح خطأ segfault في
minmaxINDEX مع قيمة NULL. #5246 (Nikita Vasilev) - تعليم جميع أعمدة الإدخال في LIMIT BY على أنها مخرجات مطلوبة. يُصلح ذلك خطأ ‘Not found column’ في بعض الاستعلامات الموزعة. #5407 (Constantin S. Pan)
- إصلاح الخطأ “Column ‘0’ already exists” في
SELECT .. PREWHEREعلى عمود يحتوي على DEFAULT. #5397 (proller) - إصلاح استعلام
ALTER MODIFY TTLعلىReplicatedMergeTree. #5539 (Anton Popov) - منع تعطل الخادم عندما يفشل مستهلكو Kafka في البدء. #5285 (Ivan)
- إصلاح دوال bitmap التي كانت تُنتج نتائج غير صحيحة. #5359 (Andy Yang)
- إصلاح
element_countللقاموس المُهشّى (من دون احتساب التكرارات). #5440 (Azat Khuzhin) - استخدام محتويات متغير البيئة TZ كاسم للمنطقة الزمنية. يساعد ذلك على اكتشاف المنطقة الزمنية الافتراضية بشكل صحيح في بعض الحالات. #5443 (Ivan)
- عدم محاولة تحويل الأعداد الصحيحة في دوال
dictGetT، لأن ذلك لا يعمل بشكل صحيح. وأطلِق استثناءً بدلًا من ذلك. #5446 (Artem Zuikov) - إصلاح الإعدادات في طلب HTTP الخاص بـ ExternalData. #5455 (Danila Kutenin)
- إصلاح الخلل الذي كانت فيه الأجزاء تُزال من FS فقط من دون حذفها من ZooKeeper. #5520 (alesapin)
- إصلاح خطأ تجزئة في الدالة
bitmapHasAny. #5528 (Zhichang Yu) - إصلاح الخطأ الذي كان يحدث عندما لا يعيد مجمع الاتصالات الخاص بالنسخ المتماثل محاولة حلّ المضيف، حتى بعد إسقاط ذاكرة DNS المؤقتة. #5534 (alesapin)
- إصلاح استعلام
DROP INDEX IF EXISTS. الآن لن يُطلق الاستعلامALTER TABLE ... DROP INDEX IF EXISTS ...استثناءً إذا لم يكن الفهرس المحدد موجودًا. #5524 (Gleb Novikov) - إصلاح عمود supertype في UNION ALL. كانت هناك حالات تتضمن بيانات غير متسقة وأنواعًا غير متسقة لأعمدة النتيجة. #5503 (Artem Zuikov)
- تخطي ZNONODE أثناء معالجة استعلام DDL. في السابق، إذا أزالت عقدة أخرى الـ znode من قائمة انتظار المهام، فإن العقدة التي لم تعالجه، لكنها كانت قد حصلت بالفعل على قائمة children، كانت تُنهي مؤشر الترابط DDLWorker. #5489 (Azat Khuzhin)
- إصلاح
INSERTفي جدول Distributed() مع عمود MATERIALIZED. #5429 (Azat Khuzhin)
إصدار ClickHouse 19.7.3.9، 2019-05-30
الميزات الجديدة
- إتاحة تقييد النطاق الذي يمكن للمستخدم تعيين قيمة الإعداد ضمنه. يمكن ضبط هذه القيود في ملف تعريف إعدادات المستخدم. #4931 (Vitaly Baranov)
- إضافة إصدار ثانٍ من الدالة
groupUniqArrayمع معلمة اختياريةmax_sizeتحدّ من حجم المصفوفة الناتجة. ويشبه هذا السلوك الدالةgroupArray(max_size)(x). #5026 (Guillaume Tassery) - بالنسبة إلى تنسيقات ملفات الإدخال TSVWithNames/CSVWithNames، يمكن الآن
تحديد ترتيب الأعمدة من ترويسة الملف. ويتحكم في ذلك
المعلمة
input_format_with_names_use_header. #5081 (Alexander)
إصلاحات الأخطاء
- حدوث تعطل مع uncompressed_cache + JOIN أثناء الدمج (#5197) #5133 (Danila Kutenin)
- خطأ تقسيم الذاكرة في استعلام clickhouse-client إلى جداول النظام. #5066 #5127 (Ivan)
- فقدان البيانات عند الأحمال العالية عبر KafkaEngine (#4736) #5080 (Ivan)
- أُصلحت حالة نادرة جدًا من حالات تسابق على البيانات كان يمكن أن تحدث عند تنفيذ استعلام يتضمن UNION ALL ويشمل عمليتَي SELECT على الأقل من system.columns أو system.tables أو system.parts أو system.parts_tables أو جداول من عائلة Merge، مع تنفيذ ALTER على أعمدة الجداول ذات الصلة بالتزامن. #5189 (alexey-milovidov)
تحسينات الأداء
- استخدام فرز radix عند الفرز حسب عمود رقمي واحد في
ORDER BYمن دونLIMIT. #5106, #4439 (Evgenii Pravda, alexey-milovidov)
التوثيق
تحسينات البناء/الاختبار/التغليف
- طباعة محارف UTF-8 بشكل صحيح في
clickhouse-test. #5084 (alexey-milovidov) - إضافة معامل لسطر الأوامر إلى clickhouse-client لتحميل بيانات الاقتراحات دائمًا. #5102 (alexey-milovidov)
- معالجة بعض تحذيرات PVS-Studio. #5082 (alexey-milovidov)
- تحديث LZ4 #5040 (Danila Kutenin)
- إضافة gperf إلى متطلبات البناء لطلب السحب القادم #5030. #5110 (proller)
إصدار ClickHouse 19.6
إصدار ClickHouse 19.6.3.18، 2019-06-13
إصلاحات الأخطاء
- تم إصلاح pushdown لشرط IN في الاستعلامات الواردة من دوال الجداول
mysqlوodbcومحركات الجداول المقابلة. ويعالج ذلك #3540 و#2384. #5313 (alexey-milovidov) - إصلاح حالة توقف متبادل في Zookeeper. #5297 (github1youlc)
- السماح بقيم Decimal المحاطة بعلامتي اقتباس في CSV. #5284 (Artem Zuikov
- منع التحويل من Float Inf/NaN إلى Decimals (مع إطلاق استثناء). #5282 (Artem Zuikov)
- إصلاح حالة سباق بيانات في استعلام إعادة التسمية. #5247 (Winter Zhang)
- تعطيل LFAlloc مؤقتًا. قد يؤدي استخدام LFAlloc إلى كثرة حالات MAP_FAILED عند تخصيص UncompressedCache، ما قد يتسبب في تعطل الاستعلامات على الخوادم ذات الأحمال العالية. cfdba93(Danila Kutenin)
إصدار ClickHouse 19.6.2.11، 2019-05-13
الميزات الجديدة
- تعبيرات TTL للأعمدة والجداول. #4212 (Anton Popov)
- إضافة دعم ضغط
brotliفي استجابات HTTP (Accept-Encoding: br) #4388 (Mikhail) - إضافة الدالة الجديدة
isValidUTF8للتحقق مما إذا كانت مجموعة من البايتات مرمّزة بشكل صحيح بترميز UTF-8. #4934 (Danila Kutenin) - إضافة سياسة جديدة لموازنة الحمل باسم
first_or_random، ترسل الاستعلامات إلى أول مضيف محدد، وإذا تعذّر الوصول إليه، تُرسل الاستعلامات إلى مضيفات عشوائية في الشظية. وهذا مفيد في إعدادات طوبولوجيا النسخ المتماثل المتقاطع. #5012 (nvartolomei)
الميزات التجريبية
- إضافة الإعداد
index_granularity_bytes(حبيبية الفهرس التكيفية) إلى عائلة جداول MergeTree*. #4826 (alesapin)
تحسينات
- أُضيف دعم لوسيطات الحجم والطول غير الثابتة والسالبة للدالة
substringUTF8. #4989 (alexey-milovidov) - تعطيل push-down إلى الجدول الأيمن في الربط الأيسر، وإلى الجدول الأيسر في الربط الأيمن، وإلى كلا الجدولين في الربط الكامل. يُصلح هذا نتائج JOIN غير الصحيحة في بعض الحالات. #4846 (Ivan)
clickhouse-copier: رفع تهيئة المهمة تلقائيًا من الخيار--task-file#4876 (proller)- أُضيف معالج للأخطاء المطبعية إلى مصنع التخزين ومصنع دوال الجداول. #4891 (Danila Kutenin)
- دعم العلامات النجمية والعلامات النجمية المؤهلة لعمليات الربط المتعددة من دون استعلامات فرعية #4898 (Artem Zuikov)
- جعل رسالة خطأ العمود المفقود أكثر وضوحًا للمستخدم. #4915 (Artem Zuikov)
تحسينات الأداء
- زيادة كبيرة في سرعة ASOF JOIN #4924 (Martijn Bakker)
تغييرات غير متوافقة مع الإصدارات السابقة
إصلاحات الأخطاء
- تم إصلاح فكّ مرجعية محتمل لمؤشر NULL في
clickhouse-copier. #4900 (proller) - تم إصلاح خطأ في استعلام مع JOIN + ARRAY JOIN #4938 (Artem Zuikov)
- تم إصلاح توقّف عند بدء تشغيل الخادم عندما يعتمد قاموس على قاموس آخر عبر قاعدة بيانات مع engine=Dictionary. #4962 (Vitaly Baranov)
- إصلاح جزئي لـ distributed_product_mode = local. أصبح من الممكن السماح باستخدام أعمدة الجداول المحلية في where/having/order by/… عبر الأسماء المستعارة للجداول. ويُرمى استثناء إذا لم يكن للجدول اسم مستعار. ولا يزال الوصول إلى الأعمدة من دون أسماء مستعارة للجداول غير ممكن. #4986 (Artem Zuikov)
- إصلاح نتيجة قد تكون غير صحيحة لـ
SELECT DISTINCTمعJOIN#5001 (Artem Zuikov) - تم إصلاح حالة تسابق على البيانات نادرة جدًا كان من الممكن أن تحدث عند تنفيذ استعلام يحتوي على UNION ALL ويتضمن عبارتي SELECT على الأقل من system.columns أو system.tables أو system.parts أو system.parts_tables أو جداول عائلة Merge، مع تنفيذ ALTER لأعمدة الجداول ذات الصلة بالتزامن. #5189 (alexey-milovidov)
تحسينات البناء/الاختبار/التغليف
- إصلاح حالات فشل الاختبارات عند تشغيل clickhouse-server على مضيف مختلف #4713 (Vasily Nemkov)
- clickhouse-test: تعطيل تسلسلات التحكم بالألوان في بيئة غير TTY. #4937 (alesapin)
- clickhouse-test: السماح باستخدام أي قاعدة بيانات للاختبارات (إزالة البادئة
test.حيثما أمكن) #5008 (proller) - إصلاح أخطاء ubsan #5037 (Vitaly Baranov)
- أُضيف Yandex LFAlloc إلى ClickHouse لتخصيص بيانات MarkCache وUncompressedCache بطرق مختلفة، بهدف اكتشاف أعطال segfault بشكل أكثر موثوقية #4995 (Danila Kutenin)
- أداة بايثون للمساعدة في عمليات backport وسجلات التغييرات. #4949 (Ivan)
إصدار ClickHouse 19.5
إصدار ClickHouse 19.5.4.22، 2019-05-13
إصلاحات الأخطاء
- تم إصلاح احتمال حدوث تعطل في دوال bitmap* #5220 #5228 (Andy Yang)
- تم إصلاح حالة حالة تسابق على البيانات نادرة جدًا كان يمكن أن تحدث عند تنفيذ query تحتوي على UNION ALL وتتضمن عمليتي SELECT على الأقل من system.columns أو system.tables أو system.parts أو system.parts_tables أو جداول Merge family، مع إجراء ALTER على أعمدة الجداول المعنية بالتزامن. #5189 (alexey-milovidov)
- تم إصلاح الخطأ
Set for IN is not created yet in case of using single LowCardinality column in the left part of IN. وكان هذا الخطأ يحدث إذا كان عمود LowCardinality جزءًا من المفتاح الأساسي. #5031 #5154 (Nikolai Kochetov) - تعديل دالة retention: إذا استوفى صف كلًا من الشرط الأول والشرط رقم N، كان يُضاف إلى حالة البيانات أول شرط مستوفًى فقط. أما الآن فتُضاف جميع الشروط المستوفاة في صف البيانات إلى حالة البيانات. #5119 (小路)
إصدار ClickHouse 19.5.3.8، 2019-04-18
إصلاحات الأخطاء
- تم تصحيح نوع الإعداد
max_partitions_per_insert_blockمن Boolean إلى UInt64. #5028 (Mohammad Hossein Sekhavat)
إصدار ClickHouse 19.5.2.6، 2019-04-15
الميزات الجديدة
- تمت إضافة المطابقة المتعددة للتعبيرات النمطية باستخدام Hyperscan (الدوال
multiMatchAnyوmultiMatchAnyIndexوmultiFuzzyMatchAnyوmultiFuzzyMatchAnyIndex). #4780، #4841 (Danila Kutenin) - تمت إضافة الدالة
multiSearchFirstPosition. #4780 (Danila Kutenin) - تنفيذ مرشح expressions مُعرّف مسبقًا لكل صف في الجداول. #4792 (Ivan)
- نوع جديد من فهارس تخطي البيانات يعتمد على مرشحات bloom (يمكن استخدامه مع الدوال
equalوinوlike). #4499 (Nikita Vasilev) - تمت إضافة
ASOF JOIN، ما يتيح تشغيل استعلامات تنضم إلى أحدث قيمة معروفة. #4774 #4867 #4863 #4875 (Martijn Bakker، Artem Zuikov) - إعادة كتابة عدة عمليات
COMMA JOINإلىCROSS JOIN، ثم إعادة كتابتها إلىINNER JOINإذا أمكن. #4661 (Artem Zuikov)
تحسين
- أصبحت
topKوtopKWeightedتدعمان الآنloadFactorمخصصًا (يُصلح المشكلة #4252). #4634 (Kirill Danshin) - أصبح من الممكن استخدام
parallel_replicas_count > 1حتى مع الجداول التي لا تستخدم أخذ العينات sampling (إذ يُتجاهل هذا الإعداد لها ببساطة). في الإصدارات السابقة، كان ذلك يؤدي إلى استثناء. #4637 (Alexey Elymanov) - دعم
CREATE OR REPLACE VIEW. يتيح ذلك إنشاء VIEW أو تعيين تعريف جديد لها ضمن عبارة واحدة. #4654 (Boris Granveaud) - أصبح محرك الجدول
Bufferيدعم الآنPREWHERE. #4671 (Yangkuan Liu) - إضافة إمكانية بدء جدول مكرّر من دون بيانات وصفية في ZooKeeper في وضع
readonly. #4691 (alesapin) - إصلاح وميض شريط التقدّم في clickhouse-client. كانت المشكلة أكثر وضوحًا عند استخدام
FORMAT Nullمع Streaming Queries. #4811 (alexey-milovidov) - أصبح من الممكن تعطيل الدوال التي تستخدم مكتبة
hyperscanلكل مستخدم على حدة للحد من الاستخدام المفرط وغير المنضبط المحتمل للموارد. #4816 (alexey-milovidov) - إضافة تسجيل رقم الإصدار في جميع الأخطاء. #4824 (proller)
- أُضيف قيد إلى دوال
multiMatchيشترط أن يكون حجم السلسلة النصية ضمنunsigned int. كما أُضيف حدّ لعدد الوسائط في دوالmultiSearch. #4834 (Danila Kutenin) - تحسين استخدام مساحة العمل المؤقتة ومعالجة الأخطاء في Hyperscan. #4866 (Danila Kutenin)
- تعبئة
system.graphite_detentionsمن config الجدول في الجداول ذات المحرك*GraphiteMergeTree. #4584 (Mikhail f. Shiryaev) - إعادة تسمية الدالة
trigramDistanceإلىngramDistanceوإضافة المزيد من الدوال معCaseInsensitiveوUTF. #4602 (Danila Kutenin) - تحسين حساب فهارس تخطي البيانات. #4640 (Nikita Vasilev)
- الإبقاء على الأعمدة العادية و
DEFAULTوMATERIALIZEDوALIASضمن قائمة واحدة (يُصلح المشكلة #2867). #4707 (Alex Zatelepin)
إصلاح الأخطاء
- تجنّب
std::terminateعند فشل تخصيص الذاكرة. الآن يُطرَح استثناءstd::bad_allocكما هو متوقع. #4665 (alexey-milovidov) - إصلاح قراءة
capnprotoمن المخزن المؤقت. أحيانًا لم تكن الملفات تُحمَّل بنجاح عبر HTTP. #4674 (Vladislav) - إصلاح الخطأ
Unknown log entry type: 0بعد تنفيذ الاستعلامOPTIMIZE TABLE FINAL. #4683 (Amos Bird) - قد تؤدي الوسيطات غير الصحيحة للدالتين
hasAnyأوhasAllإلى حدوث segfault. #4698 (alexey-milovidov) - قد يحدث deadlock أثناء تنفيذ الاستعلام
DROP DATABASE dictionary. #4701 (alexey-milovidov) - إصلاح السلوك غير المعرّف في الدالتين
medianوquantile. #4702 (hcz) - إصلاح اكتشاف مستوى الضغط عندما تكون
network_compression_methodبأحرف صغيرة. كان هذا معطّلًا في v19.1. #4706 (proller) - إصلاح تجاهل الإعداد
<timezone>UTC</timezone>(يُصلح المشكلة #4658). #4718 (proller) - إصلاح سلوك الدالة
histogramمع جداولDistributed. #4741 (olegkv) - إصلاح تقرير tsan
destroy of a locked mutex. #4742 (alexey-milovidov) - إصلاح تقرير TSan عند الإغلاق بسبب race condition في استخدام سجلات النظام. كما أُصلح احتمال use-after-free عند الإغلاق عندما يكون part_log مفعّلًا. #4758 (alexey-milovidov)
- إصلاح إعادة التحقق من الأجزاء في
ReplicatedMergeTreeAlterThreadعند حدوث خطأ. #4772 (Nikolai Kochetov) - لم تكن العمليات الحسابية على الحالات الوسيطة لدوال التجميع تعمل مع الوسيطات الثابتة (مثل نتائج الاستعلامات الفرعية). #4776 (alexey-milovidov)
- استخدام علامات الاقتباس العكسية دائمًا حول أسماء الأعمدة في البيانات الوصفية. وإلا فسيستحيل إنشاء جدول بعمود اسمه
index(ولن يُعاد تشغيل الخادم بسبب استعلامATTACHغير صالح في البيانات الوصفية). #4782 (alexey-milovidov) - إصلاح crash في
ALTER ... MODIFY ORDER BYعلى جدولDistributed. #4790 (TCeason) - إصلاح segfault في
JOIN ONمع تفعيلenable_optimize_predicate_expression. #4794 (Winter Zhang) - إصلاح خلل يؤدي إلى إضافة صف زائد بعد استهلاك رسالة Protobuf من Kafka. #4808 (Vitaly Baranov)
- إصلاح تعطل
JOINعند استخدام عمود غير قابل لـNULLمقابل عمود قابل لـNULL. وإصلاحNULLsفي المفاتيح اليمنى فيANY JOIN+join_use_nulls. #4815 (Artem Zuikov) - إصلاح خطأ تجزئة في
clickhouse-copier. #4835 (proller) - إصلاح حالة سباق في
SELECTمنsystem.tablesإذا أُعيدت تسمية الجدول أو عُدّل بالتزامن. #4836 (alexey-milovidov) - إصلاح سباق بيانات عند جلب data part أصبح Obsolete بالفعل. #4839 (alexey-milovidov)
- إصلاح سباق بيانات نادر قد يحدث أثناء
RENAMEجدول من MergeTree family. #4844 (alexey-milovidov) - إصلاح خطأ تجزئة في الدالة
arrayIntersect. وكان يمكن أن يحدث هذا الخطأ إذا استُدعيت الدالة باستخدام argument ثابتة وعادية مختلطة. #4847 (Lixiang Qian) - إصلاح القراءة من عمود
Array(LowCardinality)في حالة نادرة عندما كان العمود يحتوي على sequence طويلة من المصفوفات الفارغة. #4850 (Nikolai Kochetov) - إصلاح تعطل في
FULL/RIGHT JOINعند إجراء join على عمود قابل لـNULLمقابل عمود غير قابل لـNULL. #4855 (Artem Zuikov) - إصلاح استثناء
No message receivedأثناء جلب الأجزاء بين النسخ المتماثلة. #4856 (alesapin) - إصلاح نتيجة خاطئة للدالة
arrayIntersectفي حالة وجود عدة values مكررة في Array واحدة. #4871 (Nikolai Kochetov) - إصلاح حالة سباق أثناء تنفيذ queries
ALTER COLUMNالمتزامنة، كان يمكن أن تؤدي إلى تعطل server (يصلح issue #3421). #4592 (Alex Zatelepin) - إصلاح نتيجة غير صحيحة في
FULL/RIGHT JOINمع عمود ثابت. #4723 (Artem Zuikov) - إصلاح التكرارات في
GLOBAL JOINمع asterisk. #4705 (Artem Zuikov) - إصلاح استنتاج parameter في
ALTER MODIFYللعمودCODECعندما لا يكون column type محددًا. #4883 (alesapin) - أصبحت الدالتان
cutQueryStringAndFragment()وqueryStringAndFragment()تعملان الآن بشكل صحيح عندما يحتويURLعلى fragment من دون query. #4894 (Vitaly Baranov) - إصلاح خطأ نادر عند ضبط
min_bytes_to_use_direct_ioعلى قيمة أكبر من الصفر، ويحدث ذلك عندما يضطر thread إلى seek للخلف في column file. #4897 (alesapin) - إصلاح أنواع الوسيطات غير الصحيحة في الدوال التجميعية التي تستخدم وسيطات
LowCardinality(يُصلح المشكلة #4919). #4922 (Nikolai Kochetov) - إصلاح تأهيل الأسماء غير الصحيح في
GLOBAL JOIN. #4969 (Artem Zuikov) - إصلاح ناتج الدالة
toISOWeekلسنة 1970. #4988 (alexey-milovidov) - إصلاح تكرار استعلامات
DROPوTRUNCATEوOPTIMIZEعند تنفيذها باستخدامON CLUSTERعلى عائلة الجداولReplicatedMergeTree*. #4991 (alesapin)
تغيير غير متوافق مع الإصدارات السابقة
- أُعيدت تسمية الإعداد
insert_sample_with_metadataإلىinput_format_defaults_for_omitted_fields. #4771 (Artem Zuikov) - أُضيف الإعداد
max_partitions_per_insert_block(بقيمة 100 افتراضيًا). إذا احتوت كتلة الإدراج على عدد أكبر من التقسيمات، فسيتم إطلاق استثناء. اضبطه على 0 إذا أردت إزالة هذا الحد (غير موصى به). #4845 (alexey-milovidov) - أُعيدت تسمية دوال البحث المتعدد (
multiPositionإلىmultiSearchAllPositions، وmultiSearchإلىmultiSearchAny، وfirstMatchإلىmultiSearchFirstIndex). #4780 (Danila Kutenin)
تحسين الأداء
- تحسين باحث Volnitsky عبر التضمين المباشر، مما يحقق تحسنًا في البحث بنحو 5-10% للاستعلامات التي تحتوي على العديد من أنماط البحث أو كثير من الثنائيات الحرفية المتشابهة. #4862 (Danila Kutenin)
- إصلاح مشكلة أداء عند ضبط الإعداد
use_uncompressed_cacheعلى قيمة أكبر من صفر، وقد ظهرت هذه المشكلة عندما كانت جميع البيانات المقروءة موجودة في ذاكرة التخزين المؤقت. #4913 (alesapin)
تحسينات البناء/الاختبار/التغليف
- تعزيز نسخة البناء الخاصة بالتنقيح:
memory mappingsأكثر دقة وASLR؛ مع إضافة حماية للذاكرة لكل منmark cacheوindex. يتيح ذلك اكتشاف المزيد من أخطاء العبث بالذاكرة في الحالات التي يتعذر فيها على ASan وMSan فعل ذلك. #4632 (alexey-milovidov) - إضافة دعم لمتغيرات cmake
ENABLE_PROTOBUFوENABLE_PARQUETوENABLE_BROTLI، ما يتيح تمكين الميزات المذكورة أعلاه أو تعطيلها (كما هو الحال مع librdkafka وmysql وغير ذلك). #4669 (Silviu Caragea) - إضافة إمكانية طباعة قائمة العمليات وstacktraces لجميع خيوط التنفيذ إذا علقت بعض الاستعلامات بعد تشغيل الاختبار. #4675 (alesapin)
- إضافة retries عند حدوث خطأ
Connection lossفيclickhouse-test. #4682 (alesapin) - إضافة build لـ freebsd باستخدام vagrant، وbuild باستخدام Thread sanitizer، إلى سكربت packager. #4712 #4748 (alesapin)
- أصبح يُطلب الآن من المستخدم إدخال كلمة مرور للمستخدم
'default'أثناء التثبيت. #4725 (proller) - كتم التحذير في مكتبة
rdkafka. #4740 (alexey-milovidov) - إتاحة البناء بدون ssl. #4750 (proller)
- إضافة طريقة لتشغيل صورة
clickhouse-serverباستخدام مستخدم مخصص. #4753 (Mikhail f. Shiryaev) - ترقية contrib boost إلى 1.69. #4793 (proller)
- تعطيل استخدام
mremapعند البناء باستخدام Thread Sanitizer. ومن المثير للدهشة أن TSan لا يعترضmremap(مع أنه يعترضmmapوmunmap)، ما يؤدي إلى false positives. كما تم إصلاح تقرير TSan في الاختبارات ذات الحالة. #4859 (alexey-milovidov) - إضافة اختبار يتحقق من استخدام schema الخاصة بـ format عبر HTTP interface. #4864 (Vitaly Baranov)
إصدار ClickHouse 19.4
إصدار ClickHouse 19.4.4.33، 2019-04-17
إصلاحات الأخطاء
- تجنّب
std::terminateعند فشل تخصيص الذاكرة. الآن يُطرَح استثناءstd::bad_allocكما هو متوقع. #4665 (alexey-milovidov) - إصلاح قراءة
capnprotoمن المخزن المؤقت. في بعض الأحيان، لم تكن الملفات تُحمَّل بنجاح عبر HTTP. #4674 (Vladislav) - إصلاح الخطأ
Unknown log entry type: 0بعد استعلامOPTIMIZE TABLE FINAL. #4683 (Amos Bird) - قد تؤدي الوسيطات غير الصحيحة للدالتين
hasAnyأوhasAllإلى حدوث segfault. #4698 (alexey-milovidov) - قد تحدث حالة توقف متبادل أثناء تنفيذ استعلام
DROP DATABASE dictionary. #4701 (alexey-milovidov) - إصلاح سلوك غير معرّف في الدالتين
medianوquantile. #4702 (hcz) - إصلاح اكتشاف مستوى الضغط عندما تكون قيمة
network_compression_methodبأحرف صغيرة. كان هذا معطّلًا في الإصدار v19.1. #4706 (proller) - إصلاح تجاهل الإعداد
<timezone>UTC</timezone>(يُصلح المشكلة #4658). #4718 (proller) - إصلاح سلوك الدالة
histogramمع جداولDistributed. #4741 (olegkv) - إصلاح تقرير tsan
destroy of a locked mutex. #4742 (alexey-milovidov) - إصلاح تقرير TSan عند الإيقاف بسبب حالة تسابق في استخدام سجلات النظام. كما أُصلِح احتمال استخدام الذاكرة بعد تحريرها عند الإيقاف عندما يكون
part_logمفعّلًا. #4758 (alexey-milovidov) - إصلاح إعادة التحقق من الأجزاء في
ReplicatedMergeTreeAlterThreadعند حدوث خطأ. #4772 (Nikolai Kochetov) - لم تكن العمليات الحسابية على الحالات الوسيطة للدوال التجميعية تعمل مع الوسيطات الثابتة (مثل نتائج الاستعلامات الفرعية). #4776 (alexey-milovidov)
- استخدم دائمًا علامات الاقتباس المعكوسة حول أسماء الأعمدة في البيانات الوصفية. وإلا فسيستحيل إنشاء جدول يحتوي على عمود باسم
index(ولن يُعاد تشغيل الخادم بسبب استعلامATTACHغير صحيح في البيانات الوصفية). #4782 (alexey-milovidov) - إصلاح تعطل في
ALTER ... MODIFY ORDER BYعلى جدولDistributed. #4790 (TCeason) - إصلاح segfault في
JOIN ONعند تفعيلenable_optimize_predicate_expression. #4794 (Winter Zhang) - إصلاح خلل يتسبب في إضافة صف زائد بعد استهلاك رسالة Protobuf من Kafka. #4808 (Vitaly Baranov)
- إصلاح خطأ segmentation fault في
clickhouse-copier. #4835 (proller) - أُصلحت حالة تسابق في
SELECTمنsystem.tablesإذا أُعيدت تسمية الجدول أو عُدّل بالتزامن. #4836 (alexey-milovidov) - أُصلح سباق بيانات عند جلب data part أصبح Obsolete بالفعل. #4839 (alexey-milovidov)
- أُصلح سباق بيانات نادر يمكن أن يحدث أثناء
RENAMEtable من MergeTree family. #4844 (alexey-milovidov) - أُصلح خطأ segmentation fault في الدالة
arrayIntersect. وكان يمكن أن يحدث هذا الخطأ إذا استُدعيت الدالة باستخدام arguments ثابتة وعادية مختلطة. #4847 (Lixiang Qian) - أُصلحت القراءة من column من النوع
Array(LowCardinality)في حالة نادرة عندما كان column يحتوي على sequence طويلة من arrays الفارغة. #4850 (Nikolai Kochetov) - إصلاح الاستثناء
No message receivedأثناء جلب parts بين replicas. #4856 (alesapin) - أُصلحت النتيجة الخاطئة للدالة
arrayIntersectفي حالة وجود عدة values مكررة في array واحدة. #4871 (Nikolai Kochetov) - إصلاح حالة تسابق أثناء queries المتزامنة من نوع
ALTER COLUMN، كان يمكن أن تؤدي إلى crash في server (يصلح issue #3421). #4592 (Alex Zatelepin) - إصلاح استنتاج parameter في
ALTER MODIFYالخاص بـ columnCODECعندما لا يكون column type محددًا. #4883 (alesapin) - أصبحت الدالتان
cutQueryStringAndFragment()وqueryStringAndFragment()تعملان الآن بشكل صحيح عندما يحتويURLعلى fragment ولا يحتوي على query. #4894 (Vitaly Baranov) - إصلاح خطأ نادر عندما يكون الإعداد
min_bytes_to_use_direct_ioأكبر من الصفر، ويحدث ذلك عندما يضطر thread إلى seek للخلف في column file. #4897 (alesapin) - إصلاح أنواع argument الخاطئة لـ aggregate functions ذات arguments من نوع
LowCardinality(يصلح issue #4919). #4922 (Nikolai Kochetov) - إصلاح نتيجة الدالة
toISOWeekللسنة 1970. #4988 (alexey-milovidov) - إصلاح تكرار queries
DROPوTRUNCATEوOPTIMIZEعند تنفيذها باستخدامON CLUSTERلعائلة tablesReplicatedMergeTree*. #4991 (alesapin)
تحسينات
- الإبقاء على الأعمدة العادية و
DEFAULTوMATERIALIZEDوALIASفي قائمة واحدة (يُصلح المشكلة #2867). #4707 (Alex Zatelepin)
إصدار ClickHouse 19.4.3.11، 2019-04-02
إصلاحات الأخطاء
- إصلاح تعطل في
FULL/RIGHT JOINعند الربط بين Nullable وغير Nullable. #4855 (Artem Zuikov) - إصلاح خطأ
segmentation faultفيclickhouse-copier. #4835 (proller)
تحسينات البناء/الاختبار/التغليف
- إضافة إمكانية تشغيل صورة clickhouse-server بحساب مستخدم مخصص. #4753 (Mikhail f. Shiryaev)
إصدار ClickHouse 19.4.2.7، 2019-03-30
إصلاحات الأخطاء
- تم إصلاح مشكلة في القراءة من العمود
Array(LowCardinality)في حالة نادرة كان فيها العمود يحتوي على سلسلة طويلة من المصفوفات الفارغة. #4850 (Nikolai Kochetov)
إصدار ClickHouse 19.4.1.3، 2019-03-19
إصلاحات الأخطاء
- تم إصلاح الاستعلامات البعيدة التي تحتوي على كلٍّ من
LIMIT BYوLIMIT. سابقًا، إذا استُخدمLIMIT BYوLIMITفي استعلام بعيد، فقد يُنفَّذLIMITقبلLIMIT BY، مما يؤدي إلى نتيجة مُصفّاة أكثر من اللازم. #4708 (Constantin S. Pan)
إصدار ClickHouse 19.4.0.49، 2019-03-09
الميزات الجديدة
- تمت إضافة دعم كامل لتنسيق
Protobuf(للإدخال والإخراج، وبُنى البيانات المتداخلة). #4174 #4493 (Vitaly Baranov) - تمت إضافة دوال bitmap باستخدام Roaring Bitmaps. #4207 (Andy Yang) #4568 (Vitaly Baranov)
- إضافة دعم لتنسيق Parquet. #4448 (proller)
- أُضيفت مسافة n-gram للمقارنة التقريبية بين السلاسل النصية. وهي مشابهة لمقاييس q-gram في لغة R. #4466 (Danila Kutenin)
- دمج قواعد rollup في Graphite من أنماط aggregation وretention المخصصة. #4426 (Mikhail f. Shiryaev)
- تمت إضافة
max_execution_speedوmax_execution_speed_bytesلتقييد استخدام الموارد. كما أُضيف الإعدادmin_execution_speed_bytesلاستكمالmin_execution_speed. #4430 (Winter Zhang) - تم تنفيذ الدالة
flatten. #4555 #4409 (alexey-milovidov, kzon) - تمت إضافة الدالتين
arrayEnumerateDenseRankedوarrayEnumerateUniqRanked(وهما شبيهتان بـarrayEnumerateUniqلكنهما تتيحان ضبط عمق Array بدقة لفحص Arrays متعددة الأبعاد). #4475 (proller) #4601 (alexey-milovidov) - دعم JOINS متعددة مع بعض القيود: من دون asterisks، ومن دون aliases معقدة في ON/WHERE/GROUP BY/… #4462 (Artem Zuikov)
إصلاحات الأخطاء
- يتضمن هذا الإصدار أيضًا جميع إصلاحات الأخطاء من 19.3 و19.1.
- تم إصلاح خطأ في فهارس تخطي البيانات: كان ترتيب الحبيبات بعد INSERT غير صحيح. #4407 (Nikita Vasilev)
- تم إصلاح فهرس
setللأعمدةNullableوLowCardinality. قبل ذلك، كان استخدام فهرسsetمع عمودNullableأوLowCardinalityيؤدي إلى الخطأData type must be deserialized with multiple streamsعند التنفيذ. #4594 (Nikolai Kochetov) - تم تعيين update_time بشكل صحيح عند التحديث الكامل لقاموس
executable. #4551 (Tema Novikov) - إصلاح شريط التقدم المعطّل في 19.3. #4627 (filimonov)
- تم إصلاح القيم غير المتسقة لـ MemoryTracker عند تقليص منطقة الذاكرة في حالات معيّنة. #4619 (alexey-milovidov)
- تم إصلاح سلوك غير معرّف في ThreadPool. #4612 (alexey-milovidov)
- تم إصلاح عطل نادر جدًا مصحوب بالرسالة
mutex lock failed: Invalid argumentكان يمكن أن يحدث عند حذف جدول MergeTree بالتزامن مع SELECT. #4608 (Alex Zatelepin) - تحسين توافق ODBC driver مع نوع البيانات
LowCardinality. #4381 (proller) - FreeBSD: إصلاح للخطأ
AIOcontextPool: Found io_event with unknown id 0. #4438 (urgordeadbeef) - كان جدول
system.part_logيُنشأ بغض النظر عن الإعدادات. #4483 (alexey-milovidov) - إصلاح سلوك غير معرّف في الدالة
dictIsInلقواميس cache. #4515 (alesapin) - تم إصلاح حالة توقف متبادل عندما يقفل استعلام SELECT الجدول نفسه عدة مرات (على سبيل المثال، من سلاسل رسائل مختلفة أو عند تنفيذ استعلامات فرعية متعددة) مع وجود استعلام DDL متزامن. #4535 (Alex Zatelepin)
- تم تعطيل compile_expressions افتراضيًا إلى أن نحصل على
llvmcontrib الخاص بنا ونتمكن من اختباره باستخدامclangوasan. #4579 (alesapin) - منع
std::terminateعندما يُرجعinvalidate_queryلمصدر قاموس خارجيclickhouseresultset غير صحيحة (فارغة أو تضم أكثر من صف واحد أو أكثر من عمود واحد). كما أُصلحت مشكلة كانت تؤدي إلى تنفيذinvalidate_queryكل خمس ثوانٍ بغض النظر عنlifetime. #4583 (alexey-milovidov) - تجنّب التوقف المتبادل عندما كان
invalidate_queryلقاموس ذي مصدرclickhouseيتضمن جدولsystem.dictionariesأو قاعدة البياناتDictionaries(حالة نادرة). #4599 (alexey-milovidov) - إصلاحات لـ CROSS JOIN مع WHERE فارغة. #4598 (Artem Zuikov)
- تم إصلاح segfault في الدالة “replicate” عند تمرير وسيطة ثابتة. #4603 (alexey-milovidov)
- إصلاح دالة lambda مع مُحسِّن predicate. #4408 (Winter Zhang)
- عدة إصلاحات لـ JOINs. #4595 (Artem Zuikov)
تحسينات
- دعم الأسماء المستعارة في قسم
JOIN ONلأعمدة الجدول الأيمن. #4412 (Artem Zuikov) - تحتاج نتائج عمليات
JOINالمتعددة إلى أسماء صحيحة لاستخدامها في الاستعلامات الفرعية. واستُبدلت الأسماء المستعارة المسطحة بأسماء المصدر في النتيجة. #4474 (Artem Zuikov) - تحسين منطق تمرير الشروط إلى الأسفل للعبارات التي تتضمن
JOIN. #4387 (Ivan)
تحسينات الأداء
- تحسين آليات الاستدلال الخاصة بميزة التحسين “move to PREWHERE”. #4405 (alexey-milovidov)
- استخدام جداول بحث مناسبة تستفيد من واجهة برمجة تطبيقات
HashTableللمفاتيح بطول 8 بت و16 بت. #4536 (Amos Bird) - تحسين أداء مقارنة السلاسل النصية. #4564 (alexey-milovidov)
- تنظيف طابور DDL الموزعة في خيط منفصل حتى لا يبطئ الحلقة الرئيسية التي تعالج مهام DDL الموزعة. #4502 (Alex Zatelepin)
- عند ضبط
min_bytes_to_use_direct_ioعلى 1، لم يكن كل ملف يُفتح بوضع O_DIRECT لأن حجم البيانات المطلوب قراءتها كان يُقدَّر أحيانًا بأقل من حجمه الفعلي بمقدار block مضغوط واحد. #4526 (alexey-milovidov)
تحسينات في البناء/الاختبار/التغليف
- أُضيف دعم
clang-9#4604 (alexey-milovidov) - إصلاح تعليمات
__asm__الخاطئة (مرة أخرى) #4621 (Konstantin Podshumok) - أُضيفت إمكانية تحديد الإعدادات لـ
clickhouse-performance-testمن سطر الأوامر. #4437 (alesapin) - أُضيفت اختبارات Dictionaries إلى اختبارات التكامل. #4477 (alesapin)
- أُضيفت الاستعلامات من الاختبار المعياري على الموقع الإلكتروني إلى اختبارات الأداء المؤتمتة. #4496 (alexey-milovidov)
- الملف
xxhash.hغير موجود في lz4 الخارجي لأنه تفصيل تنفيذي، كما أن رموزه مُحددة ضمن نطاق أسماء باستخدام الماكروXXH_NAMESPACE. وعندما يكون lz4 خارجيًا، يجب أن يكون xxHash خارجيًا أيضًا، ويجب على العناصر التابعة الربط به. #4495 (Orivej Desh) - أُصلحت حالة يمكن فيها استدعاء الدالة التجميعية
quantileTimingباستخدام وسيطة سالبة أو ذات فاصلة عائمة (وهذا يُصلح اختبار fuzz مع sanitizer الخاص بالسلوك غير المعرّف). #4506 (alexey-milovidov) - تصحيح خطأ إملائي. #4531 (sdk2)
- إصلاح مشكلة التجميع على Mac. #4371 (Vitaly Baranov)
- إصلاحات في البناء لـ FreeBSD ولمختلف إعدادات البناء غير المعتادة. #4444 (proller)
إصدار ClickHouse 19.3
إصدار ClickHouse 19.3.9.1، 2019-04-02
إصلاحات الأخطاء
- إصلاح تعطل في
FULL/RIGHT JOINعند الربط بينNullableوغيرNullable. #4855 (Artem Zuikov) - إصلاح خطأ
segmentation faultفيclickhouse-copier. #4835 (proller) - إصلاح القراءة من عمود
Array(LowCardinality)في حالة نادرة عندما كان العمود يحتوي على تسلسل طويل من المصفوفات الفارغة. #4850 (Nikolai Kochetov)
تحسينات في البناء/الاختبار/التغليف
- إضافة طريقة لتشغيل صورة الخاصة بـ clickhouse-server باستخدام مستخدم مخصص #4753 (Mikhail f. Shiryaev)
إصدار ClickHouse 19.3.7، 2019-03-12
إصلاحات الأخطاء
- تم إصلاح الخطأ في #3920. يتجلّى هذا الخطأ في صورة تلف عشوائي في ذاكرة التخزين المؤقت (الرسالتان
Unknown codec family codeوCannot seek through file) وحدوث حالات segfault. ظهر هذا الخلل لأول مرة في الإصدار 19.1، وهو موجود في الإصدارات حتى 19.1.10 و19.3.6. #4623 (alexey-milovidov)
إصدار ClickHouse 19.3.6، 2019-03-02
إصلاحات الأخطاء
- عندما يكون هناك أكثر من 1000 thread في thread pool، قد يحدث
std::terminateعند انتهاء thread. Azat Khuzhin #4485 #4505 (alexey-milovidov) - أصبح من الممكن الآن إنشاء جداول
ReplicatedMergeTree*مع تعليقات على الأعمدة من دون قيم default، وكذلك جداول تحتوي على codecs للأعمدة من دون تعليقات أو قيم default. كما أُصلحت أيضًا مقارنة codecs. #4523 (alesapin) - أُصلح تعطل عند استخدام JOIN مع array أو tuple. #4552 (Artem Zuikov)
- أُصلح تعطل في clickhouse-copier مع الرسالة
ThreadStatus not created. #4540 (Artem Zuikov) - أُصلحت مشكلة التعليق عند إيقاف الخادم إذا استُخدمت distributed DDLs. #4472 (Alex Zatelepin)
- كانت تُطبع أرقام أعمدة غير صحيحة في رسالة الخطأ المتعلقة بتحليل التنسيق النصي للأعمدة التي يزيد رقمها على 10. #4484 (alexey-milovidov)
تحسينات البناء/الاختبار/التغليف
- تم إصلاح البناء عند تمكين AVX. #4527 (alexey-milovidov)
- تم تمكين المحاسبة الموسعة ومحاسبة الإدخال/الإخراج استنادًا إلى إصدار موثوق معروف بدلًا من النواة التي جرى التجميع عليها. #4541 (nvartolomei)
- أصبح من الممكن تخطي تعيين
core_dump.size_limit، مع إصدار تحذير بدلًا من رفع استثناء إذا فشل تعيين الحد. #4473 (proller) - أُزيلت وسوم
inlineمنvoid readBinary(...)فيField.cpp. كما دُمجت كتلnamespace DBالزائدة عن الحاجة. #4530 (hcz)
إصدار ClickHouse 19.3.5، 2019-02-21
إصلاحات الأخطاء
- تم إصلاح خطأ في معالجة استعلامات insert الكبيرة عبر HTTP. #4454 (alesapin)
- تم إصلاح عدم التوافق الرجعي مع الإصدارات الأقدم بسبب تنفيذ غير صحيح للإعداد
send_logs_level. #4445 (alexey-milovidov) - تم إصلاح عدم التوافق الرجعي في دالة الجدول
remoteالذي ظهر مع تعليقات الأعمدة. #4446 (alexey-milovidov)
إصدار ClickHouse 19.3.4، 2019-02-16
تحسينات
- لم يعد حجم فهرس الجدول يُحتسب ضمن حدود الذاكرة عند تنفيذ الاستعلام
ATTACH TABLE. وبذلك جرى تفادي احتمال تعذّر إرفاق الجدول بعد فصله. #4396 (alexey-milovidov) - رُفع قليلًا الحد الأقصى لحجم السلسلة النصية والمصفوفة المستلَمتين من ZooKeeper. ويتيح ذلك مواصلة العمل عند زيادة حجم
CLIENT_JVMFLAGS=-Djute.maxbuffer=...في ZooKeeper. #4398 (alexey-milovidov) - أصبح بالإمكان إصلاح النسخة المتماثلة المهجورة حتى إذا كان لديها بالفعل عدد كبير جدًا من العُقد في قائمة الانتظار الخاصة بها. #4399 (alexey-milovidov)
- إضافة وسيط إلزامي إلى فهرس
SET(الحد الأقصى لعدد الصفوف المخزنة). #4386 (Nikita Vasilev)
إصلاحات الأخطاء
- تم إصلاح نتيجة
WITH ROLLUPعند استخدامGROUP BYعلى مفتاحLowCardinalityواحد. #4384 (Nikolai Kochetov) - تم إصلاح خطأ في فهرس set (كان يحذف granule إذا كانت تحتوي على أكثر من
max_rowsصفًا). #4386 (Nikita Vasilev) - العديد من إصلاحات build الخاصة بـ FreeBSD. #4397 (proller)
- تم إصلاح استبدال الأسماء المستعارة في الاستعلامات التي تحتوي على استعلام فرعي يتضمن الاسم المستعار نفسه (المشكلة #4110). #4351 (Artem Zuikov)
تحسينات البناء/الاختبار/التغليف
- إضافة إمكانية تشغيل
clickhouse-serverداخل صورة Docker لاستخدامه في الاختبارات عديمة الحالة. #4347 (Vasily Nemkov)
إصدار ClickHouse 19.3.3، 2019-02-13
الميزات الجديدة
- أُضيفت العبارة
KILL MUTATIONالتي تتيح إزالة الطفرات العالقة لأي سبب. وأُضيفت الحقولlatest_failed_partوlatest_fail_timeوlatest_fail_reasonإلى جدولsystem.mutationsلتسهيل استكشاف الأخطاء وإصلاحها. #4287 (Alex Zatelepin) - أُضيفت الدالة التجميعية
entropyالتي تحسب إنتروبيا شانون. #4238 (Quid37) - أُضيفت إمكانية إرسال الاستعلامات
INSERT INTO tbl VALUES (....إلى الخادم من دون تقسيمها إلى جزأيqueryوdata. #4301 (alesapin) - أُضيف تنفيذ عام للدالة
arrayWithConstant. #4322 (alexey-milovidov) - جرى تنفيذ معامل المقارنة
NOT BETWEEN. #4228 (Dmitry Naumov) - جرى تنفيذ
sumMapFilteredلإتاحة تقييد عدد المفاتيح التي ستجمعsumMapقيمها. #4129 (Léo Ercolanelli) - أُضيف دعم الأنواع
Nullableفي دالة الجدولmysql. #4198 (Emmanuel Donin de Rosière) - دعم التعابير الثابتة الاعتباطية في عبارة
LIMIT. #4246 (k3box) - أُضيفت الدالة التجميعية
topKWeightedالتي تأخذ وسيطة إضافية للوزن (عدد صحيح غير موقّع). #4245 (Andrew Golman) - يدعم
StorageJoinالآن الإعدادjoin_any_take_last_rowالذي يتيح استبدال القيم الموجودة للمفتاح نفسه. #3973 (Amos Bird - أُضيفت الدالة
toStartOfInterval. #4304 (Vitaly Baranov) - أُضيف التنسيق
RowBinaryWithNamesAndTypes. #4200 (Oleg V. Kozlyuk) - أُضيف نوعا البيانات
IPv4وIPv6. كما أُضيفت تطبيقات أكثر كفاءة لدوالIPv*. #3669 (Vasily Nemkov) - أُضيفت الدالة
toStartOfTenMinutes(). #4298 (Vitaly Baranov) - أُضيف تنسيق الإخراج
Protobuf. #4005 #4158 (Vitaly Baranov) - أُضيف دعم brotli إلى واجهة HTTP لاستيراد البيانات (عمليات INSERT). #4235 (Mikhail)
- أُضيفت تلميحات عندما يرتكب المستخدم خطأً مطبعيًا في اسم دالة أو نوع ضمن عميل سطر الأوامر. #4239 (Danila Kutenin)
- أُضيف
Query-Idإلى ترويسة استجابة HTTP الخاصة بالخادم. #4231 (Mikhail)
الميزات التجريبية
- أُضيفت فهارس تخطي البيانات
minmaxوsetلعائلة محركات الجداول MergeTree. #4143 (Nikita Vasilev) - أُضيف تحويل
CROSS JOINإلىINNER JOINعند الإمكان. #4221 #4266 (Artem Zuikov)
إصلاحات الأخطاء
- تم إصلاح الخطأ
Not found columnللأعمدة المكررة في قسمJOIN ON. #4279 (Artem Zuikov) - تم جعل الأمر
START REPLICATED SENDSيبدأ عمليات الإرسال المكررة. #4229 (nvartolomei) - تم إصلاح تنفيذ الدوال التجميعية مع الوسيطات
Array(LowCardinality). #4055 (KochetovNicolai) - تم إصلاح السلوك غير الصحيح عند تنفيذ الاستعلام
INSERT ... SELECT ... FROM file(...)إذا كان الملف بتنسيقCSVWithNamesأوTSVWIthNamesوكان صف البيانات الأول مفقودًا. #4297 (alexey-milovidov) - تم إصلاح التعطل عند إعادة تحميل القاموس إذا لم يكن القاموس متاحًا. ظهر هذا الخطأ في 19.1.6. #4188 (proller)
- تم إصلاح
ALL JOINفي حالة وجود تكرارات في الجدول الأيمن. #4184 (Artem Zuikov) - تم إصلاح خطأ segmentation fault مع
use_uncompressed_cache=1، وكذلك الاستثناء الناتج عن حجم غير مضغوط غير صحيح. ظهر هذا الخطأ في 19.1.6. #4186 (alesapin) - تم إصلاح خطأ
compile_expressionsعند مقارنة التواريخ الكبيرة (الأكبر من int16). #4341 (alesapin) - تم إصلاح الحلقة اللانهائية عند تنفيذ SELECT من دالة الجدول
numbers(0). #4280 (alexey-milovidov) - تم تعطيل تحسين predicate مؤقتًا لـ
ORDER BY. #3890 (Winter Zhang) - تم إصلاح الخطأ
Illegal instructionعند استخدام دوال base64 على وحدات CPU القديمة. لم يظهر هذا الخطأ إلا عندما جرى تجميع ClickHouse باستخدام gcc-8. #4275 (alexey-milovidov) - تم إصلاح الخطأ
No message receivedعند التفاعل مع PostgreSQL ODBC Driver عبر TLS connection. كما تم إصلاح segfault عند استخدام MySQL ODBC Driver. #4170 (alexey-milovidov) - تم إصلاح النتيجة غير الصحيحة عند استخدام الوسيطتين
DateوDateTimeفي فروع المعامل الشرطي (الدالةif). كما أُضيفت حالة عامة للدالةif. #4243 (alexey-milovidov) - تُحمَّل قواميس ClickHouse الآن ضمن العملية
clickhouse. #4166 (alexey-milovidov) - تم إصلاح حالة توقف متبادل عند إعادة محاولة تنفيذ
SELECTمن جدول بمحركFileبعد ظهور الخطأNo such file or directory. #4161 (alexey-milovidov) - تم إصلاح race condition كانت قد تؤدي عند تنفيذ SELECT من
system.tablesإلى ظهور الخطأtable does not exist. #4313 (alexey-milovidov) - قد يتعطل
clickhouse-clientبسبب segfault عند الخروج أثناء تحميل بيانات اقتراحات سطر الأوامر إذا كان قد شُغِّل في الوضع التفاعلي. #4317 (alexey-milovidov) - أُصلح خلل كان يؤدي فيه تنفيذ عمليات mutation التي تحتوي على العامل
INإلى نتائج غير صحيحة. #4099 (Alex Zatelepin) - أُصلح الخطأ التالي: إذا وُجدت قاعدة بيانات بمحرك
Dictionary، فسيُفرَض تحميل جميع القواميس عند بدء تشغيل الخادم، وإذا وُجد قاموس بمصدر ClickHouse من localhost، فلن يتمكن هذا القاموس من التحميل. #4255 (alexey-milovidov) - أُصلح خطأ كان يحدث عند محاولة إنشاء سجلات النظام مرة أخرى أثناء إيقاف تشغيل الخادم. #4254 (alexey-milovidov)
- أُصلح إرجاع النوع الصحيح والتعامل مع الأقفال على نحو سليم في الدالة
joinGet. #4153 (Amos Bird) - أُضيفت الدالة
sumMapWithOverflow. #4151 (Léo Ercolanelli) - أُصلح segfault مرتبط بالإعداد
allow_experimental_multiple_joins_emulation. 52de2c (Artem Zuikov) - أُصلح خلل متعلق بمقارنة غير صحيحة بين
DateوDateTime. #4237 (valexey) - أُصلح اختبار fuzz ضمن undefined behavior sanitizer، وذلك بإضافة فحص لنوع المَعلمة لعائلة الدوال
quantile*Weighted. #4145 (alexey-milovidov) - أُصلح race condition نادر كان قد يتسبب في فشل إزالة data parts القديمة مع ظهور الخطأ
File not found. #4378 (alexey-milovidov) - أُصلح تثبيت الحزمة عند غياب /etc/clickhouse-server/config.xml. #4343 (proller)
تحسينات البناء/الاختبار/الحزم
- حزمة Debian: تصحيح الرابط
/etc/clickhouse-server/preprocessedوفقًا للإعدادات. #4205 (proller) - إصلاحات متنوعة للبناء على FreeBSD. #4225 (proller)
- أُضيفت إمكانية إنشاء الجداول وتعبئتها وحذفها في perftest. #4220 (alesapin)
- أُضيف سكربت للتحقق من التضمينات المكررة. #4326 (alexey-milovidov)
- أُضيفت إمكانية تشغيل الاستعلامات حسب الفهرس في اختبار الأداء. #4264 (alesapin)
- يُوصى بتثبيت حزمة رموز Debug. #4274 (alexey-milovidov)
- إعادة هيكلة performance-test، مع تحسين logging والتعامل مع الإشارات. #4171 (alesapin)
- أُضيفت وثائق لمجموعات البيانات مجهولة المصدر من Yandex.Metrica. #4164 (alesapin)
- أُضيفت أداة لتحويل جزء قديم مقسّم شهريًا إلى تنسيق التقسيم المخصص. #4195 (Alex Zatelepin)
- أُضيفت وثائق حول مجموعتي بيانات على S3. #4144 (alesapin)
- أُضيف سكربت ينشئ سجل التغييرات من وصف طلبات السحب. #4169 #4173 (KochetovNicolai) (KochetovNicolai)
- أُضيفت وحدة Puppet لـ ClickHouse. #4182 (Maxim Fedotov)
- أُضيفت وثائق لمجموعة من الدوال غير الموثقة. #4168 (Winter Zhang)
- إصلاحات بناء ARM. #4210#4306 #4291 (proller) (proller)
- أصبحت اختبارات Dictionary قابلة للتشغيل الآن عبر
ctest. #4189 (proller) - يُستخدم الآن
/etc/sslبوصفه الدليل الافتراضي لشهادات SSL. #4167 (alexey-milovidov) - أُضيف التحقق من تعليمات SSE وAVX عند البدء. #4234 (Igr)
- سينتظر سكربت التهيئة بدء الخادم. #4281 (proller)
التغييرات غير المتوافقة مع الإصدارات السابقة
- أُزيل الإعداد
allow_experimental_low_cardinality_type. أصبحت أنواع البياناتLowCardinalityجاهزة للاستخدام في بيئة الإنتاج. #4323 (alexey-milovidov) - خُفِّض حجم mark cache وحجم uncompressed cache بما يتناسب مع مقدار الذاكرة المتاحة. #4240 (Lopatin Konstantin
- أُضيفت الكلمة المفتاحية
INDEXإلى استعلامCREATE TABLE. يجب إحاطة اسم أي عمودindexبعلامات backticks أو بعلامات اقتباس مزدوجة:`index`. #4143 (Nikita Vasilev) - تُرقّي
sumMapالآن نوع النتيجة بدلًا من حدوث تجاوز سعة. ويمكن الحصول على السلوك القديم لـsumMapباستخدام الدالةsumMapWithOverflow. #4151 (Léo Ercolanelli)
تحسينات الأداء
- تم استبدال
std::sortبـpdqsortفي الاستعلامات التي لا تحتوي علىLIMIT. #4236 (Evgenii Pravda) - أصبح الخادم الآن يعيد استخدام الخيوط من تجمع الخيوط العام. يؤثر ذلك في الأداء في بعض الحالات النادرة. #4150 (alexey-milovidov)
التحسينات
- تمت إضافة دعم AIO إلى FreeBSD. #4305 (urgordeadbeef)
- أصبح
SELECT * FROM a JOIN b USING a, bيعيد العمودينaوbمن الجدول الأيسر فقط. #4141 (Artem Zuikov) - أصبح خيار
-Cفي client يعمل مثل الخيار-c. #4232 (syominsergey) - عند استخدام الخيار
--passwordمن دون قيمة، فإنه يطلب الآن كلمة المرور من stdin. #4230 (BSD_Conqueror) - تمت إضافة تمييز للمحارف الخاصة غير المُهربة في السلاسل النصية الحرفية التي تحتوي على تعبيرات
LIKEأو regexps. #4327 (alexey-milovidov) - تمت إضافة إلغاء queries HTTP للقراءة فقط إذا انقطع socket الخاص بالعميل. #4213 (nvartolomei)
- أصبح server يبلّغ عن التقدم للإبقاء على connections الخاصة بالعميل نشطة. #4215 (Ivan)
- تم تحسين الرسالة التي توضّح سبب استعلام OPTIMIZE عند تمكين الإعداد
optimize_throw_if_noopبشكل طفيف. #4294 (alexey-milovidov) - تمت إضافة دعم الخيار
--versionإلى ClickHouse server. #4251 (Lopatin Konstantin) - تمت إضافة الخيار
--help/-hإلىclickhouse-server. #4233 (Yuriy Baranov) - تمت إضافة دعم للاستعلامات الفرعية ذات القيمة المفردة ذات ناتج حالة aggregate function. #4348 (Nikolai Kochetov)
- تم تحسين وقت إيقاف server ومدة انتظار أوامر ALTER. #4372 (alexey-milovidov)
- تمت إضافة معلومات عن الإعداد replicated_can_become_leader إلى system.replicas، مع إضافة logging إذا كانت replica لن تحاول أن تصبح leader. #4379)
إصدار ClickHouse 19.1
إصدار ClickHouse 19.1.14، 2019-03-14
- تم إصلاح الخطأ
Column ... queried more than onceالذي قد يحدث إذا كان الإعدادasterisk_left_columns_onlyمضبوطًا على 1 عند استخدامGLOBAL JOINمعSELECT *(وهي حالة نادرة). هذه المشكلة غير موجودة في الإصدار 19.3 والإصدارات الأحدث. 6bac7d8d (Artem Zuikov)
إصدار ClickHouse 19.1.13، 2019-03-12
إصدار ClickHouse 19.1.10، 2019-03-03
إصدار ClickHouse 19.1
إصدار ClickHouse 19.1.9، 2019-02-21
إصلاحات الأخطاء
- تم إصلاح عدم التوافق مع الإصدارات السابقة الناتج عن تنفيذ غير صحيح للإعداد
send_logs_level. #4445 (alexey-milovidov) - تم إصلاح عدم التوافق مع الإصدارات السابقة في دالة الجدول
remoteالذي ظهر مع تعليقات الأعمدة. #4446 (alexey-milovidov)
إصدار ClickHouse 19.1.8، 2019-02-16
إصلاحات الأخطاء
إصدار ClickHouse 19.1
إصدار ClickHouse 19.1.7، 2019-02-15
خطأ
- إرجاع النوع الصحيح والتعامل مع الأقفال بشكل سليم في الدالة
joinGet. #4153 (Amos Bird) - تم إصلاح خطأ عند إعادة محاولة إنشاء سجلات النظام أثناء إيقاف تشغيل الخادم. #4254 (alexey-milovidov)
- تم إصلاح خطأ: إذا كانت هناك قاعدة بيانات بمحرك
Dictionary، فكان يتم فرض تحميل جميع القواميس عند بدء تشغيل الخادم، وإذا وُجد قاموس بمصدر ClickHouse منlocalhost، فلا يمكن تحميله. #4255 (alexey-milovidov) - تم إصلاح خلل كان يؤدي إلى نتائج غير صحيحة عند تنفيذ mutations التي تحتوي على المعامل
IN. #4099 (Alex Zatelepin) - قد يتعرض
clickhouse-clientإلى segfault عند الخروج أثناء تحميل بيانات اقتراحات سطر الأوامر إذا كان قد شُغّل في interactive mode. #4317 (alexey-milovidov) - تم إصلاح race condition حيث إن الاستعلام من
system.tablesقد يؤدي إلى الخطأtable does not exist. #4313 (alexey-milovidov) - تم إصلاح حالة deadlock عند إعادة محاولة
SELECTمن table بمحركFileبعد الخطأNo such file or directory. #4161 (alexey-milovidov) - تم إصلاح مشكلة: كانت القواميس المحلية في ClickHouse تُحمَّل عبر TCP، بينما ينبغي تحميلها ضمن العملية نفسها. #4166 (alexey-milovidov)
- تم إصلاح الخطأ
No message receivedعند التفاعل مع PostgreSQL ODBC Driver عبر TLS connection. كما أُصلح segfault عند استخدام MySQL ODBC Driver. #4170 (alexey-milovidov) - تعطيل تحسين predicate مؤقتًا لـ
ORDER BY. #3890 (Winter Zhang) - تم إصلاح حلقة لا نهائية عند الاستعلام من table function
numbers(0). #4280 (alexey-milovidov) - تم إصلاح خلل في
compile_expressionsعند مقارنة التواريخ الكبيرة (الأكبر من int16). #4341 (alesapin) - تم إصلاح segmentation fault مع
uncompressed_cache=1، وكذلك استثناء ناتج عن قيمة غير صحيحة لـ uncompressed size. #4186 (alesapin) - تم إصلاح
ALL JOINمع التكرارات في right table. #4184 (Artem Zuikov) - تم إصلاح سلوك غير صحيح عند تنفيذ query
INSERT ... SELECT ... FROM file(...)إذا كان الملف بتنسيقCSVWithNamesأوTSVWIthNamesوكان صف البيانات الأول مفقودًا. #4297 (alexey-milovidov) - تم إصلاح تنفيذ aggregate functions مع arguments من النوع
Array(LowCardinality). #4055 (KochetovNicolai) - حزمة Debian: تصحيح الرابط
/etc/clickhouse-server/preprocessedبما يتوافق مع الإعدادات. #4205 (proller) - إصلاح اختبار fuzz ضمن undefined behavior sanitizer: تمت إضافة تحقّق من نوع المعلمة لعائلة الدوال
quantile*Weighted. #4145 (alexey-milovidov) - جعل الأمر
START REPLICATED SENDSيبدأ عمليات الإرسال المتماثلة. #4229 (nvartolomei) - إصلاح الخطأ
Not found columnعند وجود أعمدة مكررة في قسم JOIN ON. #4279 (Artem Zuikov) - يُستخدم الآن
/etc/sslبوصفه الدليل الافتراضي لشهادات SSL. #4167 (alexey-milovidov) - إصلاح تعطل عند إعادة تحميل القاموس إذا كان غير متاح. #4188 (proller)
- إصلاح خلل في المقارنة غير الصحيحة بين
DateوDateTime. #4237 (valexey) - إصلاح نتيجة غير صحيحة عند استخدام وسيطات
DateوDateTimeفي فروع المعامل الشرطي (الدالةif). تمت إضافة حالة عامة للدالةif. #4243 (alexey-milovidov)
إصدار ClickHouse 19.1.6، 2019-01-24
الميزات الجديدة
- مرمّزات ضغط مخصصة لكل عمود في الجداول. #3899 #4111 (alesapin, Winter Zhang, Anatoly)
- تمت إضافة مرمّز الضغط
Delta. #4052 (alesapin) - إتاحة تنفيذ
ALTERعلى مرمّزات الضغط. #4054 (alesapin) - تمت إضافة الدوال
left,right,trim,ltrim,rtrim,timestampadd,timestampsubللتوافق مع معيار SQL. #3826 (Ivan Blinkov) - دعم الكتابة في جداول
HDFSودالة الجدولhdfs. #4084 (alesapin) - تمت إضافة دوال للبحث عن عدة سلاسل ثابتة ضمن نص كبير:
multiPosition,multiSearch,firstMatch، وكذلك بالإصدارات-UTF8,-CaseInsensitive, و-CaseInsensitiveUTF8. #4053 (Danila Kutenin) - استبعاد الشظايا غير المستخدمة إذا كان استعلام
SELECTيرشّح باستخدام مفتاح التجزئة (الإعدادoptimize_skip_unused_shards). #3851 (Gleb Kanterov, Ivan) - السماح لمحرك
Kafkaبتجاهل عدد معيّن من أخطاء التحليل لكل كتلة بيانات. #4094 (Ivan) - تمت إضافة دعم لتقييم نماذج
CatBoostمتعددة الفئات. تُرجع الدالةmodelEvaluateقيمة tuple تتضمن تنبؤات خام لكل فئة في النماذج متعددة الفئات. يجب بناءlibcatboostmodel.soباستخدام #607. #3959 (KochetovNicolai) - تمت إضافة الدوال
filesystemAvailable,filesystemFree,filesystemCapacity. #4097 (Boris Granveaud) - تمت إضافة دوال التجزئة
xxHash64وxxHash32. #3905 (filimonov) - تمت إضافة دالة التجزئة
gccMurmurHash(تجزئة Murmur بنكهة GCC) التي تستخدم بذرة التجزئة نفسها كما في gcc #4000 (sundyli) - تمت إضافة دوال التجزئة
javaHash,hiveHash. #3811 (shangshujie365) - تمت إضافة دالة الجدول
remoteSecure. تعمل الدالة مثلremote، لكنها تستخدم اتصالًا آمنًا. #4088 (proller)
الميزات التجريبية
- أُضيفت محاكاة لعمليات JOIN متعددة (الإعداد
allow_experimental_multiple_joins_emulation). #3946 (Artem Zuikov)
إصلاحات الأخطاء
- جعل إعداد
compiled_expression_cache_sizeمقيّدًا افتراضيًا للحد من استهلاك الذاكرة. #4041 (alesapin) - إصلاح خلل أدّى إلى تعليق خيوط التنفيذ التي تنفّذ ALTER على جداول Replicated، وكذلك خيط التنفيذ الذي يحدّث الإعدادات من ZooKeeper. #2947 #3891 #3934 (Alex Zatelepin)
- إصلاح حالة تسابق عند تنفيذ مهمة ALTER موزعة. وقد أدّت حالة التسابق إلى محاولة أكثر من replica واحدة تنفيذ المهمة، وفشل جميع الـ replicas باستثناء واحدة بسبب خطأ في ZooKeeper. #3904 (Alex Zatelepin)
- إصلاح خلل كان يحدث عندما لا تُحدَّث عناصر الإعداد
from_zkبعد انتهاء مهلة طلب إلى ZooKeeper. #2947 #3947 (Alex Zatelepin) - إصلاح خلل متعلق ببادئة غير صحيحة لأقنعة الشبكات الفرعية IPv4. #3945 (alesapin)
- إصلاح تعطل (
std::terminate) في حالات نادرة عندما يتعذر إنشاء خيط تنفيذ جديد بسبب استنفاد الموارد. #3956 (alexey-milovidov) - إصلاح خلل عند تنفيذ دالة الجدول
remote، حيث كانت تُستخدم قيود غير صحيحة فيgetStructureOfRemoteTable. #4009 (alesapin) - إصلاح تسرّب في مقابس netlink. إذ وُضعت في مجمع لم تُحذف منه أبدًا، وكانت تُنشأ مقابس جديدة عند بدء خيط تنفيذ جديد إذا كانت جميع المقابس الحالية قيد الاستخدام. #4017 (Alex Zatelepin)
- إصلاح خلل متعلق بإغلاق الدليل
/proc/self/fdقبل قراءة جميع واصفات الملفات من/procبعد إنشاء العملية الفرعيةodbc-bridgeعبر fork. #4120 (alesapin) - إصلاح التحويل الرتيب من Fixed String إلى UInt في حالة استخدام String في المفتاح الأساسي. #3870 (Winter Zhang)
- إصلاح خطأ في حساب الرتابة لدالة تحويل الأعداد الصحيحة. #3921 (alexey-milovidov)
- إصلاح segfault في الدالتين
arrayEnumerateUniqوarrayEnumerateDenseفي حال وجود بعض الوسيطات غير الصالحة. #3909 (alexey-milovidov) - إصلاح سلوك غير معرّف في StorageMerge. #3910 (Amos Bird)
- إصلاح segfault في الدالتين
addDaysوsubtractDays. #3913 (alexey-milovidov) - إصلاح الخطأ التالي: قد تُرجع الدوال
roundوfloorوtruncوceilنتيجة غير صحيحة عند تنفيذها على وسيطة عدد صحيح ومع scale سالب كبير. #3914 (alexey-milovidov) - أُصلِح خطأ ناتج عن ‘kill query sync’ كان يؤدي إلى core dump. #3916 (muVulDeePecker)
- أُصلِح خطأ يتسبب في تأخير طويل بعد أن يصبح طابور النسخ المتماثل فارغًا. #3928 #3932 (alesapin)
- أُصلِح الاستهلاك المفرط للذاكرة عند الإدراج في جدول ذي مفتاح أساسي
LowCardinality. #3955 (KochetovNicolai) - أُصلِح تسلسل
LowCardinalityلتنسيقNativeفي حالة المصفوفات الفارغة. #3907 #4011 (KochetovNicolai) - أُصلِحت نتيجة غير صحيحة عند استخدام DISTINCT على عمود رقمي واحد من نوع LowCardinality. #3895 #4012 (KochetovNicolai)
- أُصلِح التجميع المتخصص باستخدام مفتاح LowCardinality (عندما يكون الإعداد
compileمُمكّنًا). #3886 (KochetovNicolai) - أُصلِح تمرير المستخدم وكلمة المرور لاستعلامات الجداول المكررة. #3957 (alesapin) (小路)
- أُصلِحت حالة تسابق نادرة جدًا قد تحدث عند سرد الجداول في قاعدة بيانات Dictionary أثناء إعادة تحميل القواميس. #3970 (alexey-milovidov)
- أُصلِحت نتيجة غير صحيحة عند استخدام HAVING مع ROLLUP أو CUBE. #3756 #3837 (Sam Chou)
- أُصلِحت الأسماء المستعارة للأعمدة في الاستعلامات التي تستخدم صياغة
JOIN ONوالجداول الموزعة. #3980 (Winter Zhang) - أُصلِح خطأ في التنفيذ الداخلي للدالة
quantileTDigest(اكتشفه Artem Vakhrushev). هذا الخطأ لا يحدث مطلقًا في ClickHouse، وكان ذا صلة فقط بمن يستخدمون الشيفرة المصدرية لـ ClickHouse مباشرةً كمكتبة. #3935 (alexey-milovidov)
التحسينات
- إضافة دعم
IF NOT EXISTSفي عباراتALTER TABLE ADD COLUMN، إلى جانبIF EXISTSفيDROP/MODIFY/CLEAR/COMMENT COLUMN. #3900 (Boris Granveaud) - الدالة
parseDateTimeBestEffort: دعم التنسيقاتDD.MM.YYYYوDD.MM.YYوDD-MM-YYYYوDD-Mon-YYYYوDD/Month/YYYYوما شابهها. #3922 (alexey-milovidov) - أصبح
CapnProtoInputStreamيدعم الآن البُنى غير المنتظمة. #4063 (Odin Hultgren Van Der Horst) - تحسين في سهولة الاستخدام: أُضيف تحقق للتأكد من أن عملية الخادم تبدأ من مالك دليل البيانات. ولا يُسمح بتشغيل الخادم من root إذا كانت البيانات مملوكة لمستخدم غير root. #3785 (sergey-v-galtsev)
- تحسين منطق التحقق من الأعمدة المطلوبة أثناء تحليل الاستعلامات التي تتضمن JOINs. #3930 (Artem Zuikov)
- تقليل عدد الاتصالات عند وجود عدد كبير من Distributed tables على خادم واحد. #3726 (Winter Zhang)
- إضافة دعم صف الإجماليات للاستعلام
WITH TOTALSفي ODBC Driver. #3836 (Maksim Koritckiy) - السماح باستخدام
Enums كأعداد صحيحة داخل الدالةif. #3875 (Ivan) - إضافة الإعداد
low_cardinality_allow_in_native_format. وإذا كان معطلاً، فلن يُستخدم النوعLowCadrinalityفي التنسيقNative. #3879 (KochetovNicolai) - إزالة بعض الكائنات الزائدة من ذاكرة التخزين المؤقت الخاصة بالتعبيرات المترجمة برمجيًا لتقليل استخدام الذاكرة. #4042 (alesapin)
- إضافة تحقق للتأكد من أن الاستعلام
SET send_logs_level = 'value'يقبل قيمة مناسبة. #3873 (Sabyanin Maxim) - إصلاح التحقق من نوع البيانات في دوال تحويل الأنواع. #3896 (Winter Zhang)
تحسينات الأداء
- إضافة إعداد MergeTree
use_minimalistic_part_header_in_zookeeper. عند تمكينه، ستخزّن الجداول المُكرَّرة البيانات الوصفية للجزء المدمج في znode واحدة لكل جزء. ويمكن أن يقلّل هذا بشكل كبير من حجم اللقطة في ZooKeeper (خصوصًا إذا كانت الجداول تحتوي على عدد كبير من الأعمدة). لاحظ أنه بعد تمكين هذا الإعداد، لن تتمكن من الرجوع إلى إصدار أقدم لا يدعمه. #3960 (Alex Zatelepin) - إضافة تنفيذ يعتمد على DFA للدالتين
sequenceMatchوsequenceCountعندما لا يتضمن النمط وقتًا. #4004 (Léo Ercolanelli) - تحسين الأداء في تسلسل الأعداد الصحيحة. #3968 (Amos Bird)
- إضافة حشو صفري إلى يسار PODArray بحيث يكون العنصر -1 صالحًا دائمًا ومصفّرًا. ويُستخدم ذلك في حساب الإزاحات دون تفرعات. #3920 (Amos Bird)
- التراجع عن إصدار
jemallocالذي أدى إلى تراجع الأداء. #4018 (alexey-milovidov)
تغييرات غير متوافقة مع الإصدارات السابقة
- أُزيلت الميزة غير الموثقة
ALTER MODIFY PRIMARY KEYلأنها حلّ محلها الأمرALTER MODIFY ORDER BY. #3887 (Alex Zatelepin) - أُزيلت الدالة
shardByHash. #3833 (alexey-milovidov) - يُحظر استخدام الاستعلامات الفرعية ذات القيمة المفردة إذا كانت النتيجة من النوع
AggregateFunction. #3865 (Ivan)
تحسينات البناء/الاختبار/الحزم
- تمت إضافة دعم لبنية PowerPC (
ppc64le). #4132 (Danila Kutenin) - أصبحت الاختبارات الوظيفية ذات الحالة تُشغَّل على مجموعة بيانات متاحة للعامة. #3969 (alexey-milovidov)
- تم إصلاح خطأ يمنع الخادم من البدء مع ظهور الرسالة
bash: /usr/bin/clickhouse-extract-from-config: Operation not permittedداخل Docker أو systemd-nspawn. #4136 (alexey-milovidov) - تم تحديث مكتبة
rdkafkaإلى v1.0.0-RC5. واستُخدمت cppkafka بدلًا من واجهة C المباشرة. #4025 (Ivan) - تم تحديث مكتبة
mariadb-client. وتم إصلاح إحدى المشكلات التي اكتشفها UBSan. #3924 (alexey-milovidov) - بعض الإصلاحات لبنيات UBSan. #3926 #3021 #3948 (alexey-milovidov)
- تمت إضافة تشغيلات للاختبارات مع كل commit باستخدام بنية UBSan.
- تمت إضافة تشغيلات مع كل commit للمحلل الساكن PVS-Studio.
- تم إصلاح الأخطاء التي اكتشفها PVS-Studio. #4013 (alexey-milovidov)
- تم إصلاح مشكلات التوافق مع glibc. #4100 (alexey-milovidov)
- نُقلت صور Docker إلى الإصدار 18.10، وأُضيف ملف توافق لـ glibc >= 2.28 #3965 (alesapin)
- أُضيف متغير بيئة إذا كان المستخدم لا يريد تنفيذ
chownعلى الأدلة في صورة Docker الخاصة بالخادم. #3967 (alesapin) - تم تفعيل معظم التحذيرات من
-Weverythingفي clang. وتم تفعيل-Wpedantic. #3986 (alexey-milovidov) - تمت إضافة عدد قليل من التحذيرات الإضافية المتاحة فقط في clang 8. #3993 (alexey-milovidov)
- الربط مع
libLLVMبدلًا من مكتبات LLVM الفردية عند استخدام الربط المشترك. #3989 (Orivej Desh) - تمت إضافة متغيرات sanitizer لصور الاختبار. #4072 (alesapin)
- ستوصي حزمة Debian الخاصة بـ
clickhouse-serverبحزمةlibcap2-binلاستخدام أداةsetcapلضبط capabilities. وهذا اختياري. #4093 (alexey-milovidov) - تم تحسين زمن الترجمة البرمجية، وإصلاح ملفات التضمين. #3898 (proller)
- تمت إضافة اختبارات أداء لدوال hash. #3918 (filimonov)
- تم إصلاح التبعيات الدورية بين المكتبات. #3958 (proller)
- تم تحسين عملية الترجمة البرمجية عند محدودية الذاكرة المتاحة. #4030 (proller)
- تمت إضافة سكربت اختبار لإعادة إنتاج تراجع الأداء في
jemalloc. #4036 (alexey-milovidov) - تم تصحيح الأخطاء الإملائية في التعليقات والثوابت النصية ضمن
dbms. #4122 (maiha) - تم تصحيح الأخطاء المطبعية في التعليقات. #4089 (Evgenii Pravda)