الانتقال إلى المحتوى الرئيسي

إصدار 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)

أخرى

إصدار 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)
  • جرى قفل TinyLog Storage أثناء القراءة. #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)

تحسين الأداء

  • تحسين count(): أصبح الآن يستخدم أصغر عمود (إن أمكن). #6028 (Amos Bird)

تحسينات البناء/الاختبار/التحزيم

  • إضافة الإبلاغ عن استخدام الذاكرة في اختبارات الأداء. #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&#95;suffix&#95;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 في minmax INDEX مع قيمة 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)

تحسينات الأداء

التوثيق

تحسينات البناء/الاختبار/التغليف

إصدار 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)

تحسينات الأداء

تغييرات غير متوافقة مع الإصدارات السابقة

  • أُعيدت تسمية ترويسة HTTP ‏Query-Id إلى X-ClickHouse-Query-Id اتساقًا. #4972 (Mikhail)

إصلاحات الأخطاء

  • تم إصلاح فكّ مرجعية محتمل لمؤشر 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

إصلاحات الأخطاء

إصدار 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)
  • أُصلح سباق بيانات نادر يمكن أن يحدث أثناء RENAME table من 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 الخاص بـ column 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)
  • إصلاح أنواع argument الخاطئة لـ aggregate functions ذات arguments من نوع LowCardinality (يصلح issue #4919). #4922 (Nikolai Kochetov)
  • إصلاح نتيجة الدالة toISOWeek للسنة 1970. #4988 (alexey-milovidov)
  • إصلاح تكرار queries DROP و TRUNCATE و OPTIMIZE عند تنفيذها باستخدام ON CLUSTER لعائلة tables ReplicatedMergeTree*. #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 افتراضيًا إلى أن نحصل على llvm contrib الخاص بنا ونتمكن من اختباره باستخدام clang وasan. #4579 (alesapin)
  • منع std::terminate عندما يُرجع invalidate_query لمصدر قاموس خارجي clickhouse resultset غير صحيحة (فارغة أو تضم أكثر من صف واحد أو أكثر من عمود واحد). كما أُصلحت مشكلة كانت تؤدي إلى تنفيذ 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

يتضمن هذا الإصدار مجموعة التصحيحات نفسها تمامًا الموجودة في 19.3.7.

إصدار ClickHouse 19.1.10، 2019-03-03

يتضمن هذا الإصدار نفس مجموعة التصحيحات الموجودة في 19.3.6 تمامًا.

إصدار 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

إصلاحات الأخطاء

  • إصلاح مشكلة في حزمة التثبيت عند غياب ‎/etc/clickhouse-server/config.xml. #4343 (proller)

إصدار 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)
آخر تعديل في ٢٩ يونيو ٢٠٢٦