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

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

تغييرات أنواع البيانات

  • تقديم النوع 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 من Array arr. يحلّ #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 وبحيرات البيانات

ميزات 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

تنسيقات الإدخال/الإخراج

  • استحداث تنسيق إدخال/إخراج جديد 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 لعمليات ANTI JOIN في 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 لأعمدة Nested LowCardinality. #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).
آخر تعديل في ٢٩ يونيو ٢٠٢٦