التغييرات غير المتوافقة مع الإصدارات السابقة
تغييرات أنواع البيانات
- تقديم النوع
Geometryمع دعم قراءة التنسيقينWKBوWKT. في الإصدارات السابقة، كان النوعGeometryاسمًا مستعارًا لـString، أما الآن فقد أصبح نوعًا متكامل الميزات. #83344 (Konstantin Vedernikov). - إزالة النوع Object المتوقف عن الاستخدام. #85718 (Pavel Kruglov).
- إجراء تهريب لأسماء الملفات المُنشأة لـ subcolumns الخاصة بالنوع Variant في data part من نوع Wide ضمن جداول MergeTree. هذا التغيير يكسر التوافق مع الجداول القديمة التي تستخدم أنواع البيانات Variant/Dynamic/JSON. كما يعالج تخزين الأنواع التي تحتوي على رموز خاصة داخل Variant (مثل DateTime مع timezone محددة تحتوي على
\). يمكن تعطيل هذا التهريب بتغيير إعداد MergeTree escape_variant_subcolumn_filenames(وللحفاظ على التوافق، عطّل هذا الإعداد في config الخاصة بـ MergeTree أو اضبط إعدادcompatibilityعلى الإصدار السابق قبل الترقية). ويعالج المشكلة #69590. #87300 (Pavel Kruglov).
تغييرات على الاستعلامات والدوال
- يتطلب
ALTER MODIFY COLUMNالآن تحديدDEFAULTصراحةً عند تحويل الأعمدة Nullable إلى أنواع غير قابلة لـ NULL. في السابق، كان يمكن أن تتعطل عملياتALTERهذه بسبب أخطاء cannot convert null to not null، أما الآن فتُستبدل قيم NULL بتعبير القيمة الافتراضية للعمود. يحل #5985. #84770 (Vladimir Cherkasov). - أُزيل الإعدادان
allow_not_comparable_types_in_order_by/allow_not_comparable_types_in_comparison_functions. إذ إن السماح بالأنواع غير القابلة للمقارنة في ORDER BY أو في دوال المقارنة قد يؤدي إلى أخطاء منطقية ونتائج غير متوقعة. يحل #90028. #90527 (Pavel Kruglov). - أُصلحت الدالتان bitShiftLeft و bitShiftRight لتُرجعا 0 أو قيمة فارغة عندما يكون مقدار shift مساويًا تمامًا لحجم النوع. #91943 (Pablo Marcos).
- لن يعيد مُجزِّئ ngram بعد الآن ngrams أقصر من الطول N المضبوط عليه. ولن يُرجع Text Search أي صفوف عندما تكون tokens البحث فارغة. #89757 (George Larionov).
تغييرات التخزين والفهارس
- أزل ميزة
LIVE VIEWالمهجورة. إذا كنت تستخدمLIVE VIEW، فلن يكون من الممكن الترقية إلى الإصدار الجديد. #88706 (Alexey Milovidov). - امنع إنشاء عدة أقراص
plain-rewritableفوق مسار تخزين الكائنات المشترك، لأن هذا قد يؤدي إلى سلوك غير معرّف عند حدوث تعارضات بين معاملات مختلفة لتخزين البيانات الوصفية. #89038 (Mikhail Artemenko). - أصبح الآن محظورًا إنشاء جداول
MergeTreeالخاصة (مثلReplacingMergeTreeوCollapsingMergeTreeوغيرها) بمفتاحORDER BYفارغ، لأن سلوك الدمج في هذه الجداول غير معرّف. وإذا كنت لا تزال بحاجة إلى إنشاء جدول من هذا النوع، فقم بتمكين الإعدادallow_suspicious_primary_key. #91569 (Anton Popov). - عدة إصلاحات تتعلق بالفهارس الضمنية. لن يتضمن المخطط المعروض أو المخزَّن (البيانات الوصفية في Keeper) الفهارس الضمنية، مثل تلك التي تُنشأ بواسطة الإعدادين
add_minmax_index_for_numeric_columnsأوadd_minmax_index_for_string_columns. وقد يتسبب ذلك في أخطاء في البيانات الوصفية عند إنشاء جدولReplicatedMergeTreeأو تحديثه في إصدار أحدث، بينما توجد نسخة متماثلة في إصدار أقدم. #91429 (Raúl Marín).
تغييرات الإعدادات والتهيئة
- دعم وسم الاستثناءات في استجابات نتائج HTTP لتمكين البرامج العميلة من تحليل الاستثناءات بموثوقية أكبر. يحل #75175. يكون الإعداد
http_write_exception_in_output_formatمعطّلًا افتراضيًا لضمان الاتساق عبر التنسيقات. #88818 (Kaviraj Kanagaraj). - إصلاح أولوية إعدادات SASL في Kafka storage. أصبحت إعدادات SASL على مستوى الجدول، والمحددة في استعلامات CREATE TABLE، تتجاوز الآن بشكل صحيح الإعدادات الخاصة بالمستهلك/المنتِج الواردة من ملفات التهيئة. #89401 (János Benjamin Antal).
- أُعيدت تسمية معاملات تهيئة ACME من
refresh_certificates_task_intervalإلىrefresh_certificates_task_interval_secondsومنrefresh_certificates_beforeإلىrefresh_certificates_before_seconds. وأصبح المعاملrefresh_certificates_task_interval_secondsيتوقع الآن قيمة بالثواني. #92211 (Konstantin Bogdanov). - اعتُبر تعطيل الوسيطات الموضعية في الإسقاطات تغييرًا غير متوافق مع الإصدارات السابقة. بالإضافة إلى ذلك، أُضيف الإعداد
enable_positional_arguments_for_projectionsلتمكين ترقية آمنة لعنقود ClickHouse عند وجود وسيطات موضعية في الإسقاطات. #92007 (Dmitry Novik).
تغييرات العميل
- تحديث clickhouse-client بحيث يعيد رمز خروج غير صفري (159 - TIMEOUT_EXCEEDED) عندما تتجاوز query المهلة بسبب
receive_timeout. في السابق، كانت حالات انتهاء المهلة تعيد رمز الخروج 0 (نجاح)، مما كان يصعّب على النصوص البرمجية وعمليات الأتمتة اكتشاف فشل المهلة. #91432 (Sav).
تغييرات تنسيق الإحصاءات
- عند تغيير العمود من
StringإلىNullable(String)، لن نجريmutationعلى البيانات. لكن دالة التجميعuniqتستخدم بنية بيانات مختلفة: ففي حالة العمود القابل لأن يكونNULL، ستستخدمAggregateFunctionNullمع مُجمِّع uniq متداخل. كما سيقومAggregateFunctionNullبتسلسل راية bool إضافية. وهذا سيجعل ملف الإحصاءات غير متوافق. لقد تغيّر تنسيق الإحصاءات، وسيتعطل الخادم إذا كانت لدينا إحصاءات بالتنسيق القديم. ولتجنّب حدوث استثناء، شغّلALTER TABLE [db.]table MATERIALIZE STATISTICS ALLلإعادة توليد الإحصاءات. #90311 (Han Fei).
تغييرات أخرى غير متوافقة مع الإصدارات السابقة
- إصلاح
Fatalعند ضغط البيانات إذا كان حجمها غير محاذٍ لحجم العنصر (في ترميز T64). يعالج #89282. #89432 (yanglongwei).
الميزات الجديدة
الدوال
- أُضيفت عبارة SQL جديدة EXECUTE AS لدعم انتحال هوية المستخدم. يحلّ #39048. #70775 (Shankar).
- أُضيفت الدالة
flipCoordinatesالتي تفك العدد المطلوب من الأبعاد في Array وتبدّل المؤشرات داخل عمود Tuple. يحلّ #79469. #79634 (Sachin Kumar Singh). - تحسين العامل
IS NOT DISTINCT FROM(<=>): أُضيف دعم للمعكوسIS DISTINCT FROM، ودعم للمعاملات الرقمية المتوافقة من أنواع مختلفة (مثلNullable(UInt32)وNullable(Int64)). #87581 (yanglongwei). - أُضيف دعم لدالة النافذة
cume_dist. يُصلح #86920. #88102 (Manuel). - دوال لحساب المساحة والمحيط لنوع Geometry. #89047 (Konstantin Vedernikov).
- تنفيذ الدالة
dictGetKeysالتي تُرجع مفاتيح القاموس التي تساوي سِمتها القيمة المحددة. وتستخدم ذاكرة تخزين مؤقت للبحث العكسي لكل استعلام، تُضبط بواسطة الإعدادmax_reverse_dictionary_lookup_cache_size_bytes، لتسريع عمليات البحث المتكررة. #89197 (Nihal Z. Miaji). - أُضيف دعم
arrayRemove(arr, elem)لإزالة جميع العناصر المساوية لـelemمن Arrayarr. يحلّ #52099. #89585 (tiwarysaurav). - تُقدِّم الدالة القياسية
midpointالتي تحسب المتوسط. يحلّ #89029. #89679 (simonmichal). - يمكنك الآن استرجاع كلٍ من argument وقيمة الحد الأدنى أو الأقصى المقابلة له باستخدام الدالتين الجديدتين
argAndMinوargAndMax. #89884 (AbdAlRahman Gad). - أُضيفت دالة SQL
HMAC(algorithm, message, key)كجزء من #73900 و #38775. #90837 (Mikhail f. Shiryaev). - أُضيف دعم للدالة
has()لاستخدام المفتاح الأساسي وفهارس تخطي البيانات عندما تكون argument الأولى Array ثابتة. يُغلق #90980. #91023 (Nihal Z. Miaji).
جداول النظام
- إضافة جدول
system.unicodeالذي يحتوي على قائمة بأحرف Unicode وخصائصها. يُغلق #80055. #80857 (wxybear). - أُضيف جدول نظام جديد باسم
shared_merge_tree_condemned_partsمشابه للجدولshared_merge_tree_outdated_parts، ويعرض الأجزاء الموسومة للإزالة التي توشك PartsKillerThread على التخلّص منها. (Smita Kulkarni).
محركات الجداول والتخزين
- دعم جزء من واجهة برمجة تطبيقات استعلام HTTP الخاصة بـ Prometheus. لتمكين ذلك، أضف قاعدة من النوع
query_apiفي قسم<prometheus>ضمن ملف الإعدادات. المعالِجات المدعومة هي/api/v1/query_rangeو/api/v1/query. #86132 (Nikita Mikhaylov). - يمكن للمستخدمين الآن تهيئة جداول S3/Azure Queue لنقل الملفات المُعالجة أو وسمها، بالإضافة إلى الخيارات السابقة المتمثلة في الاحتفاظ بالملفات أو إزالتها. يحلّ #72944. #86907 (Murat Khairulin).
- إضافة إعداد MergeTree جديد
merge_max_dynamic_subcolumns_in_wide_partلإتاحة تقييد عدد الأعمدة الفرعية الديناميكية في الجزء Wide بعد الدمج، بغض النظر عن المَعلمات المحددة في نوع البيانات. #87646 (Pavel Kruglov). - تكامل كتالوج Microsoft OneLake. #89366 (Konstantin Vedernikov).
- دعم صياغة
CREATE OR REPLACEللجداول المؤقتة. يُغلق #35888. #89450 (Aleksandr Musorin). - دعم join من نوع
direct(حلقة متداخلة) لجداول MergeTree. لاستخدامه، حدّده بوصفه الخيار الوحيد في الإعداد:join_algorithm = 'direct'. #89920 (Vladimir Cherkasov). - يقدّم طلب السحب هذا إعدادات على مستوى الإسقاطات، مُتاحة عبر العبارة الجديدة
WITH SETTINGSفيALTER TABLE ... ADD PROJECTION. تتيح هذه الإعدادات للإسقاطات تجاوز بعض مَعلمات تخزين MergeTree (مثل index_granularity وindex_granularity_bytes) لكل إسقاط على حدة. #90158 (Amos Bird).
Iceberg وبحيرات البيانات
- دعم
ORDER BYفي عمليةCREATEلـ Iceberg، بالإضافة إلى الفرز فيINSERT. يحلّ #89916. #90141 (Konstantin Vedernikov).
ميزات SQL والاستعلامات
- أضِف الخيار
allow_reentryإلى الدالة التجميعيةwindowFunnel. عند تفعيله معstrict_order، فإنه يتجاهل الأحداث التي تُخلّ بالترتيب بدلًا من إيقاف تحليل القمع. يتيح ذلك التعامل مع رحلات المستخدم التي تتضمن عمليات إعادة تحميل (A->A->B) أو الرجوع للخلف أثناء التنقل (A->B->A->C) من دون التقليل من معدلات التحويل المُبلَّغ عنها. #86916 (Lee ChaeRok). - يمكن للمستخدم الآن إضافة وسيطة جديدة هي
preprocessorعند إنشاء فهرس نصي. هذه الوسيطة عبارة عن تعبير اعتباطي يحوّل كل مستند قبل التجزئة إلى رموز. #88272 (Jimmy Aguilar Mena). - أضِف دعمًا لـ
LIMITوOFFSETالكسريين لاختيار جزء كسري من جدول. يُغلق #81892. #88755 (Ahmed Gouda). - أضِف الإعداد
into_outfile_create_parent_directoriesلإنشاء الأدلة الأصلية تلقائيًا لـ INTO OUTFILE، مما يمنع حدوث أخطاء عندما لا تكون مسارات الإخراج موجودة. يحل #88610. #88795 (Saksham). - أضِف الإعداد
type_json_skip_invalid_typed_pathsلتعطيل الاستثناءات لعمليات insert/تحويل الأنواع إلى JSON type عندما يتعذر تحويل JSON المُدخل إلى مسارات محددة النوع صراحةً في JSON type. ويعود حينها إلى قيمة NULL/صفر الخاصة بالمسار محدد النوع. يُغلق #86917. #89886 (Max Justus Spransy).
ميزات عميل وCLI
- يمكن لعميل CLI الآن كتم عرض الرسالة ‘ClickHouse server version is older than ClickHouse client. It may indicate that the server is out of date and can be upgraded.’ عبر تحديد
--no-server-client-version-messageأوfalse. #87784 (Larry Snizek). - يمكنك الوصول إلى مثيلات ClickHouse Cloud باستخدام بيانات اعتماد Cloud عبر
--login. #89261 (Krishna Mannem). - توفّر واجهة الويب الآن زرًا للتنزيل. ويُنزل النتيجة بالكامل حتى إذا كانت واجهة المستخدم تعرض جزءًا منها فقط. #89768 (Alexey Milovidov).
إعدادات الخادم والمراقبة
- أُضيف الحقل
memory_usageإلىX-ClickHouse-ProgressوX-ClickHouse-Summary. ويمكن استخدامه لجمع استخدام الذاكرة للاستعلامات آنيًا على جانب العميل. #88393 (Christoph Wurm). - أُضيف الإعداد
send_profile_events، الذي يتيح للعملاء تقليل حركة مرور الشبكة عند عدم استخدام profile events. #89588 (Kaviraj Kanagaraj).
Keeper
- توافق Keeper مع ZooKeeper: الإنشاء مع الإحصاءات. #88797 (Konstantin Vedernikov).
- دعم watches الدائمة في ZooKeeper ضمن ClickHouse Keeper. #88813 (Konstantin Vedernikov).
تنسيقات الإدخال/الإخراج
- استحداث تنسيق إدخال/إخراج جديد
Buffers. يشبه هذا التنسيقNative، لكنه بخلافNativeلا يخزّن أسماء الأعمدة أو أنواع الأعمدة أو أي بيانات وصفية إضافية. يغلق #84017. #91156 (Nihal Z. Miaji). - إضافة الإعداد
arrow_flight_request_descriptor_typeلدعم Dremio وخوادم Arrow Flight الأخرى التي تتطلب واصفات بأسلوب الأوامر. يعالج #89523. #89826 (Shreyas Ganesh). - أُضيف الإعداد
kafka_schema_registry_skip_bytesإلى محرك جدول Kafka لتجاوز بايتات ترويسة الغلاف (مثل البادئة المكوّنة من 19 بايت في AWS Glue Schema Registry) قبل تحليل حمولة الرسالة. #89621 (Taras Polishchuk).
ميزات جديدة أخرى
- إضافة الإعداد
max_streams_for_files_processing_in_cluster_functionsللتحكم في عدد التدفقات المستخدمة في القراءة المتوازية للملفات ضمن دوال الجداول عنقود. إغلاق #90223. #91323 (Pavel Kruglov). - السماح بتعطيل التنزيل في الخلفية لبيانات الأجزاء المجاورة على مستوى كل query. إصلاح #89524. #89668 (tanner-bruce).
- دعم e2k (Elbrus-2000) تجريبيًا كمنصة جديدة لـ ClickHouse. #90159 (Ramil Sattarov).
الميزات التجريبية
- دعم جلب شهادات TLS من موفّري ACME، RFC 8555. #66315 (Konstantin Bogdanov).
- أُضيف منطق جديد لتنفيذ الاستعلامات تلقائيًا باستخدام النسخ المتماثلة المتوازية، ويخضع للتحكم عبر الإعداد
automatic_parallel_replicas_mode. #87541 (Nikita Taranov). - أصبح البحث النصي الكامل الآن في المعاينة الخاصة (بعد أن كان سابقًا في المرحلة التجريبية). #88928 (Robert Schulze).
- نُقل
Aliasإلى الميزات التجريبية، ويمكن تمكينه باستخدامallow_experimental_alias_table_engine=1. #89712 (Kai Zhu).
تحسينات الأداء
تنفيذ الاستعلامات وتحسينها
- الإنهاء السريع للاستعلامات عند بلوغها حدود الصفوف. يعالج #61872. #62804 (Sean Haynes).
- إضافة تحسين لإزالة الأعمدة غير المستخدمة من خطط تنفيذ الاستعلام. يعالج #75152. #76487 (János Benjamin Antal).
- تحسين للتعامل مع القيم الكبيرة في ConstantNode. يُغلق #72880. #81104 (Yakov Olkhovskiy).
- الجلب المسبق للمفاتيح أثناء التكرار على جدول hash لتقليل الإخفاقات في الذاكرة المؤقتة. #84708 (lgbo).
- تحسين سرعة فك ضغط LZ4 عبر تبسيط الشيفرة وضبط خوارزمية الاختيار. #88360 (Raúl Marín).
- تنفيذ النسخ المتماثل الكسول للأعمدة في JOIN و ARRAY JOIN. وتجنُّب تحويل تمثيلات الأعمدة الخاصة، مثل Sparse وReplicated، إلى أعمدة كاملة في بعض تنسيقات الإخراج. وهذا يتجنب نسخ البيانات في الذاكرة دون داعٍ. #88752 (Pavel Kruglov).
- استخدام عمليات SIMD متقدمة للدوال المنطقية باستخدام التوجيه الديناميكي. #90432 (Raúl Marín).
- تحسين أداء دالة JIT من خلال عدم تهيئة عمود النتيجة إلى الصفر دون داعٍ. #90449 (Raúl Marín).
- تسريع فك ضغط T64 باستخدام التوجيه الديناميكي. #90610 (Raúl Marín).
- تسريع تحويل الأعمدة إلى bool (في عبارات
WHERE) باستخدام التوجيه الديناميكي. #91203 (Raúl Marín). - تسريع فرز كتلة رقمية واحدة باستخدام التوجيه الديناميكي. #91213 (Raúl Marín).
تحسينات JOIN
- تستخدم عمليتا
RIGHTوFULL JOINالآنConcurrentHashJoin؛ ما يعني أن هذين النوعين من عمليات join يعملان الآن بدرجة توازٍ أعلى. ويؤدي ذلك إلى تحسين أداء حالات مختلفة لعمليتي RIGHT وFULL JOIN بما يصل إلى الضعف. يحل #78027. #78462 (Yarik Briukhovetskyi). - السماح بإعادة كتابة
ANY LEFT JOINأوANY RIGHT JOINإلىALL INNER JOINفي بعض الحالات. #89403 (Dmitry Novik). - دعم Runtime Filters لعمليات
ANTIJOIN فيJOIN. كذلك، أُعيدت هيكلة تنفيذ Runtime Filters لتقليل التنافس على الأقفال. #89710 (Dmitry Novik). - دعم مواصلة القراءة بالترتيب من الجدول الأيسر في عمليات
LEFT/INNER JOIN، بما يمكن الاستفادة منه في الخطوات اللاحقة. #89815 (Vladimir Cherkasov).
تحسينات MergeTree وتحسينات التخزين
- تسريع استعلامات
SELECTحتى 8 مرات عند استخدام partition pruning بشكل مكثف على الجداول التي تحتوي على أكثر من 10 آلاف part. #85535 (James Morrison). - عندما يستخدم الاستعلام fixed hash map من أجل aggregation state (group by على عدد صحيح صغير)، يدمج ClickHouse حالة التجميع بالتوازي لتسريع الاستعلام. يحل #63666. #87366 (Jianfei Hu).
- أصبح Parquet reader v3 مفعّلًا افتراضيًا. #88827 (Michael Kolupaev).
- يمكن للاستعلامات الآن الاستفادة من optimize_read_in_order وquery_plan_optimize_lazy_materialization في الوقت نفسه. يحل #88767. #88866 (Manuel).
- استخدام aggregate إسقاط للاستعلامات التي تتضمن
DISTINCT. يغلق #86925. #88894 (Nihal Z. Miaji). - تشغيل تحويل
LIMIT BYالمتدفق في الحالات التي يطابق فيها ترتيب الفرز في الإدخال مفاتيحLIMIT BY. #88969 (Eduard Karacharov). - أُضيف دعم sparse serialization للأعمدة من النوع Nullable. #88999 (Amos Bird).
- تحسين filtering المباشر داخل MergeTree reader. يحل #87119. #90630 (Xiaozhe Yu).
- إضافة أسلوب استدلالي إضافي لتقليل عرض خيارات merge المحددة. #91163 (Mikhail Artemenko).
تحسينات الفهارس والبحث النصي
- يستخدم ClickHouse الآن فهارس التخطي لإجراء تحليل الفهارس على عبارات
WHEREالتي تحتوي على شروط تصفية مختلطة مرتبطة بـANDوOR. في السابق، كان يجب أن تتكون عبارةWHEREمن اقتران (AND) بين شروط التصفية للاستفادة من فهارس التخطي. يتحكم الإعداد الجديدuse_skip_indexes_for_disjunctions(الافتراضي: مفعّل) في هذه الميزة. #87781 (Shankar Iyer). - تحسين أداء التصفية للمسندات التي تتضمن دوال مثل
likeوequalsوhasوغيرها، بالاستفادة من مرشح أولي إضافي مُنشأ من الفهرس النصي. يُفعَّل هذا التحسين عبر الإعدادquery_plan_text_index_add_hint. #88550 (Anton Popov). - تحسين أداء الفهرس النصي عبر التخزين المؤقت لكتل القاموس واستخدام جداول التجزئة لعمليات البحث عن الرموز بدلًا من البحث الثنائي. #88786 (Elmi Ahmadov).
- نظرًا لأن قوائم الإحالة هي الأكبر من حيث حجم البيانات، فإن تخزينها مؤقتًا يحسّن الأداء في التشغيلات المتتالية. #88912 (Elmi Ahmadov).
- تحسين عمليات البحث العكسي المتكررة في القاموس عبر إجراء عمليات بحث أسرع ضمن مجموعة محسوبة مسبقًا من قيم المفاتيح المحتملة. يُغلق #7968. #88971 (Nihal Z. Miaji).
- تحسين استعلامات
ORDER BY...LIMIT Nباستخدام فهرس التخطي ومرشح عتبة ديناميكي لتقليل عدد الصفوف المُعالجة بشكل كبير. #89835 (Shankar Iyer). - ينبغي أن يلاحظ المستخدمون انخفاضًا في زمن الوصول أثناء تحليل الفهارس عند وجود فهارس
minmaxكبيرة (ملايين الحبيبات). #90428 (Shankar Iyer).
تحسينات التجميع
- تحسين
AggregateFunctionHistogramمن خلال فرز الجزء الأخير فقط من مصفوفة النقاط وتخطي الفرز للمدخلات الرتيبة، مما يحقق تسريعًا بنحو ~10%. #85760 (MakarDev). - تسريع بعض عمليات countDistinct بشكل طفيف عبر تقليل الكلفة الإضافية في HashSetTable::merge. #89727 (Raúl Marín).
- تحسين أداء topK وسلوكه. #90091 (Raúl Marín).
- تحسين أداء عمليات مقارنة Decimal. يُصلح المشكلة #28192. #90153 (Konstantin Bogdanov).
تحسينات S3 والنسخ الاحتياطي
- يقسّم S3 الكائنات داخليًا استنادًا إلى بادئات أسماء المفاتيح، ويتوسّع تلقائيًا لدعم معدلات طلبات مرتفعة لكل قسم. يقدّم هذا التغيير إعدادين جديدين لـ BACKUP: data_file_name_generator و data_file_name_prefix_length. عندما تكون القيمة data_file_name_generator=checksum، تُسمّى ملفات بيانات النسخ الاحتياطي باستخدام قيمة hash لمحتواها. #88418 (Julia Kartseva).
- تحسين أداء الاستعلامات لجداول S3 المُنشأة باستخدام نمط glob من خلال تمرير قيم عامل التصفية
_pathإلى المستوى الأدنى، ما يتيح تجنّب عمليات سرد S3. يتحكّم في ذلك الإعدادs3_path_filter_limit. #91165 (Eduard Karacharov).
تحسينات بحيرة البيانات
- التنفيذ الموزع: تحسين تقسيم المهام بحسب معرّفات مجموعات الصفوف، لا بحسب الملفات. #87508 (Konstantin Vedernikov).
- دعم استبعاد الأقسام في وظائف Paimon. #90253 (JIaQi Tang).
تحسينات
تحسين الاستعلامات وتنفيذها
- السماح باستخدام
FETCH PARTITIONعند وجود أقراص تالفة في جداول MergeTree المكررة. #58663 (Duc Canh Le). - إضافة الدالة
h3PolygonToCellsالتي يمكنها ملء الأشكال الهندسية بخلايا H3 السداسية. يحلّ #33991. #66262 (Zacharias Knudsen). - أصبحت جميع استعلامات DDL
ON CLUSTERتُنفَّذ الآن باستخدام سياق مستخدم الاستعلام الأصلي لتحسين التحقق من الأذونات. #71334 (pufit). - إضافة التنفيذ المتوازي لاستعلامات
ALTER TABLE ... FREEZE. #71743 (Kirill). - يتيح استخدام وسيط ثانٍ غير ثابت مع
IN. كما يدعم أيضًا استخدام Tuple كوسيط ثانٍ. #77906 (Yarik Briukhovetskyi). - يتيح هذا التغيير استخدام projections العادية كـ secondary index. وعند تفعيله، يمكن استخدام بعض predicates الاستعلام للقراءة من projection parts وإنشاء bitmap لتصفية الصفوف بكفاءة خلال مرحلة PREWHERE. #81021 (Amos Bird).
- تمكين
enable_shared_storage_snapshot_in_queryافتراضيًا للحصول على ضمانات اتساق أفضل. #82634 (Alexey Milovidov). - ينبغي أن يوحّد UNION الأنواع باستخدام Variant عند الحاجة. يحلّ #82772. #83246 (Mithun p).
- تسجيل الاستعلامات الداخلية (التي تُنفَّذ داخليًا بواسطة dictionaries وrefreshable materialized views وما إلى ذلك)، وإضافة العمود الجديد
is_internalإلىsystem.query_log. #83277 (Miсhael Stetsyuk). - يتيح
INSERTإلى أعمدةALIAS(الأعمدة التي تشير ببساطة إلى عمود فعلي من دون أي expression). يغلق #80060. #84154 (Shaurya Mohan). - يمكنك رؤية شريط التقدم والسجلات وإحصاءات الأداء لاستعلامات
CREATE OR REPLACE TABLEمعSELECTفي clickhouse-client. يحلّ #38416. #87247 (Diskein). - دعم نوعَي JSON وDynamic في hash functions. يحلّ #87734. #87791 (Pavel Kruglov).
- تم تغيير default value لـ
query_plan_optimize_join_order_limitإلى 10. #89312 (Alexey Milovidov). - أصبح التحسين enable_lazy_columns_replication مفعّلًا افتراضيًا، مما سيوفر memory usage في joins. #89316 (Alexey Milovidov).
- تمكين الإعداد
allow_statistics_optimizeافتراضيًا، بحيث سيستخدم مُحسِّن JOINs column statistics. #89332 (Alexey Milovidov). - تم تفعيل
create_table_empty_primary_key_by_defaultافتراضيًا. وهذا أفضل من ناحية سهولة الاستخدام. #89333 (Alexey Milovidov). - أصبح الإعداد
enable_time_time64_typeمفعّلًا افتراضيًا. #89345 (Yarik Briukhovetskyi). - تم تفعيل الإعداد
allow_special_serialization_kinds_in_output_formatsافتراضيًا. #89402 (Pavel Kruglov). - تم تجاهل
ON CLUSTERفي queries التي تُنفَّذ عبر Shared Catalog. (Nikolay Degterinsky). - تمت إضافة دعم
ALTER DATABASE MODIFY COMMENTإلى Shared Catalog. (Nikolay Degterinsky). - تمت إضافة دعم
CREATE OR REPLACEلـ SharedSet/SharedJoin في Shared database. (Tuan Pham Anh). - تم تجنّب انتظار queries الأخرى عند تشغيل
SYNC REPLICAفي SharedMergeTree. (Raúl Marín).
تحسينات التخزين وMergeTree
- إضافة عمود افتراضي جديد
_tags(Map(String, String)) يتضمن جميع الوسوم المرتبطة بالـ blob في S3. يحل #72945. #77773 (Zicong Qu). - إضافة رسالة خطأ تفيد بأن الجزء قد تم deduplicate له. #80264 (Aleksandr Musorin).
- استخدام OpenSSL 3.5.4. #81389 (Konstantin Bogdanov).
- إضافة ذاكرة تخزين مؤقت لمصادقة bcrypt. #87115 (Nikolay Degterinsky).
- تُقرأ الآن الطوابع الزمنية في Parquet من دون timezone (isAdjustedToUTC=false) على أنها DateTime64(…, ‘UTC’) بدلًا من DateTime64(…). #87872 (Michael Kolupaev).
- يمكن الآن منح الأدوار المعرّفة في SQL إلى المستخدمين المعرّفين في
users.xml. #88139 (c-end). - إذا كان فهرس التخطي المستخدم في استعلام FINAL على عمود يشكّل جزءًا من المفتاح الأساسي، فإن الخطوة الإضافية للتحقق من تقاطع المفتاح الأساسي في الأجزاء الأخرى تكون غير ضرورية، ولم تعد تُنفَّذ. يحل #85897. #88368 (Shankar Iyer).
- السماح بالإدراج في الجداول البعيدة وجداول بحيرة البيانات عند تفعيل
disable_insertion_and_mutation. #88549 (Alexander Tokmakov). - تخزين إحصاءات مستوى الجدول مؤقتًا، مع إضافة إعدادين: إعداد MergeTree
refresh_statistics_intervalوإعداد الجلسة use_statistics_cache. #88670 (Han Fei). - إضافة إعداد MergeTree
alter_column_secondary_index_modeللتحكم في ما يجب فعله بالفهرسة أثناء mutations. القيم الممكنة: throw وdrop وrebuild وcompatibility. يُغلق #77797. #89335 (Raúl Marín). - تقديم ذاكرة تخزين مؤقت على مستوى كل جدول لـ
ColumnsDescriptionالخاصة بالأجزاء، مما يقلّل استهلاك الذاكرة عندما تحتوي الجداول على عدد كبير من الأجزاء والأعمدة. #89352 (Azat Khuzhin).
جداول النظام والمراقبة
- إضافة عدة مقاييس مدرّج تكراري للخادم وKeeper لقياس مدد مراحل تنفيذ طلبات Keeper. #88158 (Miсhael Stetsyuk).
- إضافة عمود جديد باسم
statisticsفيsystem.columns، يوضّح أنواع الإحصاءات المُنشأة لهذا الجدول. #89086 (Han Fei). - ستوفّر واجهة HTTP الترويستين
AgeوExpiresعند استخدام query result cache. وأُضيفت أحداث profile جديدة:QueryCacheAgeSeconds,QueryCacheReadRows,QueryCacheReadBytes,QueryCacheWrittenRows,QueryCacheWrittenBytes. #89759 (Alexey Milovidov). - عرض خصائص الجدول في واجهة الويب. سيؤدي النقر على عدد الصفوف أو البايتات إلى إظهار استعلام من
system.tables. #89771 (Alexey Milovidov). - أُضيفت الحقول
last_error_time,last_error_message,last_error_query_idوlast_error_traceإلى جدولsystem.error_log. #89879 (Narasimha Pakeer). - تخزين معرّفات كتل إزالة التكرار في
system.part_logs. #89928 (Sema Checherinda). - تم تغيير القيمة الافتراضية للإعداد
check_query_single_value_resultمنtrueإلىfalse. يؤدي ذلك إلى أن يُرجعCHECK TABLEنتائج مفصّلة لكل جزء بدلًا من نتيجة مجمّعة. #90150 (Robert Schulze). - إضافة عمود جديد
parts_in_progress_namesإلىsystem.mutationsلتحسين التشخيص. #90155 (Shaohua Wang). - تقديم
system.background_schedule_pool{,_log}لتحسين استبطان الوظائف الخلفية. #91157 (Azat Khuzhin). - إضافة أحداث profile
FailedInitialQueryوFailedInitialSelectQuery. #91172 (RinChanNOW). - إضافة ثلاثة أعمدة في
system.tablesلمقاييس الأجزاء المعلّقة. (Han Fei). - إتاحة قيمة
distributed_cache_client.connection_pool_sizeكمقياس. (Francesco Ciocchetti).
تحسينات العميل وواجهة المستخدم
- يمكن للمستخدم الآن إلغاء الاستعلام بالضغط على Ctrl-C أثناء تشغيل برنامج تصفح الصفحات. يحل #80778. #88935 (Grigorii Sokolik).
- ستعرض واجهة الويب الآن أشرطة في الجدول حتى عندما تكون القيم سالبة. #89016 (Alexey Milovidov).
- لم تعد الاستعلامات التي تبدأ بمسافات بيضاء تُحفَظ في السجل. #89116 (Konstantin Bogdanov).
- سيقوم
clickhouse-clientوclickhouse-localفي الوضع التفاعلي بتمييز المعرّفات في سطر الأوامر التي تحمل الاسم نفسه للمعرّف الحالي الموجود تحت المؤشر. #89689 (Alexey Milovidov). - أصبح مقبض تغيير حجم مربع نص الاستعلام في واجهة الويب بعرض كامل. #89457 (Alexey Milovidov).
- لم تعد تلميحات الأنواع في واجهة الويب تمتد إلى رأس الجدول. #89753 (Alexey Milovidov).
- يمكنك الآن بسرعة إضافة تعليق إلى الأسطر المحددة حاليًا أو إزالة التعليق عنها في محرر الاستعلامات بواجهة الويب باستخدام
Ctrl+/(أوCmd+/على Mac). #91160 (Samuel K.). - إضافة دعم لتحميل إعدادات ClickHouse Client من مسارات XDG Base Directory. يحل #89882. #90306 (Wujun Jiang).
تحسينات S3 والتخزين السحابي
- إتاحة استخدام مناطق AWS التي تتطلب التفعيل لـ S3 تلقائيًا عندما لا تكون المنطقة محددة في نقطة النهاية. #88930 (Andrey Zvonov).
- تعيين القيمة الافتراضية لـ
s3_retry_attemptsإلى 500 في الإصدار 25.6 لضمان نجاح النسخ الاحتياطية عند حدوث إعادة تقسيم في S3. #89051 (Nikita Mikhaylov). - تخزين بيانات اعتماد S3 المتفاعلة مع نقطة نهاية STS مؤقتًا بحيث يمكن إعادة استخدامها عبر استدعاءات دوال مختلفة. #89734 (Antonio Andelic).
- أصبحت عناوين URL الموقعة مسبقًا تعمل الآن مع S3. يُغلق #65032. #90827 (Yarik Briukhovetskyi).
تحسينات بحيرات البيانات
- دعم قراءة DeltaLake CDF عبر الدالة الجدولية
deltaLakeباستخدام الإعداداتdelta_lake_snapshot_start_versionوdelta_lake_snapshot_end_version. #90431 (Kseniia Sumarokova). - دعم إعدادات التخزين في
insert into table functionلتحقيق الاتساق معselect. يُغلق #89386. #91707 (Kseniia Sumarokova). - إرجاع خطأ “not implemented” عند تنفيذ استعلام TRUNCATE على بحيرات البيانات بدلًا من تجاهله بصمت. يُغلق #86604. #91713 (Kseniia Sumarokova).
تحسينات Kafka
- يمكن الآن استخدام الإعدادين
kafka_compression_codecوkafka_compression_levelلتحديد ضغط البيانات لمنتجي Kafka. #89073 (János Benjamin Antal). - أُضيف
kafka_consumer_reschedule_msكإعداد قابل للضبط لمحرك الجدولKafka. يحل المشكلة #89204. #90112 (Jeremy Aguilon).
تحسينات Keeper
- إضافة حد لحجم دفعة طلبات append بالبايت في Keeper. يُتحكَّم في هذا الحد باستخدام
keeper_server.coordination_settings.max_requests_append_bytes_size. #90342 (Antonio Andelic). - إضافة تحقّق من جهة الخادم في Keeper أثناء handshake لرفض العملاء عندما يكون
last_zxid_seen (provided by the client) > last_processed_zxid. #90016 (Miсhael Stetsyuk). - استخدام حد أقل لعدد العقد في طلب RemoveRecursive الخاص بـ Keeper أثناء تنظيف S3Queue. #90201 (Antonio Andelic).
تحسينات تنسيق الإدخال/الإخراج
- أُضيف دعم UUID في Parquet عند تمثيله بواسطة
FixedString(16)مع النوع المنطقي UUID. #74484 (alekseev-maksim). - أُضيف دعم استخدام مصفوفة من السلاسل النصية كمدخل للدالتين
hasAnyTokensأوhasAllTokens. #89124 (Elmi Ahmadov). - في تنسيق Pretty، تُعرَض الآن الأزواج المسماة بصيغة Pretty JSON. ويؤدي هذا إلى إغلاق #65022. #91779 (Mostafa Mohamed Salah).
- أُضيف حدّ لحجم رسالة CapnProto. ويمكن تغييره باستخدام
format_capn_proto_max_message_size. #91888 (Antonio Andelic).
تحسينات الفهرس النصي
- يعمل الفهرس النصي الآن مع جداول ReplacingMergeTree. #90908 (Elmi Ahmadov).
- إتاحة استخدام الفهرس المعكوس في
PREWHERE. يعالج #89975. #89977 (Peng Jian). - أصبح بالإمكان الآن إنشاء مُقسِّم ngrams مع
ngram_length = 1. #91529 (George Larionov). - أُضيفت ذاكرة تخزين مؤقت لترويسة الفهرس النصي بعد إلغاء تسلسلها لتقليل I/O وتحسين أداء الاستعلام. #89513 (Elmi Ahmadov).
تحسينات أخرى
- تم إصلاح إلغاء التسلسل الثنائي لـ
ArrayوMapبحيث يستخدم الإعدادmax_binary_array_sizeبدلًا منmax_binary_string_sizeعند التحقق من حدود الحجم. #88744 (Raufs Dunamalijevs). - إذا كانت ذاكرة النظام أقل من 5GB، فلا يُطبَّق
mlockعلى الملف التنفيذي افتراضيًا. #89751 (Alexey Milovidov). - تقليل استهلاك الذاكرة أثناء عمليات الدمج في جدول
system.metric_logعبر ضبطmin_bytes_for_wide_partوvertical_merge_algorithm_min_bytes_to_activateعلى 128MB. #89811 (filimonov). - إعادة المحاولة عند حدوث أخطاء في الشبكة أثناء تحليل مكتبة S3 لاستجابة XML. #90216 (Sema Checherinda).
- تحديث رسائل التحذير عند الاقتراب من حدود القيود الوقائية، بحيث تعرض القيم الحالية وقيم
throw. #90438 (Nikita Fomichev). - يتم الآن تمرير الدُفعات في جدول
system.filesystem_cacheبدلًا من إنشاء دفعة واحدة تتضمن حالة الذاكرة المخبئية بالكامل. #90508 (Kseniia Sumarokova). - تتم الآن إزالة الإدخالات من ذاكرة فهرس تشابه المتجهات المؤقتة عند حذف table parts أو استبدالها بأجزاء أحدث. #90750 (Shankar Iyer).
- تجنّب كشف إصدار خادم ClickHouse في استجابات أخطاء HTTP المُعادة قبل المصادقة. #91003 (filimonov).
- تمت إضافة إعدادين جديدين
apply_row_policy_after_finalوapply_prewhere_after_finalللسماح بتطبيق سياسات الصفوف وشروطPREWHEREبعد معالجةFINAL. يُصلح #90986. #91065 (Yarik Briukhovetskyi). - دعم نوع JSON في
tupleElement. يُغلق #81630. #91327 (Pavel Kruglov). - دعم الفهارس السالبة للوصول إلى عناصر tuple (مثل
tuple.-1). #91665 (Amos Bird). - السماح بالتحويل الضمني للنوع عند تحويل
ArrayإلىQBit. #91846 (Raufs Dunamalijevs). - إضافة عمود جديد،
elapsed_time_microseconds، إلىsystem.blob_storage_log. #92322 (Alexey Milovidov). - إضافة إعداد جديد
database_shared_drop_table_delay_secondsيتيح للمستخدمين التحكم في تأخيرdrop tableفي قاعدة البيانات Shared. (Nikolay Degterinsky). - التحميل الكسول للمفاتيح المشفرة الخاصة بـ named collections. (Pablo Marcos).
- السماح بتعطيل clients cache لكل buffer في distributed cache. (Kseniia Sumarokova).
- إضافة حد مشترك لاتصالات distributed cache. (Kseniia Sumarokova).
إصلاحات الأخطاء
يتضمن هذا القسم مجموعة مختارة من أهم إصلاحات الأخطاء. للاطلاع على القائمة الكاملة لجميع إصلاحات الأخطاء في هذا الإصدار، يُرجى الرجوع إلى سجل التغييرات الكامل
إصلاحات تنفيذ الاستعلام
- إصلاح القيمة غير الصحيحة لـ
rows_before_limit_at_leastعند وجود عدة شظايا بعيدة مشاركة في تجميع دمج موزّع. #63511 (Amos Bird). - إصلاح ظهور
0 rows in setبعد استعلامINSERT INTO ... SELECT. يغلق #47800. #79462 (Engel Danila). - إصلاح
multiIfمع الوسائط الثابتة والتقييم المختصر. يغلق #72714. #84546 (Yakov Olkhovskiy). - إصلاح خطأ LogicalError عند التحديد من جدول يحتوي على قيد استعلام فرعي. يحل #84190. #85575 (Pervakov Grigorii).
- إصلاح خطأ منطقي في إعادة ترتيب cross join عندما تكون القيمة
query_plan_optimize_join_order_limit > 1. يغلق #89409. #88286 (Vladimir Cherkasov). - إصلاح نتائج JOIN غير الصحيحة عند استخدام شروط OR مع مفاتيح right table الفريدة. يحل #89391. #89512 (Vladimir Cherkasov).
- إصلاح خطأ منطقي في full_sorting_merge join مع أعمدة مكررة. يحل #86957. #89495 (Vladimir Cherkasov).
- إصلاح خطأ محتمل ‘Invalid number of rows in Chunk’ في JOIN مع أعمدة مكررة. يحل #89411. #90053 (Vladimir Cherkasov).
- إصلاح مشكلة تكرار البيانات في RIGHT JOIN مع distributed table عند تفعيل parallel replicas. #90806 (zoomxi).
- إصلاح خطأ منطقي مع
join_use_nullsوعمليات join متعددة إلى جانب cross join. #91853 (Vladimir Cherkasov).
إصلاحات نوع البيانات وJSON
- إصلاح قراءة الأعمدة الفرعية من عمود يحتوي اسمه على نقطة في بعض الحالات. يعالج #81261، #82058، #88169. #87205 (Pavel Kruglov).
- إصلاح قراءة Array مختلطة من Floats وBools في JSON. كان insert مثل هذه البيانات يؤدي سابقًا إلى استثناء. #88008 (Pavel Kruglov).
- إصلاح التحويل من
LowCardinality(Nullable(T))إلى Dynamic. #86365 (Pavel Kruglov). - إصلاح احتمال حدوث خطأ منطقي أثناء قراءة paths وsubcolumns الخاصة بها في serialization المتقدم للبيانات المشتركة في JSON. يُغلق #89805. #89819 (Pavel Kruglov).
- إصلاح احتمال حدوث تجاوز سعة المكدس في إلغاء التسلسل الثنائي لأنواع البيانات. يُغلق #88710. #89822 (Pavel Kruglov).
- إصلاح احتمال حدوث حالة غير متسقة للبيانات المشتركة والمسارات الديناميكية في JSON، ما قد يؤدي إلى أخطاء منطقية ونتائج غير متوقعة. #90816 (Pavel Kruglov).
- إصلاح merging أعمدة JSON في Summing/Aggregating/Coalescing MergeTree. #91151 (Pavel Kruglov).
إصلاحات MergeTree والتخزين
- أُصلحت عدة مشكلات نجمت عن إزالة الأعمدة مبكرًا في TTL. ويعالج هذا #88002. #88860 (Amos Bird).
- أُصلحت النتيجة غير الصحيحة لـ min(PK)/max(PK) عندما يكون PK بترتيب عكسي. ويعالج هذا #83619. #88796 (Amos Bird).
- أُصلحت التجزئة غير الصحيحة في تحسين
JOINعندما يكون المفتاح الأساسي مرتبًا ترتيبًا تنازليًا. ويعالج هذا #88512. #88794 (Amos Bird). - أُصلحت حالة تسابق في مسار قراءة فهرس الإسقاط. ويعالج هذا #89497. #89762 (Peng Jian).
- أُصلح التعامل غير الصحيح لعملية الدمج مع الأجزاء التي أفرغتها TTL وتحتوي على إسقاطات غير فارغة عند استخدام
deduplicate_merge_projection_mode='ignore'. ويعالج هذا #89430. #89458 (Amos Bird). - أُصلح الخطأ
TOO_MANY_MARKSالذي كان يمكن أن يحدث بعد بعض استعلاماتALTERللأجزاء ذات التنسيق compact. #91980 (alesapin).
إصلاحات Parquet والتنسيقات
- تم إصلاح خطأ segmentation fault في قارئ Parquet عندما تكون القيمة
input_format_parquet_local_file_min_bytes_for_seekمضبوطة على 0. يعالج #78456. #88784 (Animesh). - في كاتب parquet، أخرِج السلسلة
created_byبالتنسيق الصحيح. #87735 (Michael Kolupaev). - إصلاح مشكلة عدم احتفاظ كتابة parquet بالترتيب الأصلي عند استخدام الكتابة أحادية الخيط مع الكاتب الأصلي. #90126 (Arthur Passos).
- إصلاح الخلل في قارئ ORC عند قراءة أعمدة String المشفّرة بـ DICTIONARY_V2 والتي تحتوي فقط على قيم NULL. #91889 (Peng Jian).
- إصلاح overflow أثناء القراءة من تنسيق ORC لأنواع Date وDateTime64. يغلق #70976. #91572 (Yarik Briukhovetskyi).
إصلاحات Iceberg وبحيرة البيانات
- إصلاح بروتوكول
icebergS3Cluster. تمت إضافة دعم لتطور schema، وعمليات الحذف الموضعي وحذف المساواة في دالة cluster الخاصة بـ Iceberg. يحلّ #88287. #88919 (Yang Jiang). - إصلاح استثناء JSON في جدول Iceberg الذي يحتوي على عمود طابع زمني عند استخدام كتالوج Glue. يحلّ #90210. #90209 (Alsu Giliazova).
- لن يستخدم ClickHouse الآن تحسين read-in-order لـ Iceberg إذا لم يتم تحديد ترتيب الفرز في ملفات manifest. يصلح #89178. #90304 (alesapin).
إصلاحات الدوال
- إصلاح خطأ في الدالة
reverseUTF8. في الإصدارات السابقة، كانت تعكس بالخطأ ترتيب بايتات نقاط الشيفرة UTF-8 ذات الطول 4. يُغلق هذا #88913. #88914 (Alexey Milovidov). - إصلاح حساب phi-squared الذي كان يتسبب في نتائج غير صحيحة في
cramersVوcramersVBiasCorrectedوtheilsUوcontingency. #87831 (Nihal Z. Miaji). - إصلاح
top_kبحيث يراعي مَعلمة العتبة عند استدعائه بوسيطة واحدة. يُغلق #88757. #88867 (Manuel). - إصلاح مشكلة اقتطاع وسيطات
countIf(*). يُغلق #89372. #89373 (Manuel). - إصلاح عدم عمل الدوال
trimوltrimوrtrimعند استخدامها مع وسيطتين. يُغلق #90170. #90305 (Nihal Z. Miaji). - إصلاح عدم عمل الدالة
arrayFilterعند استخدام مصفوفة فارغة مع الدالةisNull. يُغلق #73849. #91105 (Nihal Z. Miaji).
إصلاحات الذاكرة والتعطل
- إصلاح احتمال حدوث تعطل أثناء تنفيذ استعلام عن بُعد مع وجود
ARRAY JOINداخلINوتمكين الإعدادenable_lazy_columns_replication. يحلّ #90361. #89997 (Pavel Kruglov). - تم إصلاح تعطل أثناء الإيقاف النظيف للخادم بسبب ترتيب غير صحيح لعملية التدمير. يحلّ #82420. #90076 (Nikita Mikhaylov).
- إصلاح تعطل في حال كانت حالة دالة تجميعية تحتوي على قيمة مُسلسلة لعمود من النوع LowCardinality(String). #89550 (Pavel Kruglov).
- إصلاح تعطل في StorageDistributed عند تحليل أسماء أدلة shard غير الصالحة. #90243 (Aleksandr Musorin).
- تم إصلاح أخطاء memory limit الزائفة عند تمكين userspace page cache. #91361 (Michael Kolupaev).
- إصلاح احتمال حدوث تعطل في الدوال التجميعية بعد
MEMORY_LIMIT_EXCEEDED. #92390 (Azat Khuzhin). - تحسين تتبع الذاكرة عند توليد نتائج hash joins. #89560 (Azat Khuzhin).
إصلاحات الأمان وصلاحيات الوصول
- إصلاح الخطأ
ACCESS_ENTITY_NOT_FOUNDعند محاولة تنفيذ clusterAllReplicas بواسطة مستخدم لديه دور غير موجود. يعالج #87670. #89068 (pufit). - إصلاح التحقق من صلاحيات الوصول لاستعلامات
ALTER UPDATEعند استخدام دالة الجدولremoteمعlocalhostبوصفه المضيف الهدف. #90761 (pufit). - إصلاح التحقق من الأذونات العامة باستخدام أحرف البدل في حالة السحب الجزئي. #90922 (pufit).
- إصلاح التعامل مع الأذونات العامة في حالات سحب الأذونات باستخدام أحرف البدل. #90928 (pufit).
إصلاحات قاعدة بيانات Replicated
- بعد الاستعادة، قد تظل replica لقاعدة بيانات Replicated عالقةً لفترة طويلة وهي تعرض رسائل مثل
Failed to marked query-0004647339 as finished، وقد تم إصلاح ذلك. #88671 (Alexander Tokmakov). - إصلاح خطأ use-after-free في Distributed بسبب حالة تسابق بين الإيقاف وعمليات
INSERTالخلفية. يحل المشكلة #88640. #89136 (Azat Khuzhin). - العرض المادي القابل للتحديث: تم إصلاح عطل نادر في الخادم إذا حُذف جدول المصدر بالكامل أثناء التحديث. #89203 (Michael Kolupaev).
إصلاحات Keeper
- إصلاح قراءة سجلات التغيير عند بدء تشغيل Keeper في الحالات التي لم تُعَد فيها تسمية سجل التغيير على النحو الصحيح أثناء عملية التدوير. #89496 (Antonio Andelic).
إصلاحات أخرى بارزة
- تم إصلاح تراجع الأداء في تحليل skipping indexes. #89004 (Anton Popov).
- إصلاح عدم توافق hive partitioning الذي كان يمنع الترقية السلسة في الإصدار 25.8. #90202 (Kseniia Sumarokova).
- إصلاح استعلام
WITH FILLالذي يدخل في حالة لا نهائية معnan/inf. يحلّ #69261. #90255 (Konstantin Bogdanov). - ينبغي الآن أن يراعي Time وTime64 المناطق الزمنية بشكل صحيح عند التحويل من DateTime وDateTime64. يغلق #89896. #90310 (Yarik Briukhovetskyi).
- تم إصلاح احتمال ظهور نتائج query غير صحيحة بعد lightweight updates في استعلامات
SELECTعند تفعيل query condition cache. يصلح #90176. #90204 (Anton Popov). - إصلاح توافق serialization داخل الذاكرة لحالة aggregation الخاصة بـ String. #90880 (Antonio Andelic).
- إصلاح aggregation في
SummingMergeTreeلأعمدةNestedLowCardinality. #90927 (Ivan Babrou). - إصلاح فشل
system.view_refreshesمع الخطأNo macro 'replica' in config. #92203 (Michael Kolupaev). - إصلاح replication لعملية alter تضيف عمودًا بشكل غير مباشر إلى MV مع Shared Catalog. (Nikolay Degterinsky).
- إصلاح تعليق تطبيق حالة Shared Catalog بسبب commit فاشل لـ MV. (Nikolay Degterinsky).
- إصلاح التحقق من setting constraints في عمليات
ALTERعلى replicas الثانوية مع Shared Catalog. (Nikolay Degterinsky). - الاحتفاظ بـ database comment أثناء migration إلى SharedCatalog. (Alexander Tokmakov).
- إصلاح استبدال Materialized Views على replicas الثانوية في Shared Catalog. (Nikolay Degterinsky).
- إصلاح counters الخاصة بـ system.distributed_cache_usage. (Kseniia Sumarokova).
- إصلاح تعليق عملية DROP لجدول فشل إنشاؤه بسبب استثناء
ILLEGAL_COLUMNفي Shared Catalog. (Nikolay Degterinsky). - تعطيل
CREATE OR REPLACEلـ SharedSet/SharedJoin في Replicated databases. (Tuan Pham Anh). - إصلاح استثناءات
UNFINISHEDفي عمليات refresh الخاصة بـ RMV مع Shared database. (Nikolay Degterinsky). - إصلاح التعطل مع
TABLE_ALREADY_EXISTSفي Shared databases. (Nikolay Degterinsky). - إصلاح migration للجداول التي تحتوي على استعلامات إنشاء معطلة في Shared Catalog. (Nikolay Degterinsky).
- استخدام virtual parts من الذاكرة دائمًا في
getStatus. (Mikhail Artemenko). - إضافة retries إلى تطبيق حالة Shared catalog أثناء بدء التشغيل. (Nikolay Degterinsky).
- إصلاح تعليق
DROP DATABASEبعد حدوث استثناء أثناء إنشاء الجدول. (Nikolay Degterinsky). - إصلاح logical error في distributed cache. (Kseniia Sumarokova).
- إصلاح error غير صحيح في distributed cache. (Kseniia Sumarokova).
- إصلاح
LOGICAL_ERRORفي ~TemporaryLockForUUIDDirectory ضمن Shared Catalog. (Nikolay Degterinsky). - إصلاح مشكلة في metadata cache كانت تؤدي إلى إرجاع تبعيات غير صحيحة بعد إعادة تسمية قاعدة بيانات. (Nikolay Degterinsky).
- Shared Catalog: إصلاح حالة
DROPللجداول الكبيرة على النسخ المتماثلة الثانوية. (Raúl Marín). - إصلاح logical error في distributed cache في
processWriteRequest. (Kseniia Sumarokova). - إزالة عمليات التحقق من أوامر
ALTERالخاصة بـ MV على النسخ المتماثلة الثانوية. (Nikolay Degterinsky).