> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> سجل التغييرات لعام 2026

# سجل التغييرات 2026

<div id="267">
  ### إصدار ClickHouse 26.7، 2026-07-22. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.7/), [الفيديو](https://www.youtube.com/watch?v=mKBNLaFOVDA)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* لم يعد الوصول إلى S3 الصادر من SQL المستخدم يحلّ افتراضيًا بيانات اعتماد السحابة الخاصة بالخادم نفسه (البيئة، وIMDS/IRSA، وملف تعريف المثيل، وملفات config الخاصة بـ AWS، وSTS المستند إلى `role_arn`، وبيانات GCP OAuth الوصفية)؛ ويجب أن يستخدم هذا الطلب بيانات اعتماد صريحة أو `NOSIGN`. كما أصبحت المجموعات المسماة تضبط `use_environment_credentials` افتراضيًا على `0`. ويمكن استعادة السلوك السابق لكل طلب باستخدام `use_environment_credentials = 1` (أو على مستوى عام عبر config ‏`<s3>`) مع الإعداد الجديد `s3_allow_server_credentials_in_user_queries` (وهو معطّل افتراضيًا). ولا تتأثر بيانات الاعتماد المورّدة صراحةً أو بيانات اعتماد config التي يوفّرها المشغّل. وعند بدء تشغيل الخادم أو تنفيذ `RESTORE`، يُحمَّل جدول `S3`/`S3Queue` دائم، أو disk ديناميكي من S3، أو `DataLakeCatalog` يحلّ تعريفه بيانات الاعتماد هذه، بصورة مجهولة (ولا يمكن الوصول إليه حتى إعادة تزويده ببيانات الاعتماد) بدلًا من إيقاف بدء التشغيل، ويتحكم في ذلك إعداد الخادم الجديد `s3_load_table_anonymously_if_credentials_restricted` (مفعّل افتراضيًا). [#106855](https://github.com/ClickHouse/ClickHouse/pull/106855) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح glob ‏`**/` (أي عدد من الأدلة) يطابق الآن أيضًا الدليل نفسه. في السابق، لم يكن `**/` في glob patterns يُعامل كحالة خاصة، لذا فإن `data/**/file.txt` لم يكن يطابق `data/file.txt` (أي صفرًا من مستويات الأدلة). [#97676](https://github.com/ClickHouse/ClickHouse/pull/97676) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* رُفض تنسيق أرشيف النسخ الاحتياطي `zip`/`zipx` للنسخ الاحتياطية المخزنة على التخزين الكائني — سواء كانت وجهات `S3(...)`/`AzureBlobStorage(...)` مباشرة أو وجهات `Disk(...)` المعتمدة على S3 أو Azure — وذلك لكلٍّ من `BACKUP` و`RESTORE`. يتطلب Zip إجراء seek لقراءة دليله المركزي، وهذا بطيء جدًا عبر التخزين الكائني. استخدم بدلًا من ذلك تنسيقًا قائمًا على tar مثل `tar.gz`. [#101770](https://github.com/ClickHouse/ClickHouse/pull/101770) ([Yash ](https://github.com/Onyx2406)).
* تم توسيع النطاق المدعوم لـ `DateTime64` من `[1900-01-01, 2299-12-31]` إلى `[0000-01-01, 9999-12-31]`. وأصبحت القيم الواقعة خارج النطاق السابق تُحسب الآن بشكل صحيح (عبر cctz) بدلًا من حصرها عند الحدود. ومع precision ‏8 أو 9، يبقى النطاق أضيق لأن ticks تُخزَّن بصيغة `Int64` (ومع دقة النانوثانية يبقى الحد الأقصى `2262-04-11`). التوافق مع الإصدارات السابقة: إذا كنت قد استخدمت تواريخ وأوقات خارج النطاق سابقًا، لكنك اعتمدت على قواعد الإشباع المحددة جدًا داخل النطاق القديم، فضع في اعتبارك أن النتائج تتغير الآن لتصبح أكثر صحة. [#107907](https://github.com/ClickHouse/ClickHouse/pull/107907) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يرفض `AggregatingMergeTree` الآن، عند إنشاء الجدول، المخططات التي يكون فيها عمود ما ليس جزءًا من مفتاح الفرز ولا مقياس حالة تجميع (`AggregateFunction`/`SimpleAggregateFunction`). وتُطوى هذه الأعمدة بصمت إلى قيمة اعتباطية أثناء عمليات الدمج في الخلفية، مما يؤدي إلى نتائج خاطئة للاستعلامات التي تستخدم `GROUP BY` أو تُجري تصفية عليها. اضبط `allow_dimensions_outside_sorting_key = 1` لاستعادة السلوك السابق. يغلق [#751](https://github.com/ClickHouse/ClickHouse/issues/751). [#108087](https://github.com/ClickHouse/ClickHouse/pull/108087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُزيلت تهيئة جدولة أعباء العمل المستندة إلى config (قسما config الخاصان بالخادم: ‏`resources` و`workload_classifiers`). استخدم بدلًا من ذلك استعلامات `CREATE RESOURCE` و`CREATE WORKLOAD`. ويتم تجاهل أقسام config المتقادمة مع إصدار تحذير. [#108286](https://github.com/ClickHouse/ClickHouse/pull/108286) ([Sergei Trifonov](https://github.com/serxa)).
* يستخدم ClickHouse الآن دائمًا هاش إزالة تكرار الإدراج الموحّد لكلٍّ من Synchronous inserts وasynchronous inserts؛ وأزيلت سلوكيات إزالة التكرار القديمة الخاصة بكل عملية `insert` على حدة. ويُحتفَظ بإعداد الخادوم `insert_deduplication_version` كإجراء حماية أثناء الترحيل، إذ يرفض الخادوم البدء إذا كان مضبوطًا على قيمة قديمة (`old_separate_hashes` أو `compatible_double_hashes`). وللترقية من إصدار كان يستخدم قيمة قديمة، شغّل أولًا إصدارًا يدعم `compatible_double_hashes` (إذ يكتب كلًا من الهاش القديم والهاش الموحّد). بالنسبة إلى replicated tables، شغّله لمدة لا تقل عن `replicated_deduplication_window_seconds` (ساعة واحدة افتراضيًا؛ إذ تحتفظ النوافذ الافتراضية بالهاشات الموحّدة لجميع عمليات الإدراج خلال تلك النافذة، ويُعد ذلك كافيًا لحلقة إعادة محاولة الإدراج). أما non-replicated tables التي تكون فيها القيمة `non_replicated_deduplication_window` > 0، فتكون تلك النافذة قائمة على العدد لا على الزمن، لذا شغّل `compatible_double_hashes` لما لا يقل عن هذا العدد من عمليات الإدراج. ثم أزل الإعداد (أو اضبطه على `new_unified_hash`) قبل الترقية إلى هذا الإصدار. [#108361](https://github.com/ClickHouse/ClickHouse/pull/108361) ([Sema Checherinda](https://github.com/CheSema)). وإذا لم تكن قد ضبطت `insert_deduplication_version` مطلقًا، فيمكنك تجاهل هذا البند.
* أزيلت الدوال المهملة منذ وقت طويل `snowflakeToDateTime` و`snowflakeToDateTime64` و`dateTimeToSnowflake` و`dateTime64ToSnowflake`. فقد أُعلن عن إهمالها سابقًا في v24.6 لصالح `snowflakeIDToDateTime` و`snowflakeIDToDateTime64` و`dateTimeToSnowflakeID` و`dateTime64ToSnowflakeID`، وهي الدوال التي ينبغي استخدامها بدلًا منها. أما الإعداد `allow_deprecated_snowflake_conversion_functions` (الذي كان يُستخدم سابقًا لإعادة تفعيلها) فقد أصبح الآن متقادمًا ولم يعد له أي تأثير. [#108711](https://github.com/ClickHouse/ClickHouse/pull/108711) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت القيمة الافتراضية للإعداد `use_legacy_to_time` الآن `0`، لذا تحوّل `toTime` القيم إلى نوع البيانات `Time` بدلًا من تحويل date with time إلى تاريخ ثابت. ولا يزال السلوك القديم متاحًا عبر الدالة `toTimeWithFixedDate` أو بضبط `use_legacy_to_time = 1`. [#108729](https://github.com/ClickHouse/ClickHouse/pull/108729) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت نماذج Naive Bayes (المستخدمة بواسطة `naiveBayesClassifier`) تُهيَّأ الآن على شكل Dictionary بتخطيط `NAIVE_BAYES`، ويجري بناؤها وقت التحميل من table تحتوي على n-gram counts مجمّعة مسبقًا لكل فئة، بدلًا من configuration السابقة على مستوى الخادوم (config file بصيغة XML يشير إلى ملفات نموذج `.bin` مُسلسلة)، وهو ما لم يعد مدعومًا — لذا يجب إعادة إنشاء النماذج الحالية على شكل Dictionaries. وأُضيفت ثلاث دوال جديدة إلى جانب `naiveBayesClassifier`: إذ تُرجع `naiveBayesClassifierWithProb` الفئة المتوقعة مع احتمالها، وتُرجع `naiveBayesClassifierWithAllProbs` جميع الفئات مع احتمالاتها، وتُجزّئ `naiveBayesNgrams` النص إلى n-grams بالطريقة نفسها التي يستخدمها القاموس، لبناء بيانات التدريب من نص خام مُصنَّف. بالإضافة إلى ذلك، طُبّقت عدة تحسينات على الأداء: فعلى نموذج لغوي trigram بحجم 9.7 MiB قائم على code points، يستهلك ذاكرة أقل بنحو \~49× (من 1.84 GiB إلى 38 MiB)، ويُحمَّل أسرع بنحو \~11×، ويُصنّف أسرع بنحو \~11×. [#108773](https://github.com/ClickHouse/ClickHouse/pull/108773) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* لم تعد الدالة `hasColumnInTable` تقبل الوسائط الاختيارية `hostname` و`username` و`password` للتحقق من column على remote server كيفما كان؛ ولم يبقَ سوى الصيغة `hasColumnInTable(database, table, column)`. وكان وضع remote الذي أزيل يمثّل مصدر قلق أمني، إذ كان يتيح لأي مستخدم تشغيل connections صادرة إلى hostات عشوائية، كما كان يسرّب credentials إلى query logs، ولم يكن مقيّدًا بأي privilege. [#110881](https://github.com/ClickHouse/ClickHouse/pull/110881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* تمت إضافة `EXPLAIN ANALYZE` لفحص أداء الاستعلام: يُنفَّذ الاستعلام، وتُعرَض مقاييس التنفيذ الفعلية بتنسيق خطة الاستعلام المألوف. [#106586](https://github.com/ClickHouse/ClickHouse/pull/106586) ([Kirill Kopnev](https://github.com/Fgrtue)). [#110668](https://github.com/ClickHouse/ClickHouse/pull/110668) ([Kirill Kopnev](https://github.com/Fgrtue)).
* تمت إضافة دعم لعبارات `WHERE` في تعريفات الإسقاطات. ولا تُطبَّق الإسقاطات التي تحتوي على `WHERE` وتُخزَّن فعليًا إلا على الصفوف المطابقة للمسند، ويمكن للمُحسِّن استخدامها (استنادًا إلى الكلفة) عندما تستلزم عبارة `WHERE` في الاستعلام عبارة `WHERE` في الإسقاط. [#102347](https://github.com/ClickHouse/ClickHouse/pull/102347) ([S Bala Vignesh](https://github.com/SBALAVIGNESH123)).
* تمت إضافة الإعداد `skip_unavailable_shards_mode` (وهو متاح أيضًا كإعداد لمحرك `Distributed`) للتحكم في الاستثناءات الصادرة من شظية بعيدة التي يجري تجاهلها بصمت عند تمكين `skip_unavailable_shards`. [#79091](https://github.com/ClickHouse/ClickHouse/pull/79091) ([cjw](https://github.com/byte-sourcerer)).
* تمت إضافة الدالة التجميعية `groupFormat` التي تُنسِّق الصفوف في كل مجموعة باستخدام تنسيق إخراج محدد وتُرجع النتيجة كسلسلة نصية. [#93201](https://github.com/ClickHouse/ClickHouse/pull/93201) ([Yang Hu](https://github.com/wandersofb)).
* تمت إضافة `AWS_MSK_IAM` كقيمة مدعومة لـ `kafka_sasl_mechanism`، مما يتيح لـ ClickHouse المصادقة مع Amazon MSK باستخدام أدوار IAM دون الحاجة إلى إدارة بيانات اعتماد SASL/SCRAM. [#96100](https://github.com/ClickHouse/ClickHouse/pull/96100) ([kalavt](https://github.com/kalavt)).
* تمت إضافة مُركِّب الدالة التجميعية `-Tuple`، الذي يطبّق الدالة التجميعية الأساسية على كل عنصر في عمود `Tuple` بشكل مستقل ويُرجع `Tuple` للنتائج مع الحفاظ على أسماء العناصر: فمثلًا، يُرجع `sumTuple(t)` عندما يكون `t = (a, b)` القيمة `(sum(a), sum(b))`. أما الدوال التجميعية ذات الوسائط المتعددة فتأخذ tuple واحدًا لكل وسيطة، مع المطابقة حسب الموضع: يُرجع `corrTuple((a1, a2), (b1, b2))` القيمة `(corr(a1, b1), corr(a2, b2))`. وعلى خلاف `-ForEach` على المصفوفات، يمكن أن تكون العناصر من أنواع مختلفة، كما تُحفَظ أنواع النتائج لكل عنصر وأسماؤها. [#98190](https://github.com/ClickHouse/ClickHouse/pull/98190) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* تدعم فهارس النص الآن وسيطة `postprocessor` — وهي تعبير اعتباطي يحوّل كل رمز بعد التجزئة إلى رموز (على سبيل المثال، `lower`). [#98939](https://github.com/ClickHouse/ClickHouse/pull/98939) ([Jimmy Aguilar Mena](https://github.com/Ergus)). [#108606](https://github.com/ClickHouse/ClickHouse/pull/108606) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تمت إضافة جدول النظام `system.stemmers`، الذي يسرد جميع اللغات التي يمكن تحديدها للدالة `stem`. [#100611](https://github.com/ClickHouse/ClickHouse/pull/100611) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تمت إضافة دعم `WITH TIES` مع `LIMIT` السالب. [#100930](https://github.com/ClickHouse/ClickHouse/pull/100930) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تمت إضافة دعم لمعاملي الصياغة اللاحقين في SQL القياسية `AT TIME ZONE` و`AT LOCAL` بوصفهما صياغة مختصرة لـ `toTimeZone`. وأصبح التعبير `expr AT TIME ZONE zone` الآن مكافئًا لـ `toTimeZone(expr, zone)`، كما أصبح `expr AT LOCAL` مكافئًا لـ `toTimeZone(expr, timeZone())`. [#106092](https://github.com/ClickHouse/ClickHouse/pull/106092) ([lizepeng](https://github.com/lvzhipin03)).
* أصبح محرك الجدول `URL` ودالة الجدول `url` يوجِّهان الآن إلى الواجهة الخلفية المناسبة بناءً على مخطط URL: إذ تُعالَج `file://` بواسطة المحرك `File`، و`s3://`/`gs://`/`gcs://`/`oss://` بواسطة `S3`، و`az://`/`azure://`/`abfss://`/`abfs://` بواسطة `AzureBlobStorage`، و`hdfs://` بواسطة `HDFS`، و`http(s)://` بواسطة المحرك `URL` كما في السابق. يُطبَّق الإعداد `url_base` قبل التوجيه بحسب المخطط. ولا تُوجَّه إلا مخططات S3 التي يحلّها `url_scheme_mappers` الافتراضي؛ أما مخططات المورّدين الأخرى المتوافقة مع S3 (`cos` و`obs` و...) فلا تُوجَّه، وتتطلب استخدام المحرك/الدالة `s3` مباشرةً. [#106093](https://github.com/ClickHouse/ClickHouse/pull/106093) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف محركا الجدول `Remote` و`RemoteSecure`، وهما النظيران الدائمان لدالتي الجدول `remote` و`remoteSecure`. وأصبح `CREATE TABLE ... ENGINE = Remote('addresses', db, table, ...)` يعمل الآن بالإضافة إلى `CREATE TABLE ... AS remote(...)`. [#106189](https://github.com/ClickHouse/ClickHouse/pull/106189) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت أوامر `SYSTEM STOP` و`SYSTEM START` و`SYSTEM PAUSE` و`SYSTEM CANCEL` و`SYSTEM REFRESH` المحايدة بالنسبة إلى المحرك، إلى جانب صيغها العامة على مستوى الخادم `... ALL BACKGROUND`، للتحكم في النشاطات الخلفية لجداول `Kafka` و`RabbitMQ` و`NATS` و`S3Queue`/`AzureQueue` والعروض المادية القابلة للتحديث عبر واجهة موحّدة. وبالنسبة إلى العروض المادية القابلة للتحديث، فهي أسماء بديلة لأوامر `SYSTEM ... VIEW` الحالية. وكجزء من دعم عناصر التحكم هذه في NATS، أصبحت جداول JetStream الآن تُقرّ الرسائل فقط بعد نجاح عملية insert (مرة واحدة على الأقل؛ إذ كانت الرسائل سابقًا تُقَرّ تلقائيًا عند التسليم وقد تُفقَد إذا فشلت عملية insert). كما أُضيف إعداد جديد `nats_wait_for_flush_interval` (القيمة الافتراضية `false`، مع الحفاظ على السلوك السابق منخفض الكمون) يُبقي دورة الاستهلاك مفتوحة اختياريًا طوال فترة flush بدلًا من تنفيذ flush بمجرد فراغ queue. ويجعل إعداد جديد `nats_commit_on_select` تنفيذ `SELECT` مباشر على جدول JetStream يستهلك الرسائل التي يقرؤها (ويُقِرّ بها). [#107476](https://github.com/ClickHouse/ClickHouse/pull/107476) ([Samuel Krempaský](https://github.com/NIKTONIKTO717)).
* أُضيف دعم لدوال الجدول ومحركات الجداول `mysql` و`postgresql` و`sqlite` بحيث تقبل استعلام المستخدم (بدلًا من اسم جدول) وتمرّره كما هو إلى قاعدة البيانات الخارجية، سواء كُتب على هيئة استعلام فرعي `(SELECT ...)` أو بصيغة `query('SELECT ...')`. ويُستدل على بنية الجدول الناتج من نتيجة الاستعلام، ويكون هذا الجدول للقراءة فقط. يغلق [#46758](https://github.com/ClickHouse/ClickHouse/issues/46758). استنادًا إلى التنفيذ الأولي من [Denis Vidiaev](https://github.com/the-devid) ([#79652](https://github.com/ClickHouse/ClickHouse/pull/79652)). [#107740](https://github.com/ClickHouse/ClickHouse/pull/107740) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت علامات تبويب إلى واجهة ويب ClickHouse ‏(Play) للعمل على عدة استعلامات في آنٍ واحد. وتُحفَظ علامات التبويب وعناوينها ومعلماتها وحالتها النشطة ولقطات صغيرة من النتائج عبر إعادة التحميل (ولا تُستعاد النتائج الكبيرة ونتائج الصور)، كما تتكامل مع سجل المتصفح و`URL`، ويمكن التنقل بينها بعجلة الفأرة. [#107826](https://github.com/ClickHouse/ClickHouse/pull/107826) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف محرك الجدول `QueryRunner`. وتمثل السجلات المُدرجة في جدول `QueryRunner` الاستعلامات التي ينفذها المحرك. ويمكن استخدام هذا المحرك لتنفيذ الاستعلامات غير المتزامن، والتنفيذ الدفعي للاستعلامات المُولَّدة، وتوجيه الاستعلامات إلى عناقيد بعيدة، واختبارات الأداء، والاختبار بالتشويش، والاختبار باستخدام حركة مرور ظلّية. [#107888](https://github.com/ClickHouse/ClickHouse/pull/107888) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُضيف تنسيق الإخراج `GeoJSON` لكتابة مستندات `FeatureCollection` بصيغة [GeoJSON](https://geojson.org/)، مع إنشاء ميزة واحدة لكل صف. ويصبح العمود الوحيد ذي النوع الجغرافي (`Point` أو `LineString` أو `MultiLineString` أو `Polygon` أو `MultiPolygon` أو `Ring` أو `Geometry`) هو `geometry` لكل ميزة؛ ويصبح العمود المسمى `id` هو `id` للميزة؛ وتصبح أي أعمدة متبقية هي `properties` الخاصة بالميزة، وفي حال وجود عمود واحد فقط من نوع object باسم `properties` (من نوع `JSON` أو `Map` أو `Tuple` مُسمّى)، فيُكتَب مباشرةً ككائن `properties`. ويُكتَب `Ring` على هيئة `Polygon` أحادي الحلقة. ويتحكم الإعداد الجديد `format_geojson_validate_geometry` (المفعّل افتراضيًا) في ما إذا كانت الأشكال الهندسية غير الصالحة كأشكال GeoJSON — مثل `Polygon` يحتوي على أقل من أربع نقاط أو حلقة `Polygon` غير مغلقة — ستُرفَض عند القراءة والكتابة. بالإضافة إلى ذلك، يستنتج تنسيق الإدخال `GeoJSON` الآن العمود `id` على أنه `Nullable(String)` بدلًا من `String`، بحيث تُقرأ الميزة التي تفتقد العضو `id` أو تحتوي صراحةً على العضو `"id": null` على أنها `NULL` وتظل مميزة عن السلسلة الفارغة `""`. استنادًا إلى التنفيذ الأولي من [Mark Needham](https://github.com/mneedham) ([#98124](https://github.com/ClickHouse/ClickHouse/pull/98124)). [#108065](https://github.com/ClickHouse/ClickHouse/pull/108065) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أُضيفت الدالة `dotProductTransposed` (بالاسم البديل `scalarProductTransposed`) التي تحسب الجداء الداخلي التقريبي بين عمود `QBit` ومتجه مرجعي، استكمالًا للدالتين الحاليتين `L2DistanceTransposed` و`cosineDistanceTransposed`. [#108100](https://github.com/ClickHouse/ClickHouse/pull/108100) ([Alexey Milovidov](https://github.com/alexey-milovidov)). وأُضيفت أيضًا دوال المسافة المنقولة المُكمّاة `cosineDistanceTransposedQuantized` و`L2DistanceTransposedQuantized` و`dotProductTransposedQuantized` التي تعمل على `QBit(Int8)` من رموز Lloyd-Max الخاصة بـ `quantizeBFloat16ToInt8`، مع فك تكميم الرموز المخزنة آنيًا. ويكون المتجه المرجعي ذي الفاصلة العائمة هو الاستعلام كامل الدقة، وتُجرى المقارنة بدقة `Float32` (ويُحوَّل الاستعلام من نوع `Float64` إلى دقة أضيق)؛ أما المرجع من نوع `Array(Int8)` فيُفك تكميمه هو أيضًا، لتحقيق مسافة متماثلة من نوع quantized-vs-quantized. [#109405](https://github.com/ClickHouse/ClickHouse/pull/109405) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف معامل اختياري `stride` إلى نوع البيانات `QBit` (`QBit(T, dimension, stride)`) لتخزين مجموعات الأبعاد في تدفقات منفصلة، بحيث يمكن للبحث المتجهي قراءة الأبعاد الأولى فقط بكفاءة (مثلًا في Matryoshka embeddings). وتقبل دوال المسافة المنقولة وسيطة رابعة اختيارية هي `used_dims` لقراءة عدد أقل من الأبعاد. [#108103](https://github.com/ClickHouse/ClickHouse/pull/108103) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف دعم نوع العنصر `Int8` في نوع البيانات `QBit`، مما يتيح التخزين وإجراء البحث المتجهي بالمسافة المنقولة (`L2DistanceTransposed` و`cosineDistanceTransposed`) على متجهات أعداد صحيحة مُكمّاة من 8 بت. [#108105](https://github.com/ClickHouse/ClickHouse/pull/108105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دالة جديدة `randomHadamardTransform(vector[, seed[, output_dims]])`: تحويل Hadamard عشوائي حتمي لمتجه ذي فاصلة عائمة — وهو تدوير متعامد يحافظ على المعيار، ومفيد للمعالجة المسبقة لـ embeddings قبل quantization، وكذلك (عندما يكون مقتطعًا) كإسقاط عشوائي من نوع Johnson–Lindenstrauss / subsampled-randomized-Hadamard. [#108227](https://github.com/ClickHouse/ClickHouse/pull/108227) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم تهيئة التحميل الكسول للقواميس على مستوى كل dictionary على حدة باستخدام الإعداد `dictionary_lazy_load` في تعريف dictionary، مع تجاوز إعداد الخادم العام `dictionaries_lazy_load`، بحيث يمكن تحميل بعض القواميس كسولًا بينما تُحمَّل أخرى تحميلًا فوريًا. [#108314](https://github.com/ClickHouse/ClickHouse/pull/108314) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُضيفت صفحة بحث مضمّنة في التوثيق، متاحة على المسار `/docs` ضمن واجهة HTTP، وتوفّر بحثًا فوريًا في جدول `system.documentation` وتعرض الوثائق المرجعية (مع تمييز بناء الجملة، والصيغ الرياضية، والروابط المتقاطعة). [#108345](https://github.com/ClickHouse/ClickHouse/pull/108345) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت الدالة `xxHash64Spark`، التي تحسب قيم `xxHash64` المتوافقة مع Spark لمدخلات `String` و`NULL` باستخدام البذرة `42` وتُرجع `Int64`. [#108436](https://github.com/ClickHouse/ClickHouse/pull/108436) ([Lalit Yadav](https://github.com/lalitium)).
* أصبحت `ALTER USER` و`ALTER ROLE` و`ALTER SETTINGS PROFILE` تقبل الآن `SET name = value` كاسم مستعار لـ `MODIFY SETTING name = value`. ويؤدي ذلك إلى تعديل الإعدادات الفردية في مكانها مع الإبقاء على بقية الإعدادات، بخلاف عبارة `SETTINGS` المجرّدة التي تستبدل قائمة الإعدادات بالكامل. وهذا يقلّل من احتمال مسح إعدادات المستخدم الأخرى عن طريق الخطأ. [#108722](https://github.com/ClickHouse/ClickHouse/pull/108722) ([Groene AI](https://github.com/groeneai)).
* أُضيف دعم `ALTER TABLE ... MODIFY CONSTRAINT [IF EXISTS] name CHECK expr` لتغيير التعبير الخاص بقيد موجود في مكانه. [#108768](https://github.com/ClickHouse/ClickHouse/pull/108768) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: أُضيف مفتاح تبديل لترميز الألوان لكل عمود (أيقونة 🌈 في رأس العمود) للتبديل بين الأشرطة، والخريطة الحرارية، والتصنيف الفئوي، وعدم استخدام أي تصور. ويُحفَظ الوضع المحدد في عنوان URL وسجل المتصفح. [#108873](https://github.com/ClickHouse/ClickHouse/pull/108873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `Keeper` الآن يتعامل على نحو صحيح مع opcode ‏`CreateContainer` (19) الخاص بـ `ZooKeeper`، وذلك عبر علامة ميزة اختيارية جديدة `create_container` (معطّلة افتراضيًا، مثل `create_ttl`). وبعد تفعيلها عقب ترقية كاملة للمجموعة، يمكن لعملاء `ZooKeeper` الخارجيين (مثل Java `ZooKeeper` 3.9+) إنشاء عقد حاوية على `Keeper` بدلًا من تلقي `ConnectionLoss`؛ كما تُبلِغ عقد الحاوية عن قيمة المؤشر `ephemeralOwner` المتوقعة، ويحذف خيط GC في الخلفية على القائد الحاويات التي بلا أبناء تلقائيًا. ويستمر رفض طلب `Create` العادي الذي يحمل علامة وضع الإنشاء `CONTAINER` من دون opcode 19 (`ZBADARGUMENTS`)، إذ لا يوجد أي عميل `ZooKeeper` معروف يُصدر هذا المزيج. وهذا توافق على مستوى البروتوكول من جهة الخادم فقط: إذ إن عميل `ZooKeeper` الخاص بـ ClickHouse (`zkutil`) لم يتغير ولا يوفّر API لإنشاء عقد حاوية بنفسه. [#108908](https://github.com/ClickHouse/ClickHouse/pull/108908) ([unintended](https://github.com/unintended)).
* أُضيفت الدوال `geoToUTM` و`UTMToGeo` و`geoToMGRS` و`MGRSToGeo` للتحويل بين الإحداثيات الجغرافية WGS84 ونظامَي الإحداثيات UTM وMGRS. [#108939](https://github.com/ClickHouse/ClickHouse/pull/108939) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت الدالة `digits(n, offset[, length])`، التي تُرجع أرقام `n` بدءًا من `offset` ذي الفهرسة التي تبدأ من 1 وتمتد على `length` رقمًا، أو حتى نهاية العدد إذا لم يُحدَّد `length`. [#109012](https://github.com/ClickHouse/ClickHouse/pull/109012) ([Umang Agrawal](https://github.com/1000ms)).
* أُضيفت الدالة الحسابية `sqr` لحساب مربع عدد. [#109061](https://github.com/ClickHouse/ClickHouse/pull/109061) ([Lalit Yadav](https://github.com/lalitium)).
* أُضيفت دالة جديدة `dictGetRoot` تُرجع السلف الأعلى (الجذر) لمفتاح في قاموس هرمي. وهي مكافئ مناسب لـ `dictGetHierarchy(dict_name, key)[-1]`. [#109459](https://github.com/ClickHouse/ClickHouse/pull/109459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الأمران `SYSTEM UNLOAD DICTIONARY` و`SYSTEM UNLOAD DICTIONARIES` لتحرير الذاكرة التي تستخدمها القواميس دون حذف تعريف القاموس. وستُعاد تحميل القواميس عند الوصول إليها لاحقًا عند الحاجة. [#109639](https://github.com/ClickHouse/ClickHouse/pull/109639) ([Matheus Nerone](https://github.com/Manerone)).
* أُضيفت الدالتان `geometryIntersectCartesian` و`geometryIntersectSpherical` اللتان تُرجعان ما إذا كان شكلان هندسيان يتقاطعان. وعلى خلاف `polygonsIntersectCartesian`/`polygonsIntersectSpherical`، فإنهما تقبلان أي نوع بيانات هندسية (`Point`, `LineString`, `MultiLineString`, `Ring`, `Polygon`, `MultiPolygon`)، بما في ذلك النوع العام `Geometry`، كما يمكن أن تكون الوسيطتان من نوعين مختلفين. [#110062](https://github.com/ClickHouse/ClickHouse/pull/110062) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن الآن استخدام معلمات الاستعلام (استبدالات `{name:Type}`) كقيم للإعدادات، سواء في عبارة `SETTINGS` داخل الاستعلام (مثل `SELECT` أو `INSERT`) أو في استعلامات `SET` المستقلة، مثل: `SELECT ... SETTINGS max_threads = {threads:UInt64}` و`SET max_threads = {threads:UInt64}`. [#108760](https://github.com/ClickHouse/ClickHouse/pull/108760) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* توسيع أحرف البدل للدالة الجدولية `url` ومحرك الجدول `URL`: تُوسَّع أحرف البدل في مسار URL من خلال استعراض صفحات فهرس HTTP (قوائم أدلة بصيغة HTML أو plaintext) واستخراج عناوين URL المطابقة، مع فرض حدود على حجم صفحة الفهرس وعدد الأدلة المقروءة. يُفعَّل ذلك بالإعداد `allow_experimental_url_wildcard_from_index_pages`. [#95181](https://github.com/ClickHouse/ClickHouse/pull/95181) ([Yue Ni](https://github.com/niyue)).
* يمكن الآن لـ Text indexes تخزين مواضع الرموز (وسيطة الفهرس `support_phrase_search`) لتمكين المطابقة الدقيقة للعبارات باستخدام direct read للدالة `hasPhrase`. ويتطلب ذلك تفعيل إعداد `MergeTree` ‏`allow_experimental_text_index_phrase_search`. [#103172](https://github.com/ClickHouse/ClickHouse/pull/103172) ([Elmi Ahmadov](https://github.com/ahmadov)). وقد طُرحت هذه الوسيطة في البداية تحت الاسم `positions`. [#109900](https://github.com/ClickHouse/ClickHouse/pull/109900) ([Elmi Ahmadov](https://github.com/ahmadov)).
* دعم compaction لملف البيانات الوصفية لجداول `Iceberg` عبر `OPTIMIZE TABLE ... MANIFEST` (مع حمايته بالإعداد `allow_experimental_iceberg_compaction`). يُغلق [#95174](https://github.com/ClickHouse/ClickHouse/issues/95174). [#98178](https://github.com/ClickHouse/ClickHouse/pull/98178) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)). وإصلاح `OPTIMIZE TABLE ... MANIFEST` لجداول `Iceberg` عندما لا تتطابق tuples تقسيم manifest مع مواصفة التقسيم الخاصة بها. [#111368](https://github.com/ClickHouse/ClickHouse/pull/111368) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إضافة متغير Real Doubles ‏(RD) ووسيطة اختيارية `ALP(AUTO|STD|RD)` إلى codec التجريبي `ALP`. وأصبح `ALP` من دون وسيطة يختار تلقائيًا بين المخطط الحالي `STD` و`RD` بدلًا من استخدام `STD` دائمًا. [#99654](https://github.com/ClickHouse/ClickHouse/pull/99654) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* إضافة cache داخل الذاكرة من نوع SLRU لملفات البيانات الوصفية `Paimon` بعد إلغاء تسلسلها (manifest lists وmanifests). وعند تفعيله عبر الإعداد `use_paimon_metadata_files_cache`، تتجاوز الاستعلامات المتكررة على جدول `Paimon` نفسه إعادة تنزيل البيانات الوصفية من object storage وإعادة تحليلها. [#104657](https://github.com/ClickHouse/ClickHouse/pull/104657) ([XiaoBinMu](https://github.com/Binnn-MX)).
* أُضيفت "drivers" للدوال المعرّفة من قبل المستخدم القابلة للتنفيذ. ويمكن استخدام driver مُعلن في `<user_defined_executable_function_drivers_config>` ضمن `CREATE FUNCTION name ARGUMENTS (...) RETURNS T ENGINE = DriverName(...) AS '...code...'` لتجميع مقتطف شيفرة المستخدم أو معالجته بطريقة أخرى وقت إنشاء الدالة، وإنتاج executable UDF قابل للتشغيل. ويُخزَّن config الناتج في `<dynamic_user_defined_executable_functions_path>`، ويُحفَظ الاستعلام الأصلي بصيغة `ATTACH FUNCTION` بحيث تبقى الدالة بعد إعادة تشغيل الخادم. ويقوم driver إثبات المفهوم `c_function_body` بتجميع أجسام دوال C وتشغيلها داخل حاويات Docker معزولة في وضع `executable_pool`. استنادًا إلى التنفيذ الأولي من [Daniil Timižev](https://github.com/dahbka-lis) ([#77128](https://github.com/ClickHouse/ClickHouse/pull/77128)). [#105131](https://github.com/ClickHouse/ClickHouse/pull/105131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تقديم `SELECT count(*) FROM t WHERE col <op> default(col)` اعتمادًا على إحصاءات sparsity لكل عمود في `serialization.json` من دون أي فحص للبيانات، عندما يقسم predicate العمود بدقة إلى قيم default وغير default (ضمن experimental setting جديد هو `optimize_trivial_count_with_sparsity_filter`، وهو معطَّل افتراضيًا). [#105890](https://github.com/ClickHouse/ClickHouse/pull/105890) ([Raúl Marín](https://github.com/Algunenano)).
* تُسجَّل الآن API request الخاصة بـ Prometheus Query API إلى `/api/v1/query` و`/api/v1/query_range` في `system.query_log` مع مقاييس `read_rows` و`read_bytes`. [#106611](https://github.com/ClickHouse/ClickHouse/pull/106611) ([James Cunningham](https://github.com/JTCunning)).
* يمكن الآن لمسار القراءة التجريبي `ReaderExecutor` ‏(`use_reader_executor`، معطّل افتراضيًا) إبقاء source connection البعيد مفتوحًا وإعادة استخدامه عبر قراءات متسلسلة، مما يقلّل عدد طلبات object storage أثناء عمليات الفحص. [#107735](https://github.com/ClickHouse/ClickHouse/pull/107735) ([Sema Checherinda](https://github.com/CheSema)). كما أصبح يدعم أيضًا قراءة الملفات المشفّرة، مع cache عام لـ ترويسة التشفير يُضبط عبر server setting ‏`encryption_header_cache_size` ويُفرَّغ باستخدام `SYSTEM DROP ENCRYPTION HEADERS CACHE`. [#109702](https://github.com/ClickHouse/ClickHouse/pull/109702) ([Sema Checherinda](https://github.com/CheSema)).
* دعم قراءات plan الاستعلام الموزّع لـ `SELECT ... FINAL` على جداول عائلة `MergeTree` عند تفعيل `make_distributed_plan`. [#108148](https://github.com/ClickHouse/ClickHouse/pull/108148) ([Alexander Gololobov](https://github.com/davenger)).
* إضافة تنفيذ تجريبي قائم على plan لوضع parallel replicas في استعلامات `MergeTree`. [#108504](https://github.com/ClickHouse/ClickHouse/pull/108504) ([Igor Nikonov](https://github.com/devcrafter)).
* أُضيفت عائلة codec المتجهات التجريبية `Quantize`، مع Rewrite اختياري لبحث متّجهي تقريبي على مرحلتين فوق streams المرافقة المُكمّاة. [#108565](https://github.com/ClickHouse/ClickHouse/pull/108565) ([Shankar Iyer](https://github.com/shankar-iyer)).
* أُعيد إحياء codec الضغط الفقدي التجريبي `SZ3` ذي الخطأ المحدود لأعمدة `Float32`/`Float64` (ومصفوفاتها)، والذي نُفِّذ أصلًا بواسطة [Konstantin Vedernikov](https://github.com/scanhex12) ([#83088](https://github.com/ClickHouse/ClickHouse/pull/83088)). ويتطلب `allow_experimental_codecs`. [#108788](https://github.com/ClickHouse/ClickHouse/pull/108788) ([Alexey Milovidov](https://github.com/alexey-milovidov)). كما أُصلحت قراءة البيانات المضغوطة باستخدام `SZ3('ALGO_LORENZO_REG', ...)`، التي كانت تفشل سابقًا مع `CORRUPTED_DATA`، وتم تفادي سلوك غير معرّف عند ضغط القيم floating-point غير المنتهية (`NaN` وقيم اللانهاية). [#110762](https://github.com/ClickHouse/ClickHouse/pull/110762) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف codec التجريبي `ZXC` — وهو codec لا متناظر من نوع LZ بضغط بطيء وفك ضغط سريع جدًا، مع compression ratio بين `LZ4` و`ZSTD`. ويتطلب `allow_experimental_codecs = 1`، ويعرضه `system.compression_codecs` على أنه تجريبي. [#110620](https://github.com/ClickHouse/ClickHouse/pull/110620) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#111007](https://github.com/ClickHouse/ClickHouse/pull/111007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكنك الآن المصادقة على OneLake باستخدام Bearer token تم الحصول عليه مسبقًا عبر الإعداد `onelake_bearer_token`، بدلًا من `onelake_client_id` و`onelake_client_secret`. وهذا يجنّب مشاركة client secret طويل الأمد. لا يتم تحديث token، لذا يجب إعادة إنشاء database بمجرد انتهاء صلاحيته. [#109104](https://github.com/ClickHouse/ClickHouse/pull/109104) ([Asya Shneerson](https://github.com/asya-ch)).
* لم تعد AI functions تأخذ named collection بوصفها argument الموضعي الأول. تأتي credentials من الإعدادين `ai_function_text_default_credentials` / `ai_function_embedding_default_credentials` أو من المفتاح `credentials` في argument اختياري أخير من النوع `Map(String, String)`، والذي يحمل أيضًا الإعدادات القابلة للضبط (`model`, `max_tokens`, `temperature`, `system_prompt`, `instructions`, `dimensions`). [#109232](https://github.com/ClickHouse/ClickHouse/pull/109232) ([George Larionov](https://github.com/george-larionov)). وتأخذ الدالة `aiEmbed` الآن `model` بوصفه argument موضعيًا مطلوبًا (`aiEmbed(text, model[, params])`) بدلًا من قراءته من named collection، مما يضمن قابلية إعادة الإنتاج لـ embeddings. [#110619](https://github.com/ClickHouse/ClickHouse/pull/110619) ([George Larionov](https://github.com/george-larionov)).
* إصلاح `data_uncompressed_bytes` لفهارس التخطي المعبأة في `skp_idx.packed` (عبر `packed_skip_index_max_bytes`): كان الحجم غير المضغوط المُبلّغ عنه هو في الواقع الحجم المضغوط، ما كان قد يمنع أيضًا تفعيل `distributed_index_analysis`. [#109272](https://github.com/ClickHouse/ClickHouse/pull/109272) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيف تخزين تجريبي معبأ لـ data part في جداول `MergeTree`، بحيث تُخزَّن معظم ملفات الجزء في أرشيف واحد `data.packed` بدلًا من ملف لكل stream (تظل projections وبعض ملفات الخدمة، مثل `txn_version.txt`، مكتوبة بشكل منفصل). ويجري التحكم فيه عبر الإعدادات `min_bytes_for_full_part_storage` و`min_rows_for_full_part_storage` و`min_level_for_full_part_storage`، وهو معطّل افتراضيًا. وما إن يبدأ جدول في كتابة الأجزاء المعبأة، حتى تعجز إصدارات server الأقدم عن قراءتها، لذا فإن تمكين هذا التنسيق يمنع الرجوع إلى إصدار أقدم من server. [#108118](https://github.com/ClickHouse/ClickHouse/pull/108118) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيفت table function تجريبية باسم `eval`، تُقيِّم expression ثابتًا إلى query string ثم تنفّذ استعلام `SELECT` واحدًا ناتجًا عنه. هذه الميزة معطّلة افتراضيًا، ويمكن تمكينها عبر الإعداد `allow_experimental_eval_table_function`. المؤلف: [Yue Ni](https://github.com/niyue). [#110132](https://github.com/ClickHouse/ClickHouse/pull/110132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة دعم ضغط `zstd` إلى HTTP handler التجريبي لـ Prometheus remote-write v1. [#110907](https://github.com/ClickHouse/ClickHouse/pull/110907) ([James Cunningham](https://github.com/JTCunning)).
* رُقّيت الكتابة إلى جداول `DeltaLake` (الإعداد `allow_experimental_delta_lake_writes`) إلى مرحلة Beta. [#107034](https://github.com/ClickHouse/ClickHouse/pull/107034) ([Kseniia Sumarokova](https://github.com/kssenii)).
* أُضيفت مقاييس `ProfileEvents` ‏`DistributedPlanRemoteTasks` و`DistributedPlanLocalExecution` و`DistributedPlanHostsUsed` لمراقبة تنفيذ distributed query plans التجريبية (`make_distributed_plan`). [#107985](https://github.com/ClickHouse/ClickHouse/pull/107985) ([Shankar Iyer](https://github.com/shankar-iyer)).
* أُزيل التخزين التجريبي المستند إلى RocksDB في Keeper (`experimental_use_rocksdb`). وسيصل قريبًا تخزين جديد أفضل على القرص. [#108000](https://github.com/ClickHouse/ClickHouse/pull/108000) ([Michael Kolupaev](https://github.com/al13n321)).
* أصبح distributed index analysis (وهي ميزة تجريبية يتحكم فيها الإعداد `distributed_index_analysis`) يرسل القوائم الكبيرة من أسماء data part إلى remote server كقيم scalar بدلًا من تضمينها في query text. وهذا يتجنب الإخفاقات المحتملة بسبب حدود `max_ast_elements` / `max_query_size` ويزيل عبء parsing الخاص بـ AST. [#110419](https://github.com/ClickHouse/ClickHouse/pull/110419) ([Azat Khuzhin](https://github.com/azat)).
* تحسين دوال aggregation التجريبية `timeSeries*ToGrid`: أصبحت buckets الآن محاذاة لكلٍّ من step وwindow، كما أصبح aggregation النهائي أسرع بكثير عندما تكون window أكبر بكثير من step. وقد تغيّر format الخاص بـ serialization لحالة aggregation على نحو غير متوافق (فهذه الدوال تجريبية). [#106724](https://github.com/ClickHouse/ClickHouse/pull/106724) ([Vitaly Baranov](https://github.com/vitlibar)).
* أصبحت target tables الخارجية لجدول `TimeSeries` تُسجَّل الآن بوصفها referential dependencies: وعلى غرار materialized views، يمنع هذا إسقاط target table خارجي قبل إسقاط جدول `TimeSeries` الذي يشير إليه (إذا كان `check_referential_table_dependencies` مُمكّنًا). [#108388](https://github.com/ClickHouse/ClickHouse/pull/108388) ([Vitaly Baranov](https://github.com/vitlibar)).
* إضافة دالة PromQL ‏`increase`. [#111023](https://github.com/ClickHouse/ClickHouse/pull/111023) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* أصبح بإمكان عمليات `JOIN` الآن استخدام فهرس المفتاح الأساسي أو skip indexes على الجدول الواقع في الجهة اليسرى لاستبعاد الحبيبات. ويُتحكَّم في ذلك عبر الإعداد `enable_join_runtime_filters_index_analysis`. [#109085](https://github.com/ClickHouse/ClickHouse/pull/109085) ([Shankar Iyer](https://github.com/shankar-iyer)).
* أصبحت عمليتا التسلسل وإلغاء التسلسل لمتجهات الأنواع القابلة للتسلسل مباشرةً تستخدمان استدعاء إدخال/إخراج واحدًا للمخزن المؤقت بدلًا من معالجة العناصر واحدًا واحدًا. [#89842](https://github.com/ClickHouse/ClickHouse/pull/89842) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تحسين عمليات البحث العكسي في القاموس: إذ يُبسَّط الآن شرط المساواة الثابت، مثل `WHERE dictGet(dict, attr, key_expr) = value`، مباشرةً إلى مرشح مفتاح (`key_expr = const` أو `key_expr IN [...]` أو `WHERE 0`) بدلًا من إعادة كتابته كاستعلام فرعي من النوع `IN (SELECT ... FROM dictionary(...))`، كما أصبح المسار الثابت لـ `dictGetKeys` يُنفَّذ بالتوازي. [#91164](https://github.com/ClickHouse/ClickHouse/pull/91164) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة إعداد جديد `merge_tree_generic_exclusion_search_max_steps` يحدّ من عدد الخطوات التي تقضيها خوارزمية البحث بالاستبعاد العام في تحليل فهرس المفتاح الأساسي لكل جزء بيانات. وتُستهلك الحصة أولًا على أكبر نطاقات المفاتيح المتبقية، لذا فإن حتى الحصة الصغيرة تستبعد معظم البيانات؛ أما النطاقات التي لم تُحلَّل بالكامل فتُقرأ كاملةً، لذلك تظل نتيجة الاستعلام صحيحة ولكن قد تُقرأ حبيبات أكثر. ويُطبَّق الحد بصورة مرنة: إذ قد يُتجاوز بما لا يزيد على `merge_tree_coarse_index_granularity` خطوة، بالإضافة إلى خطوة واحدة لكل نطاق يكون الجزء مقسّمًا إليه مسبقًا (على سبيل المثال، بواسطة ذاكرة التخزين المؤقت لشرط الاستعلام). وتعني القيمة الافتراضية 0 عدم وجود حد لعدد الخطوات. [#92779](https://github.com/ClickHouse/ClickHouse/pull/92779) ([Michael Jarrett](https://github.com/EmeraldShift)).
* أصبحت الاستعلامات التي تتضمن `ORDER BY` و`LIMIT` على العروض فوق جداول `Distributed` تستخدم الآن تحسين دمج التدفقات المرتبة: إذ يُدفَع `ORDER BY`/`LIMIT` الخارجي إلى الاستعلام الداخلي للعرض البسيط، بحيث يرتّب كل shard بياناته محليًا ويقوم المنسّق بدمج التدفقات المرتبة مسبقًا بدلًا من إجراء فرز كامل. [#94102](https://github.com/ClickHouse/ClickHouse/pull/94102) ([matanper](https://github.com/matanper)).
* جرى تفعيل `optimize_or_like_chain` افتراضيًا. يُغلق [#87779](https://github.com/ClickHouse/ClickHouse/issues/87779). [#94517](https://github.com/ClickHouse/ClickHouse/pull/94517) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* وَسْم جداول السجل في النظام من نوع `MergeTree` التي خضعت للتدوير وكانت non-replicated ولا تحتوي على TTL بأنها `table_readonly` لتجنّب عمليات الخلفية غير الضرورية. كما أن إعداد `table_readonly` في `MergeTree` يعطّل الآن أيضًا جميع أعمال الخلفية على جدول `MergeTree` عادي — بما في ذلك عمليات الدمج العادية، وعمليات TTL (`DELETE`/`MOVE`/إعادة الضغط)، وعمليات دمج إعادة الضغط، وmutations في الخلفية، ونقل الأجزاء في الخلفية — ويرفض أوامر partition المعدِّلة (`ATTACH`/`MOVE`/`DROP`/`DROP DETACHED`/`FETCH`/`REPLACE PARTITION` و`MOVE PARTITION ... TO TABLE` إلى الجدول)، بالإضافة إلى عمليات الإدراج وmutations و`OPTIMIZE` التي كان يرفضها بالفعل. ونتيجةً لذلك، فإن جدول `table_readonly` الذي يحتوي على TTL لم يعد يستعيد بياناته منتهية الصلاحية ما دام هذا الإعداد مفعّلًا. [#95079](https://github.com/ClickHouse/ClickHouse/pull/95079) ([Mathuranath Metivier](https://github.com/matt-metivier)).
* تحسين أداء جلب سجل مستخدم واحد من `system.users` عندما يحتوي الخادم على عدد كبير من المستخدمين. [#96699](https://github.com/ClickHouse/ClickHouse/pull/96699) ([Alistair Evans](https://github.com/alistairjevans)).
* أصبحت القراءة بالترتيب مع parallel replicas تستخدم الآن المنطق نفسه المتمثل في تقسيم الجدول إلى `max_threads` أجزاء كما في القراءة المحلية، لتحقيق قدر أفضل من التوازي. [#101434](https://github.com/ClickHouse/ClickHouse/pull/101434) ([Nikita Taranov](https://github.com/nickitat)).
* استخدم حدود فهرس minmax للتقسيم من أجل تقليم المزيد من الحبيبات أثناء تحليل المفتاح الأساسي لجداول `MergeTree`، عندما يكون أحد أعمدة المفتاح الأساسي أيضًا عمود إدخال في مفتاح التقسيم. على سبيل المثال، في جدول `MergeTree` يحتوي على `ORDER BY (id, event_time)` و`PARTITION BY toYYYYMM(event_time)`، سيستخدم ClickHouse فهرس minmax للتقسيم على `event_time` أثناء تحليل فهرس المفتاح الأساسي لاتخاذ قرارات تقليم أكثر دقة للحبيبات. يتحكم في ذلك الإعداد الجديد `use_partition_minmax_for_primary_key_pruning` (مُمكّن افتراضيًا). [#103480](https://github.com/ClickHouse/ClickHouse/pull/103480) ([UnamedRus](https://github.com/UnamedRus)).
* تم تمكين ذاكرة التخزين المؤقت لشرط الاستعلام للاستعلامات التي تستخدم التصفية الديناميكية Top-K (`ORDER BY ... LIMIT n`). ويُقسَّم مُدخل الذاكرة المؤقتة بحسب معاملات خطة Top-K، بحيث يعيد الاستعلام نفسه استخدام نتائج عامل التصفية `WHERE` المخزنة مؤقتًا، بينما يؤدي اختلاف `LIMIT` أو عمود الفرز أو اتجاه الفرز إلى إنشاء مُدخل جديد. [#104478](https://github.com/ClickHouse/ClickHouse/pull/104478) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الإعداد `use_constant_folding_in_index_analysis` (معطّل افتراضيًا). عند تمكينه، يقوم تحليل المفتاح الأساسي و`MinMax` وتحليل فهرس التخطي في `MergeTree` بطيّ الثوابت على مستوى القسم داخل مسند التصفية بشكل منفصل لكل جزء، مما يحسّن التقليم لعوامل التصفية التي تعتمد تفرعاتها على قيم التقسيم، مثل `(a = 1 AND b >= 1) OR (a = 2 AND b > 10)` مع `PARTITION BY a`. [#104582](https://github.com/ClickHouse/ClickHouse/pull/104582) ([Mikhail Artemenko](https://github.com/Michicosun)).
* دفع `LIMIT` إلى التجميع حسب الترتيب لتمكين الإنهاء المبكر عندما يتطابق مفتاح `GROUP BY` مع مفتاح `ORDER BY` ومفتاح فرز الجدول، مما يقلل بشكل كبير عدد الصفوف المقروءة. [#104859](https://github.com/ClickHouse/ClickHouse/pull/104859) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* أصبح تحديث profile events الآن أسرع بما يصل إلى 30 مرة، باستخدام عمليات ذرية لكل CPU للعدادات على مستوى الخادم ولكل مستخدم. يتحكم في ذلك إعداد الخادم `user_profile_events_per_cpu` (ويستخدم نحو 640 KiB لكل مستخدم على 64 نواة، لذا مع وجود عدد كبير جدًا من المستخدمين قد يكون من المنطقي إبقاؤه معطّلًا). [#105056](https://github.com/ClickHouse/ClickHouse/pull/105056) ([Azat Khuzhin](https://github.com/azat)).
* تم تمكين `allow_aggregate_partitions_independently` افتراضيًا. عندما يكون مفتاح `GROUP BY` مناسبًا لمفتاح التقسيم، يمكن لـ ClickHouse تجميع كل قسم بشكل مستقل وتخطي خطوة الدمج العامة. وتتجاوز آلية الاستدلال في وقت التشغيل هذا التحسين تلقائيًا عندما يجعل تخطيط الأقسام ذلك غير ملائم (عدد أقسام قليل جدًا، أو عدد أقسام كبير جدًا، أو أحجام أقسام غير متوازنة بشكل ملحوظ). [#105128](https://github.com/ClickHouse/ClickHouse/pull/105128) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت استعلامات البحث المتجهي مع إعادة التقييم (`vector_search_with_rescoring = 1`) تحسب الآن المسافة الدقيقة فقط للصفوف التي يعيدها الفهرس المتجهي، مع تطبيق عامل تصفية دقيق لمواضع الصفوف بدلًا من إعادة التقييم بالقوة الغاشمة للصفوف المجاورة من نفس حبيبة `MergeTree`. [#105591](https://github.com/ClickHouse/ClickHouse/pull/105591) ([Sergey Kuznetsov](https://github.com/skuznetsov)). [#108846](https://github.com/ClickHouse/ClickHouse/pull/108846) ([Sergey Kuznetsov](https://github.com/skuznetsov)).
* تحسين أداء خوارزمية الربط `partial_merge` على مفاتيح `FixedString` من خلال مقارنة سلاسل من القيم دفعة واحدة بدلًا من إجراء استدعاء مقارنة واحد لكل قيمة. [#105737](https://github.com/ClickHouse/ClickHouse/pull/105737) ([Artem Zuikov](https://github.com/4ertus2)).
* أصبح `SHOW TABLES` و`system.tables` على Data Lake Catalog (Iceberg REST وGlue وUnity وHive وPaimon) يدفعان الآن المسندات المقيّدة بمساحة الاسم إلى الـ catalog، مما يتجنب إجراء مسح كامل له. يُغلق [#105022](https://github.com/ClickHouse/ClickHouse/issues/105022). [#106029](https://github.com/ClickHouse/ClickHouse/pull/106029) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* تقييد الذاكرة غير المتعقَّبة لكل CPU لتجنّب `overcommit` وأخطاء نفاد الذاكرة (تُضبط الحدود باستخدام إعدادات الخادم `max_per_cpu_untracked_memory` و`per_cpu_untracked_memory_thread_buffer`). [#106055](https://github.com/ClickHouse/ClickHouse/pull/106055) ([Azat Khuzhin](https://github.com/azat)).
* تسريع المشغّلات التي تفحص stream مرتبًا لاكتشاف سلاسل من قيم key المتساوية — `DISTINCT` بالترتيب، و`LIMIT BY` بالترتيب، و`LIMIT BY` السالب بالترتيب، وjoins `full_sorting_merge` و`partial_merge`. [#106502](https://github.com/ClickHouse/ClickHouse/pull/106502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تنفيذ reader وwriter أصليَّين لتنسيقي `Arrow` و`ArrowStream` لا يستخدمان مكتبة Apache Arrow، مما يتجنب نسخ البيانات والتحويلات الإضافية. وأصبح هذا الآن الخيار الافتراضي (الإعدادان `input_format_arrow_use_native_reader` و`output_format_arrow_use_native_writer`)، وهو أسرع في القراءة والكتابة على حد سواء. [#106522](https://github.com/ClickHouse/ClickHouse/pull/106522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إعادة تفعيل LTO لـ jemalloc بعد إصلاح تلف في thread-cache ظهر مع LTO، مما يحسّن الأداء. [#106898](https://github.com/ClickHouse/ClickHouse/pull/106898) ([Azat Khuzhin](https://github.com/azat)).
* تقليل memory usage وتحسين أداء `JOIN`s. يستخدم الجانب الأيمن من hash join الآن مرجع row مدمجًا بطول 8 بايت قائمًا على الفهرس، بحيث تصبح entries جدول hash في joins `ALL` صغيرة بقدر نظيراتها في joins `ANY` لجميع أنواع key. أُجري benchmark على queries join كبيرة من نوع `parallel_hash` — joins `INNER` و`ANY` لجداول تضم 100–300 مليون row بمفاتيح `UInt64` و`String`، مع مفاتيح فريدة ومكررة: أصبح وسيط query أسرع بنحو 12% واستخدم Peak memory أقل بنحو 15%، من دون أن تصبح أي query أبطأ. وحققت joins `INNER` على مفاتيح `UInt64` أكبر تحسن (أسرع بنحو 21% في الوسيط مع ذاكرة أقل بنسبة 38%). [#107189](https://github.com/ClickHouse/ClickHouse/pull/107189) ([Harikrishnan Prabakaran](https://github.com/harikrishnan94)).
* أصبحت join keys أحادية العمود من النوع `LowCardinality(String)` غير `Nullable` مدعومة أصلًا الآن في hash join. [#107264](https://github.com/ClickHouse/ClickHouse/pull/107264) ([Nikita Taranov](https://github.com/nickitat)).
* إضافة خوارزمية تعداد ترتيب join المسماة `dpsub` (البرمجة الديناميكية على المجموعات الفرعية)، بما يوفّر planات join مثالية مع overhead optimization أقل من `dpsize` ودعمًا للـ joins غير الداخلية. [#107351](https://github.com/ClickHouse/ClickHouse/pull/107351) ([Fisnik Kastrati](https://github.com/fkastrati)).
* تسريع loading لـ filesystem cache عند بدء التشغيل من خلال ترميز حجم كل ملف cache في اسمه (`<offset>_<size>`)، مما يتجنب تنفيذ `stat` لكل ملف. ويظل loading لملفات cache المكتوبة بواسطة الإصدارات الأقدم مدعومًا. [#107415](https://github.com/ClickHouse/ClickHouse/pull/107415) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء `arrayElement` على `Array(LowCardinality(String))` ووظائف `LIKE` الخاصة بـ map على `Map`s التي تحتوي على مفاتيح أو قيم `LowCardinality(String)`، وذلك بتجنب materialization غير الضروري للسلاسل النصية. [#107450](https://github.com/ClickHouse/ClickHouse/pull/107450) ([Michael Jarrett](https://github.com/EmeraldShift)).
* تجنب تحويل aggregation أحادي المستوى إلى two-level aggregation عندما يكون memory usage منخفضًا، وذلك عبر تتبّع ذاكرة aggregation state نفسها بدلًا من ذاكرة query بأكملها. [#107490](https://github.com/ClickHouse/ClickHouse/pull/107490) ([Hechem Selmi](https://github.com/m-selmi)).
* تسريع تحليل queries التجميعية: يُحتسب مفتاح cache لإحصاءات حجم aggregation hash-table الآن انطلاقًا من query plan بدلًا من بناء AST الكامل للـ query. [#107643](https://github.com/ClickHouse/ClickHouse/pull/107643) ([Dmitry Novik](https://github.com/novikd)).
* تحسين أداء `INTERSECT ALL` و`EXCEPT ALL` (الوضع الافتراضي لـ `INTERSECT` و`EXCEPT`) عدة أضعاف، وذلك بجعل مفتاح المجموعة المتعددة يعتمد على قيمة الصف بدلًا من احتساب `hash` لكل صف باستخدام SipHash. [#107649](https://github.com/ClickHouse/ClickHouse/pull/107649) ([Raúl Marín](https://github.com/Algunenano)).
* إعادة بناء عوامل تصفية سياسات الصفوف من دون الاحتفاظ بقفل الذاكرة المؤقتة، مما يحسّن قابلية توسع الاستعلامات عند تنفيذ `CREATE ROW POLICY` و`DROP ROW POLICY` بالتزامن. [#107917](https://github.com/ClickHouse/ClickHouse/pull/107917) ([Azat Khuzhin](https://github.com/azat)).
* تسريع الدوال `match` و`extract` و`extractAll` و`replaceRegexpOne` و`replaceRegexpAll` للتعبيرات النمطية البسيطة عبر ترجمتها إلى native code باستخدام LLVM. ويتحكم في ذلك الإعداد الجديد `compile_regular_expressions` (مفعّل افتراضيًا)؛ أما الأنماط الواقعة خارج المجموعة الفرعية المدعومة فتعود تلقائيًا إلى محرك RE2. [#108004](https://github.com/ClickHouse/ClickHouse/pull/108004) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تسريع فك ضغط ZSTD على AArch64 ‏(ARM) للأعمدة ذات إزاحات المطابقة الصغيرة، مثل أعمدة الأعداد الصحيحة ذات العرض الثابت، من خلال تنفيذ نسخ متّجه للتداخلات القصيرة عند الإزاحات القصيرة باستخدام NEON. فعلى سبيل المثال، أصبح فك ضغط عمود `UInt64` أسرع حتى \~2.3× على AWS Graviton 4. [#108049](https://github.com/ClickHouse/ClickHouse/pull/108049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استخدام مكتبة `libdeflate` لضغط وفك ضغط gzip/zlib/deflate، مما يجعلها أسرع (الضغط \~1.15× مع ratio أفضل، وفك الضغط \~1.4–1.5×) لبيانات `.gz`/HTTP/`url`/`s3` وcodec ‏GZIP الخاص بـ Parquet. [#108074](https://github.com/ClickHouse/ClickHouse/pull/108074) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء استعلامات البحث النصي المقترنة بعامل تصفية للمفتاح الأساسي. [#108114](https://github.com/ClickHouse/ClickHouse/pull/108114) ([Anton Popov](https://github.com/CurtizJ)).
* استخدام إحصاءات runtime التي جُمعت أثناء التشغيل الأول للاستعلام لتحسين عمليات التشغيل اللاحقة: إذ يمكن لخوارزمية join ‏`hash` التبديل تلقائيًا إلى `parallel_hash` استنادًا إلى الإحصاءات المجمعة. [#108125](https://github.com/ClickHouse/ClickHouse/pull/108125) ([Hechem Selmi](https://github.com/m-selmi)). كما جرى تحسين حجم عوامل تصفية runtime الخاصة بـ join باستخدام حجم hash table من إحصاءات runtime الخاصة بـ join، ويتحكم في ذلك الإعداد الجديد `join_runtime_filter_size_from_hash_table_stats`. [#108313](https://github.com/ClickHouse/ClickHouse/pull/108313) ([Hechem Selmi](https://github.com/m-selmi)).
* تم تحسين سرعة فك ضغط LZ4 للأعمدة ثابتة الحجم ومنخفضة cardinality. [#108175](https://github.com/ClickHouse/ClickHouse/pull/108175) ([Nikita Taranov](https://github.com/nickitat)).
* تسريع الدوال `trimLeft`/`trimRight`/`trimBoth` الخاصة بالمسافات البيضاء الافتراضية (وأيضًا الأسماء البديلة لها `ltrim`/`rtrim`/`trim`): تُنسخ الصفوف المتتالية التي لا تحتاج إلى إزالة مسافات ضمن Batch واحدة، ولا يُجرى فحص المسافات لكل صف إلا للصفوف التي تحتوي فعلًا على مسافة بادئة أو لاحقة. [#108177](https://github.com/ClickHouse/ClickHouse/pull/108177) ([Groene AI](https://github.com/groeneai)).
* تحسين أداء `replaceAll` و`replaceRegexpAll` عندما يكون pattern حرفًا واحدًا ويكون replacement حرفًا واحدًا (على سبيل المثال `replaceRegexpAll(s, ' ', '_')`). لم تعد مثل هذه الاستبدالات تغيّر layout الخاص بالسلسلة، لذلك يُنسخ العمود الآن مرة واحدة وتُعاد كتابة البايتات المطابقة في موضعها بدلًا من تشغيل حلقة بحث لكل مطابقة. [#108178](https://github.com/ClickHouse/ClickHouse/pull/108178) ([Groene AI](https://github.com/groeneai)).
* تحسين أداء الدالة `pointInPolygon` عند استخدام مضلع ثابت. أصبحت ذاكرة التخزين المؤقت للمضلعات المُعالجة مسبقًا تُفهرَس الآن بحسب الوسائط الثابتة الخام، بحيث لا يُحلَّل المضلع الثابت إلا مرة واحدة فقط (عند الإخفاق في ذاكرة التخزين المؤقت) بدلًا من إعادة تحليله مع كل كتلة إدخال. [#108184](https://github.com/ClickHouse/ClickHouse/pull/108184) ([Groene AI](https://github.com/groeneai)).
* تسريع تحليل تمثيل التاريخ والوقت القياسي `YYYY-MM-DD hh:mm:ss` في وضع أفضل جهد (`date_time_input_format = 'best_effort'`, `cast_string_to_date_time_mode = 'best_effort'`)، وهو الوضع الافتراضي. يعالج هذا تراجعًا في أداء التحليل ظهر عند تبديل تلك القيم الافتراضية من `basic` إلى `best_effort`. [#108187](https://github.com/ClickHouse/ClickHouse/pull/108187) ([Groene AI](https://github.com/groeneai)).
* تجنّب الاحتفاظ بعدّادات الانتقائية في `system.predicate_statistics_log` على مسار القراءة في `MergeTree` عندما تكون الميزة معطّلة (`predicate_statistics_sample_rate = 0`، وهو الافتراضي). يزيل هذا تحديثًا ذريًا لكل حبيبة واحتساب `O(rows)` لعدد البتات المضبوطة في عامل التصفية من كل عملية قراءة، مما يعالج تراجعًا في الأداء كان أوضح ما يكون على AArch64. [#108190](https://github.com/ClickHouse/ClickHouse/pull/108190) ([Groene AI](https://github.com/groeneai)).
* تسريع تحليل الأعداد ذات الفاصلة العائمة من النص عند استخدام `precise_float_parsing = 1`، بحيث يصبح بنفس سرعة المحلّل الافتراضي أو أسرع منه على معظم المدخلات. ويتضمن ذلك أيضًا ترقية مكتبة `fast_float` المضمّنة إلى v8.2.10. [#108205](https://github.com/ClickHouse/ClickHouse/pull/108205) ([Raúl Marín](https://github.com/Algunenano)).
* استخدام مكتبة `simdutf` لوظائف ترميز base64 وفك ترميزه، مما يحسّن أداءها. [#108333](https://github.com/ClickHouse/ClickHouse/pull/108333) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحسين `DISTINCT` للمفاتيح المكلفة عالية الكاردينالية. [#108366](https://github.com/ClickHouse/ClickHouse/pull/108366) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* في البنى غير المعتمدة على Linux (macOS وFreeBSD)، لم يعد jemalloc يطهّر الصفحات المتسخة على نحو متعجّل (استدعاء نظام `madvise` واحد لكل `free`)؛ بل يستخدم الآن خيط تطهير في الخلفية مع `dirty_decay_ms` محدود، كما هو الحال في Linux. يسرّع هذا بشكل ملحوظ أعباء العمل كثيفة التخصيص والتحرير مثل تعبيرات الجدول الشائع التعاودية (\~2x في benchmark لتعبير جدول شائع تعاودي على macOS) مع تأثير ضئيل جدًا على RSS. [#108430](https://github.com/ClickHouse/ClickHouse/pull/108430) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تسريع تخطيط الاستعلامات ضمن المحلّل للتعبيرات التي تشير إلى الاسم المستعار `WITH` نفسه أو تكرّر التعبير الفرعي نفسه مرات عديدة (مثل سلاسل `if`/`multiIf` المتداخلة بعمق)، وذلك عبر عدم إعادة بناء التعبيرات الفرعية المشتركة عند إنشاء DAG الإجراءات. [#108523](https://github.com/ClickHouse/ClickHouse/pull/108523) ([Dmitry Novik](https://github.com/novikd)).
* تُبنى مرشحات وقت التشغيل الآن على مفاتيح المساواة حتى عندما تحتوي عبارة `ON` أيضًا على محمولات لا تعتمد على المساواة، مما يقلّل عدد الصفوف الداخلة إلى ربط التجزئة في عمليات الربط التي تمزج بين شروط المساواة وعدم المساواة. ولا يتأثر `LEFT ANTI JOIN` بذلك. [#108579](https://github.com/ClickHouse/ClickHouse/pull/108579) ([Antonio Álvarez Caballero](https://github.com/29antonioac)).
* تفعيل `-fno-math-errno` على مستوى قاعدة الشيفرة بالكامل، مما يتيح للمصرّف تحسين الدوال الرياضية بشكل أفضل. [#108628](https://github.com/ClickHouse/ClickHouse/pull/108628) ([Nikita Taranov](https://github.com/nickitat)).
* خفض عتبة الجلب المسبق البرمجي لجداول التجزئة الخاصة بالتجميع والربط من `4 * L2 cache size` إلى `L2 cache size`، بحيث يُفعَّل الجلب المسبق بمجرد أن لا يعود جدول التجزئة ملائمًا لذاكرة L2. يعالج هذا تراجعًا في `GROUP BY` و`JOIN` على جداول تجزئة متوسطة الحجم (\~1-8 MiB) على المنصات التي يكون فيها حجم L2 المُبلّغ عنه كبيرًا (مثل AArch64 مع L2 بحجم 2 MiB). [#108655](https://github.com/ClickHouse/ClickHouse/pull/108655) ([Groene AI](https://github.com/groeneai)).
* تحسين أداء الدوال النافذة. أصبحت الاستعلامات النافذة على الجداول العريضة التي تتضمن `SELECT *` تستخدم ذاكرة أقل بكثير وتعمل أسرع. كما أصبحت دوال التجميع النافذة، بما في ذلك `quantile*` و`uniq*` و`groupArray`، أسرع مع `OVER ()` و`OVER (ORDER BY ... RANGE ...)`. وأصبحت الدالة `cume_dist` أسرع أيضًا، كما تحسّن أداء النوافذ التي تستخدم `PARTITION BY` أو `ORDER BY` على الأعمدة التي تحتوي على كثير من القيم المتكررة. [#108688](https://github.com/ClickHouse/ClickHouse/pull/108688) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع تحليل الاستعلامات التي تحتوي على سلاسل `AND` كثيرة أو كبيرة جدًا من المقارنات: أصبحت آلية التحسين `optimize_and_compare_chain` الآن مقيّدة بميزانية عمل (إعداد جديد `optimize_and_compare_chain_max_hash_work`) بدلًا من إجراء hash لجزء كبير من شجرة الاستعلام، ولم تعد آلية تحليل لامبدا تعيد حساب قيم hash لنص لامبدا كجزء من حماية التكرار. [#108757](https://github.com/ClickHouse/ClickHouse/pull/108757) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تراجع في الأداء عند قراءة أعمدة `JSON`/`Dynamic` باستخدام عدة threads: إذ كان البحث عن الإعداد `input_format_binary_max_type_complexity` لكل قيمة يتسبب في تنازع على عدّاد المراجع في سياق الاستعلام المشترك، ما يجعل القراءات المتوازية تسلسلية؛ أما الآن فأصبحت قيمة الإعداد مخزّنة مؤقتًا لكل thread. [#108797](https://github.com/ClickHouse/ClickHouse/pull/108797) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح تراجع في الأداء (أُدخل في [#71781](https://github.com/ClickHouse/ClickHouse/issues/71781)) حيث توقفت قراءة أعداد كبيرة من الملفات الصغيرة من object storage عبر `s3` ودوال الجداول الأخرى عن prefetching وعادت إلى القراءات المتزامنة، ما أدى إلى إبطاء كبير للقراءات أحادية الخيط وذات التوازي المنخفض لكميات كبيرة من الملفات الصغيرة جدًا. [#108872](https://github.com/ClickHouse/ClickHouse/pull/108872) ([Nikita Fomichev](https://github.com/fm4v)). كما أصبح prefetch الأولي للكائنات الصغيرة يُصدر الآن أيضًا عندما تمر قراءات object storage عبر filesystem cache (`filesystem_cache_name`)، لذلك لم تعد قراءات الأعداد الكبيرة من الملفات الصغيرة (مثل ingestion في `S3Queue`) مع تفعيل cache متزامنة ومقيّدة بزمن الاستجابة. [#109478](https://github.com/ClickHouse/ClickHouse/pull/109478) ([Nikita Fomichev](https://github.com/fm4v)).
* تحليل القيم الحرفية المتداخلة بعمق من نوع Array وtuple بزمن خطي بدلًا من التربيعي. [#108892](https://github.com/ClickHouse/ClickHouse/pull/108892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تقليل الحمل الناتج عن تنازع الأقفال في خوارزمية الربط `parallel_hash`. [#108938](https://github.com/ClickHouse/ClickHouse/pull/108938) ([Hechem Selmi](https://github.com/m-selmi)).
* تسريع `estimateCompressionRatio` للأعمدة المرمّزة بـ `T64` من خلال حساب الحجم المضغوط تحليليًا بدلًا من ضغط البيانات فعليًا. [#109054](https://github.com/ClickHouse/ClickHouse/pull/109054) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إزالة عنق زجاجة أحادي الخيط في خطوة shuffle ضمن خطط الاستعلامات الموزعة: إذ أصبح كل stream من المنبع يوزّع صفوفه على حاوية الوجهة بشكل مستقل بدلًا من تمرير تدفق البيانات بالكامل عبر transform واحد. [#109206](https://github.com/ClickHouse/ClickHouse/pull/109206) ([Alexander Gololobov](https://github.com/davenger)).
* تقليل استهلاك CPU أثناء الخمول في خادم Keeper. [#109255](https://github.com/ClickHouse/ClickHouse/pull/109255) ([Michael Kolupaev](https://github.com/al13n321)).
* تسريع serialization وعمليات الدمج لأعمدة `JSON` التي تحتوي بياناتها المشتركة على كثير من المسارات المتناثرة: فعند flattening البيانات المشتركة إلى أعمدة لكل مسار، أُزيل المسح لكل صف عبر جميع أعمدة المسارات المتراكمة، وأصبح استكمال الفجوات للبيانات السابقة يتم دفعة واحدة بدلًا من إدراج القيم الافتراضية خليةً تلو الأخرى. [#109341](https://github.com/ClickHouse/ClickHouse/pull/109341) ([Groene AI](https://github.com/groeneai)).
* تقليل الحمل الإضافي على CPU عند تقييم التعبيرات في الاستعلامات التي تتضمن عددًا كبيرًا من الأعمدة (على سبيل المثال، البحث المتجهي على عمود `QBit` مع `stride` صغير، حيث يُوسَّع كل متجه إلى مئات الأعمدة الفرعية لمستويات البت، وتُمرَّر كلها إلى استدعاء واحد لـ `*DistanceTransposed`). [#109380](https://github.com/ClickHouse/ClickHouse/pull/109380) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء دوال Geo في H3 (`h3ToGeoBoundary`, `h3ToGeo`, `h3CellAreaM2`/`h3CellAreaRads2`, `geoToH3`) عبر حساب الجيب/جيب التمام المقترنين معًا، وإزالة الاستدعاءات المثلثية الزائدة في تحويلات الإحداثيات. لم تتغير النتائج (متطابقة تمامًا على مستوى البت). [#109399](https://github.com/ClickHouse/ClickHouse/pull/109399) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء المقارنات (`<`, `>`, `<=`, `>=`) لأنواع الأعداد الصحيحة العريضة (`Int128`, `UInt128`, `Int256`, `UInt256` والأنواع المبنية عليها مثل `Decimal128`) بما يصل إلى 7 مرات، وكذلك تحويل الأعداد الصحيحة الموقعة إلى `Int256` (حتى 7 مرات على البيانات مختلطة الإشارة)، وذلك بجعل شيفرة المقارنة وتوسيع الإشارة بلا تفرعات. [#109474](https://github.com/ClickHouse/ClickHouse/pull/109474) ([Manuel](https://github.com/raimannma)).
* جرى تحسين `uniqCombined` (بما في ذلك حالة aggregation من دون مفاتيح) و`uniqHLL12`. [#109794](https://github.com/ClickHouse/ClickHouse/pull/109794) ([Anton Popov](https://github.com/CurtizJ)). [#109831](https://github.com/ClickHouse/ClickHouse/pull/109831) ([Anton Popov](https://github.com/CurtizJ)).
* أصبحت الدالتان `arraySort` و`arrayReverseSort` أسرع عدة مرات عند العمل على مصفوفات رقمية (بما في ذلك `Decimal` و`DateTime64`) عند استدعائهما من دون لامبدا. [#109832](https://github.com/ClickHouse/ClickHouse/pull/109832) ([Manuel](https://github.com/raimannma)).
* تسريع `addDays` و`addWeeks` و`subtractDays` و`subtractWeeks` على قيم `DateTime` و`DateTime64` في المناطق الزمنية ذات الإزاحة الثابتة (مثل UTC) عبر استخدام مسار حسابي سريع. [#109836](https://github.com/ClickHouse/ClickHouse/pull/109836) ([Manuel](https://github.com/raimannma)).
* جرى تحسين تحليل الفهرس النصي. [#109886](https://github.com/ClickHouse/ClickHouse/pull/109886) ([Anton Popov](https://github.com/CurtizJ)).
* إضفاء التوازي على معالجة الصفوف غير المنضمة في خوارزمية join ‏`parallel_hash` في حالتين إضافيتين: عند وجود عامل تصفية متبقٍّ، وفي حالة مفاتيح join الصغيرة (خريطة hash أحادية المستوى). [#110008](https://github.com/ClickHouse/ClickHouse/pull/110008) ([Hechem Selmi](https://github.com/m-selmi)).
* أصبحت استجابات واجهة الويب المضمنة (واجهة Play UI، وdashboards، ومعالجات الملفات الثابتة) تُضغط الآن وفقًا لترويسة `Accept-Encoding` الخاصة بالعميل، باستخدام zstd أو gzip أو deflate أو brotli أو lz4 أو xz أو snappy أو bzip2. على سبيل المثال، يتقلص حجم صفحة `/play` من نحو 350 كيلوبايت غير مضغوط إلى أقل من 120 كيلوبايت مع zstd، مما يقلل أوقات التحميل على الاتصالات البطيئة. وتُترك الاستجابات المضغوطة مسبقًا دون تغيير، كما يُرسَل `Vary: Accept-Encoding` لضمان صحة تقسيم CDN وcache. [#110108](https://github.com/ClickHouse/ClickHouse/pull/110108) ([Sayantanu Dey](https://github.com/sayantanu-dey)).
* ادفع عامل التصفية إلى ما دون دالة نافذة أو إلى ما دون `LIMIT BY` عندما يكون ذلك آمنًا: إذ إن أي predicate مكتوب فوقهما (مثل `WHERE` خارجي يحيط بـ subquery، أو conjunct في `QUALIFY`) ويشير فقط إلى أعمدة `PARTITION BY` الخاصة بدالة النافذة، أو فقط إلى أعمدة المفتاح الخاصة بـ `LIMIT BY` (في حالة `LIMIT n BY` عندما يكون `n >= 1` ومن دون `OFFSET`)، يصل الآن إلى طبقة التخزين ويتيح pruning للمفتاح الأساسي وpartition، وskip indexes، وprojections. على سبيل المثال، لم يعد `SELECT ... row_number() OVER (PARTITION BY key ORDER BY ts) AS rn ... QUALIFY rn = 1 AND key = 'x'` يقرأ الجدول بالكامل ويطبق عليه دالة نافذة. [#110114](https://github.com/ClickHouse/ClickHouse/pull/110114) ([Groene AI](https://github.com/groeneai)). [#110116](https://github.com/ClickHouse/ClickHouse/pull/110116) ([Groene AI](https://github.com/groeneai)).
* مع `join_use_nulls = 1`، فإن `WHERE` الذي يستبعد قيم NULL ويشير إلى أعمدة من جانبي outer join (مثل `WHERE l.k = 42 AND r.k = 42`) يحوّل الآن عملية join إلى `INNER` (أو `LEFT`/`RIGHT`) ويتيح pruning للمفتاح الأساسي، تمامًا كما في حالة `join_use_nulls = 0`. سابقًا كان هذا التحويل يُتخطّى في هذه الحالة، وكان كلا الجدولين يُقرآن بالكامل. [#110121](https://github.com/ClickHouse/ClickHouse/pull/110121) ([Groene AI](https://github.com/groeneai)).
* أصبحت الدوال التي تحتوي على argument واحد `Nullable` غير ثابت تشارك null map الخاص بـ argument مع النتيجة بدلًا من تخصيص واحد جديد ودمجه. [#110151](https://github.com/ClickHouse/ClickHouse/pull/110151) ([Manuel](https://github.com/raimannma)).
* تجنّب إجراء تخصيص على heap لكل فحص hyperrectangle في index analysis للمفتاح الأساسي، مما يسرّع تصفية العلامات بنسبة 5-26% بحسب شكل query. [#110153](https://github.com/ClickHouse/ClickHouse/pull/110153) ([Manuel](https://github.com/raimannma)).
* حسّن أداء الدالتين `arrayMin` و`arrayMax` على Array رقمية بنحو \~1.3-1.5x باستخدام اختزال موجّه vectorized بدلًا من حلقة مقارنة لكل عنصر. [#110163](https://github.com/ClickHouse/ClickHouse/pull/110163) ([Manuel](https://github.com/raimannma)).
* اجعل فك ضغط codec ‏`Delta` موجّهًا vectorized. أصبح فك الترميز الآن أسرع بمقدار 1.5–5 مرات لأنواع البيانات ذات 8/16/32-بت، مما يجعل scans الأعمدة المضغوطة بـ `Delta` أسرع حتى 20%. [#110189](https://github.com/ClickHouse/ClickHouse/pull/110189) ([Manuel](https://github.com/raimannma)).
* سرّع string search functions (`like`, `position`, `match`, `countSubstrings`, `hasToken` وغيرها) على أعمدة `Enum` باستخدام needle ثابت، وذلك عبر البحث فقط في أسماء enum المميّزة ثم إرجاع النتائج لكل row، بدلًا من البحث في كل row. [#110325](https://github.com/ClickHouse/ClickHouse/pull/110325) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* سرّع aggregate functions ‏`groupBitOr`/`groupBitAnd`/`groupBitXor` وعائلة التباين (`varPop`, `varSamp`, `stddevPop`, `stddevSamp`, `skewPop`, `skewSamp`, `kurtPop`, `kurtSamp`, `covarPop`, `covarSamp`, `corr`) عبر المعالجة الدفعية الموجّهة vectorized: أسرع حتى 4 مرات مع combinator ‏`-If` في conditions غير المتوقعة، وأسرع حتى 3 مرات لعائلة التباين من دونه. [#110461](https://github.com/ClickHouse/ClickHouse/pull/110461) ([Manuel](https://github.com/raimannma)).
* سرّع تحليل text index (المرحلة التي تحدد granules التي يجب قراءتها): استخدم البحث بالاستبعاد بدلًا من التكرار على جميع granules، وتجنّب إنشاء bitmap مؤقتة لكل فحص نطاق. [#110530](https://github.com/ClickHouse/ClickHouse/pull/110530) ([Anton Popov](https://github.com/CurtizJ)).
* احتساب الحجم على القرص للأعمدة الفرعية من `Map` ضمن تحسين `PREWHERE` التلقائي. يُصلح هذا تراجعًا في أداء `PREWHERE` أُدخل في [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200). جزء من [#110462](https://github.com/ClickHouse/ClickHouse/issues/110462). [#110623](https://github.com/ClickHouse/ClickHouse/pull/110623) ([Pavel Kruglov](https://github.com/Avogar)).
* تسريع تحليل قيم `UUID` من النص (مثل `JSONExtract` إلى `LowCardinality(UUID)`، و`toUUID`، و`CAST AS UUID`) عبر التحقق من الأرقام السداسية العشرية وتحويلها في مرور واحد بدلًا من مرورين. [#110625](https://github.com/ClickHouse/ClickHouse/pull/110625) ([Groene AI](https://github.com/groeneai)).
* تحسين أداء الدوال التجميعية `timeSeries*ToGrid` بشكل ملحوظ باستخدام تطبيقات أسرع للفرز وجداول hash. [#110875](https://github.com/ClickHouse/ClickHouse/pull/110875) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* أصبحت الاستعلامات مثل `SELECT * FROM t WHERE id` تستخدم تخطي الفهرس على العمود `id`. يُغلق [#89222](https://github.com/ClickHouse/ClickHouse/issues/89222). [#89603](https://github.com/ClickHouse/ClickHouse/pull/89603) ([Aditya Chopra](https://github.com/adityachopra29)).
* أُضيف الإعداد `query_plan_merge_expression_into_join` (مفعّل افتراضيًا) للسماح بدمج خطوات التعبير ضمن خطوات `JOIN` أثناء تحسين إعادة ترتيب `JOIN`. يتيح ذلك إعادة ترتيب `JOIN` عبر الاستعلامات الفرعية التي تغلف عمليات `JOIN` (على سبيل المثال، عندما يكون `JOIN` داخل استعلام فرعي يحتوي على أعمدة محسوبة)، مما يؤدي إلى تحسين أفضل لأشجار `JOIN` المعقدة. [#98533](https://github.com/ClickHouse/ClickHouse/pull/98533) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تحسين سلاسل `AND` التي تتضمن شروط مقارنة متعددة على التعبير نفسه: اكتشاف التناقضات (مثل `a < 3 AND a > 5` → `false`) وحذف الشروط الزائدة (مثل `a = 3 AND a < 5` → `a = 3`). [#99736](https://github.com/ClickHouse/ClickHouse/pull/99736) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* أصبحت Materialized CTEs المشار إليها من عدة فروع في استعلام `UNION` تُجسَّد مرة واحدة وتُشارك بين جميع الفروع. سابقًا، كان كل فرع يتلقى نسخته الخاصة من CTE، وكانت تُضمَّن inline وتُقيَّم بشكل منفصل. [#102107](https://github.com/ClickHouse/ClickHouse/pull/102107) ([Dmitry Novik](https://github.com/novikd)).
* أصبحت الخيوط في `BackgroundSchedulePool` تُنشأ عند الطلب بدلًا من إنشائها كلها دفعة واحدة عند بدء تشغيل الخادم. ويتحكم إعداد الخادم الجديد `background_schedule_pool_initial_size` (القيمة الافتراضية `16`) في عدد العمال الذين يُنشؤون مسبقًا؛ كما ينمو الـ pool حتى `background_schedule_pool_size` عند الحاجة. يقلل ذلك من عدد الخيوط الخاملة على الخوادم منخفضة الحمل. يُغلق [#85265](https://github.com/ClickHouse/ClickHouse/issues/85265). [#105066](https://github.com/ClickHouse/ClickHouse/pull/105066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تخطي عمليات تحميل ملفات العلامات غير الضرورية للتسلسل المتقدم للبيانات المشتركة في النوع `JSON`. [#107051](https://github.com/ClickHouse/ClickHouse/pull/107051) ([Pavel Kruglov](https://github.com/Avogar)).
* أصبحت ذاكرة التخزين المؤقت للمضلعات الثابتة المُعالجة مسبقًا للدالة `pointInPolygon` مشتركة الآن بين الاستعلامات والخيوط، ويحدّها إعداد الخادم الجديد `point_in_polygon_cache_size` (القيمة `default` هي 256 MiB، وتعطّل القيمة `0` ذاكرة التخزين المؤقت، ويمكن تغييره في وقت التشغيل). سابقًا، كانت ذاكرة التخزين المؤقت تحتفظ بما يصل إلى `max_threads` نسخة من كل مضلع مُعالج مسبقًا، وكانت تنمو بلا حدود مع المضلعات المختلفة، ولم يكن يُفرَج عنها مطلقًا حتى إعادة تشغيل الخادم. ويمكن مسحها باستخدام `SYSTEM DROP POINT IN POLYGON CACHE`، ويُبلَّغ عن الاستخدام الحالي في `system.metrics` على شكل `PointInPolygonCacheBytes` و`PointInPolygonCacheCells` و`PointInPolygonCacheSizeLimit`. يغلق [#106393](https://github.com/ClickHouse/ClickHouse/issues/106393). [#107247](https://github.com/ClickHouse/ClickHouse/pull/107247) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* لم يعد Keeper يحتفظ بقفل اللقطات الداخلية أثناء تسلسل snapshot وكتابتها إلى القرص أو نقل snapshots بين الأقراص، لذلك لم تعد عمليات نقل snapshot إلى العقد الأخرى ومعالجة Raft تتعطل بسبب إنشاء snapshot محلية. [#107595](https://github.com/ClickHouse/ClickHouse/pull/107595) ([Antonio Andelic](https://github.com/antonio2368)).
* جرى تنفيذ background eviction في filesystem cache بالتوازي (ويتحكم فيه الإعداد `keep_free_space_ratio`). وأُضيف إعداد جديد `keep_free_space_eviction_threads` للتحكم في درجة التوازي، كما رُفعت القيمة `default` لـ `keep_free_space_remove_batch` من `100` إلى `250`. [#108147](https://github.com/ClickHouse/ClickHouse/pull/108147) ([Kseniia Sumarokova](https://github.com/kssenii)).
* حُدِّد عدد الأجزاء المرحلية التي تُجهَّز بالتزامن في عملية النسخ بالقراءة ثم الكتابة في Azure Blob Storage (المستخدمة في النسخ الاحتياطية عندما لا تكون عملية النسخ الأصلية متاحة) إلى `max_inflight_parts_for_one_file`، مما يمنع الاستخدام المفرط للذاكرة عند نسخ عدد كبير من الملفات الكبيرة بالتوازي. [#108232](https://github.com/ClickHouse/ClickHouse/pull/108232) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* جرى تفعيل جميع ذواكر التخزين المؤقت الثلاث الخاصة بـ text index على مستوى عام — إذ كانت سابقًا مفعّلة فقط داخل الاستعلامات. كذلك، أصبح حجم ذاكرة التخزين المؤقت لـ posting lists الآن صفرًا، ما يعطّلها فعليًا مرة أخرى، لأن posting lists كبيرة وتخزينها مؤقتًا مكلف جدًا. [#108274](https://github.com/ClickHouse/ClickHouse/pull/108274) ([Robert Schulze](https://github.com/rschu1ze)).
* إضافة ضغط marks المتدفقة داخل الذاكرة أثناء تحميل marks لتقليل Peak memory usage. يغلق [#108285](https://github.com/ClickHouse/ClickHouse/issues/108285). [#108325](https://github.com/ClickHouse/ClickHouse/pull/108325) ([Pavel Kruglov](https://github.com/Avogar)).
* يحجز إعداد filesystem cache الجديد `reserve_granularity` (القيمة `default` هي 4 MiB) مساحةً مسبقًا على مستوى granules أكبر، مما يقلل تنازع الأقفال في المسار الساخن لحجز مساحة filesystem cache. [#108369](https://github.com/ClickHouse/ClickHouse/pull/108369) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تقليل مقدار الذاكرة التي تستخدمها metadata الخاصة بـ filesystem cache (لكل file segment ولكل مفتاح). [#108477](https://github.com/ClickHouse/ClickHouse/pull/108477) ([Kseniia Sumarokova](https://github.com/kssenii)).
* أصبحت الاستعلامات الموجَّهة إلى `system.iceberg_history` مع عوامل `WHERE` على العمودين `database` و`table` تصل الآن فقط إلى قواعد البيانات المطابقة، مما قد يوفر الوقت إذا كان لديك العديد من قواعد البيانات البعيدة غير ذات الصلة على الخادم. [#108492](https://github.com/ClickHouse/ClickHouse/pull/108492) ([Den Kalantaevskii](https://github.com/Diskein)).
* أُزيلت عمليات القفل غير الضرورية في filesystem cache لتقليل تنازع الأقفال. [#108932](https://github.com/ClickHouse/ClickHouse/pull/108932) ([Kseniia Sumarokova](https://github.com/kssenii)).
* خُفِّض استخدام الذاكرة في معالجة البيانات الوصفية لـ `BACKUP` و`RESTORE`. فعند فتح نسخة احتياطية (لأجل `RESTORE` أو كأساس لـ `BACKUP` ‏`incremental`) أصبح تحليل البيانات الوصفية `.backup` يتم على شكل تدفّق بدلًا من تحميلها إلى شجرة مستند XML داخل الذاكرة، ما يتجنب في النسخ الاحتياطية الكبيرة (وخاصة `incremental`) تخصيص شجرة DOM بحجم عدة غيغابايت. [#109107](https://github.com/ClickHouse/ClickHouse/pull/109107) ([Julia Kartseva](https://github.com/jkartseva)). ولم يعد إنهاء `BACKUP` ينسخ معلومات الملفات لكل الملفات إلى متجه مؤقت، وهو ما كان يستهلك مؤقتًا عدة غيغابايت عند التعامل مع نسخ احتياطية تضم ملايين الملفات. [#109861](https://github.com/ClickHouse/ClickHouse/pull/109861) ([Julia Kartseva](https://github.com/jkartseva)). كما أن كتابة إدخالات النسخ الاحتياطي لم تعد تنسخ قائمة معلومات ملفات المضيف الحالي. [#111162](https://github.com/ClickHouse/ClickHouse/pull/111162) ([Julia Kartseva](https://github.com/jkartseva)).
* تقليل استهلاك الذاكرة في المُجمِّع. [#109224](https://github.com/ClickHouse/ClickHouse/pull/109224) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* دعم ذاكرة التخزين المؤقت لشروط الاستعلام لملفات `Parquet` المحلية المقروءة عبر محرك الجدول `File` (وكان الدعم سابقًا مقتصرًا على تخزين الكائنات وبحيرات البيانات). [#109247](https://github.com/ClickHouse/ClickHouse/pull/109247) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* خُفِّض استخدام الذاكرة في ذاكرة التخزين المؤقت لترويسة الفهرس النصي بمقدار يتراوح بين مرتين و2.5 مرة. وباتت الذاكرة المؤقتة تستوعب عددًا أكبر من ترويسات أجزاء البيانات (الإعداد `text_index_header_cache_size`)، مما يقلل قراءات القرص لاستعلامات البحث النصي. [#109332](https://github.com/ClickHouse/ClickHouse/pull/109332) ([Anton Popov](https://github.com/CurtizJ)).
* أصبحت دوال مسافة المتجهات المنقولة `L2DistanceTransposed` و`cosineDistanceTransposed` و`dotProductTransposed` تطبّق الآن تحسين القراءة الجزئية لـ bit planes على أعمدة `Nullable(QBit)`، بحيث تُقرأ مستويات البتات المطلوبة فقط بدلًا من العمود كاملًا. [#109358](https://github.com/ClickHouse/ClickHouse/pull/109358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `IS NOT DISTINCT FROM` و`IS TRUE` يستخدمان الآن المفتاح الأساسي وفهارس MinMax لاستبعاد الحبيبات، تمامًا مثل `=`. سابقًا، كان `k IS NOT DISTINCT FROM 42` و`(k = 42) IS TRUE` يفحصان جميع الحبيبات. [#110006](https://github.com/ClickHouse/ClickHouse/pull/110006) ([Groene AI](https://github.com/groeneai)).
* لم تعد الاتصالات المجمّعة تُفحَص عبر ping قبل كل استخدام. وهذا يلغي رحلة الذهاب والإياب `Ping`-`Pong` التي كانت تُضاف إلى كل اتصال معاد استخدامه، مما يقلل زمن الاستجابة للاستعلامات الموزعة ولأداة `clickhouse-benchmark`. ويُكتشف الاتصال المجمّع المتقادم عبر عملية poll بمهلة صفرية (فحص غير حاجب لا يضيف أي رحلة ذهاب وإياب)، ثم يُستعاد بإعادة الاتصال. [#110068](https://github.com/ClickHouse/ClickHouse/pull/110068) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عمليات إعادة الاتصال غير المبررة في اتصالات HTTP المجمّعة من نوع keep-alive عبر TLS ‏(HTTPS وS3). كان فحص الاتصال المتقادم يستخدم `poll` على الـ socket، ما كان يؤدي إلى الإبلاغ خطأً عن اتصال آمن حيّ على أنه مغلق عندما يحمل سجل TLS غير مقروء بعد المصافحة (تذكرة جلسة أو `KeyUpdate`)؛ أما الآن فيستخدم `MSG_PEEK` غير حاجب على sockets العادية و`SSL_peek`/`SSL_has_pending` على sockets الخاصة بـ TLS، ما يكتشف أيضًا بشكل صحيح الإغلاق المنظم لـ TLS وسجل TLS الذي وصل منه جزء فقط. [#110402](https://github.com/ClickHouse/ClickHouse/pull/110402) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت الاستعلامات المسرَّعة بواسطة التصفية الديناميكية TopK ‏(`ORDER BY ... LIMIT k`) تستفيد بشكل أكبر من ذاكرة التخزين المؤقت لشروط الاستعلام: إذ تُملأ الذاكرة المؤقتة حتى عند تطبيق `lazy materialization` على الاستعلام، ويمكن لهذه الاستعلامات إعادة استخدام إدخالات كُتبت سابقًا بواسطة استعلام عادي له شرط `WHERE` نفسه. [#110507](https://github.com/ClickHouse/ClickHouse/pull/110507) ([Shankar Iyer](https://github.com/shankar-iyer)).
* يستخدم نمط `LIKE`/`NOT LIKE` بدون أحرف بدل (`%`, `_`) الآن نطاقًا دقيقًا للمفتاح الأساسي، لذا يقرأ العدد نفسه من الحبيبات كما في الشرط المكافئ `=`/`!=` بدلًا من نطاق بادئة أوسع. [#107077](https://github.com/ClickHouse/ClickHouse/pull/107077) ([Groene AI](https://github.com/groeneai)).
* إصلاح تنازع القفل الزائد على file segment (وهو تراجع في الأداء أُدخل في 26.1) عند قراءة البيانات عبر ذاكرة التخزين المؤقت لنظام الملفات. [#109577](https://github.com/ClickHouse/ClickHouse/pull/109577) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تم إصلاح عدم استخدام فهارس التخطي المعرّفة على الأعمدة الفرعية من النوع `Tuple` عند الوصول إلى الحقل عبر `tupleElement(t, 'name')` أو `tupleElement(t, N)` أو `t.N`، مع قراءة الـ tuple الكامل أيضًا في الاستعلام نفسه (مثل `SELECT *`). وتقوم جميع هذه الصيغ الآن بتقليص الحبيبات بالطريقة نفسها التي يوفّرها الوصول إلى العمود الفرعي المسمّى `t.name`. [#110056](https://github.com/ClickHouse/ClickHouse/pull/110056) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح بطء استعلامات `ORDER BY ... LIMIT` على جداول `Distributed` عندما يختار `prefer_localhost_replica` نسخة متماثلة محلية: أُزيل الحدّ التمهيدي من خطة الشظية المحلية، مما كان يمنع lazy materialization والتصفية الديناميكية لـ top-K. [#110136](https://github.com/ClickHouse/ClickHouse/pull/110136) ([Michael Jarrett](https://github.com/EmeraldShift)).
* تم إصلاح عدم استخدام فهرس النص مع العامل `ILIKE` عندما يكون الفهرس معرّفًا على expression بدلًا من عمود مباشر (على سبيل المثال `assumeNotNull(col)` مع preprocessor من نوع `lower(...)`): إذ كانت مثل هذه الاستعلامات تقرأ جميع الحبيبات بدلًا من استخدام الفهرس. يغلق هذا [#110350](https://github.com/ClickHouse/ClickHouse/issues/110350). [#110595](https://github.com/ClickHouse/ClickHouse/pull/110595) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تقليل تنازع القفل في ذاكرة التخزين المؤقت لنظام الملفات: لم تعد الاستعلامات التي تقرأ من الذاكرة المؤقتة تنتظر قفل طابور الأولوية عند تحديث أولوية LRU لإحدى الإدخالات. [#109065](https://github.com/ClickHouse/ClickHouse/pull/109065) ([Antonio Andelic](https://github.com/antonio2368)).
* أصبحت استعلامات فهرس النص التي تستخدم expression من `postprocessor` مخصّصة للتصفية فقط (مثل `if(..., '', token)`) تستبعد الآن الـ tokens الفارغة مسبقًا بدلًا من materializing لها صفًا بصف، مما يحسّن الأداء. [#109049](https://github.com/ClickHouse/ClickHouse/pull/109049) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تقليل تنازع القفل في طوابير سجلات النظام، مما يخفض tail latency للاستعلامات على clusters المزدحمة. [#110539](https://github.com/ClickHouse/ClickHouse/pull/110539) ([Sean Haynes](https://github.com/seandhaynes)).
* تم تحسين أداء دوال البحث عن substring (`position` و`countSubstrings` و`multiSearch*` و`replaceAll` و`replaceOne`، ومتغيراتها case-insensitive وUTF-8) مع needle غير ثابتة بما يصل إلى 1.5x، وذلك باستخدام أدوات بحث عن السلاسل مدعومة بـ SIMD في المسار الخاص بكل صف بدلًا من تنفيذ ساذج. [#110580](https://github.com/ClickHouse/ClickHouse/pull/110580) ([Raúl Marín](https://github.com/Algunenano)).
* يُطبَّق lazy materialization الآن على استعلامات `ReplacingMergeTree` التي تتضمن `FINAL` وfilter و`LIMIT` صغيرًا حتى من دون `ORDER BY`. ولا تُجلب الأعمدة غير اللازمة للـ filter ودمج `FINAL` إلا للصفوف التي تبقى بعد تطبيق الحدّ، مما يجعل مثل هذه الاستعلامات أسرع بكثير عند تحديد أعمدة عريضة مع filter انتقائي. ويُتحكَّم في ذلك عبر `query_plan_optimize_lazy_materialization` و`query_plan_max_limit_for_lazy_materialization`. [#110722](https://github.com/ClickHouse/ClickHouse/pull/110722) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تحسين أداء async insert عند تمكين deduplication وانقسام عملية flush واحدة عبر عدة partitions: يعيد ClickHouse الآن استخدام قيم hash المحسوبة لإزالة التكرار عبر partitions بدلًا من إعادة حسابها لكل partition. [#111150](https://github.com/ClickHouse/ClickHouse/pull/111150) ([Valery Petrov](https://github.com/valerypetrov)).

<div id="267-improvement">
  #### تحسينات
</div>

* تمت إضافة الإعداد `input_format_csv_missing_nullable_as_empty_string` (معطّل افتراضيًا). عند تفعيله، تُقرأ القيمة المفقودة في عمود `Nullable(String)` ضمن إدخال CSV على أنها `String` فارغ بدلًا من `NULL`، بغض النظر عن `input_format_csv_empty_as_default`. [#58225](https://github.com/ClickHouse/ClickHouse/pull/58225) ([kevinyhzou](https://github.com/KevinyhZou)). [#107577](https://github.com/ClickHouse/ClickHouse/pull/107577) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت الدوال `toDateOrNull` و`toDateTimeOrNull` و`toDateTime64OrNull` تقبل الآن وسائط عددية صحيحة من جميع أنواع الأعداد الصحيحة الأصلية (وتُفسَّر بالطريقة نفسها كما في `toDate` و`toDateTime` و`toDateTime64`، مع وسيطة `timezone` اختيارية)، وتُرجع `NULL` للقيم الواقعة خارج نطاق نوع النتيجة. على سبيل المثال، تُرجع `toDateTimeOrNull(1583851242, 'Asia/Shanghai')` القيمة `2020-03-10 22:40:42`، بينما تُرجع `toDateTimeOrNull(4294967296)` القيمة `NULL`. [#79791](https://github.com/ClickHouse/ClickHouse/pull/79791) ([Jitendra](https://github.com/jitendra1411)).
* تمت إضافة عمود `is_wildcard` إلى جدول `system.grants` للإشارة إلى ما إذا كان الامتياز يستخدم مطابقة البادئة بأحرف البدل (مثلًا، `GRANT SELECT ON db*.*`). سابقًا، لم يكن بالإمكان التمييز في `system.grants` بين الامتيازات ذات أحرف البدل والامتيازات المطابقة تمامًا للاسم نفسه. يُغلق [#92835](https://github.com/ClickHouse/ClickHouse/issues/92835). [#98577](https://github.com/ClickHouse/ClickHouse/pull/98577) ([DQ](https://github.com/il9ue)).
* السماح باستخدام ضغط Snappy في واجهة HTTP (`Accept-Encoding: snappy`) وإضافة الإعداد `snappy_mode` للاختيار بين تنسيق كتل Hadoop Snappy وتنسيق framing الخاص بـ Snappy لعمليات الإدخال/الإخراج العامة `file`/`url` الخاصة بـ snappy. [#100752](https://github.com/ClickHouse/ClickHouse/pull/100752) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم التوافق مع المحلّل القديم ضمن الإعداد `analyzer_compatibility_allow_non_aggregate_in_having`. وإذا كان مفعّلًا، فستُنقل الشروط غير التجميعية من `HAVING` إلى `WHERE`. [#104232](https://github.com/ClickHouse/ClickHouse/pull/104232) ([Dmitry Novik](https://github.com/novikd)).
* تمت إضافة إعداد جديد على مستوى الخادم `memory_worker_rss_speculative_reserve_ratio` (القيمة الافتراضية `1.0`) يجعل متعقّب الذاكرة العام يحجز الذاكرة استباقيًا فوق RSS المرصود عندما يتجاوز نمو RSS ما يسجله المتعقّب بين العينات. وبهذا، تحصل عمليات تخصيص الذاكرة على الخطأ `MEMORY_LIMIT_EXCEEDED` في وقت أبكر، ويقلّ احتمال أن يعمل OOM-killer في النواة أولًا. اضبط النسبة على `0` لتعطيل هذا السلوك الاستباقي. [#104976](https://github.com/ClickHouse/ClickHouse/pull/104976) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة مقاييس Prometheus اختيارية لنشاط إخلاء filesystem cache (`filesystem_cache_evictions_total`, `filesystem_cache_evicted_bytes_total`, `filesystem_cache_evicted_segment_hits`, `filesystem_cache_evicted_segment_size_bytes`، ومتغيراتها لكل مستخدم والموسومة بـ `user_id`)، وتُعرَض لكل cache عبر `system.dimensional_metrics` و`system.histogram_metrics` ونقطة نهاية Prometheus. ويُتحكَّم فيها عبر إعدادَي تهيئة قرص cache: `expose_prometheus_eviction_metrics` و`expose_prometheus_eviction_metrics_per_user` (وكلاهما متوقف افتراضيًا)، ويمكن تبديلهما في وقت التشغيل عبر `SYSTEM RELOAD CONFIG`. [#105020](https://github.com/ClickHouse/ClickHouse/pull/105020) ([Sacheendra Talluri](https://github.com/sacheendra)).
* أصبح `EXPLAIN [PLAN] actions=1, compact=1, pretty=1` هو الافتراضي. [#105036](https://github.com/ClickHouse/ClickHouse/pull/105036) ([Kirill Kopnev](https://github.com/Fgrtue)).
* تمت ترقية `delta-kernel-rs` (المكتبة التي تقف وراء تكامل `DeltaLake`) إلى الإصدار v0.23.0. [#105861](https://github.com/ClickHouse/ClickHouse/pull/105861) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* أُضيف الأمران `du` و`wc` إلى `clickhouse-disks`. يعرض الأول الحجم الإجمالي بالبايت لملف أو directory معيّن، بينما يعرض الثاني عدد البايتات والأسطر والكلمات في ملف. [#106268](https://github.com/ClickHouse/ClickHouse/pull/106268) ([Asya Shneerson](https://github.com/asya-ch)).
* أُضيف مقياس غير متزامن جديد `UntrackedMemory` (ظاهر في `system.asynchronous_metrics`) يبلّغ عن الذاكرة التي خصصتها الخيوط بالفعل ولكن لم تُحتسب بعد في عدّاد التتبّع العام للذاكرة: إذ يراكم كل خيط التخصيصات الصغيرة محليًا ثم يبلّغ عنها دفعة واحدة. ويساعد ذلك في تفسير الفروقات بين `MemoryTracking` والاستخدام الفعلي لذاكرة العملية. كما تتضمن رسائل الخطأ `MEMORY_LIMIT_EXCEEDED` الآن مقدار الذاكرة غير المتتبَّعة، مما يسهّل فهم سبب بلوغ الاستعلام أو الخادم حد الذاكرة. [#106386](https://github.com/ClickHouse/ClickHouse/pull/106386) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تمت ترقية ClickStack (واجهة observability) إلى الإصدار 2.28.0. [#106406](https://github.com/ClickHouse/ClickHouse/pull/106406) ([Aaron Knudtson](https://github.com/knudtty)).
* أُضيف دعم `BFloat16` في `dotProduct`، كما تحسّن أداؤه عبر batching لمسار SIMD. [#106569](https://github.com/ClickHouse/ClickHouse/pull/106569) ([Nikita Taranov](https://github.com/nickitat)).
* أُصبحت الإعدادات `max_named_collection_num_to_throw` و`max_table_num_to_throw` و`max_replicated_table_num_to_throw` و`max_view_num_to_throw` و`max_dictionary_num_to_throw` و`max_database_num_to_throw` قابلة للتغيير دون الحاجة إلى إعادة تشغيل الخادم. [#106821](https://github.com/ClickHouse/ClickHouse/pull/106821) ([Maxim Orlovsky](https://github.com/UberDever)).
* أُضيف دعم القيم `REDUCED_REDUNDANCY` و`STANDARD_IA` و`ONEZONE_IA` و`GLACIER_IR` و`EXPRESS_ONEZONE` (بالإضافة إلى `STANDARD` و`INTELLIGENT_TIERING`) للإعداد `s3_storage_class_name`. [#107251](https://github.com/ClickHouse/ClickHouse/pull/107251) ([Aditya Kumar](https://github.com/adityaksolves)).
* أُضيف الإعداد `materialized_postgresql_use_extended_date_and_time_types` الخاص بوقت الإنشاء إلى database engine `MaterializedPostgreSQL`. افتراضيًا (عند تمكينه)، يُستدل على أعمدة PostgreSQL من النوعين `date`/`timestamp` على أنها `Date32`/`DateTime64`؛ أما عند ضبطه على `0` وقت `CREATE DATABASE` فيُستدل على النوعين الأضيق `Date`/`DateTime`. لا ينطبق هذا الإعداد على table engine `MaterializedPostgreSQL`. [#107428](https://github.com/ClickHouse/ClickHouse/pull/107428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يدعم مُكمِّم Array `SOME` / `ALL` (`expr OP SOME(array)` / `expr OP ALL(array)`) الآن أيضًا predicates مقارنة الكلمات المفتاحية `IS DISTINCT FROM` و`IS NOT DISTINCT FROM`، وpredicates البحث في السلاسل النصية `LIKE` و`ILIKE` و`NOT LIKE` و`NOT ILIKE` و`REGEXP`، بعد إعادة كتابتها إلى `arrayExists` / `arrayAll`. [#107454](https://github.com/ClickHouse/ClickHouse/pull/107454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلح تسرّب في الذاكرة كان يحدث عند فشل فتح قاعدة بيانات SQLite (على سبيل المثال، عند تمرير path يتعذّر فتحه إلى table function `sqlite` أو إلى database engine `SQLite`). [#107807](https://github.com/ClickHouse/ClickHouse/pull/107807) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة الويب (`play.html`)، تعرض تلميحة اختصار التشغيل الآن `Cmd+Enter` على Mac و`Ctrl+Enter` على المنصات الأخرى بدلًا من عرض `Ctrl/Cmd+Enter` دائمًا، كما لا يظهر الجزء `, +Shift to run all` من التلميحة إلا عند وجود عدة استعلامات. [#107817](https://github.com/ClickHouse/ClickHouse/pull/107817) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#108957](https://github.com/ClickHouse/ClickHouse/pull/108957) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يدعم محرك الجداول `Alias` الآن القراءة باستخدام النسخ المتماثلة المتوازية عندما يكون الجدول الهدف من عائلة `MergeTree`. [#107830](https://github.com/ClickHouse/ClickHouse/pull/107830) ([Kai Zhu](https://github.com/nauu)).
* أُضيف نوع إحصاءات الأعمدة `uniq_v2` — وهو بديل خفيف الوزن لإحصاءات `uniq`، ويستند إلى `uniqCombined64` sketch. [#107863](https://github.com/ClickHouse/ClickHouse/pull/107863) ([Han Fei](https://github.com/hanfei1991)). كما اعتُبر نوع إحصاءات الأعمدة `minmax` مهملًا، وتغيّرت القيمة الافتراضية لـ `auto_statistics_types` إلى `basic, uniq_v2`. [#108680](https://github.com/ClickHouse/ClickHouse/pull/108680) ([Han Fei](https://github.com/hanfei1991)).
* أصبحت دوال الذكاء الاصطناعي (`aiGenerate`, `aiEmbed`, `aiClassify`, `aiExtract`, `aiTranslate`) تعيد المحاولة الآن عند حدوث أعطال شبكية عابرة (إعادة تعيين الاتصال، وإخفاقات اتصال TLS، وحالات timeout، والعناوين غير القابلة للوصول) عندما يكون `ai_function_max_retries` مضبوطًا، بما يطابق سلوك إعادة المحاولة في table function ‏`url`. في السابق، كانت إعادة المحاولة تقتصر على استجابات أخطاء HTTP من جهة المزوّد. [#107927](https://github.com/ClickHouse/ClickHouse/pull/107927) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت عملية `INSERT` إلى جدول `MergeTree` تراعي الآن إلغاء الاستعلام و`max_execution_time` أثناء كتابة عدد كبير من الأجزاء، بدلًا من احتمال استمرارها فترةً طويلة بعد إيقافها. [#107929](https://github.com/ClickHouse/ClickHouse/pull/107929) ([Michael Kolupaev](https://github.com/al13n321)).
* في واجهة الويب (`play.html`)، يمكن الآن فتح أيقونة طرفية الويب في tab جديدة بالمتصفح بالنقر بالزر الأوسط أو باستخدام Ctrl/Cmd/Shift+click. [#108006](https://github.com/ClickHouse/ClickHouse/pull/108006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد توليد SQL بالذكاء الاصطناعي في العميل يرسل المعامل `temperature` ما لم يُضبط صراحةً عبر `ai.temperature` في التهيئة. ويُصلح هذا توليد SQL بالذكاء الاصطناعي للنماذج التي ترفض المعامل `temperature`. [#108014](https://github.com/ClickHouse/ClickHouse/pull/108014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الجدول `system.masking_policies` واستبطان `SHOW MASKING POLICIES` إلى الإصدارات مفتوحة المصدر. وتبقى سياسات الإخفاء نفسها ميزةً في ClickHouse Cloud، لذا يكون الجدول فارغًا في الإصدارات مفتوحة المصدر، لكن استعلامات الاستبطان لم تعد تفشل مع ظهور خطأ. [#108030](https://github.com/ClickHouse/ClickHouse/pull/108030) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح مستهلك Kafka المعتمد على Keeper يختار ترتيب الحصول على أقفال الأقسام المؤقتة عبر النسخ المتماثلة عشوائيًا، مما يحسّن عدالة توزيع الأقسام ويقلّل تنازع الأقفال. في السابق، لم يكن للخلط المقصود أي تأثير. [#108033](https://github.com/ClickHouse/ClickHouse/pull/108033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الإكمال التلقائي إلى واجهة الويب (`play.html`)، استنادًا إلى `system.completions` ومحلل SQL المعجمي المعتمد على WASM. [#108059](https://github.com/ClickHouse/ClickHouse/pull/108059) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يعرض `clickhouse-client` و`clickhouse-local` الآن تلميحات إكمال تلقائي أثناء الكتابة (نص "شبح" مضمن) لأفضل اقتراح مطابق عندما يكون المؤشر في نهاية الإدخال. وتُرتَّب الاقتراحات الأكثر صلة أولًا (المستخدمة مؤخرًا والمعرّفات الموجودة بالفعل في الاستعلام). تنقّل باستخدام Up/Down (أو Ctrl-Up/Ctrl-Down)؛ واقبل تلميحًا واحدًا أو التلميح المحدد باستخدام Tab أو Right، واقبل التلميح المحدد باستخدام Enter؛ كما يفتح Tab أيضًا قائمة الإكمال الكلاسيكية. يتحكم في ذلك الخيار الجديد `--hints` (مفعّل افتراضيًا؛ ويتطلب `--highlight`). [#108070](https://github.com/ClickHouse/ClickHouse/pull/108070) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم الدالة `length` لنوع البيانات `QBit` — إذ تُرجع بُعد المتجه كثابت. [#108071](https://github.com/ClickHouse/ClickHouse/pull/108071) ([Alexey Milovidov](https://github.com/alexey-milovidov)). ودعم `CAST` من `QBit` إلى `Array`، مع إعادة تكوين المتجه الأصلي — أي عكس التحويل الحالي من `Array` إلى `QBit`. [#108072](https://github.com/ClickHouse/ClickHouse/pull/108072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تتضمن الطلبات المرسلة إلى كتالوجات بحيرات البيانات عبر REST (مثل OneLake) الآن ترويسة ClickHouse `User-Agent`. [#108117](https://github.com/ClickHouse/ClickHouse/pull/108117) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أصبح `arrayFold` الآن يراعي إلغاء الاستعلام و`max_execution_time`. سابقًا، كان الطي على مصفوفة طويلة جدًا يُنفَّذ بالكامل داخل استدعاء دالة واحد ولا يمكن مقاطعته، لذا كان يتم تجاهل `KILL QUERY` والحدود الزمنية حتى يكتمل الطي. [#108192](https://github.com/ClickHouse/ClickHouse/pull/108192) ([Groene AI](https://github.com/groeneai)).
* يقوم `MVTEncodeGeom` الآن بمواءمة الأشكال الهندسية مع شبكة البكسلات الصحيحة قبل القص، ويقص المضلعات باستخدام مكتبة `wagyu`، بحيث يكون الناتج المقصوص صالحًا (تُصلَح الحلقات ذاتية التقاطع) ومحاذيًا للحواف، بما يطابق PostGIS `ST_AsMVTGeom`. [#108248](https://github.com/ClickHouse/ClickHouse/pull/108248) ([Saarthak Gupta](https://github.com/saarthak2002)).
* أُضيفت `ProfileEvents` لكل مرحلة قبل تنفيذ الاستعلام: ‏`QueryParseMicroseconds` و`QueryAnalysisMicroseconds` و`QueryPlanBuildMicroseconds` و`QueryPipelineBuildMicroseconds`. وهي توضّح أين يُستهلك الوقت قبل تنفيذ الاستعلام (التحليل النحوي، والتحليل، وبناء خطة الاستعلام، وبناء الـ pipeline)، وهي متاحة في `system.query_log` و`system.events`. [#108282](https://github.com/ClickHouse/ClickHouse/pull/108282) ([Jordi Villar](https://github.com/jrdi)).
* أصبحت عمليات `ALTER TABLE` التي قد تؤدي إلى إنتاج بيانات وصفية للجدول تتجاوز `max_query_size` تُرفَض مسبقًا، مما يمنع الجداول من أن تصبح غير قابلة للتحميل بواسطة مكوّنات مثل توزيع DDL واستعادة النسخ المتماثلة. [#108283](https://github.com/ClickHouse/ClickHouse/pull/108283) ([Andrew Kravchuk](https://github.com/lockie)).
* أُضيفت الأعمدة `settings` و`engine_settings` إلى `system.backups` و`system.backup_log`. يكشف `settings` إعدادات النسخ الاحتياطي/الاستعادة المطلوبة لعملية ما (مثل `allow_s3_native_copy` و`deduplicate_files` و`structure_only`)، بينما يكشف `engine_settings` الإعدادات المستخدمة فعليًا من قِبل قارئ وكاتب محرك النسخ الاحتياطي (مثل إعدادات طلبات S3 مثل `allow_native_copy`، التي قد تختلف عما طُلِب بعد دمج تهيئة الـ endpoint). وهذا يتيح معرفة الإعدادات التي نُفِّذت بها فعليًا عملية `BACKUP`/`RESTORE`. [#108334](https://github.com/ClickHouse/ClickHouse/pull/108334) ([Julia Kartseva](https://github.com/jkartseva)).
* أُضيف عمود `source` إلى `system.documentation` يحتوي على مسار الملف المصدر الذي يُعرَّف فيه توثيق كل كيان. ويوثّق الجدول الآن أيضًا ترميزات الضغط، وأحداث profile، والمقاييس الحالية، والمقاييس غير المتزامنة، وجداول النظام نفسها (مع أعمدتها)، كما يتضمن توثيق الإعدادات الآن نوعها وقيمتها الافتراضية. [#108346](https://github.com/ClickHouse/ClickHouse/pull/108346) ([Alexey Milovidov](https://github.com/alexey-milovidov)). كما أصبحت القيمة الافتراضية الفارغة للإعدادات تُعرَض الآن على أنها *سلسلة فارغة* بدلًا من علامتَي backticks فارغتين. [#108708](https://github.com/ClickHouse/ClickHouse/pull/108708) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم عمليات القراءة غير المتزامنة من النسخ المتماثلة البعيدة (`async_socket_for_remote`) على MacOS عبر تنفيذ بدائيات polling المعتمدة على epoll فوق `kqueue`. ويتيح هذا للاستعلامات الموزعة قراءة الشظايا بالتوازي على MacOS بدلًا من قراءتها تسلسليًا. [#108403](https://github.com/ClickHouse/ClickHouse/pull/108403) ([Raúl Marín](https://github.com/Algunenano)).
* دعم `BFloat16` في دوال الرياضيات الثنائية. [#108442](https://github.com/ClickHouse/ClickHouse/pull/108442) ([Zhang Yifan](https://github.com/zhangyifan27)).
* أصبح بإمكان `MergeTree` الآن قراءة تدفق مضغوط تستخدم كُتله ترميزات مختلفة. وهذا هو المتطلب المسبق على جانب القراءة لاختيار codec التكيفي ([#105404](https://github.com/ClickHouse/ClickHouse/issues/105404)). [#108592](https://github.com/ClickHouse/ClickHouse/pull/108592) ([Raufs Dunamalijevs](https://github.com/rienath)).
* أصبحت القيمة التلقائية لـ `max_threads` والإعدادات المشابهة تُعرض الآن في `system.settings` على أنها `auto(8)` بدلًا من `'auto(8)'`؛ إذ كانت علامات الاقتباس المفردة المحيطة بها أثرًا قديمًا مضمَّنًا في القيمة. وقد جرى الحفاظ على التوافق بين الإصدارات: فما تزال الصيغة القديمة المحاطة بعلامات اقتباس مقبولة عند تحليل الإعدادات المستلمة من الخوادم الأقدم. [#108657](https://github.com/ClickHouse/ClickHouse/pull/108657) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* عدة إصلاحات لتحسين سهولة الاستخدام في Web UI الخاصة بـ `/schema`: تحميل المخطط عند الضغط على Enter، وأشرطة تمرير تراعي السمة، وأسماء جداول أكثر وضوحًا، وتجميع متسق للجداول المستقلة على مستوى كل database، ومنع تحديد النص أثناء السحب، ونموذج authentication بأسلوب `play` (Credential Management API، وبيانات الاعتماد الممرَّرة عبر URL مع إزالة كلمة المرور، والتحقق المباشر من بيانات الاعتماد). [#108724](https://github.com/ClickHouse/ClickHouse/pull/108724) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد وضع التطبيق الكسول لقائمة الترحيل في فهرس النص تجريبيًا، ويمكن اختياره باستخدام `text_index_posting_list_apply_mode = 'lazy'` من دون `allow_experimental_text_index_lazy_apply`. كما أُعيدت تسمية إعداد عتبة الكثافة من `text_index_density_threshold` إلى `text_index_lazy_intersection_density_threshold`. [#108814](https://github.com/ClickHouse/ClickHouse/pull/108814) ([Anton Popov](https://github.com/CurtizJ)).
* أُضيف نوع كتالوج باسم `delta_sharing` إلى `DataLakeCatalog` من أجل REST endpoint الخاصة بـ Iceberg في Databricks Delta Sharing، والتي تكون فيها مساحات الأسماء مسطحة وتتجاهل مرشح السرد `parent`. استخدمه بدلًا من `catalog_type = 'rest'` لمثل نقاط النهاية هذه، إذ قد يتعطل `SHOW TABLES` بخلاف ذلك. [#108865](https://github.com/ClickHouse/ClickHouse/pull/108865) ([Seva Potapov](https://github.com/seva-potapov)).
* أُضيف خيار جديد إلى `clickhouse-client`/`clickhouse-local` باسم `--echo-query-separator` يطبع فاصلًا مخصصًا قبل الاستعلام المعروض بعد تنسيقه، مما يسهّل تمييز الاستعلام المكتوب عن نسخته المعاد تنسيقها. وهو معطّل افتراضيًا. [#108888](https://github.com/ClickHouse/ClickHouse/pull/108888) ([David Meng](https://github.com/davidmenggx)).
* تحسينات على لوحة قواعد البيانات في واجهة الويب: يُعرض عدد الجداول بين قوسين بجوار اسم قاعدة البيانات عند توسيعها. [#108891](https://github.com/ClickHouse/ClickHouse/pull/108891) ([Alexey Milovidov](https://github.com/alexey-milovidov)). كما يعيد زر التحديث المجاور لقاعدة البيانات الموسَّعة تحميل قائمة جداولها. [#108958](https://github.com/ClickHouse/ClickHouse/pull/108958) ([Alexey Milovidov](https://github.com/alexey-milovidov)). وعند إعادة فتح اللوحة، تُستعاد قواعد البيانات التي كانت موسَّعة سابقًا. [#108964](https://github.com/ClickHouse/ClickHouse/pull/108964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح بالإمكان حساب الفائدة المجمّعة لفهارس التخطي في `EXPLAIN WHATIF`: إذ يعرض نسبة البيانات عند تقاطع جميع الفهارس الافتراضية المناسبة الموجودة. [#108934](https://github.com/ClickHouse/ClickHouse/pull/108934) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح مشكلة إعادة تعيين موضع التمرير الأفقي في جدول النتائج في واجهة الويب عند النقر على رابط داخل خلية ثم الرجوع إلى الصفحة. [#108941](https://github.com/ClickHouse/ClickHouse/pull/108941) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح محرك قاعدة البيانات `MySQL` ومحرك الجدول ودالة الجدول يربطون الآن أنواع الأعمدة المكانية في MySQL (`LINESTRING` و`POLYGON` و`MULTILINESTRING` و`MULTIPOLYGON` و`GEOMETRY` العامة) بالأنواع الهندسية المناظرة في ClickHouse بدلًا من `String`. ويتحكم في ذلك الخيار الجديد `geometry` ضمن الإعداد `mysql_datatypes_support_level`، وهو مفعّل افتراضيًا. ولا يزال `POINT` يُحوَّل دائمًا إلى `Point`. ويُربط العمود العام `GEOMETRY` بالنوع الشامل `Geometry`؛ وتؤدي قراءة قيمة لا يوجد لنوعها الفرعي مقابل في ClickHouse (`MULTIPOINT` و`GEOMETRYCOLLECTION`) إلى طرح استثناء وقت القراءة. [#108944](https://github.com/ClickHouse/ClickHouse/pull/108944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب (`play.html`): تنقّل كامل بلوحة المفاتيح — تنقّل بمفاتيح الأسهم داخل لوحة قواعد البيانات وجدول النتائج، وإمكانية الوصول إلى أزرار شريط الأدوات ومبدّل السمة وقائمة التنزيل عبر لوحة المفاتيح، مع مؤشرات تركيز مرئية. [#108972](https://github.com/ClickHouse/ClickHouse/pull/108972) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة HTTP: عند تقديم بيانات الاعتماد عبر معلمات URL (`user`/`password`) وكذلك عبر ترويسة `Authorization`، أصبحت معلمات URL الآن هي التي لها الأولوية بدلًا من رفض الطلب. ويُصلح ذلك مشكلة فشل تنزيل النتائج من واجهة الويب (`play.html`) مع `AUTHENTICATION_FAILED` (الخطأ 516) عندما يكون المتصفح قد تذكّر بيانات اعتماد Basic. [#108980](https://github.com/ClickHouse/ClickHouse/pull/108980) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُعيدت `show_data_lake_catalogs_in_system_tables` لتكون الإعداد الذي يتحكم فقط في ظهور `DataLakeCatalog` في `system.tables` و`system.columns` و`system.completions`. كما أُضيف `show_remote_databases_in_system_tables`، وهو مفعّل افتراضيًا، لإتاحة إخفاء قواعد بيانات `MySQL` و`PostgreSQL` من جداول النظام تلك بشكل منفصل. [#109082](https://github.com/ClickHouse/ClickHouse/pull/109082) ([Pablo Marcos](https://github.com/pamarcos)).
* استخدام خوارزمية parsing دقيقة لـ float (الأقرب تمثيلًا) افتراضيًا، وتطبيق الإعداد `precise_float_parsing` على input formats (`CSV` و`TSV` و`JSON` و`VALUES` و...) وعلى القيم الحرفية الرقمية، وليس فقط على `toFloat*`/`CAST`. اضبط `precise_float_parsing = 0` للحصول على السلوك السابق، وهو أسرع في بعض الحالات لكنه أقل دقة. يُغلق [#60146](https://github.com/ClickHouse/ClickHouse/issues/60146). يُغلق [#74647](https://github.com/ClickHouse/ClickHouse/issues/74647). يُغلق [#68914](https://github.com/ClickHouse/ClickHouse/issues/68914). [#109086](https://github.com/ClickHouse/ClickHouse/pull/109086) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح الاستعلام الذي يحتوي على تعبير الجدول الشائع واحدًا يُنسَّق الآن بنفس فواصل الأسطر والمسافات البادئة المستخدمة في الاستعلامات التي تحتوي على عدة تعبيرات جدول شائعة. سابقًا، كان `WITH a AS (...)` يُبقي تعبير الجدول الشائع في السطر نفسه مع `WITH`، بينما كانت حالتا وجود تعبيرين أو أكثر تضعان `WITH` في سطر مستقل مع إزاحة كل تعبير جدول شائع. [#109092](https://github.com/ClickHouse/ClickHouse/pull/109092) ([Groene AI](https://github.com/groeneai)).
* واجهة مستخدم الويب: عندما يكون الإكمال المميز مطابقًا للكلمة المكتوبة بالفعل، أو لنفس الكلمة مع اختلاف حالة الأحرف (مثل عرض `HASH` للكلمة المكتوبة `hash`)، فإن الضغط على Right/Tab/Enter لم يعد يعيد كتابة الكلمة أو تلتهمه ميزة الإكمال التلقائي — بل ينقل موضع المؤشر أو يُدرج سطرًا جديدًا كما هو متوقع. [#109106](https://github.com/ClickHouse/ClickHouse/pull/109106) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#109384](https://github.com/ClickHouse/ClickHouse/pull/109384) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف إلى واجهة مستخدم الويب (`play.html`) تمييز الأقواس المتداخلة بالألوان، وتمييز الأقواس المتطابقة، وتمييز المعرّفات المتطابقة، وتمييز مجموعات الأرقام، بما يتوافق مع `clickhouse-client`. [#109108](https://github.com/ClickHouse/ClickHouse/pull/109108) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة مستخدم الويب، أصبح `Tab` و`Shift+Tab` الآن يزيدان ويقللان المسافة البادئة للأسطر المحددة بمقدار 4 مسافات. [#109110](https://github.com/ClickHouse/ClickHouse/pull/109110) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة مستخدم الويب: يُميَّز موضع خطأ الصياغة في محرر الاستعلام بخلفية حمراء. ويُزال هذا التمييز بمجرد أن يعيد المستخدم التركيز إلى المحرر. [#109112](https://github.com/ClickHouse/ClickHouse/pull/109112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `clickhouse-compressor --stat` واكتشاف `codec` الافتراضي للأجزاء القديمة يُبلغان عن تلف رؤوس `block` على أنه تلف، بدلًا من الإبلاغ المضلل عن خطأ نهاية الملف. [#109157](https://github.com/ClickHouse/ClickHouse/pull/109157) ([Raufs Dunamalijevs](https://github.com/rienath)).
* أصبح ClickHouse Keeper يراعي الآن الإعداد `os_collect_psi_metrics` ويتخطى جمع PSI metrics عندما يكون معطّلًا. [#109179](https://github.com/ClickHouse/ClickHouse/pull/109179) ([Maxim Orlovsky](https://github.com/UberDever)).
* في واجهة مستخدم الويب، عند عرض علامات تبويب الاستعلام، تُخفى معلمات الاتصال (host، user، password) خلف زر على شكل مفتاح في الزاوية العلوية اليمنى، وتُعرض في قائمة منسدلة عند الطلب. [#109243](https://github.com/ClickHouse/ClickHouse/pull/109243) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة مستخدم الويب: تُعرض النتيجة ذات القيمة الواحدة (صف واحد، عمود واحد، مثل `SHOW CREATE TABLE`) بارتفاع كامل بدلًا من تقييدها بثلاثة أسطر. [#109245](https://github.com/ClickHouse/ClickHouse/pull/109245) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة مستخدم الويب، يؤدي الآن النقر على جدول في لوحة قواعد البيانات بزر الفأرة الأوسط، أو مع Shift، أو باستخدام مُعدِّل فتح علامة تبويب جديدة الخاص بالمنصة (Cmd على MacOS، وCtrl في غيره) إلى فتح استعلامه في علامة تبويب جديدة في واجهة مستخدم الويب. [#109246](https://github.com/ClickHouse/ClickHouse/pull/109246) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح مفتاح query condition cache لملفات `Parquet` البعيدة (في object storage) يعتمد على ETag بالإضافة إلى المسار، بحيث لم يعد استبدال كائن في موضعه يؤدي إلى تقديم نتائج مخزنة مؤقتًا قديمة. [#109310](https://github.com/ClickHouse/ClickHouse/pull/109310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة مستخدم الويب، لم تعد السلاسل النصية الفارغة وقيم NULL تُلوَّن في وضع التلوين `categorical`. [#109342](https://github.com/ClickHouse/ClickHouse/pull/109342) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يؤدي النقر على أيقونة جدول في لوحة قاعدة البيانات الآن إلى عرض قائمة أعمدته، مع أيقونات للأنواع، وشريط حجم يتناسب مع الحجم المضغوط، وتلميح يعرض الحجم المضغوط/غير المضغوط ونسبة الضغط. [#109346](https://github.com/ClickHouse/ClickHouse/pull/109346) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يُعرَض الآن عنوان علامة التبويب كاملًا كتلميح عند المرور فوقه إذا كان مقتطعًا. [#109354](https://github.com/ClickHouse/ClickHouse/pull/109354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة الويب، يؤدي الآن النقر بالزر الأوسط على عنوان علامة التبويب (أو Ctrl/Shift/Cmd+النقر عليه) إلى تكرار علامة التبويب. [#109357](https://github.com/ClickHouse/ClickHouse/pull/109357) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: غيّر حجم منطقتَي التقدم النهائي وإحصاءات الاستعلام بشكل متناسق حتى لا تلتفّا بصورة غير ملائمة عندما تكون نافذة المتصفح ضيقة. [#109363](https://github.com/ClickHouse/ClickHouse/pull/109363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يؤدي الآن تحديد قاعدة بيانات في لوحة قواعد البيانات إلى استخدامها كقاعدة البيانات الافتراضية للاستعلامات التي تُشغَّل من المحرر. [#109372](https://github.com/ClickHouse/ClickHouse/pull/109372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم `reinterpret` لـ `Array` من عناصر ثابتة الحجم على أنه `String`، وهو عكس `reinterpret` الحالي لـ `String`/`FixedString` على أنه `Array`. [#109383](https://github.com/ClickHouse/ClickHouse/pull/109383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة الويب، لا تعرض مفاتيح تبديل الترميز اللوني لكل عمود عندما لا تحتوي النتيجة إلا على صف واحد كحد أقصى. [#109385](https://github.com/ClickHouse/ClickHouse/pull/109385) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* السماح باستخدام `CAST` بين أنواع `QBit` التي تختلف في نوع العنصر و/أو `stride`، ما دام البعد يبقى نفسه (على سبيل المثال `CAST(x AS QBit(Float64, N))` انطلاقًا من `QBit(Float32, N)`). التغييرات التي تقتصر على `stride` فقط لا تؤدي إلى فقدان للبيانات؛ أما تغييرات نوع العنصر فتتبع دلالات تحويل `Array` المقابلة (فعلى سبيل المثال قد يؤدي التحويل من `Float32` إلى `BFloat16` إلى فقدان في الدقة، كما أن `accurateCast` / `accurateCastOrNull` يرفضان الصفوف التي لا يمكن تمثيلها بدقة تامة). [#109387](https://github.com/ClickHouse/ClickHouse/pull/109387) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت الدالتان `quantizeBFloat16ToInt8` و `dequantizeInt8ToBFloat16` تقبلان الآن أيضًا وسيطات من نوع `Array` و `QBit`، مع تطبيق codec Lloyd-Max على المتجه بالكامل (وإرجاع `Array`/`QBit` من نوع العنصر المقابل)، بالإضافة إلى الأشكال scalar المتاحة سابقًا. [#109398](https://github.com/ClickHouse/ClickHouse/pull/109398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يتضمن رابط Documentation الآن اسم المستخدم الحالي في عنوان URL. [#109419](https://github.com/ClickHouse/ClickHouse/pull/109419) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم `arraySum` و `arrayAvg` و `arrayProduct` للمصفوفات من `BFloat16`. [#109420](https://github.com/ClickHouse/ClickHouse/pull/109420) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يَقبل الآن محدِّد `format` على نمط MySQL وهو `%f` في `parseDateTime` / `parseDateTime64` (ومتغيراتهما `OrZero` / `OrNull`) ما بين 1 و6 منازل كسرية، وتُفسَّر على أنها ميكروثوانٍ بمحاذاة لليسار مثل `STR_TO_DATE` في MySQL، بدلًا من اشتراط 6 بالضبط. كما أُصلِح أيضًا عدم محاذاة جداول `PrettyCompact` في أمثلة توثيق الدوال المضمنة. [#109421](https://github.com/ClickHouse/ClickHouse/pull/109421) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: أصبحت علامات تبويب الاستعلامات دائمة الآن — إذ يحتفظ كل تبويب بنتيجته المعروضة (بما في ذلك الصور والمخططات) وباستعلامه قيد التشغيل عند الانتقال عنه ثم العودة إليه، كما تواصل الاستعلامات الطويلة العمل في الخلفية. وتعرض عناوين علامات التبويب مؤشر تحميل وشريط تقدم وعلامة إكمال لاستعلامها. [#109425](https://github.com/ClickHouse/ClickHouse/pull/109425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يُعرَض الخطأ الآن بشكل صحيح عند فشل الاستعلام بعد أن يكون جزء من نتيجته قد بُث بالفعل، بدلًا من إظهار `SyntaxError: Unexpected end of JSON input` من جهة العميل (أو، عند استخدام `http_write_exception_in_output_format`، وسم الاستعلام الفاشل على أنه ناجح). [#109430](https://github.com/ClickHouse/ClickHouse/pull/109430) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت الأعمدة المثبتة إلى واجهة الويب: يمكن تثبيت عمود من ترويسته بحيث يظل مرئيًا (ملتصقًا بالحافة) أثناء التمرير الأفقي لجدول النتائج. [#109439](https://github.com/ClickHouse/ClickHouse/pull/109439) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في لوحة المعلومات المتقدمة (`/dashboard`)، أصبح بالإمكان الآن إضافة مخططات لمقاييس محددة مباشرةً باستخدام اسم المقياس كما يظهر في الشيفرة المصدرية أو الوثائق، مما يسهّل إضافة عدة مقاييس أثناء جلسات استكشاف الأخطاء وإصلاحها. [#109449](https://github.com/ClickHouse/ClickHouse/pull/109449) ([Mikhail Artemenko](https://github.com/Michicosun)).
* واجهة الويب: أُصلحت مشكلة إغلاق القائمة المنسدلة لإعدادات الاتصال عند تحديد نص بالفأرة وسحبه إلى خارج حدودها. [#109451](https://github.com/ClickHouse/ClickHouse/pull/109451) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* واجهة الويب: يؤدي المرور فوق ترويسة عمود في جدول النتائج الآن إلى إظهار اسم العمود الكامل ونوعه كتلميح، بحيث يمكن قراءة الترويسات المقتطعة كاملةً. [#109463](https://github.com/ClickHouse/ClickHouse/pull/109463) ([Alexey Milovidov](https://github.com/alexey-milovidov)). كما أُصلحت مشكلة اقتطاع عناوين ترويسات الأعمدة بعلامة حذف حتى عندما يكون العمود عريضًا بما يكفي لعرض العنوان كاملًا. [#110397](https://github.com/ClickHouse/ClickHouse/pull/110397) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم قواميس ssd\_cache (بتخطيط `SSD_CACHE`) ومحرك الجداول `FileLog` في إصدارات macOS. [#109493](https://github.com/ClickHouse/ClickHouse/pull/109493) ([Raúl Marín](https://github.com/Algunenano)).
* واجهة الويب: عدم استعادة علامات التبويب ذات الاستعلامات الفارغة عند فتح الصفحة. [#109529](https://github.com/ClickHouse/ClickHouse/pull/109529) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تلميحات الإكمال التلقائي غير المقروءة أثناء الكتابة والألوان الساطعة في العميل التفاعلي على الطرفيات التي لا تحتوي قيمة `TERM` فيها على `256` (مثل Ghostty و kitty و Alacritty و foot): إذ أصبحت الألوان الساطعة الآن تُخرَج دائمًا كرموز ألوان aixterm الساطعة بدلًا من الرجوع إلى الغامق + اللون الداكن، وهو ما تعرضه الطرفيات الحديثة كلون داكن يصعب قراءته على الخلفيات الداكنة. [#109622](https://github.com/ClickHouse/ClickHouse/pull/109622) ([Alasdair Brown](https://github.com/sdairs)).
* تمكين ساحات jemalloc لكل CPU وتوصيف التخصيص في إصدارات macOS. [#109684](https://github.com/ClickHouse/ClickHouse/pull/109684) ([Raúl Marín](https://github.com/Algunenano)).
* السماح بتعديل بعض إعدادات المصادقة لقاعدة بيانات كتالوج بحيرة البيانات من نوع `OneLake` باستخدام `ALTER DATABASE ... MODIFY SETTING`. [#110019](https://github.com/ClickHouse/ClickHouse/pull/110019) ([alesapin](https://github.com/alesapin)).
* أصبح محرك `Hive` الآن يقرأ البيانات الوصفية لملفات `ORC` (فهارس الحد الأدنى/الحد الأقصى، وعدد الصفوف) باستخدام قارئ `ORC` الأصلي في ClickHouse بدلًا من مهايئ `ORC` الخاص بـ Apache Arrow. [#110086](https://github.com/ClickHouse/ClickHouse/pull/110086) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تقليل حجم الملف التنفيذي بنحو \~10.5 MB عبر تنفيذ عمليات المقارنة والعمليات الحسابية على أزواج الأنواع المختلطة قليلة الاستخدام (`Decimal` مقابل عدد صحيح بعرض مختلف، والأزواج التي تتضمن `Int128`/`UInt128`/`Int256`/`UInt256`) من خلال التحويل إلى نوع مشترك بدلًا من نواة مُصرَّفة مخصّصة لكل توليفة من الأنواع. وتبقى الأزواج من النوع نفسه، والأزواج شائعة الاستخدام، وعمليات `plus`/`minus`/`multiply` المقيّدة بالذاكرة محتفظةً بنواها المخصّصة؛ كما تظل النتائج وأنواع النتائج والحالات الاستثنائية دون تغيير. [#110131](https://github.com/ClickHouse/ClickHouse/pull/110131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح الاستعلام الفرعي الموجود على الجانب الأيمن من `IN`، والذي يكون عموده الوحيد مصفوفة أعمق ببعد واحد من الوسيطة اليسرى، يُفسَّر الآن على أنه مجموعة عناصر المصفوفة (مثل قيمة حرفية لمصفوفة أو دالة تُرجع مصفوفة)، بدلًا من أن يفشل بخطأ مُربِك بسبب عدم تطابق الأنواع. على سبيل المثال، أصبح `x IN (SELECT groupArray(x) FROM ...)` يعمل الآن. [#110169](https://github.com/ClickHouse/ClickHouse/pull/110169) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم تعد القراءة من محرك الجدول `SQLite` أو دالة الجدول `sqlite` تدخل في دوران مشغول يستهلك نواة CPU كاملة عندما تكون قاعدة بيانات SQLite مقفلة بواسطة اتصال آخر. أصبحت القراءة الآن في وضع خمول أثناء انتظار القفل، مع بقائها قابلة للإلغاء. [#110248](https://github.com/ClickHouse/ClickHouse/pull/110248) ([Groene AI](https://github.com/groeneai)).
* قَرِّب قيم Elapsed والمعدل والنسبة في رسائل السجل ورسائل الاستثناء إلى ثلاثة أرقام، بحيث لا تعود الأرقام مثل `1.345844286 sec.` تُطبع بالدقة الكاملة. [#110277](https://github.com/ClickHouse/ClickHouse/pull/110277) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة الويب (Play)، أصبح `BFloat16` الآن يُتعرَّف عليه كعدد بفاصلة عائمة، وتُحاذى أعمدته إلى اليمين وتُلوَّن وفقًا لذلك. [#110433](https://github.com/ClickHouse/ClickHouse/pull/110433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم عبارة `SETTINGS` في محرك الجدول `PostgreSQL` ودالة الجدول `postgresql` (على سبيل المثال `SETTINGS postgresql_connection_pool_size = 50`)، بما يحقق تكافؤ الميزات مع المحرك `MySQL`. [#110614](https://github.com/ClickHouse/ClickHouse/pull/110614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `SHOW CREATE TABLE` (وكذلك `SHOW CREATE VIEW` / `SHOW CREATE DICTIONARY`) يقترح الآن جدولًا باسم مشابه في رسالة الخطأ عندما لا يكون الجدول المطلوب موجودًا، بالطريقة نفسها التي تفعلها استعلامات `SELECT`. [#110633](https://github.com/ClickHouse/ClickHouse/pull/110633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تفعيل الإعداد `merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once` افتراضيًا: إذ يقوم محدد الدمج الآن بخفض الحد الأقصى لعدد الأجزاء التي يمكن دمجها دفعةً واحدة تلقائيًا بناءً على مدى امتلاء القسم. راجع [#91163](https://github.com/ClickHouse/ClickHouse/pull/91163). [#110726](https://github.com/ClickHouse/ClickHouse/pull/110726) ([Mikhail Artemenko](https://github.com/Michicosun)).
* اقبل أوامر التنظيف الخاصة بـ PostgreSQL وهي `RESET` و`UNLISTEN` و`DISCARD` باعتبارها عمليات بلا تأثير ضمن بروتوكول PostgreSQL السلكي، بدلًا من إرجاع خطأ في الصياغة لها. وهذا يحسّن التوافق مع برامج التشغيل مثل Skunk التي ترسل `RESET ALL` و`UNLISTEN *` أثناء إعداد الاتصال وتنظيفه. [#110780](https://github.com/ClickHouse/ClickHouse/pull/110780) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تغيير القيمة الافتراضية للإعداد `auto_statistics_types` من `basic, uniq` إلى `basic, uniq_v2`. [#110878](https://github.com/ClickHouse/ClickHouse/pull/110878) ([Han Fei](https://github.com/hanfei1991)).
* أصبح `randomHadamardTransform` يحسب الآن تحويلًا دقيقًا يحافظ على الطول لأي طول متجه لا يزيد أكبر عامل فردي فيه على 64 (على سبيل المثال `3584 = 512 * 7`، وهو شائع في نماذج embedding)، ما يوسّع العائلات المدعومة سابقًا `2^N` و`2^k * {12, 20}` و`2^k * 9`. وأصبح تنفيذ تحويل كامل لطول لا يمكن تمثيله بدقة يطلق استثناءً الآن بدلًا من إضافة أصفار بصمت إلى متجه أطول؛ مرّر `output_dims` لحساب إسقاط مقتطع بطول اعتباطي. [#111006](https://github.com/ClickHouse/ClickHouse/pull/111006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استثناء `LOGICAL_ERROR` أثناء إنشاء نسخة احتياطية لقاعدة بيانات `Replicated` يجري حذفها وإعادة إنشائها بالتزامن؛ وأصبحت مثل هذه النسخ الاحتياطية تفشل الآن بوضوح مع `CANNOT_GET_REPLICATED_DATABASE_SNAPSHOT`. [#100651](https://github.com/ClickHouse/ClickHouse/pull/100651) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح النظام يعرض الخطأ الحقيقي الأساسي عندما يتعذر فك أرشيف zip (على سبيل المثال، عند قراءة الأرشيف من S3 ورفض read buffer تنفيذ seek). سابقًا، كان الخطأ الفعلي مخفيًا خلف الرسالة العامة `Couldn't unpack zip archive: Code = -100` / `Couldn't open zip archive`. [#105103](https://github.com/ClickHouse/ClickHouse/pull/105103) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تلميح مربك من نوع "Maybe you meant X?" بعد إعادة تشغيل server (أو `DETACH DATABASE`/`ATTACH DATABASE`): إذ كان حذف جدول سبق حذفه قد يقترح الاسم الذي حُذف للتو كبديل. [#106238](https://github.com/ClickHouse/ClickHouse/pull/106238) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح logical error (`Logical error: 'removed'`، وكان يؤدي إلى إيقاف server في builds الخاصة بالتصحيح) في queue الخلفية الخاصة بحذف الجداول، وكان يُحفَّز عند إعادة استخدام معرّف UUID صريح نفسه عبر عدة استعلامات `CREATE OR REPLACE TABLE`، ما يؤدي إلى إدراج أكثر من جدول محذوف واحد يشترك في معرّف UUID نفسه ضمن queue. [#107031](https://github.com/ClickHouse/ClickHouse/pull/107031) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح logical error من نوع `Inconsistent AST formatting` كان يمكن أن يؤدي إلى إيقاف server في builds التصحيح وsanitizer عند استخدام lambda ذات اسم مستعار كمعامل لعامل وصول (عنصر tuple `.N` أو عنصر المصفوفة `[]`) في موضع غير أول ضمن قائمة expression، مثل `SELECT 1, ((p0, p1) -> p0 AS a7).4[3] FROM t`. [#107092](https://github.com/ClickHouse/ClickHouse/pull/107092) ([Groene AI](https://github.com/groeneai)).
* أصبحت cluster table function (`urlCluster`, `fileCluster`, `s3Cluster`, ...) المتداخلة داخل distributed query أخرى، مثل `clusterAllReplicas(..., urlCluster(...))`، تُرفض الآن بخطأ `BAD_ARGUMENTS` بدلًا من الفشل مع logical error (`Distributed task iterator is not initialized`). [#107107](https://github.com/ClickHouse/ClickHouse/pull/107107) ([Groene AI](https://github.com/groeneai)).
* إذا تمت مقاطعة `OPTIMIZE ... DRY RUN` بسبب query timeout (`max_execution_time` مع `timeout_overflow_mode = 'break'`)، فإنها تعيد الآن `TIMEOUT_EXCEEDED` بدلًا من logical error متعلق بـ `rows_sources` (والذي كان يؤدي إلى إيقاف server في builds التصحيح/‏sanitizer). [#107114](https://github.com/ClickHouse/ClickHouse/pull/107114) ([Groene AI](https://github.com/groeneai)).
* لم يعد يُسجَّل الخطأ غير الضار `Net Exception: Socket is not connected` أثناء إنهاء جلسة `ZooKeeper` على macOS. كما لم يعد `clickhouse keeper-client` يطبع هذا الخطأ الزائف إلى stderr عند الخروج. [#107438](https://github.com/ClickHouse/ClickHouse/pull/107438) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح overflow في عدد صحيح موقّع عندما يعيد refreshable materialized view محاولة refresh فاشلة مع ضبط `refresh_retries` على قيمة كبيرة جدًا (قريبة من الحد الأقصى لـ `Int64`). وكان هذا overflow قد يؤدي إلى إيقاف server في builds التي تستخدم undefined behavior sanitizer. [#108005](https://github.com/ClickHouse/ClickHouse/pull/108005) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` (توقّف الخادم في إصدارات debug/sanitizer) عندما يستخدم `JOIN` عامل المقارنة الآمن مع null (`<=>` / `IS NOT DISTINCT FROM`) ويكون أحد المفاتيح استعلامًا فرعيًا قيَميًا، مثل `... JOIN t2 ON (SELECT x FROM t1) <=> t2.k`، مع analyzer القديم (`enable_analyzer = 0`). يُرجع هذا الاستعلام الآن الخطأ العادي `NOT_FOUND_COLUMN_IN_BLOCK` بدلًا من logical error. [#108123](https://github.com/ClickHouse/ClickHouse/pull/108123) ([Groene AI](https://github.com/groeneai)).
* أصبحت استعلامات vector search التي تحدد العمود `_distance` تُرجع خطأً مناسبًا بدلًا من الفشل بسبب logical error. [#108423](https://github.com/ClickHouse/ClickHouse/pull/108423) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح `std::future_error` (`The associated promise has been destructed prior to the associated state becoming ready`) الذي كان قد يظهر ويتسبب في توقّف الخادم في إصدارات debug وsanitizer عند فشل جدولة مهمة الإكمال النهائية غير المتزامنة لرفع الأجزاء المتعددة إلى S3/Azure (على سبيل المثال عند استنفاد مجمع الخيوط). أصبح الآن يُبلَّغ عن خطأ الجدولة الفعلي بدلًا من ذلك. [#108730](https://github.com/ClickHouse/ClickHouse/pull/108730) ([Groene AI](https://github.com/groeneai)).
* تجنّب الإفراط في مخرجات server log ورسالة خطأ ضخمة عند compile regular expression كبيرة جدًا (على سبيل المثال، نمط `LIKE` أو `match` يحتوي على مئات الآلاف من wildcards)؛ إذ تفشل هذه الأنماط الآن بخطأ واضح هو `CANNOT_COMPILE_REGEXP`. [#108821](https://github.com/ClickHouse/ClickHouse/pull/108821) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح سلوك غير معرّف عند تحويل packet type في protocol إلى سلسلة نصية عندما تكون خارج النطاق (مثلًا في رسائل الخطأ `Unexpected packet from server` / `Received ... packet`) في حالة connection غير متزامنة أو خاضعة للاختبار العشوائي. [#108885](https://github.com/ClickHouse/ClickHouse/pull/108885) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ داخلي مُربك (`Method getResultType is not supported for TABLE query tree node`) عندما كان يُستخدم تعبير table بوصفه الـ argument الأيسر لعامل التشغيل `IN`؛ وتنتج هذه الاستعلامات الآن رسالة خطأ واضحة. [#109412](https://github.com/ClickHouse/ClickHouse/pull/109412) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح قراءة Iceberg table مع ملف البيانات الوصفية يكون رقم الإصدار فيه مكوّنًا بالكامل من أرقام، لكنه يتجاوز نطاق الأعداد الصحيحة ذات 32 بت (مثل `v99999999999999999999.metadata.json`). كان هذا الاسم يُنتج سابقًا الخطأ الغامض `std::out_of_range` (`STD_EXCEPTION`) بدلًا من الخطأ الواضح `BAD_ARGUMENTS`. [#109619](https://github.com/ClickHouse/ClickHouse/pull/109619) ([Groene AI](https://github.com/groeneai)).
* إصلاح احتمال ظهور `Logical error: 'ReadBuffer is canceled. Can't read from it.'` عندما يفشل input format قائم على الصفوف (مثل `TSV`/`CSV`) في parse الإدخال، وتكون عملية القراءة الأساسية قد أُلغيت بالفعل (على سبيل المثال، جزء HTTP غير صحيح أو body مقتطع). ولم يعد إنشاء تشخيصات parse المفصلة يقرأ من buffer أُلغي. [#109708](https://github.com/ClickHouse/ClickHouse/pull/109708) ([Groene AI](https://github.com/groeneai)).
* أصبحت تعبيرات filter expression في سياسات الصفوف التي تستخدم `arrayJoin` (أو الاسم المستعار `unnest` لها) تُرفض الآن بخطأ واضح؛ إذ كانت هذه policies تتسبب سابقًا في logical error من النوع `column->size() == num_rows` أثناء query time. [#109753](https://github.com/ClickHouse/ClickHouse/pull/109753) ([Raúl Marín](https://github.com/Algunenano)). [#109973](https://github.com/ClickHouse/ClickHouse/pull/109973) ([Raúl Marín](https://github.com/Algunenano)).
* أصبحت قراءة Paimon table التي يحتوي مخططها على Nested type غير مدعوم (مثل حقل `ROW`) تُبلّغ الآن عن خطأ واضح `BAD_ARGUMENTS` يذكر النوع غير المدعوم، بدلًا من `DB::Exception. (OK)` مجرد مع رمز الخطأ 0 ومن دون رسالة. [#109762](https://github.com/ClickHouse/ClickHouse/pull/109762) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR`‏ (`std::length_error`) عند استخدام استعلام مع الإعداد التجريبي `make_distributed_plan = 1` لقيمة كبيرة جدًا في `distributed_plan_default_reader_bucket_count` أو `distributed_plan_default_shuffle_join_bucket_count`. تُرفَض هذه القيم الآن بالخطأ `INVALID_SETTING_VALUE`. [#109770](https://github.com/ClickHouse/ClickHouse/pull/109770) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR`‏ (`query tree node does not have valid source node`) عندما كان تعبير الجدول الشائع التعاودي يحلّ معرّفًا من نطاق خارجي باعتباره عمودًا مترابطًا (مع `allow_experimental_correlated_subqueries = 1`). تُرجِع مثل هذه الاستعلامات الآن خطأ `UNSUPPORTED_METHOD` واضحًا. [#109863](https://github.com/ClickHouse/ClickHouse/pull/109863) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تجاوز سعة لعدد صحيح موقّع عندما يتجاوز `ORDER BY ... WITH FILL` فجوة كبيرة جدًا في عمود `Int64`/`UInt64` (مثل خطوة مقدارها 2 عبر فجوة قريبة من 2^63). كان هذا التجاوز سلوكًا غير معرّف في أدوات sanitizer، وكان يلتفّ بصمت في إصدارات الإصدار. [#109937](https://github.com/ClickHouse/ClickHouse/pull/109937) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي `Bad cast from type DB::FunctionNode to DB::ConstantNode` (يتسبب في إنهاء الخادم في إصدارات debug/sanitizer) عند تشغيل `SELECT ... ORDER BY ... WITH FILL` على جدول `Distributed` مع قيمة منخفضة لـ `optimize_const_name_size`. [#109938](https://github.com/ClickHouse/ClickHouse/pull/109938) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي `Invalid number of rows in Chunk` عندما يكون هدف `INTERPOLATE` اسمًا مستعارًا لعمود `WITH FILL` مع المحلل القديم (`enable_analyzer = 0`). تُرفَض مثل هذه الاستعلامات الآن بخطأ `INVALID_WITH_FILL_EXPRESSION` واضح. [#110103](https://github.com/ClickHouse/ClickHouse/pull/110103) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي (يتسبب في إنهاء الخادم في إصدارات debug/sanitizer) عندما تُمرَّر إلى الدوال `indexHint`/`ignore`/`isZeroOrNull` وسيطة يُحَلّ نوعها إلى `Nothing`، مثل داخل تعبيرات من قبيل `indexHint(assumeNotNull(materialize(NULL)))`. [#110192](https://github.com/ClickHouse/ClickHouse/pull/110192) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي `Too large size (...) passed to allocator` كان يمكن أن يحدث عند ضبط قيمة خارج النطاق لإعداد حجم مخزن القراءة المؤقت مثل `max_read_buffer_size` أو `max_read_buffer_size_local_fs`. تُقيَّد هذه القيم الآن إلى 256 MiB عبر فحص سلامة الإعدادات، وكذلك في موضع الاستخدام لـ `INSERT ... FROM INFILE`، الذي يقرأ الملفات داخل `clickhouse-client` حيث لا ينطبق فحص السلامة. [#110207](https://github.com/ClickHouse/ClickHouse/pull/110207) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يُبلّغ `CHECK TABLE` الآن عن التلف الفعلي في جزء الإسقاط الذي فشل في تحميل بياناته الوصفية، بدلًا من الخطأ المضلل `Columns doesn't match ... Expected: 0 columns`. [#110262](https://github.com/ClickHouse/ClickHouse/pull/110262) ([Raúl Marín](https://github.com/Algunenano)).
* يُبلَّغ الآن عن عدم تطابق النوع الذي يحدث عندما يتعذر تحليل قيمة مقروءة من مصدر PostgreSQL (مثل `postgresql` table function أو `PostgreSQL` table engine) إلى نوع العمود المصرَّح به (على سبيل المثال، عمود `text` مصرَّح به كـ `Int32`) على أنه خطأ استعلام صحيح؛ بينما كان سابقًا يؤدي إلى إنهاء الخادم في إصدارات debug وsanitizer. [#110264](https://github.com/ClickHouse/ClickHouse/pull/110264) ([Groene AI](https://github.com/groeneai)).
* دعم query profiler وmemory profiler وtrace profiler، وكذلك ترميز الرموز لـ `system.trace_log` على macOS. [#109825](https://github.com/ClickHouse/ClickHouse/pull/109825) ([Raúl Marín](https://github.com/Algunenano)).
* تحديث `chdig` إلى [v26.7.1](https://github.com/azat/chdig/releases/tag/v26.7.1): ضغط تتبعات المكدس لأغراض المشاركة، وأنماط الاستعلامات، ودعم ذاكرة Arena المنفصلة، وتحسينات Perfetto، وإصلاحات التوافق. [#110938](https://github.com/ClickHouse/ClickHouse/pull/110938) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الاستدلال غير الصحيح على الرتابة لـ `intDiv` عند استخدام مفتاح غير موقّع مقسوم على ثابت موقّع، وهو ما كان قد يعطّل تشذيب فهرس المفتاح الأساسي لشروط `IN`/`NOT IN` التي تتجاوز الحدّ الموقّع لنوع النتيجة؛ كما كانت إصدارات Debug تصطدم أيضًا بالخطأ `LOGICAL_ERROR` ‏`Invalid binary search result in MergeTreeSetIndex`. [#107586](https://github.com/ClickHouse/ClickHouse/pull/107586) ([Groene AI](https://github.com/groeneai)).
* تمت إضافة الإعداد `allow_lossy_numeric_supertype` (وهو معطّل افتراضيًا). عند تفعيله، فإن `if` و`multiIf` و`coalesce` و`ifNull` و`array` و`map` عند استخدامها مع وسائط رقمية لا تملك نوعًا مشتركًا من دون فقدان (مثل `Decimal` و`Float64`، أو `Int64` و`Float64`) يُحسم نوعها إلى `Float64` بدلًا من `Variant`، بحيث يمكن استخدام النتيجة مع الدوال التجميعية مثل `sum` و`avg` و`min` و`max`. وتذكر رسائل الخطأ ذات الصلة بالدوال التجميعية الآن اسم الإعداد صراحةً. يُغلق [#106707](https://github.com/ClickHouse/ClickHouse/issues/106707). [#107236](https://github.com/ClickHouse/ClickHouse/pull/107236) ([Groene AI](https://github.com/groeneai)).
* بدء تشغيل نقطة نهاية Prometheus (للتكوينات المخصّصة للمقاييس فقط) وجمع المقاييس غير المتزامن قبل تحميل الجداول، بحيث تصبح المقاييس مرئية أثناء مرحلة تحميل البيانات الوصفية التي قد تطول. [#108402](https://github.com/ClickHouse/ClickHouse/pull/108402) ([Christoph Wurm](https://github.com/cwurm)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* إصلاح فشل `TRUNCATE TABLE` و`DROP PARTITION` على الجداول التي تحتوي على عدد كبير من كتل deduplication، إذ إن حذفها ضمن طلب ZooKeeper واحد قد يتجاوز الحد الافتراضي `jute.maxbuffer` البالغ 1 ميغابايت. [#105991](https://github.com/ClickHouse/ClickHouse/pull/105991) ([Clayton McClure](https://github.com/cmcclure-twilio)). لا يؤثر هذا عليك إلا إذا كنت تستخدم Apache ZooKeeper (وهو غير موصى به) بدلًا من ClickHouse Keeper.
* إصلاح استخدام أسماء الأعمدة المؤهلة (`database.table.column`) في عبارة `WHERE` الخاصة بالـ mutations، مثل `DELETE FROM` و`ALTER TABLE ... UPDATE/DELETE`، على جداول عائلة `MergeTree`؛ إذ كانت هذه الاستعلامات تفشل سابقًا بسبب خطأ missing-columns. يغلق [#71760](https://github.com/ClickHouse/ClickHouse/issues/71760). [#109491](https://github.com/ClickHouse/ClickHouse/pull/109491) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح ذاكرة التخزين المؤقت لنتائج الاستعلام لاستعلامات PromQL. كانت dialect ‏`promql` تتجاوز فحص الدوال غير الحتمية، وكان من الممكن أن تعرض نتائج قديمة مرتبطة بـ `now()`؛ كما أن Prometheus HTTP API (`/api/v1/query`, `/api/v1/query_range`) لم يكن يخزن أي cache entries على الإطلاق. [#110887](https://github.com/ClickHouse/ClickHouse/pull/110887) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* إصلاح فشل بدء تشغيل الخادم عندما يكون متغير البيئة `TZ` فارغًا. يغلق [#68920](https://github.com/ClickHouse/ClickHouse/issues/68920). [#68921](https://github.com/ClickHouse/ClickHouse/pull/68921) ([Ardenwick](https://github.com/ardenwick)).
* تم إصلاح فشل بدء تشغيل الخادم عندما يشير محرك قاعدة البيانات `Backup` إلى نسخة احتياطية أصبحت غير متاحة (على سبيل المثال، عند حذف ملفاتها أو تعذر الوصول إلى طبقة التخزين الأساسية). تُحمَّل قاعدة البيانات الآن بدون جداول بدلًا من منع الخادم بالكامل من بدء التشغيل. [#83188](https://github.com/ClickHouse/ClickHouse/pull/83188) ([Vitaly Orlov](https://github.com/orloffv)).
* عند استخدام inserts في الخلفية إلى جداول بمحرك `Distributed`، فإن التأخيرات الناتجة عن الأخطاء المتكررة عند إرسال البيانات إلى shards البعيدة تبدأ الآن في الانخفاض بمجرد حل تلك الأخطاء. سابقًا، كان التأخير يزداد فقط ولا يُعاد ضبطه مطلقًا. [#87378](https://github.com/ClickHouse/ClickHouse/pull/87378) ([Andrei Kochemirovskii](https://github.com/Blackmorse)).
* إصلاح `broken_data_files` في `system.distribution_queue`، وكذلك إصلاح كون Metric ‏`BrokenDistributedFilesToInsert` تُبلغ دائمًا عن `0` للملفات التالفة التي يُعثر عليها عند فحص queue الخاصة بـ async-insert لمحرك `Distributed` أثناء بدء التشغيل. [#92124](https://github.com/ClickHouse/ClickHouse/pull/92124) ([KG.Xu](https://github.com/squalfof)).
* إصلاح تعافي logging بعد خطأ امتلاء القرص. سابقًا، عندما يمتلئ قرص السجل، كان ClickHouse يدخل في حالة فشل ويواصل إغراق syslog برسائل error (بما قد يصل إلى أكثر من 100 غيغابايت/ساعة)، من دون أن يتعافى حتى بعد تحرير مساحة على القرص. الآن يتعافى نظام logging تلقائيًا بمجرد توفر مساحة على القرص، من دون الحاجة إلى إعادة تشغيل الخادم. [#93127](https://github.com/ClickHouse/ClickHouse/pull/93127) ([jaehanbyun](https://github.com/jaehanbyun)).
* تمرير بيانات اعتماد S3 الثابتة إلى عمليات قراءة جدول Unity `DataLakeCatalog` عند تعطيل `vended_credentials`، مما يمنع حالات فشل الوصول المجهول إلى تخزين الكائنات. [#96910](https://github.com/ClickHouse/ClickHouse/pull/96910) ([kgeg401](https://github.com/kgeg401)).
* إصلاح انهيار في شيفرة parsing الخاصة بالمخطط في محرك الجدول `DeltaLake`. [#97112](https://github.com/ClickHouse/ClickHouse/pull/97112) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح مشكلة أمنية كان يمكن من خلالها لعميل TCP غير موثَّق الاستعلام عن وجود جدول وحالة replication عبر منفذ interserver. [#99854](https://github.com/ClickHouse/ClickHouse/pull/99854) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح خطأ نحوي عند ورود اسم مستعار بعد استعلام فرعي في `DESCRIBE TABLE`. يُصلح [#100031](https://github.com/ClickHouse/ClickHouse/issues/100031). [#100205](https://github.com/ClickHouse/ClickHouse/pull/100205) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء في استعلام فرعي مترابط عندما تصبح الأعمدة الخارجية `Nullable` تحت `group_by_use_nulls` مع `ROLLUP`/`CUBE`. [#100365](https://github.com/ClickHouse/ClickHouse/pull/100365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح توقّف للخادم (في بنى sanitizer) وفقدان صامت للبيانات أثناء بدء تشغيل الجدول عندما يتقاطع جزء `MergeTree` معاملاتي تم التراجع عنه مع جزء مُثبّت. [#100992](https://github.com/ClickHouse/ClickHouse/pull/100992) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح مشكلة في `indexOfAssumeSorted` كانت تؤدي إلى إرجاع نتائج غير صحيحة لأعمدة `Array(LowCardinality(String))` في جداول `MergeTree`. [#101771](https://github.com/ClickHouse/ClickHouse/pull/101771) ([Yash ](https://github.com/Onyx2406)).
* إصلاح pruning غير صحيح للمفتاح الأساسي عندما يغلّف مفتاح الفرز في الجدول عمود `Date` داخل `toDateTime` (على سبيل المثال، `ORDER BY toDateTime(date_column)`) ويطبّق استعلام شرط تصفية على العمود الأصلي بمقارنة مثل `WHERE date_column >= '...'`. يحدث overflow في `toDateTime(Date)` لقيم `Date` التي تتجاوز نطاق `DateTime` (بعد `2106-02-07`)، لذلك يصبح المفتاح المخزَّن غير رتيب؛ ولم يعد ClickHouse يستخدم pruning للمفتاح الأساسي لهذا الجمع بين المفتاح والشرط لأن ذلك قد يستبعد granules تحتوي على صفوف مطابقة. يُغلق [#101744](https://github.com/ClickHouse/ClickHouse/issues/101744). [#101814](https://github.com/ClickHouse/ClickHouse/pull/101814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح `intDivOrNull` و`moduloOrNull` و`positiveModuloOrNull` التي كانت تُرجع `0` بدلًا من `NULL`، وكذلك `intDivOrNull` و`intDivOrZero` اللتين كانتا تثيران استثناءً بدلًا من إرجاع `NULL` / `0`، عندما تؤدي القسمة إلى floating-point exception (القسمة على صفر أو `INT_MIN / -1`)، بما في ذلك الوسائط المختلطة signed/unsigned. [#101976](https://github.com/ClickHouse/ClickHouse/pull/101976) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناءات `LOGICAL_ERROR` عند قراءة جداول `Iceberg` أو `DeltaLake` في حالات طرفية مثل تحديثات metadata المتزامنة في `Iceberg` أو عمليات القراءة عبر `merge` table function فوق جداول `DeltaLake`. [#102033](https://github.com/ClickHouse/ClickHouse/pull/102033) ([Groene AI](https://github.com/groeneai)).
* إصلاح فشل طلبات HTTP الصادرة (مثل الدالة `aiGenerate`، و`url` table function، وS3) برسالة `No route to host` على المضيفات التي تعلن عن عنواني IPv4 وIPv6 معًا عندما تكون عائلة عناوين واحدة فقط قابلة للتوجيه. وأصبح HTTP connection pool الآن ينتقل إلى العنوان التالي الذي تم حلّه عندما يفشل العنوان الأول بخطأ شبكة، بدلًا من تمرير الخطأ مباشرةً من أول طلب. [#103786](https://github.com/ClickHouse/ClickHouse/pull/103786) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح توقّف للخادم أثناء `RESTORE` للنسخ الاحتياطية التي تحتوي على جداول ذات dependencies دورية. [#103824](https://github.com/ClickHouse/ClickHouse/pull/103824) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* أصبح schema inference لأعمدة Arrow ‏`time32`/`time64` (مثل `SELECT * FROM file(..., 'Arrow')`) يستنتج الآن `Time64` بدلًا من `DateTime64`؛ وأي مكوّن لاحق يعتمد على النوع المستنتَج السابق سيلاحظ النوع الجديد بعد الترقية. كذلك، يمكن الآن تصدير قيم `Time`/`Time64` إلى Arrow مع اختيار نوع الوقت المناسب في Apache Arrow بحسب precision. يُصلح [#104038](https://github.com/ClickHouse/ClickHouse/issues/104038). [#104316](https://github.com/ClickHouse/ClickHouse/pull/104316) ([/bin/cat](https://github.com/Maoyao233)).
* تم إصلاح حالة تسابق بين `ALTER TABLE ... RENAME COLUMN` و`OPTIMIZE TABLE ... FINAL` متزامن (أو أي merge في الخلفية) في `MergeTree`، كانت قد تؤدي بصمت إلى استبدال بيانات العمود المُعاد تسميته بقيم default. [#104822](https://github.com/ClickHouse/ClickHouse/pull/104822) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي `Block structure mismatch` أثناء تنفيذ `INSERT` متزامن بينما تكون `ALTER TABLE ... RENAME COLUMN` قيد التنفيذ، في database من نوع `Atomic` مع `lazy_load_tables = 1` بعد `DETACH DATABASE`/`ATTACH DATABASE`. [#104852](https://github.com/ClickHouse/ClickHouse/pull/104852) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `groupConcat` عند خلط الصياغة المعلَّمية والصياغة ذات الوسيطين، مثل `groupConcat(',', 2)(x, '/')`: كان parameter الخاص بحدّ الصفوف يُهمَل بصمت، لذا كانت كل row تُعاد بدلًا من العدد المطلوب؛ والآن يطغى Delimiter من الوسيط الثاني على parameter بشكل صحيح. [#104882](https://github.com/ClickHouse/ClickHouse/pull/104882) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح خطأ `LOGICAL_ERROR` (`Expected one block from input stream`) الذي كان يُطرَح بواسطة `KILL QUERY`/`KILL MUTATION`/`KILL PART_MOVE_TO_SHARD`/`KILL TRANSACTION` عندما تحتوي عبارة `WHERE` الخاصة بها على subquery لكل row، أو عندما يكون `max_block_size` صغيرًا بما يكفي بحيث يُصدر `SELECT` الداخلي على جدول `system.*` ذي الصلة أكثر من block واحد. [#104927](https://github.com/ClickHouse/ClickHouse/pull/104927) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `CAST` من وحدات interval الأصغر إلى الأكبر، والذي كان يعيد نتائج خاطئة (على سبيل المثال، كان `CAST(toIntervalSecond(60) AS IntervalMinute)` يعيد `0` بدلًا من `1`). يُغلق [#104986](https://github.com/ClickHouse/ClickHouse/issues/104986). [#105058](https://github.com/ClickHouse/ClickHouse/pull/105058) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح خطأ منطقي (`Assertion 'row < chunk.getNumRows()' failed`) في queries من نوع `LIMIT ... WITH TIES` التي تعمل مع pipeline القراءة بالترتيب (`optimize_read_in_order = 1` و`read_in_order_use_virtual_row_per_block = 1`). [#105102](https://github.com/ClickHouse/ClickHouse/pull/105102) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تسرّب في refreshable materialized views (`MATERIALIZED VIEW ... REFRESH ...`): إذ كان يتعذر تنفيذ drop للـ table الداخلية المؤقتة التي يستبدلها refresh عبر `EXCHANGE TABLES` إذا كان حجمها أكبر من `max_table_size_to_drop`، لذلك كان كل refresh لاحق ينشئ table داخلية مؤقتة إضافية، ما يؤدي إلى نمو directory بيانات الـ view حتى امتلاء القرص. وأصبح drop الداخلي لمهمة refresh الآن يتجاوز `max_table_size_to_drop` و`max_partition_size_to_drop`؛ فيما تظل وسائل الأمان هذه مطبّقة على `DROP TABLE` الصادر من المستخدم للـ view نفسها. يُغلق [#104900](https://github.com/ClickHouse/ClickHouse/issues/104900). [#105106](https://github.com/ClickHouse/ClickHouse/pull/105106) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ غير متوقع `DATA_TYPE_CANNOT_BE_USED_IN_KEY` في queries `ALTER` التي لا تغيّر sorting key (مثل تغيير settings أو comments أو codecs أو إضافة column غير مفتاحي، إلخ) لجداول `MergeTree` التي تحتوي على `SimpleAggregateFunction` (أو نوع آخر مسموح فقط مع `allow_suspicious_primary_key = 1`) في sorting key. [#105111](https://github.com/ClickHouse/ClickHouse/pull/105111) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح حالة use-after-free عند الاستعلام عن أعمدة حالة النسخ المتماثلة في `system.clusters` (مثل `is_active` و`unsynced_after_recovery` و`recovery_time`) أثناء إسقاط قاعدة بيانات `Replicated` أو فصلها. كذلك، أصبحت استثناءات Keeper غير الضارة التي كانت تُبتلع في هذا المسار من الشيفرة (إذ تُعامَل قاعدة البيانات المتأثرة على أنها غير متاحة مؤقتًا ويتم تخطيها) تُسجَّل الآن عند المستوى `Information` بدلًا من `Error`، لذلك لم تعد تصل إلى العملاء مع الإعداد الافتراضي `send_logs_level = 'warning'`. [#105149](https://github.com/ClickHouse/ClickHouse/pull/105149) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة كانت تؤدي عند تشغيل عدة statements في `clickhouse-local --ignore-error` إلى إعادة طباعة كل statement لاحقة داخل رسالة الخطأ عند كل خطأ lexical أو خطأ ناتج عن عدم تطابق الأقواس. [#105480](https://github.com/ClickHouse/ClickHouse/pull/105480) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل نادر في الخادم عند إسقاط refreshable materialized views أو استبدالها بالتزامن مع جدولة تحديثها. [#105588](https://github.com/ClickHouse/ClickHouse/pull/105588) ([Groene AI](https://github.com/groeneai)).
* أصبح `ALTER TABLE ... DELETE` و`ALTER TABLE ... UPDATE` على جداول `Iceberg` التي لا يكون تنسيق ملف البيانات فيها `Parquet` مرفوضَين الآن برسالة الخطأ الواضحة `NOT_IMPLEMENTED` بدلًا من تعطل الخادم أو إفساد الجدول بصمت. [#105893](https://github.com/ClickHouse/ClickHouse/pull/105893) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نتائج غير صحيحة من view معرّف باستخدام `EXCEPT` أو `INTERSECT` عندما يكون أحد المعاملات سلسلة `UNION`، وذلك بعد `DETACH`/`ATTACH` أو إعادة تشغيل الخادم. كان الـ formatter يفتقد إلى الأقواس حول عناصر `UNION` التابعة لـ `INTERSECT`/`EXCEPT`، لذلك أُعيد parse لـ SQL المخزن بأسبقية معكوسة. [#105935](https://github.com/ClickHouse/ClickHouse/pull/105935) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح اكتشاف بيانات `JSON` بالخطأ على أنها `TSKV` أثناء الاكتشاف التلقائي للتنسيق. يُغلق [#100797](https://github.com/ClickHouse/ClickHouse/issues/100797). [#106009](https://github.com/ClickHouse/ClickHouse/pull/106009) ([Pavel Kruglov](https://github.com/Avogar)).
* تم منع إنشاء skip index من نوع `minmax` مباشرة على columns من نوع `JSON` — إذ كان ذلك قد يؤدي لاحقًا إلى فشل عمليات insert مع الاستثناء `NO_COMMON_TYPE` عند إدراج arrays مختلطة الأنواع. أنشئ الـ index على subcolumns محددة النوع بدلًا من ذلك (مثل `INDEX idx json.field TYPE minmax`). [#106094](https://github.com/ClickHouse/ClickHouse/pull/106094) ([linhaojie](https://github.com/linhaojie)).
* تم إصلاح خطأ منطقي (`Parsed partition value ... doesn't match partition value for an existing part with the same partition ID`) كان يطرحه `OPTIMIZE TABLE ... PARTITION ...` واستعلامات أخرى تحل قيمة partition، في الجداول التي تستخدم مفتاح partition من النوع `Time`. [#106202](https://github.com/ClickHouse/ClickHouse/pull/106202) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح حالة كان فيها data part يُعلَّم خطأً على أنه يحتوي على projection معطوب بعد أن لا تترك lightweight delete أي projection part — سواء عند إعادة بناء الـ projection من دون أي rows ناتجة أو عند إسقاطه (`lightweight_mutation_projection_mode = 'rebuild'`/`'drop'`). وكانت هذه الحالة المعطوبة تعطل سابقًا optimization الخاصة بالـ projection للاستعلامات على ذلك الـ part. [#106273](https://github.com/ClickHouse/ClickHouse/pull/106273) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح `removeDirectory` على أقراص object storage من نوع `plain` (مثل `s3_plain`)؛ إذ كان يحذف كل الملفات داخل directory غير فارغ كما لو أن الحذف تعاودي. أما الآن، فيفشل حذف directory غير فارغ بالخطأ `CANNOT_RMDIR`، بينما يتعامل الحذف التعاودي مع المحتويات صراحةً. [#106281](https://github.com/ClickHouse/ClickHouse/pull/106281) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* تم إصلاح خطأ منطقي (`Part ... doesn't exist`) كان يمكن أن يؤدي إلى توقف الخادم أثناء recovery لعملية `INSERT` باستخدام quorum بعد خطأ عتادي في Keeper، عندما كان الـ quorum يُعلَّم في الوقت نفسه على أنه فشل. [#106424](https://github.com/ClickHouse/ClickHouse/pull/106424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` المتعلق بتكرار أسماء الأعمدة عند تطبيق سياسات الصفوف. [#106438](https://github.com/ClickHouse/ClickHouse/pull/106438) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح مشكلة في `CREATE OR REPLACE TABLE` و`REPLACE TABLE` كانت تتسبب في ترك جدول `_tmp_replace_*` عالقًا على القرص واستبدال الجدول الأصلي بجدول فارغ عندما يتجاوز الهدف الحالي `max_table_size_to_drop`. أصبح فحص الحجم يُجرى الآن قبل التبديل، بحيث يؤدي تجاوز الحد إلى إجهاض العملية بشكل سليم مع إظهار اسم الجدول الظاهر للمستخدم في رسالة الخطأ. [#106782](https://github.com/ClickHouse/ClickHouse/pull/106782) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة في `JSON_QUERY`/`JSON_VALUE`/`JSON_EXISTS` كانت تُرجع `Dynamic` بدلًا من `String`/`UInt8` عند استخدام وسيطات `Dynamic`. يُغلق [#106461](https://github.com/ClickHouse/ClickHouse/issues/106461). [#106877](https://github.com/ClickHouse/ClickHouse/pull/106877) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح نتائج غير صحيحة عند الاستعلام من جدول `ReplacingMergeTree` باستخدام `FINAL` ومرشح على فهرس نصي بينما كان `query_plan_optimize_lazy_final` مفعّلًا. كان تحسين `FINAL` الكسول ينشئ خطوات قراءة لا تعكس القراءة المباشرة من الفهرس النصي، ولذلك كان المرشح يستبعد جميع الصفوف المطابقة. [#106894](https://github.com/ClickHouse/ClickHouse/pull/106894) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تطبيق `query_masking_rules` على الرسائل الملحقة بالاستثناءات، حتى لا تتسرّب بيانات الاعتماد المرمّزة بعنوان URL في اللواحق `(in file/uri ...)` الخاصة بالأخطاء الصادرة من table functions `jdbc`/`odbc` عند تهيئة قواعد الإخفاء. [#106916](https://github.com/ClickHouse/ClickHouse/pull/106916) ([Gaurav Dubey](https://github.com/gaurav0107)).
* إصلاح مشكلة كانت تؤدي إلى وسم الأجزاء بأنها تالفة وفصلها عند أي إعادة تحميل للجزء (إعادة تشغيل الخادم، `DETACH`/`ATTACH`) في الجداول التي تحتوي على عمود `LowCardinality(Nullable(...))` في مفتاح partition. منذ 26.5، لم يكن ملف فهرس minmax لكل جزء يُكتب عندما تكون القيمتان الدنيا والعظمى لمثل هذا العمود هما `NULL`، بينما كان فحص اتساق الجزء لا يزال يتطلب هذا الملف. الأجزاء المكتوبة بالإصدارات المتأثرة تفتقر إلى ملف فهرس minmax، وما تزال بحاجة إلى إعادة إرفاقها يدويًا. يُغلق [#106837](https://github.com/ClickHouse/ClickHouse/issues/106837). [#106945](https://github.com/ClickHouse/ClickHouse/pull/106945) ([Pedro Ferreira](https://github.com/PedroTadim)).
* إصلاح `LOGICAL_ERROR` نادر (`Unexpected expression in JOIN ON section. Expected boolean (UInt8), got 'Nothing'`) عندما يُشير predicate غير قائم على المساواة في `JOIN ... ON` إلى عمود من النوع `Nothing`، مثل عمود ناتج عن `ARRAY JOIN []`. [#106981](https://github.com/ClickHouse/ClickHouse/pull/106981) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` نادر (`Attempt to release query context that does not exist`) والانهيار المصاحب للخادم عند قراءة جداول `MergeTree` عبر cache disk لنظام الملفات أُنشئ باستخدام `enable_filesystem_query_cache_limit = 1`. [#107028](https://github.com/ClickHouse/ClickHouse/pull/107028) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم عند نقل جزء فارغ إلى قرص `plain_rewritable` (على سبيل المثال، باستخدام `ALTER TABLE ... MOVE PARTITION ... TO DISK` لجزء فارغ تم الاحتفاظ به بسبب `remove_empty_parts = 0`). [#107040](https://github.com/ClickHouse/ClickHouse/pull/107040) ([Groene AI](https://github.com/groeneai)).
* إصلاح ترتيب صفوف غير صحيح في استعلامات `ORDER BY` على `UNION ALL` مع تفعيل `optimize_read_in_order` و`read_in_order_use_virtual_row`. يُغلق [#106879](https://github.com/ClickHouse/ClickHouse/issues/106879). [#107053](https://github.com/ClickHouse/ClickHouse/pull/107053) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح `LOGICAL_ERROR` (`Unsupported argument types`) في الدالة `geohashesInBox` عندما كانت وسائط الإحداثيات تخلط بين القيم الثابتة وغير الثابتة، أو عندما كانت إحدى الإحداثيات من النوع `BFloat16`. وأصبحت الآن وسائط `Float32` المختلطة بين الثابت وغير الثابت تعمل، بينما تُرفض وسائط `BFloat16` برسالة خطأ واضحة. [#107063](https://github.com/ClickHouse/ClickHouse/pull/107063) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نتائج خاطئة (صفوف مكررة) في `SELECT DISTINCT` فوق `GROUP BY` مع `WITH CUBE` أو `WITH ROLLUP` أو `GROUPING SETS` على المفاتيح نفسها. ولم تعد آلية التحسين `query_plan_remove_redundant_distinct` تزيل `DISTINCT` في هذه الحالات، لأن مُعدِّلات التجميع تُنتج صفوفًا إضافية مع ضبط أعمدة المفاتيح على القيم الافتراضية، ما قد يؤدي إلى تعارض مع قيم المجموعات الفعلية. [#107072](https://github.com/ClickHouse/ClickHouse/pull/107072) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نتيجة خاطئة في `OUTER JOIN` عندما يكون عامل التصفية `WHERE` اقترانًا يتضمن حدًا ثابتًا (مثل `p AND 1`، أو `WHERE p QUALIFY NULL` حيث يُدمج `QUALIFY NULL` في `WHERE`). إذ كان يمكن دفع الحد الثابت إلى الجانب غير المحفوظ من الوصلة وإزالته من عامل التصفية بعد الوصلة، فتُنتج الوصلة صفوفًا غير متطابقة مع ضبط أعمدة ذلك الجانب على القيم الافتراضية، ثم تمر هذه الصفوف عبر عامل التصفية على نحو غير صحيح. [#107084](https://github.com/ClickHouse/ClickHouse/pull/107084) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة عدم التقاط الدوال المعرفة من قبل المستخدم `executable_pool` المُهيأة باستخدام `<lifetime>` للتغييرات التي تطرأ على البرنامج النصي الأساسي. سابقًا، كان `SYSTEM RELOAD FUNCTIONS` وحده يعيد قراءة برنامج نصي عُدِّل؛ أما عمليات إعادة التحميل الدورية لـ `<lifetime>` فكانت تواصل تنفيذ الإصدار القديم. [#107087](https://github.com/ClickHouse/ClickHouse/pull/107087) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح استثناء `LOGICAL_ERROR` (`Cannot find input column ... on its position in inputs of expression actions DAG`) في استعلام فرعي قيَمي مترابط فوق مصدر يُسقِط معرّف العمود نفسه مرتين (مثل `SELECT number, *`) عندما يكون `correlated_subqueries_default_join_kind = 'left'`. [#107112](https://github.com/ClickHouse/ClickHouse/pull/107112) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح حالة تسابق بيانات في مجمّع التتبّع العام على مستوى الخادم بين خيط عمل يبدأ أداة التحليل الخاصة به وعملية إيقاف الخادم. [#107307](https://github.com/ClickHouse/ClickHouse/pull/107307) ([Groene AI](https://github.com/groeneai)).
* لم تعد النسخ الاحتياطية التزايدية تخزّن بيانات اعتماد `S3` في محدِّد `<base_backup>` داخل ملف البيانات الوصفية `.backup`. فالنسخ الاحتياطية المُنشأة باستخدام `use_same_s3_credentials_for_base_backup = 1`، أو باستخدام بيانات اعتماد صريحة للنسخة الاحتياطية الأساسية تطابق هذا المحدِّد، تخزّن علامة غير سرية ويمكن استعادتها من دون إعدادات إضافية وقت الاستعادة؛ أما النسخ الاحتياطية المُنشأة ببيانات اعتماد صريحة مختلفة للنسخة الاحتياطية الأساسية أو بوسائط مصادقة أساسية إضافية، فيجب تمريرها إلى `RESTORE` باستخدام الإعداد `base_backup`. وتظل النسخ الاحتياطية التي أنشأتها الإصدارات الأقدم باستخدام بيانات اعتماد مضمّنة قابلة للاستعادة. [#107357](https://github.com/ClickHouse/ClickHouse/pull/107357) ([Pablo Marcos](https://github.com/pamarcos)).
* تم إصلاح مشكلة في `CSVWithNames` و`CSVWithNamesAndTypes` حيث كانت الترويسة تحتوي على أعمدة أقل من البيانات عند تفعيل `output_format_csv_serialize_tuple_into_separate_columns` (وهو الإعداد الافتراضي). وتقوم الترويسة الآن (وكذلك صف الأنواع) بتسطيح أعمدة `Tuple` إلى حقولها الطرفية بأسماء منقوطة (مثل `t.a` و`t.b`)، بحيث يطابق عدد أعمدة الترويسة عدد أعمدة البيانات. ويتحكم إعداد جديد هو `output_format_csv_header_serialize_tuple_into_separate_columns` (القيمة الافتراضية `1`) في هذا السلوك، ويمكن ضبطه على `0` لاستعادة الترويسة السابقة ذات الاسم الواحد. [#107371](https://github.com/ClickHouse/ClickHouse/pull/107371) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح قراءة جداول `Iceberg` v3 التي تحتوي ملفات بيانات `Parquet` فيها أعمدة row-lineage محجوزة (مثل `_row_id`)؛ ولم يعد قارئ `Parquet` الأصلي يطلق `ICEBERG_SPECIFICATION_VIOLATION` بسبب معرّفات الحقول المحجوزة التي ليست جزءًا من مخطط الجدول. [#107377](https://github.com/ClickHouse/ClickHouse/pull/107377) ([Greg Maher](https://github.com/gregakinman)).
* تم إصلاح توقّف نادر للخادم أثناء الإغلاق (`std::future_error`: `The associated promise has been destructed prior to the associated state becoming ready`) كان سببه إسقاط مهمة مجدولة من قائمة انتظار مجمّع الخيوط قبل تنفيذها. [#107383](https://github.com/ClickHouse/ClickHouse/pull/107383) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح محركي الجدول وقاعدة البيانات `MaterializedPostgreSQL` بحيث يمكن إجراء replication لجدول واحد أو قاعدة بيانات واحدة من schema غير افتراضي في PostgreSQL (`materialized_postgresql_schema`)، بما في ذلك الحالة التي توجد فيها جداول بالاسم نفسه في عدة schema ضمن قاعدة البيانات نفسها (إذ كانت سابقًا تتشارك publication وreplication slot ويحدث تداخل بينها). [#107425](https://github.com/ClickHouse/ClickHouse/pull/107425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح توقّف `MaterializedPostgreSQL` عن replication لقاعدة بيانات كاملة (مع `LOGICAL_ERROR: Columns number mismatch`) عندما يتغير structure لجدول replicated واحد أثناء توقف الخادم. الآن يُتخطى الجدول المتأثر فقط، ويمكن استعادته باستخدام `DETACH`/`ATTACH`. [#107427](https://github.com/ClickHouse/ClickHouse/pull/107427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد `BACKUP` لقاعدة بيانات `MaterializedPostgreSQL` يتعطل إلى الأبد مع `Table ... were created or changed its definition during scanning`، وأصبح الآن ينسخ بيانات الجدول احتياطيًا فعليًا (ويُفوَّض ذلك إلى `ReplacingMergeTree` الأساسي)، ويمكن استعادتها بعد ذلك كـ `ReplacingMergeTree` مستقل. [#107433](https://github.com/ClickHouse/ClickHouse/pull/107433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تراجع كان فيه تعيين `compatibility = '26.6'` (الذي يفعّل ضمنيًا partition strategy `hive`) يقبل بصمت `{_partition_id}` في مسارات جداول S3/object storage بدلًا من إطلاق `BAD_ARGUMENTS`. [#107437](https://github.com/ClickHouse/ClickHouse/pull/107437) ([Lefteris](https://github.com/LefterisXefteris)).
* تم إصلاح تسرّب للذاكرة في `mongo-c-driver` المضمّن، وكان يمكن أن يحدث عند القراءة من MongoDB (على سبيل المثال، عبر MongoDB Dictionary أو `mongodb` table function) إذا أعقب خطأ قراءة قابل لإعادة المحاولة فشلٌ في اختيار الخادم أثناء إعادة المحاولة. [#107448](https://github.com/ClickHouse/ClickHouse/pull/107448) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح استثناء عند إدراج البيانات في جدول `Iceberg` أُنشئت metadata الخاصة به بواسطة external engine وكانت تُهمل المصفوفات الاختيارية `snapshots` أو `metadata-log` أو `snapshot-log`. أصبحت عمليات insert هذه تنجح الآن بدلًا من أن تفشل. [#107473](https://github.com/ClickHouse/ClickHouse/pull/107473) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح اشتراط `DELETE FROM` (lightweight delete) لامتياز `ALTER UPDATE` بالإضافة إلى `ALTER DELETE`. يمكن الآن للمستخدم الذي مُنح `ALTER DELETE` فقط تشغيل `DELETE FROM`، كما هو موثق. [#107491](https://github.com/ClickHouse/ClickHouse/pull/107491) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح `NOT_FOUND_COLUMN_IN_BLOCK` عند قراءة ملفات مقسّمة بأسلوب Hive مع `use_hive_partitioning = 1` وعبارة `WHERE`/`PREWHERE` تُرشّح column حقيقيًا (غير افتراضي) مع تحديد column partition خاص بـ Hive أيضًا. [#107505](https://github.com/ClickHouse/ClickHouse/pull/107505) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` (`Different order of columns in UNION subquery`) عندما يقرأ analyzer القديم (`enable_analyzer = 0`) مجموعة فرعية من columns من subquery تكون فيه فروع `UNION` التابعة عمليات set operations من نوع `INTERSECT`/`EXCEPT`. [#107511](https://github.com/ClickHouse/ClickHouse/pull/107511) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تحويل قيم `NULL` بصمت إلى سلاسل فارغة عند إدراج بيانات `Arrow`/`ORC` في column من النوع `LowCardinality(Nullable(...))`. وكان هذا تراجعًا أُدخل في الإصدار 26.5. [#107532](https://github.com/ClickHouse/ClickHouse/pull/107532) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح خطأ منطقي (`Stream ... variant_discr ... is not found`) كان يمكن أن يحدث عند دمج أو قراءة جزء `MergeTree` ناتج عن mutation لجدول يحتوي على عمود `Dynamic`. [#107562](https://github.com/ClickHouse/ClickHouse/pull/107562) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح خطأ منطقي (`WhichDataType(const_type).isArray()`) أثناء تحليل المفتاح الأساسي عند استدعاء `pointInPolygon` باستخدام وسيطة polygon ثابتة من نوع مغلف مثل `Variant` أو `Dynamic` (على سبيل المثال، `pointInPolygon((x, y), if(c, [(0, 0), ...], NULL))`). [#107589](https://github.com/ClickHouse/ClickHouse/pull/107589) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي (`Last stored last_written_position in meta file ... is bigger than current last_written_pos`) في محرك `FileLog` كان يمكن أن يحدث عند حذف ملف خاضع للمراقبة ثم إعادة إنشائه مع إعادة استخدام نفس inode. [#107617](https://github.com/ClickHouse/ClickHouse/pull/107617) ([Groene AI](https://github.com/groeneai)).
* إصلاح إيقاف نادر للخادم (`std::future_error`: `The associated promise has been destructed prior to the associated state becoming ready`) أثناء معالجة طلبات عميل ZooKeeper، عندما أُسقط Keeper request غير متزامن أثناء إرساله، على سبيل المثال تحت memory pressure. [#107647](https://github.com/ClickHouse/ClickHouse/pull/107647) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `RESTORE` لجداول `ReplicatedMergeTree` بحيث يتم الاحتفاظ بالأجزاء ذات المحتوى المكرر من النسخة الاحتياطية بدلًا من إزالة تكرارها بصمت. [#107652](https://github.com/ClickHouse/ClickHouse/pull/107652) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح مرشح الربط وقت التشغيل الذي كان ينتج نتائج خاطئة لأعمدة `JSON`. يغلق [#107646](https://github.com/ClickHouse/ClickHouse/issues/107646). [#107663](https://github.com/ClickHouse/ClickHouse/pull/107663) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح نتائج غير صحيحة من distributed queries التي تحدد أعمدة `ALIAS` تشترك في expression فرعي واحد: إذ كان يمكن أن تصبح الأعمدة غير متطابقة وتُعاد القيم تحت العمود الخطأ. [#107675](https://github.com/ClickHouse/ClickHouse/pull/107675) ([Vladimir Cherkasov](https://github.com/vdimir)).
* أصبحت الحصص المرتبطة بـ `normalized_query_hash` تحتسب الآن جميع الموارد (`read_rows`, `read_bytes`, `result_rows`, `result_bytes`, `execution_time`, `written_bytes`, `errors`) لكل query pattern، مثل عدادات عدد الاستعلامات، بدلًا من احتسابها ضمن حاوية مشتركة واحدة لكل مستخدم. [#107681](https://github.com/ClickHouse/ClickHouse/pull/107681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح خطأ منطقي من نوع `Block structure mismatch in UnionStep stream` (إيقاف للخادم في builds الخاصة بـ debug/sanitizer، و`Code: 49` في builds الإصدار) كان يحدث عندما كانت branches الشقيقة في `UNION`/`INTERSECT`/`EXCEPT` تختلف فقط في `WHERE` predicate، وتم طي predicate الخاص بأحد الفروع كثابت إلى عمود `Const`. [#107719](https://github.com/ClickHouse/ClickHouse/pull/107719) ([Groene AI](https://github.com/groeneai)).
* إصلاح أخطاء منطقية (`Bad cast`) ناجمة عن إزالة غير متسقة لـ `LowCardinality` المتداخلة داخل أعمدة `Variant` و`Dynamic`، على سبيل المثال في `concat` و`format` وتحليل المفتاح الأساسي. يغلق [#107598](https://github.com/ClickHouse/ClickHouse/issues/107598). [#107773](https://github.com/ClickHouse/ClickHouse/pull/107773) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح اختلال شديد في توزيع العمل مع parallel replicas عندما تحتوي الـ cluster على replicas غير نشطة (على سبيل المثال، entries قديمة متروكة بعد autoscaling). لم تعد هذه replicas تُحتسب من قبل coordinator القراءة، لذلك يُوزَّع العمل على replicas المتصلة بدلًا من تكدسه على واحدة فقط. [#107805](https://github.com/ClickHouse/ClickHouse/pull/107805) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء `Not-ready Set is passed as the second argument` الذي كان يمكن أن يحدث إذا فشل بصمت إنشاء مجموعة استعلام فرعي `IN` أثناء تحليل المفتاح الأساسي (على سبيل المثال، عند انتهاء مهلة استعلام فرعي مع `overflow_mode = 'break'`)، ما كان يترك المجموعة غير مُنشأة نهائيًا ضمن مسار تنفيذ الاستعلام. [#107924](https://github.com/ClickHouse/ClickHouse/pull/107924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل الخادم في predicate pushdown (`enable_optimize_predicate_expression`، المحلّل القديم) عندما يظهر استعلام فرعي `UNION` داخل شرط `JOIN ... ON`. [#107930](https://github.com/ClickHouse/ClickHouse/pull/107930) ([Groene AI](https://github.com/groeneai)).
* إصلاح أخطاء `CHECKSUM_DOESNT_MATCH` وأخطاء قراءة `Parquet` الزائفة (وكذلك، لبعض formats، نتائج خاطئة بصمت) عندما يُستبدل كائن في S3 أو S3-compatible (مثل GCS) في مكانه أثناء قراءته. أصبحت هذه القراءات الآن تفشل بخطأ واضح قابل لإعادة المحاولة بدلًا من إرجاع بيانات مركبة من إصدارين مختلفين للكائن؛ ويتحكم في ذلك الإعداد الجديد `s3_validate_etag_on_read` (مفعّل افتراضيًا). [#107934](https://github.com/ClickHouse/ClickHouse/pull/107934) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح فشل `SELECT` مع `NOT_FOUND_COLUMN_IN_BLOCK` على جدول يحتوي على skipping index من نوع البيانات `set` عندما تقوم `ROW POLICY` بتصفيته باستخدام شرط صحيح دائمًا مع تحقق من عمود غير مفهرس. [#107971](https://github.com/ClickHouse/ClickHouse/pull/107971) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح parsing لمعاملات أمر executable user-defined function بحيث لا تُقبل placeholders ذات الأسماء الفارغة أو غير الصالحة كمعاملات. [#107983](https://github.com/ClickHouse/ClickHouse/pull/107983) ([Goutam Adwant](https://github.com/goutamadwant)).
* إصلاح تراجع الأداء في subcolumns الخاصة بـ `Map` مع `PREWHERE`. يغلق [#107912](https://github.com/ClickHouse/ClickHouse/issues/107912). نتج عن [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200). [#107988](https://github.com/ClickHouse/ClickHouse/pull/107988) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح كتابة خارج الحدود عند قراءة عمود `Variant` من block `Native` تالف تشير فيه discriminators إلى فهرس variant غير موجود. [#107991](https://github.com/ClickHouse/ClickHouse/pull/107991) ([uwezkhan](https://github.com/uwezkhan)).
* إصلاح نتائج استعلام خاطئة بسبب pruning غير الصحيح للمفتاح الأساسي وpartition عند تطبيق `toStartOfDay` أو `toStartOfISOYear` أو `toDaysSinceYearZero` أو `toRelativeSecondNum` أو `toRelativeMinuteNum` أو `toRelativeHourNum` أو `toRelativeWeekNum` أو `toRelativeDayNum` أو `toMonthNumSinceEpoch` أو `toYearNumSinceEpoch` على Key column من نوع `Date32` يحتوي على تواريخ خارج النطاق الذي يمكن للدالة تمثيله (وخاصة التواريخ السابقة لـ `1970-01-01`). كانت هذه الدوال تُعرّف نفسها على أنها monotonic بالنسبة إلى primary index، لكنها كانت سابقًا تلتف مع مثل هذه الوسيطات، ما كان قد يؤدي إلى استبعاد الفهرس granules تحتوي فعليًا على صفوف مطابقة؛ أما الآن فهي تتشبع عند حدود نوع النتيجة الخاص بها وتبقى monotonic على كامل نطاق `Date32`. [#108018](https://github.com/ClickHouse/ClickHouse/pull/108018) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح `accurateCastOrNull` لـ `Tuple` يكون أحد عناصره من النوع `Dynamic`/`Variant`: كان `NULL` الحقيقي من المصدر يُعامَل على أنه فشل في التحويل. بالنسبة إلى عنصر هدف من النوع `Nullable`، يبقى `NULL` من المصدر الآن عنصرًا `NULL` (بما يتوافق مع مصدر عادي من النوع `Tuple(Nullable(...))`)؛ أما بالنسبة إلى عنصر هدف غير `Nullable`، فإن `NULL` من المصدر يجعل الـ tuple بالكامل `NULL` بدلًا من إنتاج القيمة الافتراضية للعنصر؛ بينما تظل حالات فشل parse/overflow تجعل الـ tuple بالكامل `NULL`. [#108023](https://github.com/ClickHouse/ClickHouse/pull/108023) ([Groene AI](https://github.com/groeneai)). كما تم إصلاح خطأ منطقي عند تحويل column من النوع `Dynamic` أو `Variant` متداخل داخل `Tuple` إلى element type غير `Nullable` باستخدام `accurateCastOrNull` أو `accurateCastOrDefault`. [#108061](https://github.com/ClickHouse/ClickHouse/pull/108061) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `numericIndexedVectorPointwiseMultiply` الذي كان يعيد نتيجة فارغة عند الضرب في متجه كل قيمه واحد وله إعداد BSI ‏(bit-sliced index) مختلف. [#108027](https://github.com/ClickHouse/ClickHouse/pull/108027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `toTime64` و `CAST(... AS Time64)` اللذين لم يكونا يقيّدان القيم الخارجة عن النطاق إلى نطاق `Time64` في وضعي overflow ‏`saturate` و `ignore`، مما قد ينتج عنه قيم تظهر بشكل متطابق ولكن تُقارَن على أنها مختلفة. [#108028](https://github.com/ClickHouse/ClickHouse/pull/108028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `getClientHTTPHeader` الآن يُعامَل بشكل صحيح على أنه non-deterministic، ولذلك لم تعد نتيجته تُعاد استخدامها بشكل غير صحيح بواسطة query result cache. [#108029](https://github.com/ClickHouse/ClickHouse/pull/108029) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `clickhouse-client --port 9440` يفعّل تلقائيًا مرة أخرى connection آمنًا (TLS)؛ وكان هذا معطّلًا بسبب إعادة هيكلة توقفت معها عملية تمرير المنفذ إلى آلية التحقق من الاتصال الآمن. [#108032](https://github.com/ClickHouse/ClickHouse/pull/108032) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد error عابر أثناء refresh data parts الخاصة بـ table في وضع read-only يوقف نهائيًا مهمة refresh التي تعمل في background. [#108034](https://github.com/ClickHouse/ClickHouse/pull/108034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تأخر warnings الخاصة بفرط الحمل في memory/CPU/mutation داخل `system.warnings` بمقدار دورة واحدة عن asynchronous-metrics cycle (وغيابها في الدورة الأولى). [#108035](https://github.com/ClickHouse/ClickHouse/pull/108035) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت `mongodb` table function تقبل الآن `oid_columns` عند تمريره بوصفه argument مُسمّى (مثل `oid_columns='_id'`) بدلًا من رفضه مع `BAD_ARGUMENTS`. [#108039](https://github.com/ClickHouse/ClickHouse/pull/108039) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `Bad cast from type DB::ColumnNullable to DB::ColumnVector<...>` (خطأ منطقي) عندما يختار asterisk مؤهَّل (`t.*`) مفتاح `JOIN USING` ويكون ذلك الـ join متداخلًا تحت join من نوع `PASTE`/`CROSS`/الفاصلة أو join خارجي من نوع `ON`، مع `join_use_nulls = 0`. [#108043](https://github.com/ClickHouse/ClickHouse/pull/108043) ([Groene AI](https://github.com/groeneai)).
* إصلاح التعامل غير الصحيح مع تأكيدات العرض الصفري (`\b`, `^`, `$`) في دوال regexp "match all" وهي `extractAll`, `extractAllGroupsVertical`, `extractAllGroupsHorizontal`, `countMatches` و `splitByRegexp`. على سبيل المثال، يعيد `extractAll('new york is the greatest', '\b(\w)')` الآن بشكل صحيح الحرف الأول من كل كلمة بدلًا من كل حرف. [#108047](https://github.com/ClickHouse/ClickHouse/pull/108047) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `CREATE TABLE ... AS SELECT` على قواعد بيانات `Atomic`، إذ كان يترك جدولًا فارغًا عند فشل الاستعلام — على سبيل المثال، عندما لا يملك المستخدم صلاحية الوصول إلى جدول مُشار إليه من `subquery`. سابقًا، كانت إعادة المحاولة تُبلغ بأن الجدول موجود بالفعل بدلًا من إظهار `error` الأصلي. يُنشأ الجدول الآن عبر `temporary table` ولا يظهر إلا بعد اكتمال تعبئته بالكامل. [#108048](https://github.com/ClickHouse/ClickHouse/pull/108048) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح من الممكن الاستعلام عن قاموس `range_hashed` أو `complex_key_range_hashed` يستخدم نطاق `DateTime64` أو `Decimal` أو نطاق أعداد `floating-point` باستخدام `argument` مطابق لـ `dictGet`/`dictHas`. سابقًا، كانت مثل هذه `queries` تفشل برسالة `must be convertible to Int64`، وكانت `intervals` المفتوحة النهاية في نطاقات `Decimal`/`DateTime64` تُرجع `default value` بشكل غير صحيح. [#108052](https://github.com/ClickHouse/ClickHouse/pull/108052) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استثناء (`CANNOT_PARSE_TEXT`) عند تحميل قاموس ذي مفتاح `composite` تكون فيه `key columns` ليست أول `columns` في تعريف القاموس، وذلك مع `source` محلي من `ClickHouse` يستخدم `query` صريحًا. تُطابق `source columns` الآن مع `structure` القاموس حسب `name` بدلًا من ترتيبها. [#108053](https://github.com/ClickHouse/ClickHouse/pull/108053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح فشل `table function` ‏`values` مع `ARGUMENT_OUT_OF_BOUND` عند استخدام literal عشري لا يمكن تمثيله بدقة في `column` ذي نوع `floating-point` محدود الدقة (مثل `0.1` مع `column` من نوع `Float32`)، مثل `SELECT * FROM values('x Float32', 0.1)`. أصبحت مثل هذه `values` الآن مقبولة وتُحوَّل إلى أقرب قيمة قابلة للتمثيل، بما يتوافق مع `CAST` و`INSERT ... VALUES`. [#108055](https://github.com/ClickHouse/ClickHouse/pull/108055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `LOGICAL_ERROR` ‏(`No available columns`) عند تنفيذ `SELECT count()` (أو غيره من `queries` البسيطة) على `table` مُنح فيه المستخدم صلاحية `SELECT` على `ALIAS` `column` فقط. [#108056](https://github.com/ClickHouse/ClickHouse/pull/108056) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `mapFilter` و`mapSort` (و`variants` الخاصة به) و`mapConcat` التي كانت تُسقط `LowCardinality` من نوعَي المفتاح والقيمة في `Map`. سابقًا، كان `mapFilter` على `column` من النوع `Map(LowCardinality(String), String)` يُرجع `Map(String, String)`، ما قد يُفسد `metadata` الخاصة بـ `table` أُنشئ عبر `CREATE TABLE ... AS SELECT` ويتسبب في فشل `CHECK TABLE`. [#108057](https://github.com/ClickHouse/ClickHouse/pull/108057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح نتائج غير صحيحة عند استخدام `hasToken` على `text indexes` مع `tokenizer` غير `splitByNonAlpha`. [#108066](https://github.com/ClickHouse/ClickHouse/pull/108066) ([Robert Schulze](https://github.com/rschu1ze)).
* تم إصلاح تجمّد `SYSTEM RELOAD DICTIONARIES` (وكذلك `RELOAD DICTIONARY`) عند مشاركة عدد كبير من قواميس MySQL المعرّفة في XML لمجموعة `connection pool` واحدة عبر `share_connection`. أصبحت هذه المجموعات الآن تلتزم بـ `connection_pool_size` و`connection_wait_timeout` (القيمة الافتراضية 5 `seconds`) من `configuration`، بما يتوافق مع القواميس المعرّفة عبر `named collections`. [#108083](https://github.com/ClickHouse/ClickHouse/pull/108083) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح استخدام `EXISTS <dictionary>` مسموحًا للمستخدم الذي يملك فقط `privilege` ‏`SHOW DICTIONARIES` على القاموس (وكان ذلك يتطلب سابقًا `SHOW TABLES`). [#108084](https://github.com/ClickHouse/ClickHouse/pull/108084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح مشكلة في `CREATE TABLE dst AS src SETTINGS ...` (والصيغ المشابهة مع `ORDER BY`/`PARTITION BY` ولكن من دون `ENGINE` صريح) كانت تؤدي بصمت إلى إسقاط محرك الجدول المصدر، وعبارات التخزين (مثل table `TTL` والمفاتيح) والإعدادات. وأصبح الآن محرك الجدول وعبارات التخزين التي لم يجرِ تجاوزها تُورَّث من الجدول المصدر، كما تُدمَج الإعدادات المحددة فوق إعدادات الجدول المصدر. [#108085](https://github.com/ClickHouse/ClickHouse/pull/108085) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح فشل `INSERT` في جداول `MergeTree` مع الخطأ `filesystem error: in rename: Permission denied` على أنظمة الملفات المعتمدة على Windows ‏(WSL وCIFS/SMB وDocker Desktop bind mounts)، وكان السبب أن كاتب الجزء يترك واصفات الملفات مفتوحة أثناء إعادة تسمية دليل الجزء. [#108089](https://github.com/ClickHouse/ClickHouse/pull/108089) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح انهيار (إلغاء مرجعية مؤشر فارغ) عند الاستعلام عن جدول `Hive` من دون عبارة `WHERE`، مثل `SELECT * FROM hive_table`. [#108094](https://github.com/ClickHouse/ClickHouse/pull/108094) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `LOGICAL_ERROR` ‏("Unexpected return type from if") عند قراءة عمود مع `apply_mutations_on_fly = 1` بعد تنفيذ `ALTER UPDATE col = ... WHERE <cond>` بشرط غير ثابت أو غير محقق، يتبعه `ALTER MODIFY COLUMN col <new type>`. [#108128](https://github.com/ClickHouse/ClickHouse/pull/108128) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `toStartOfInterval` و`dateTrunc` اللتين كانتا تعيدان قيمة مقربة بدلًا من بداية الفاصل الزمني الذي تقع ضمنه القيمة عندما تكون دقة الإدخال أعلى من وحدة الفاصل، مثلًا `toStartOfInterval(toDateTime64('2023-10-09 10:11:12.000999', 6), INTERVAL 1 millisecond)` كانت تعيد `10:11:12.001` بدلًا من `10:11:12.000`. كما تأثر أيضًا التحميل الزائد الذي يستخدم origin صريحًا. يُغلق هذا [#103535](https://github.com/ClickHouse/ClickHouse/issues/103535). [#108186](https://github.com/ClickHouse/ClickHouse/pull/108186) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إخفاء المعلومات الحساسة في العمود `view_query` ضمن `system.query_views_log`. [#108214](https://github.com/ClickHouse/ClickHouse/pull/108214) ([Valerii Mordovskii](https://github.com/Fidelaggio)).
* تم إصلاح حالة تعطل في جدول `MergeTree` مرفق بفهرس تخطٍّ قديم من نوع `hypothesis` (وهو نوع فهرس أُزيل وأُبقي عليه فقط من أجل توافق `ATTACH`). سابقًا، كانت عملية lightweight `DELETE` أو `OPTIMIZE` أو `INSERT` عادي أو `SELECT` مفلتر على مثل هذا الجدول تفشل مع `ILLEGAL_INDEX` ‏("Index of type 'hypothesis' is no longer supported")، وكانت mutation الخاصة بـ `DELETE` تعيد المحاولة إلى ما لا نهاية. أما الآن فيُعامل هذا الفهرس الميت على أنه خامل: يُمرَّر كما هو من دون تغيير أثناء merge/mutation، ويُتخطى عند insert وأثناء تخطيط الاستعلام، ولا يزال بالإمكان حذفه باستخدام `ALTER TABLE ... DROP INDEX`. [#108217](https://github.com/ClickHouse/ClickHouse/pull/108217) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح عدم عمل الإعداد `type_json_allow_duplicated_key_with_literal_and_nested_object` مع المسارات محددة النوع في `JSON`. [#108218](https://github.com/ClickHouse/ClickHouse/pull/108218) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح `LOGICAL_ERROR` ‏(`Different list of shards in child plans`) عند تشغيل استعلام مع `make_distributed_plan = 1` على جدول `MergeTree` يحتوي على projection عادي أو تجميعي. [#108256](https://github.com/ClickHouse/ClickHouse/pull/108256) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `replaceRegexpOne` و`replaceRegexpAll` بحيث أصبحت `.` تطابق محارف السطر الجديد افتراضيًا، بما يتوافق مع بقية دوال regular expression. [#108265](https://github.com/ClickHouse/ClickHouse/pull/108265) ([linjiayu1025-collab](https://github.com/linjiayu1025-collab)).
* إصلاح خطأ منطقي عند تحويل `Array(Dynamic)` أو `Array(Variant)` إلى `QBit` باستخدام `accurateCastOrNull`، مثل `accurateCastOrNull(CAST(range(114), 'Array(Dynamic)'), 'QBit(Float32, 114)')`. [#108288](https://github.com/ClickHouse/ClickHouse/pull/108288) ([Groene AI](https://github.com/groeneai)).
* أصبح `index_granularity_bytes` الآن مطبَّقًا على أعمدة حالة `AggregateFunction`. سابقًا، كان الحد الأقصى لبايتات الـ granule يُتجاهَل لهذه الأعمدة (مثل حالات `uniqExact` في جداول `AggregatingMergeTree` وprojections التجميعية)، ما كان ينتج granules أكبر بكثير من الحد المضبوط ويزيد من تضخيم القراءة واستهلاك الذاكرة وقت الاستعلام. [#108297](https://github.com/ClickHouse/ClickHouse/pull/108297) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة تقييم شروط `UPDATE`/`DELETE` خفيفة الوزن مرتين، ما قد يؤدي إلى سلوك غير صحيح مع الشروط غير الحتمية وإلى عمل إضافي مع الشروط الحتمية. يغلق [#86032](https://github.com/ClickHouse/ClickHouse/issues/86032). [#108323](https://github.com/ClickHouse/ClickHouse/pull/108323) ([ofeliacode](https://github.com/ofeliacode)).
* إصلاح Exception في معالج HTTP معرّف مسبقًا عند غياب header من الطلب، رغم أن التعبير النمطي `headers_regexp` الخاص به يسمح بقيمة فارغة. [#108324](https://github.com/ClickHouse/ClickHouse/pull/108324) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح `arrayPartialSort` عند استخدام argument للحد غير ثابت. [#108327](https://github.com/ClickHouse/ClickHouse/pull/108327) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح مشكلة استمرار تنفيذ `INSERT` مُلغى أو تم `KILL` له لفترة طويلة أثناء بناء skip index (مثل فهرس `set(0)` غير محدود على عمود عالي الكاردينالية). أصبح بناء الفهرس الآن يتوقف سريعًا عند إلغاء الاستعلام. [#108351](https://github.com/ClickHouse/ClickHouse/pull/108351) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح عدم استجابة `SELECT` من table function `primes` للإلغاء: عند استخدام `step` كبير (أو `limit`) كان الاستعلام قد يستمر في العمل لفترة طويلة بعد `KILL QUERY` أو انتهاء المهلة. وهو الآن يتوقف سريعًا. [#108353](https://github.com/ClickHouse/ClickHouse/pull/108353) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح تحليل أسماء type names التي تتضمن substring `INT` ضمن الاسم (مثل اسم يشبه الدوال مثل `quantileInterpolatedWeighted` عند استخدامه في موضع نوع بيانات). كان يجري التعامل مع هذه الأسماء خطأً على أنها Integer types في MySQL، كما كانت أول مجموعة argument فيها `(...)` تُستهلك بصمت باعتبارها معدِّلًا لعرض العرض، ما قد يفسد round-trip لتنسيق الاستعلام. [#108354](https://github.com/ClickHouse/ClickHouse/pull/108354) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة عدم اتساق كان فيها `ARRAY JOIN` غير صحيح متبوعًا بفاصلة وقائمة جداول بين قوسين يُفسَّر خطأً على أنه cross join بدلًا من رفضه. [#108365](https://github.com/ClickHouse/ClickHouse/pull/108365) ([Raúl Marín](https://github.com/Algunenano)).
* إخفاء arguments السرية للدوال مثل `encrypt` و`decrypt` و`HMAC` في مخرجات `EXPLAIN actions` و`EXPLAIN header` و`EXPLAIN PIPELINE` عندما يكون `format_display_secrets_in_show_and_select` معطّلًا (وهو الوضع الافتراضي). [#108386](https://github.com/ClickHouse/ClickHouse/pull/108386) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح `CREATE OR REPLACE` لعرض materialized view قابل للتحديث مع هدف `TO`: كان يُرفَض خطأً لأن الجدول الهدف مملوك بالفعل للعرض الجاري استبداله. [#108392](https://github.com/ClickHouse/ClickHouse/pull/108392) ([Nikolay Degterinsky](https://github.com/evillique)).
* أُصلِح تعطل في الخادم (`Received signal 4`، تعليمة غير قانونية) كان يمكن أن يحدث بسبب دفق بروتوكول `native TCP` غير صالح أو غير متزامن. وأصبح الآن يُتحقق من أن العنوان الأولي الذي يرسله العميل هو `host:port` رقمي قبل تحليله، بدلًا من السماح بوصول منفذ غير رقمي إلى دالة `getservbyname` المحصورة في libc. [#108410](https://github.com/ClickHouse/ClickHouse/pull/108410) ([Groene AI](https://github.com/groeneai)).
* أُصلِح تعطل في الخادم أثناء الإيقاف عند إيقاف قاعدة بيانات تُلقي استثناءً (على سبيل المثال، عندما تصطدم عملية `flush` لجدول بمهلة ZooKeeper). ولم يعد ما تبقى من تسلسل الإيقاف يُتخطى، بحيث تُفرَّغ الآن سجلات النظام وتُنضم خيوطها قبل خروج الخادم. [#108417](https://github.com/ClickHouse/ClickHouse/pull/108417) ([Groene AI](https://github.com/groeneai)).
* أُصلِحت دوال regular expression (`match`, `extract`, `extractAll`, `replaceRegexpOne`, `replaceRegexpAll`، إلخ) التي كانت تُرجع بصمت نتائج خاطئة عندما كان النمط يحتوي على بايت NUL (`\0`). ويُعامَل NUL الآن على أنه بايت حرفي عادي، بما يتسق مع RE2. [#108427](https://github.com/ClickHouse/ClickHouse/pull/108427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح سلوك `clickhouse-local` الذي كان يُرجع ردًا فارغًا لطلبات HTTP `OPTIONS` عندما لا يكون `http_options_response` مُهيأً، مما كان يجعل واجهة الويب (`/play`) تعرض الاتصال على أنه معطّل رغم أن الاستعلامات كانت تعمل. [#108428](https://github.com/ClickHouse/ClickHouse/pull/108428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح استثناء `LOGICAL_ERROR` ("Invalid action query tree node ...") عند تنفيذ distributed query كانت تزيل التكرار من أعمدة `ALIAS` المكررة والمتطابقة بنيويًا، وتشير في الوقت نفسه إلى table function تحتوي على وسيطة named-collection بصيغة `key = value` (على سبيل المثال `oss(s3_conn, filename = '...')`). [#108435](https://github.com/ClickHouse/ClickHouse/pull/108435) ([Groene AI](https://github.com/groeneai)).
* أُصلِح تعطل في الخادم (`LOGICAL_ERROR: 'Unexpected exception in refresh scheduling'`) كان يمكن أن يحدث عند بدء التشغيل عندما تكون refreshable materialized view منسقة في قاعدة بيانات `Replicated` قد أُرفقت على Keeper لا يدعم علامة الميزة `MULTI_READ` (على سبيل المثال بعد خفض إصدار Keeper). وأصبح العرض الآن يتوقف بسلاسة بدلًا من إجهاض الخادم. [#108441](https://github.com/ClickHouse/ClickHouse/pull/108441) ([Groene AI](https://github.com/groeneai)).
* أُصلِح خطأ `NOT_FOUND_COLUMN_IN_BLOCK` (مثل `Column _part not found`) عند تحديد الأعمدة الافتراضية من جدول `MergeTree` في وضع parallel replicas، بما في ذلك عبر `SELECT *` مع `asterisk_include_virtual_columns = 1`. [#108451](https://github.com/ClickHouse/ClickHouse/pull/108451) ([Groene AI](https://github.com/groeneai)).
* يتطلب `SYSTEM RESET DDL WORKER` الآن امتياز `SYSTEM RESET DDL WORKER` الجديد. في السابق، كان بإمكان أي مستخدم موثَّق الهوية (بمن فيهم مستخدمو `readonly`) تشغيله وإعادة تعيين حالة عامل DDL مرارًا، مما كان يحجب DDL الخاصة بـ `ON CLUSTER`. [#108460](https://github.com/ClickHouse/ClickHouse/pull/108460) ([Groene AI](https://github.com/groeneai)).
* قُيِّد مسار النموذج الخاص بـ `catboostEvaluate` بدليل `user_files`، مثل table function ‏`file` وdictionary sources. في السابق، كانت الدالة تقبل أي path في filesystem من دون التحقق من بقائه ضمن هذا النطاق، مما كان يتيح اختبار وجود ملفات خارج `user_files` والتسبب في reads لها. ويجب الآن أن تكون النماذج موجودة داخل `user_files`. [#108463](https://github.com/ClickHouse/ClickHouse/pull/108463) ([Groene AI](https://github.com/groeneai)).
* تتطلب الدالة `hasColumnInTable` الآن امتياز `SHOW COLUMNS` على الجدول الهدف، وهو نفس الامتياز المطلوب لكل من `DESCRIBE` و`SHOW CREATE TABLE`. في السابق، كان بإمكان أي مستخدم استدعاء `hasColumnInTable` لاختبار أسماء الأعمدة والتحقق من وجود جدول وقاعدة بيانات من دون أي فحص لصلاحيات الوصول. [#108464](https://github.com/ClickHouse/ClickHouse/pull/108464) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح التخصيص المفرط للذاكرة عند إلغاء تسلسل حالات aggregate function الوسيطة المُصاغة لـ `mannWhitneyUTest` و`rankCorr` و`largestTriangleThreeBuckets` و`quantileGK` و`sequenceMatch`/`sequenceCount` و`groupArrayIntersect`. كان بإمكان حالة غير سليمة أن تعلن عددًا هائلًا من العناصر، فتجعل الخادم يحاول تخصيص عشرات الجيجابايتات انطلاقًا من بضع بايتات من الإدخال؛ وتُرفض هذه الحالات الآن بالخطأ `TOO_LARGE_ARRAY_SIZE`. [#108465](https://github.com/ClickHouse/ClickHouse/pull/108465) ([Groene AI](https://github.com/groeneai)).
* التحقّق من هدف إعادة التوجيه في استجابة S3 `301 Moved Permanently` بمقارنته مع `remote_url_allow_hosts` (`RemoteHostFilter`). سابقًا، كانت معالجة AWS SDK للرمز 301 تتبع endpoint الذي يورّده المهاجم في الاستجابة (ترويسة `Location` أو العنصر `<Endpoint>`) من دون التحقق من المضيف، ما كان يتيح لخادم S3-compatible خبيث أو مخترَق إعادة توجيه ClickHouse إلى مضيف عشوائي (SSRF). وكان مسار إعادة التوجيه 307 يُجري هذا التحقق بالفعل؛ وأصبح المساران الآن متسقين. [#108466](https://github.com/ClickHouse/ClickHouse/pull/108466) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تسرّب لبيانات الاعتماد، إذ كانت الإعدادات القديمة `storage_aws_access_key_id` و`storage_aws_secret_access_key` و`storage_catalog_credential` و`storage_auth_header` الخاصة بـ database engine ‏`DataLakeCatalog` تظهر بنص واضح في `system.databases.engine_full` و`SHOW CREATE DATABASE`. وأصبحت الآن تُحجب على شكل `[HIDDEN]`. [#108470](https://github.com/ClickHouse/ClickHouse/pull/108470) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تحديد هوية المستخدم `ssl_certificate` بحيث يطابق حرف البدل المفرد `*` مكوّن اسم واحدًا فقط بدقة (RFC 6125 6.4.3). سابقًا، كان حرف البدل في الموضوع `CN` أو `DNS:` SAN (على سبيل المثال `*.corp.example.com`) يطابق أيضًا الأسماء متعددة الأجزاء مثل `evil.deep.corp.example.com`، مما يتيح لحامل شهادة لنطاق فرعي أعمق أن يصادق بصفته مستخدم حرف البدل. ولم يتغير تطابق `URI:` SAN. [#108472](https://github.com/ClickHouse/ClickHouse/pull/108472) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح ثغرة SQL injection في MySQL wire protocol: إذ أصبحت وسيطة `SHOW TABLE STATUS LIKE` وقيمة `SET <mysql_setting>` المُرسلتان عبر MySQL interface (المنفذ 9004) تُحلَّلان وتُعاد صياغتهما بين علامتَي اقتباس بدلًا من دمجهما حرفيًا في query المعاد كتابته. كما تم إصلاح تجاهل `KILL QUERY <id>` عبر MySQL interface بصمت لمعرّفات الاتصال متعددة الأرقام. [#108474](https://github.com/ClickHouse/ClickHouse/pull/108474) ([Groene AI](https://github.com/groeneai)).
* لم تعد القيم الحساسة التي تُمرَّر كمعلمات query string في HTTP (على سبيل المثال ربط معلمات `param_*` مثل `param_secret_key`/`param_aws_secret_access_key`، أو المعلمة `password`، أو معلمات `signature` بأسلوب S3) تُكتب حرفيًا في `system.text_log` أو OpenTelemetry spans. ويقوم سطر السجل `Request URI` الآن بحجب قيم المعلمات التي تبدو أسماؤها حساسة، مع استبدالها بـ `[HIDDEN]`. [#108475](https://github.com/ClickHouse/ClickHouse/pull/108475) ([Groene AI](https://github.com/groeneai)).
* تم فرض configuration ‏`http_forbid_headers` أثناء schema inference للدالة الجدولية `url` وstorage engine ‏`URL`. سابقًا، كانت ترويسة محظورة لا تزال تُرسل عبر الشبكة أثناء استنتاج المخطط (على سبيل المثال مع التنسيق `Regexp` أو `DESCRIBE`)، وكان يمكن أن ينعكس جسم الاستجابة الخاص بها في خطأ parse، مما يسرّب الأسرار. ويجري الآن التحقق من عامل تصفية الترويسات قبل أي وصول إلى الشبكة في مسار الاستنتاج، بما يطابق السلوك الحالي لـ `urlCluster`. [#108476](https://github.com/ClickHouse/ClickHouse/pull/108476) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح النتائج الخاطئة عند استخدام `SELECT ... SAMPLE ...` مع query condition cache (الإعداد `use_query_condition_cache`، المفعّل افتراضيًا). [#108488](https://github.com/ClickHouse/ClickHouse/pull/108488) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل في الخادم (فيض في المكدس) كان يحدث بسبب التعبيرات المتداخلة بعمق مثل `[[[ ... ]]]` أو `array(array( ... ))` عندما تكون `max_parser_depth` مضبوطة على قيمة كبيرة. [#108493](https://github.com/ClickHouse/ClickHouse/pull/108493) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح تعليق محرك الجدول `RabbitMQ` إلى أجل غير مسمى عند تنفيذ `DROP TABLE` أو إيقاف الخادم، وذلك عندما يغلق الوسيط اتصال AMQP بسبب فقدان نبضات القلب من دون إرسال TCP RST. وأصبحت جميع استدعاءات حلقة الأحداث الحاجبة تملك الآن مهلة قدرها 30 ثانية، بحيث يكتمل الإيقاف دائمًا. [#108497](https://github.com/ClickHouse/ClickHouse/pull/108497) ([Aly Ayman](https://github.com/alyelmorsy-dataengineer)).
* ستُسجَّل الآن الاستعلامات الثانوية التي تُنفَّذ كجزء من الاستعلامات الداخلية على أنها استعلامات داخلية. [#108506](https://github.com/ClickHouse/ClickHouse/pull/108506) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أصبح محرك الجدول `ArrowFlight` وtable function ‏`arrowFlight` يلتزمان الآن بقائمة السماح `<remote_url_allow_hosts>`. في السابق، لم يكن يجري التحقق من المضيف والمنفذ الخاصَّين بالاتصال، لذا كان يمكن للاستعلام الوصول إلى مضيفين غير موجودين في قائمة السماح. [#108507](https://github.com/ClickHouse/ClickHouse/pull/108507) ([Groene AI](https://github.com/groeneai)).
* تفرض أوامر MySQL wire protocol `COM_FIELD_LIST` (`mysql_list_fields`) و`COM_INIT_DB` (`USE database`) الآن نفس آلية access control المطبقة على مكافئاتها في SQL (`SHOW COLUMNS`/`DESCRIBE` و`USE`). في السابق، كان يمكنها كشف أسماء أعمدة الجداول التي لا يملك المستخدم عليها سوى صلاحيات جزئية على الأعمدة، وكذلك تبديل قاعدة البيانات الحالية من دون امتياز `SHOW DATABASES`. [#108508](https://github.com/ClickHouse/ClickHouse/pull/108508) ([Groene AI](https://github.com/groeneai)).
* أصبحت `http_forbid_headers` تُطابَق الآن دون اعتبار لحالة الأحرف. وأسماء HTTP header غير حساسة لحالة الأحرف، لذا فإن حظر `Authorization` يمنع الآن أيضًا `authorization` و`AUTHORIZATION` وغيرها من اختلافات حالة الأحرف. كما أصبحت أنماط `header_regexp` المُعدّة تُطابَق الآن دون اعتبار لحالة الأحرف من دون الحاجة إلى الراية الصريحة `(?i)`. [#108509](https://github.com/ClickHouse/ClickHouse/pull/108509) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل في الخادم (خطأ تجزئة) كان يمكن أن يحدث عندما كان استعلام موزع يشير إلى `MATERIALIZED` CTE لم يُمثَّل ماديًا بعد بوصفه جدولًا خارجيًا، وكان المصدر البعيد يُنشأ عند الطلب. [#108547](https://github.com/ClickHouse/ClickHouse/pull/108547) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نتائج خاطئة عندما كانت query condition cache (`use_query_condition_cache = 1`) تعيد استخدام استبعاد العلامات المشتق من skip index لاستعلام شغّل مجموعة مختلفة من skip indexes، على سبيل المثال مع `use_skip_indexes = 0` أو `ignore_data_skipping_indices` أو وضع مختلف لـ `use_skip_indexes_for_disjunctions`. وأصبحت cache entries المشتقة من skip index تُفهرس الآن وفق المجموعة الفعلية من skip indexes التي شُغِّلت. [#108548](https://github.com/ClickHouse/ClickHouse/pull/108548) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح عدة أخطاء في `changeYear` و`changeMonth` و`changeDay` و`changeHour` و`changeMinute` و`changeSecond` مع وسائط `DateTime64`: كان عمود النتيجة يُنشأ بالمقياس الافتراضي المضمّن 3 بدلًا من مقياس الوسيط، مما أدى إلى `LOGICAL_ERROR` (`writeSlice expects same column types`) عند تمرير النتيجة إلى `arrayPushBack`/`arrayPushFront`/`arrayConcat`؛ وكانت المدخلات بدقة النانوثانية (المقياس 9) تُطلق `DECIMAL_OVERFLOW`؛ وكانت المدخلات ذات الأجزاء دون الثانية قبل epoch تُرجع ثانية تقويمية غير صحيحة. كما تم أيضًا إصلاح `timeSlots` مع `DateTime64`، إذ كان يتجاهل مقياس وسيط `Size` الاختياري في نوع الإرجاع المعلن ويُرجع timestamps غير صحيحة لأكبر مقياس في `Size`. [#108551](https://github.com/ClickHouse/ClickHouse/pull/108551) ([Groene AI](https://github.com/groeneai)). [#108681](https://github.com/ClickHouse/ClickHouse/pull/108681) ([Takumi Hara](https://github.com/takumihara)). [#108994](https://github.com/ClickHouse/ClickHouse/pull/108994) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` عند استخدام اسم مستعار لـ compound predicate في `GROUP BY` ثم الرجوع إليه مرة أخرى، مع تفعيل `enable_identifier_resolve_cache` (وهو الإعداد الافتراضي). [#108553](https://github.com/ClickHouse/ClickHouse/pull/108553) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ منطقي (`Equal values are not contiguous within the range assumed to be sorted`) عند تشغيل `DISTINCT` على قراءة `STREAM` (`SELECT DISTINCT ... FROM table STREAM`). لم تعد تحسينات القراءة بالترتيب تُطبَّق على قراءات `STREAM`، لأنها تُنتج الصفوف وفق ترتيب الالتزام لا وفق ترتيب مفتاح الفرز. [#108568](https://github.com/ClickHouse/ClickHouse/pull/108568) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة كانت تؤدي إلى أن تُرجع projections القيمة الافتراضية لنوع العمود (مثل `0`) بدلًا من قيمة `DEFAULT` المعلنة له (مثل `-1`) في حالتين: عند قراءة عمود أُضيف باستخدام `ALTER TABLE ... ADD COLUMN ... DEFAULT` بعد إنشاء الـ projection (وكانت القراءات من base table صحيحة بالفعل)، وبعد انتهاء صلاحية `TTL` الخاصة بالعمود على Wide part. [#108569](https://github.com/ClickHouse/ClickHouse/pull/108569) ([Shaohua Wang](https://github.com/tiandiwonder)). [#109013](https://github.com/ClickHouse/ClickHouse/pull/109013) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح الخطأ `ReadBuffer is canceled. Can't read from it.` الذي كان قد يحدث عند إعادة محاولة الرفع إلى S3 (مثل نسخة احتياطية) بعد خطأ قراءة عابر. [#108573](https://github.com/ClickHouse/ClickHouse/pull/108573) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة كانت تجعل `ATTACH PARTITION ... FROM` يرفض الجداول التي تكون primary keys فيها متكافئة ولكن مُعلنة بصيغ مختلفة (إحداهما `PRIMARY KEY` صريحة، والأخرى ضمنية من `ORDER BY`). [#108590](https://github.com/ClickHouse/ClickHouse/pull/108590) ([Jordi Orihuela](https://github.com/jordiori)).
* إصلاح فشل direct read من text index عند وجود عدة text indexes ممثلة ماديًا جزئيًا. يُصلح هذا [#108530](https://github.com/ClickHouse/ClickHouse/issues/108530). [#108607](https://github.com/ClickHouse/ClickHouse/pull/108607) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح كشف metadata، حيث كانت `DESCRIBE loop('db', 'table')` و `DESCRIBE loop(<inner table function>)` تتجاوزان فحص الوصول إلى `SHOW COLUMNS` / المصدر، مما يتيح لمستخدم غير مخوّل قراءة مخطط أعمدة الجدول. [#108624](https://github.com/ClickHouse/ClickHouse/pull/108624) ([Groene AI](https://github.com/groeneai)).
* إصلاح العمود الافتراضي `_etag` في محركي الجدول `S3Queue` و `AzureQueue`: إذ كان مُعلنًا لكنه لم يكن يُملأ مطلقًا، لذلك كان `SELECT _etag` يُرجع دائمًا سلسلة فارغة. وهو الآن يُرجع ETag الخاص بالكائن، مثل محرك `S3` و table function ‏`s3`. [#108625](https://github.com/ClickHouse/ClickHouse/pull/108625) ([Groene AI](https://github.com/groeneai)).
* إصلاح قراءة ملفات `Arrow` و`ArrowStream` وملفات `ORC` المعتمدة على Arrow عندما كان عمود timestamp فيها يحمل إزاحة UTC رقمية ثابتة (مثل `+05:30` و`-08:00` و`00:00`) أو الوسم غير التابع لـ IANA وهو `fixed` بوصفه timezone له، إذ كان ذلك يفشل سابقًا مع `Cannot load time zone ...` (`BAD_ARGUMENTS`). [#108633](https://github.com/ClickHouse/ClickHouse/pull/108633) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء (`LOGICAL_ERROR: Join is supported only for pipelines with one output port` أو `NOT_IMPLEMENTED: MergeJoinAlgorithm is not implemented for strictness Semi`) عند استخدام `join_algorithm = 'full_sorting_merge'` مع join من نوع `SEMI`/`ANTI`، بما في ذلك عمليات join الناتجة عن فك الارتباط في correlated subquery من نوع `EXISTS`. وأصبح `full_sorting_merge` الآن يرفض تراكيب strictness/kind التي لا يمكنه تنفيذها، بحيث يعود المخطط إلى استخدام خوارزمية أخرى مفعّلة أو يُبلغ بأن join لا يمكن تنفيذه. [#108658](https://github.com/ClickHouse/ClickHouse/pull/108658) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تجاوز سعة مخزن مؤقت في heap عند بناء فهرس نصي باستخدام `positions = 1` على عدد كبير من الرموز القصيرة المختلفة. [#108659](https://github.com/ClickHouse/ClickHouse/pull/108659) ([Groene AI](https://github.com/groeneai)).
* أصبح الآن يُبلَّغ عن أي استعلام يقرأ من S3 أو يكتب إليه ويُلغى (مثلًا بواسطة `KILL QUERY`) أثناء وجود طلب S3 قيد التنفيذ على أنه مُلغى، بدلًا من الإبلاغ عنه كخطأ مضلل في الشبكة أو S3. وعلى وجه الخصوص، أصبح أي نسخ احتياطي أو استعادة إلى S3 يتم إلغاؤه يُبلَّغ عنه الآن على أنه `BACKUP_CANCELLED`/`RESTORE_CANCELLED` في `system.backups`. [#108673](https://github.com/ClickHouse/ClickHouse/pull/108673) ([Julia Kartseva](https://github.com/jkartseva)).
* تم إصلاح حالة فشل عند بدء التشغيل، حيث كانت قاعدة بيانات `DataLakeCatalog` التي أُنشئت بإصدار أقدم (25.12 أو ما قبله) مع `auth_header` غير صحيح التنسيق، تتعذر تهيئتها بعد الترقية إلى 26.2 أو أحدث، مما كان يمنع الخادم من البدء. أصبح `auth_header` الآن يُتحقق منه فقط عند `CREATE`، وعند `ATTACH` يُنشأ الكتالوج بشكل كسول عند أول استخدام بدلًا من إنشائه أثناء بدء التشغيل، لذا لم تعد قاعدة بيانات كتالوج واحدة سيئة الإعداد أو غير قابلة للوصول تمنع بدء تشغيل الخادم. [#108674](https://github.com/ClickHouse/ClickHouse/pull/108674) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي (`Sort order of blocks violated`) أثناء الدمج، إلى جانب قراءات غير صحيحة، عندما يُستخدم عنصر `LowCardinality` غير قابل لـ `NULL` من عمود `Nullable(Tuple(...))` كعمود فرعي، مثل استخدامه كمفتاح فرز. [#108679](https://github.com/ClickHouse/ClickHouse/pull/108679) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل محتمل (use-after-free) عندما يعمل `SYSTEM FLUSH DISTRIBUTED` بالتزامن مع `DROP TABLE` للجدول `Distributed` نفسه. [#108684](https://github.com/ClickHouse/ClickHouse/pull/108684) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل في فك ترميز Base64 لمفتاح حساب Azure، ويمكن الوصول إليه عبر `azureBlobStorage` (ودوال الجداول ووحدات التخزين المرتبطة بـ Azure) عندما لا يكون المفتاح Base64 صالحًا: إذ كانت قيمة بايت `>= 0x80` تتسبب في قراءة خارج الحدود، وكان أي بايت غير صالح يؤدي إلى سلوك undefined. وأصبح الآن يُرفض المفتاح غير الصالح بشكل سليم. [#108716](https://github.com/ClickHouse/ClickHouse/pull/108716) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `NUMBER_OF_COLUMNS_DOESNT_MATCH` عندما يقرأ استعلام فرعي على جدول `Distributed` عمودَي `ALIAS` أو أكثر يتم توسيعهما إلى التعبير نفسه (مثلًا `a1 String ALIAS toString(x), a2 String ALIAS toString(x)`) ويغذي الاستعلامُ الفرعي استعلامًا خارجيًا، مثل `SELECT count() FROM (SELECT a1, a2 FROM dist GROUP BY a1, a2)`. [#108725](https://github.com/ClickHouse/ClickHouse/pull/108725) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة في `CREATE OR REPLACE MATERIALIZED VIEW ... POPULATE` كانت تترك العرض الجديد غير مشترك مع جدول المصدر الخاص به، مما كان يؤدي بصمت إلى إسقاط كل صف يُدرج بعد الاستبدال. [#108728](https://github.com/ClickHouse/ClickHouse/pull/108728) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استثناء (`Cannot find sharding key column`، وفي بُنى debug و sanitizer كان يحدث إيقاف للخادم) عندما يكون مفتاح التجزئة لجدول `Distributed` تعبيرًا يختزله المحلل إلى ثابت، مثل `if(1, toInt32(id), toInt32(id) + 1)`، مع `optimize_skip_unused_shards = 1`. [#108737](https://github.com/ClickHouse/ClickHouse/pull/108737) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي (`Bad cast from type DB::ColumnNullable to DB::ColumnString`) واحتمال ظهور نتائج غير صحيحة عند استخدام `group_by_use_nulls` مع مفتاح تجميع ثابت من نوع `LowCardinality` في `GROUPING SETS`/`ROLLUP`/`CUBE`. [#108771](https://github.com/ClickHouse/ClickHouse/pull/108771) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تعطُّل استبعاد partition والمفتاح الأساسي بصمت عندما يكون عمود المفتاح `LowCardinality(FixedString)` (أو `LowCardinality(Nullable(FixedString))`) ملفوفًا داخل دالة في المفتاح، مثل `PARTITION BY sipHash64(k) % N` مع `WHERE k = 'literal'`. كانت مثل هذه الاستعلامات تفحص جميع أقسام partition بدلًا من استبعادها. [#108777](https://github.com/ClickHouse/ClickHouse/pull/108777) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي (يؤدي إلى إيقاف الخادم في بنيات debug وsanitizer) عند إلغاء `INSERT ... SELECT` عبر جدول `Alias`، أو إلى جدول `TimeSeries`، من دون استثناء، مثلًا عند استخدام `timeout_overflow_mode = 'break'`. [#108783](https://github.com/ClickHouse/ClickHouse/pull/108783) ([Groene AI](https://github.com/groeneai)). [#108796](https://github.com/ClickHouse/ClickHouse/pull/108796) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح خطأ منطقي من النوع `Bad cast from type DB::ColumnSparse to DB::ColumnString` (يؤدي إلى إيقاف الخادم في بنيات debug وsanitizer) عند تطبيق `groupConcat` على `Tuple` يكون عنصر `String` فيه مخزَّنًا بشكل sparse. [#108790](https://github.com/ClickHouse/ClickHouse/pull/108790) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `TYPE_MISMATCH` في `mapFilter` و`mapSort` و`mapReverseSort` و`mapPartialSort` و`mapConcat` عندما تحتوي قيمة `Map` على `Map` متداخل مع `LowCardinality`، مثل `mapFilter((k, v) -> 1, map('a'::LowCardinality(String), map('x'::LowCardinality(String), 'y')))`. [#108798](https://github.com/ClickHouse/ClickHouse/pull/108798) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح عدم قيام `insert_quorum = 'auto'` برفض inserts مسبقًا عندما يكون عدد replicas الحية أقل من الأغلبية. أصبحت مثل هذه inserts تفشل الآن فورًا برسالة `TOO_FEW_LIVE_REPLICAS` بدلًا من كتابة جزء محلي ثم انتهاء المهلة لاحقًا مع `UNKNOWN_STATUS_OF_INSERT`. [#108800](https://github.com/ClickHouse/ClickHouse/pull/108800) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* تم إصلاح bug كان يجعل صف `WITH TOTALS` في `JOIN` يحتوي أحيانًا على قيم default (مثل `0`) بدلًا من القيم الثابتة القادمة من استعلام فرعي ثابت على أحد جانبي join. كانت النتيجة الخاطئة تظهر فقط مع بعض ترتيبات join أو مع الإعداد `query_plan_join_swap_table`. [#108807](https://github.com/ClickHouse/ClickHouse/pull/108807) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح fault ناتج عن segmentation (إلغاء مرجع مؤشر فارغ) كان يمكن أن يحدث عند تنفيذ إيقاف الخادم بالتزامن مع إيقاف جدول `S3Queue`/`AzureQueue`. [#108810](https://github.com/ClickHouse/ClickHouse/pull/108810) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح توقف عند بدء التشغيل (`Cannot allocate ThreadStack`, `EINVAL`) في بنيات glibc التي تعمل على معالجات CPU ذات حجم كبير لمكدس الإشارات (مثل Intel Sapphire Rapids / Granite Rapids مع نواة تدعم AMX)، حيث لم يكن حجم مكدس الإشارات البديل يُقرَّب إلى مضاعف لحجم الصفحة. [#108813](https://github.com/ClickHouse/ClickHouse/pull/108813) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح فشل الاستعلامات الموزعة أحيانًا برسالة `UNEXPECTED_PACKET_FROM_SERVER` (`expected TablesStatusResponse, got ProfileInfo`) عند إعادة استخدام connection من المجمّع كانت query ملغاة سابقة قد تركتها في حالة عدم تزامن. [#108854](https://github.com/ClickHouse/ClickHouse/pull/108854) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح خطأ منطقي (استثناء في إصدارات build النهائية، وإيقاف للخادم في إصدارات debug وsanitizer) كان يمكن أن يحدث عند استدعاء دالة لها أكثر من وسيط `LowCardinality` واحد على distributed table، مثل `concatAssumeInjective((SELECT toLowCardinality('p')), s)` عند استخدامها كمفتاح `GROUP BY` مع table function ‏`remote`. وكانت الرسائل هي `Default functions implementation for LowCardinality is supported only with a single LowCardinality argument` أو `Expected the argument ... to have N rows, but it has M`. [#108871](https://github.com/ClickHouse/ClickHouse/pull/108871) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `reinterpret(x, 'Decimal128(scale)')` (وكذلك الأهداف `Decimal32`/`Decimal64`/`Decimal256`/`DateTime64`) الذي كان ينتج عمود نتائج يكون فيه scale الداخلي هو scale المصدر بدلًا من scale الهدف المطلوب، عندما كان المصدر والهدف من النوع الفيزيائي نفسه. كانت القيم صحيحة، لكن كائن العمود كان غير متسق بنيويًا مع نوعه المُعلَن. [#108878](https://github.com/ClickHouse/ClickHouse/pull/108878) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` (`New empty part is about to materialize but the directory already exist`) كان يمكن أن يؤدي إلى إيقاف الخادم في إصدارات debug وsanitizer عندما تُنفَّذ عملية `DROP`/`DETACH`/`MOVE`/`REPLACE PARTITION` على جدول `MergeTree` بعد أن تكون عملية سابقة من هذا النوع قد انقطعت (مثل transaction جرى التراجع عنها أو تعطل) وتركت خلفها directory قديمًا باسم `tmp_empty_<part>`. وأصبح الآن يُستعاد هذا الـ directory القديم بدلًا من الفشل. [#108879](https://github.com/ClickHouse/ClickHouse/pull/108879) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح ClickHouse Keeper الذي كان يعيد القيمة `dataLength = 0` بشكل غير صحيح في `Stat` ضمن استجابات `Create2`، وكذلك عميل ClickHouse ZooKeeper الذي لم يكن يفك تسلسل `Stat` في استجابات `Create2`. [#108909](https://github.com/ClickHouse/ClickHouse/pull/108909) ([unintended](https://github.com/unintended)).
* تم إصلاح `clickhouse-local` الذي كان يرفض قيمة خيار فارغة مكتوبة مباشرة بجوار الرمز `=` (مثل `--format_csv_null_representation=''`)؛ وهو الآن يتصرف بالطريقة نفسها كما في `--format_csv_null_representation ""` و `SET format_csv_null_representation = ''`. [#108910](https://github.com/ClickHouse/ClickHouse/pull/108910) ([Vismay](https://github.com/vismaytiwari)).
* تم إصلاح `LOGICAL_ERROR` (`Inconsistent AST formatting`) كان يؤدي إلى إيقاف الخادم في إصدارات debug وsanitizer عند formatting لنوع البيانات `Tuple` الذي يجمع بين عناصر مسماة وغير مسماة (مثل `Tuple(a UInt8, UInt16)`). [#108915](https://github.com/ClickHouse/ClickHouse/pull/108915) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ segmentation fault عند دمج aggregate states الخاصة بـ `uniqExact` مع `GROUPING SETS` أو `ROLLUP` أو `CUBE` ومع `max_threads > 1`. [#108928](https://github.com/ClickHouse/ClickHouse/pull/108928) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح احتمال ظهور نتائج غير صحيحة أو reads خارج الحدود عندما يتم التراجع عن `INSERT` بعد حدوث خطأ في منتصف الدفعة (مثل جداول `Buffer`، أو asynchronous inserts، أو محركات `Kafka`/`RabbitMQ`/`FileLog`) أثناء تفعيل lazy replication للأعمدة (`enable_lazy_columns_replication`). [#108935](https://github.com/ClickHouse/ClickHouse/pull/108935) ([Groene AI](https://github.com/groeneai)).
* أصبح `join_any_take_last_row` الآن مُطبَّقًا في جميع مسارات join المدعومة والمعتمدة على hash، بما في ذلك عمليات join التي تستخدم spilling to disk تلقائيًا. [#108936](https://github.com/ClickHouse/ClickHouse/pull/108936) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* تم إصلاح bug في analyzer حيث كان `FINAL` على أحد جداول `JOIN` (مثل `FROM t1 FINAL JOIN t2`) يُطبَّق بشكل غير صحيح على الجداول الأخرى المنضمة أيضًا، مما كان قد يجعل مثل هذه الاستعلامات أبطأ. [#108979](https://github.com/ClickHouse/ClickHouse/pull/108979) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح `LOGICAL_ERROR` ("يتعذر العثور على العمود `__grouping_set` في ترويسة MergingAggregatedTransform مع grouping sets"، أو "لم يتم تعيين معلومات chunk لـ chunk في MergingAggregatedTransform") الذي كان يمكن أن يحدث، عند تعطيل المحلل، مع `UNION ALL`/`INTERSECT`/`EXCEPT` إذا كان أحد الفروع يستخدم `GROUP BY GROUPING SETS` مع parallel replicas بينما يستخدم فرع آخر `FINAL`. [#109003](https://github.com/ClickHouse/ClickHouse/pull/109003) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` في مخطِّط parallel replicas التلقائي، والذي كان يمكن أن يحدث عند تمكين `automatic_parallel_replicas_mode` مع ضبط `parallel_replicas_min_number_of_rows_per_replica` على قيمة أكبر من 0. [#109011](https://github.com/ClickHouse/ClickHouse/pull/109011) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تخصيص مفرط للذاكرة أثناء استنتاج المخطط لتنسيق `MsgPack`: فلم يعد الإدخال التالف الذي يعلن رأس array/map/string/binary فيه عن عدد هائل من العناصر يتسبب في عملية تخصيص واحدة بحجم عدة غيغابايت، بل يُرفض الآن بوصفه إدخالًا غير صالح. ويعالج هذا حالة نفاد الذاكرة في إصدارات build النهائية (وحالة الإنهاء `allocation-size-too-big` عند استخدام أدوات sanitizer). [#109019](https://github.com/ClickHouse/ClickHouse/pull/109019) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تجاهل `use_client_time_zone` لقيم string الحرفية من نوع `DateTime`/`DateTime64` التي تُفسَّر على الخادم (`INSERT` غير المتزامن، والقيم الحرفية في `SELECT`). يمرِّر العميل الآن منطقته الزمنية المحلية باعتبارها `session_timezone` عند تمكين `use_client_time_zone`، بحيث تتطابق المعالجة على جانب الخادم مع مسار `INSERT` المتزامن. [#109051](https://github.com/ClickHouse/ClickHouse/pull/109051) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` عند تمكين `query_plan_optimize_lazy_final` مع مرشح `WHERE` مدفوع جزئيًا إلى `PREWHERE` (عبر `optimize_move_to_prewhere_if_final`). [#109073](https://github.com/ClickHouse/ClickHouse/pull/109073) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ عند استخدام النجمة المؤهلة مثل `b.*` في استعلام تكون فيه `b` اسمًا مستعارًا لجدول (أو subquery/CTE) ويتطابق اسمه مع اسم عمود غير مركب في جدول آخر. لم تعد مثل هذه الاستعلامات تفشل، وأصبحت تختار جميع أعمدة `b` بشكل صحيح. [#109078](https://github.com/ClickHouse/ClickHouse/pull/109078) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح الخطأ المنطقي `Block structure mismatch in JoinStep` (وهو إجهاض للخادم في إصدارات debug وsanitizer) عندما تُحوَّل subquery مترابطة إلى join وتحمل العلاقة المصدرية اسم العمود نفسه أكثر من مرة، مثل `WITH t AS (SELECT number, * FROM numbers(3)) SELECT *, (SELECT t.number WHERE t.number >= 0) FROM t` مع `correlated_subqueries_default_join_kind = 'right'`. [#109114](https://github.com/ClickHouse/ClickHouse/pull/109114) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح حالة تعليق كان فيها استعلام يقرأ عبر filesystem cache قد يواصل الانتظار لتنزيل جارٍ حتى بعد إلغائه باستخدام `KILL QUERY`، كما كان إسقاط refreshable materialized view أو تنفيذ `SYSTEM STOP VIEW` عليها، إذا كان تحديثها عالقًا في انتظار مماثل، يؤدي إلى الحظر. [#109116](https://github.com/ClickHouse/ClickHouse/pull/109116) ([Murphy](https://github.com/murphy-4o)).
* تم إصلاح تجاهل الإعداد `parallel_view_processing` عند الإدراج في جدول يحتوي على materialized views — فمنذ الإصدار 25.10، كانت views تعمل دائمًا بالتوازي بغض النظر عن هذا الإعداد. [#109170](https://github.com/ClickHouse/ClickHouse/pull/109170) ([Antonio Andelic](https://github.com/antonio2368)).
* تم إصلاح حالة عدم اتساق في المحلل، إذ كانت قائمة الأعمدة في `INSERT` تقبل مطابِق أعمدة مؤهلًا مكتوبًا بصيغة `t.* LIKE '<pattern>'` / `t.* ILIKE '<pattern>'` لكنها ترفض صيغته القياسية `t.COLUMNS('<regexp>')`، مما كان يكسر إمكانية التحويل ذهابًا وإيابًا لتنسيق الاستعلام (ويتسبب أيضًا في إجهاض الخادم في إصدارات debug وsanitizer). [#109176](https://github.com/ClickHouse/ClickHouse/pull/109176) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الزيادات غير الأحادية في `ProfileEvents`: إذ كان من الممكن زيادة العدّادين `NetworkReceiveBytes` و`AIOWriteBytes` بمقدار سالب (مما يؤدي إلى الالتفاف إلى قيمة ضخمة) عند انتهاء مهلة المقبس أو فشل AIO، كما كان `MemoryOvercommitWaitTimeMicroseconds` يُقاس باستخدام ساعة غير أحادية. [#109180](https://github.com/ClickHouse/ClickHouse/pull/109180) ([Azat Khuzhin](https://github.com/azat)).
* تم إصلاح استنتاج المخطط لتنسيقات `Arrow` و`ArrowStream` و`Avro` ولقارئات `ORC` و`Parquet` القديمة، إذ كانت تُرجع `Nullable(Tuple)` لأعمدة البنية القابلة لأن تكون فارغة، رغم أن النوع `Nullable(Tuple)` غير مسموح به (عند تعطيل `allow_experimental_nullable_tuple_type`). كان `DESCRIBE` يُرجع نوعًا يرفضه `CREATE TABLE`، لذلك كان إنشاء جدول أو إدراج بيانات باستخدام المخطط المستنتج يفشل مع الخطأ `Nullable Tuple type is not allowed`. [#109185](https://github.com/ClickHouse/ClickHouse/pull/109185) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح نتيجة غير صحيحة لعبارتي `EXISTS` المترابطة والاستعلامات الفرعية ذات القيمة المفردة عندما يظهر الارتباط فقط في إسقاط الاستعلام الفرعي مع وجود عبارة `WHERE` غير مترابطة (إذ كان من الممكن أن يُقيَّم الاستعلام الفرعي إلى false / `NULL` لكل صف). يصلح [#105760](https://github.com/ClickHouse/ClickHouse/issues/105760). [#109186](https://github.com/ClickHouse/ClickHouse/pull/109186) ([Dmitry Novik](https://github.com/novikd)).
* تم إصلاح `CREATE USER ... HOST LIKE 'a', 'b'` (و`ALTER USER` المكافئ له) الذي كان يحتفظ بصمت بالنمط الأول فقط. تُخزَّن الآن جميع أنماط `HOST LIKE` المحددة في قائمة السماح بالمضيفات الخاصة بالمستخدم. [#109187](https://github.com/ClickHouse/ClickHouse/pull/109187) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح حالة كان فيها فهرس نصي معرّف على `mapValues(map)` أو `mapKeys(map)` لا يُستخدم بصمت عند الاستعلام عن جدول عبر جدول بمحرك `Distributed` باستخدام analyzer. كان الفهرس يُستخدم للجدول المحلي وعبر دوال الجداول `cluster`/`remote`، لكن الاستعلام عبر جدول بمحرك `Distributed` كان يتجاوزه (ويفشل مع `INDEX_NOT_USED` تحت `force_data_skipping_indices`). [#109188](https://github.com/ClickHouse/ClickHouse/pull/109188) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` زائف (`There was an error on <host>: Cannot obtain error message (probably it's a bug)`) كان يمكن أن يتسبب في إيقاف الخادم في بنى debug وsanitizer عند تشغيل استعلام DDL على قاعدة بيانات `Replicated` بعد أن تكون عقدة حالة `finished` الخاصة بكل مضيف في Keeper قد نُظِّفت بالفعل. [#109192](https://github.com/ClickHouse/ClickHouse/pull/109192) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نسب `SAMPLE` ذات الأسّ الذي يتجاوز مقدارُه نطاق `Int32` (مثل `SAMPLE 1e-3000000000`) والتي كانت تُعامَل بصمت على أنها `SAMPLE 1`. [#109197](https://github.com/ClickHouse/ClickHouse/pull/109197) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح التحقق من صلاحية الوصول لـ `SYSTEM PREWARM PRIMARY INDEX CACHE ... ON CLUSTER`، والذي كان يتطلب خطأً صلاحية `SYSTEM PREWARM MARK CACHE` بدلًا من `SYSTEM PREWARM PRIMARY INDEX CACHE`. [#109198](https://github.com/ClickHouse/ClickHouse/pull/109198) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح فشل استعلامات `ALTER` لجداول `MergeTree` المُنشأة بإعداد `disk` مخصص (`SETTINGS disk = disk(...)`). يصلح [#63019](https://github.com/ClickHouse/ClickHouse/issues/63019). [#109199](https://github.com/ClickHouse/ClickHouse/pull/109199) ([Mikhail Artemenko](https://github.com/Michicosun)).
* تم إصلاح تعطل في الخادم عند الجمع بين حالات الدوال التجميعية `cramersV` و`cramersVBiasCorrected` و`contingency` أو `theilsU` من سياق نافذة (`OVER ()`) ومن تجميع عادي عبر set operations متسلسلة (`EXCEPT`, `INTERSECT`) أو `UNION ALL` متداخلة، ثم قراءتها، على سبيل المثال عبر المُركِّب `-Merge`. [#109200](https://github.com/ClickHouse/ClickHouse/pull/109200) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتيجة غير صحيحة لـ `ANY JOIN` مع شرط `ON` ثابت (مثل `t1 ANY INNER JOIN t2 ON 1`): إذ كان الاستعلام يعيد حاصل الضرب الديكارتي الكامل بدلًا من ناتج `ANY JOIN`. [#109207](https://github.com/ClickHouse/ClickHouse/pull/109207) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح تعطل في الخادم عند asynchronous insert مع deduplication عندما يتسبب `optimize_on_insert` في أن تصبح inserted block فارغة (على سبيل المثال، الصفوف التي يكون مجموعها صفرًا في `SummingMergeTree`). [#109229](https://github.com/ClickHouse/ClickHouse/pull/109229) ([Den Kalantaevskii](https://github.com/Diskein)).
* إصلاح `SYSTEM DROP REPLICA` و`SYSTEM DROP DATABASE REPLICA ... FROM ZKPATH` بحيث يرفضان مسارات ZooKeeper الفارغة أو التي تشير إلى الجذر فقط وقت التحليل باستخدام `BAD_ARGUMENTS`، ويوجِّهان مسارات Keeper المساعدة إلى Keeper المسمى، ويوحِّدان مسارات Keeper بحيث لا تتمكن فحوصات الحماية الذاتية المحلية من استهداف replica المقصودة بالخطأ أو تجاوزها. [#109230](https://github.com/ClickHouse/ClickHouse/pull/109230) ([Groene AI](https://github.com/groeneai)).
* إصلاح أولوية إعدادات S3 بحيث تكون الأولوية لكتلة نقطة النهاية `<s3>` ذات نطاق `URL` على إعدادات `<s3>` الافتراضية في المستوى الأعلى. [#109251](https://github.com/ClickHouse/ClickHouse/pull/109251) ([Bharat Nallan](https://github.com/bharatnc)).
* تم إصلاح خلل كانت فيه قيم `DEFAULT` للأعمدة لا تُطبَّق عند `INSERT INTO TABLE FUNCTION` (مثل `remote` أو `file`) مع بيانات `VALUES` المضمنة عندما يحلل الخادم هذه البيانات بنفسه (`send_table_structure_on_insert_with_inline_data = 0`). وكان إدراج `NULL` صراحةً في عمود غير `Nullable` وله `DEFAULT` يتحول إلى `0` بدلًا من القيمة الافتراضية المعلنة. وأصبح الآن يتصرف مثل `INSERT` عادي إلى جدول وعبر HTTP protocol. [#109258](https://github.com/ClickHouse/ClickHouse/pull/109258) ([Groene AI](https://github.com/groeneai)).
* إصلاح فشل `CREATE TABLE ... AS SELECT` من `s3Cluster` (وسائر cluster table functions مثل `fileCluster`/`urlCluster`) مع `NOT_FOUND_COLUMN_IN_BLOCK` داخل قاعدة بيانات `Replicated`. [#109266](https://github.com/ClickHouse/ClickHouse/pull/109266) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `SHOW TABLES` و`SELECT ... FROM system.tables` اللذين كانا يعيدان نتائج مختلفة لقواعد بيانات Data Lake Catalog: إذ أصبحت الجداول التي لا يستطيع ClickHouse قراءتها مخفيةً الآن بشكل متسق في كلتيهما. [#109273](https://github.com/ClickHouse/ClickHouse/pull/109273) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* تم إصلاح خلل كان يؤدي فيه دمج جدول `MergeTree` يحتوي على projections، مع تفعيل الإعداد `enable_block_number_column` أو `enable_block_offset_column`، إلى إنتاج projection parts تحتوي على العمود الزائد `_block_number`/`_block_offset`. وبعد ذلك لم يعد projection part المدمج يطابق تعريف projection ولا projection parts الناتجة عن الإدراج، لذلك كان `CHECK TABLE` و`OPTIMIZE ... DRY RUN` يبلغان عنه على أنه تالف (`CORRUPTED_DATA`). [#109284](https://github.com/ClickHouse/ClickHouse/pull/109284) ([Groene AI](https://github.com/groeneai)).
* السماح بقراءة `array` من Avro مكوَّنة من سجلات ثنائية الحقول `{key, value}` إلى عمود `Map` في ClickHouse. وهذا هو الترميز الذي ينتجه Iceberg وSpark لـ `MAP<K, V>` ذي مفتاح غير نصي (إذ إن خرائط Avro الأصلية لا تدعم إلا المفاتيح النصية). في السابق، كان يمكن قراءة مثل هذا الملف على أنه `Array(Tuple(key, value))`، ولكن ليس على أنه `Map(K, V)`، إذ كان يفشل مع `Type Map(...) is not compatible with Avro array`. [#109289](https://github.com/ClickHouse/ClickHouse/pull/109289) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل في الخادم عند `CREATE HYPOTHETICAL INDEX ... TYPE set` (وكذلك `ngrambf_v1`/`tokenbf_v1`) عند إغفال وسيطة الفهرس المطلوبة. وتُرفَض هذه العبارات الآن برسالة خطأ واضحة. [#109294](https://github.com/ClickHouse/ClickHouse/pull/109294) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` (`Current component is empty`) الذي كان يمكن أن تسببه عمليات mutation مثل `KILL MUTATION` على جدول `MergeTree` يخزّن بياناته الوصفية في Keeper، عند تمكين إعداد الخادم `enforce_keeper_component_tracking`. [#109297](https://github.com/ClickHouse/ClickHouse/pull/109297) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح قراءة timestamps من `ORC` التي تتجاوز تقريبًا سنة 2262 إلى عمود `DateTime64` ذي scale أقل من 9. إذ كان قارئ `ORC` الأصلي يحوّل كل timestamp سابقًا عبر قيمة وسيطة ثابتة من نوع `DateTime64(9)`، مما يؤدي إلى overflow في `Int64` عند مستوى النانوثانية ويرفض هذه القيم مع `VALUE_IS_OUT_OF_RANGE_OF_DATA_TYPE`، حتى عندما يكون scale المطلوب لـ `DateTime64` (مثل `DateTime64(6)`، كما ينتجه Iceberg) قادرًا على تمثيل القيمة. وتُقرأ timestamps الآن مباشرةً وفق scale المطلوب، كما يُراعى `date_time_overflow_behavior` حتى عندما يتعذر على scale الهدف نفسه استيعاب القيمة. [#109302](https://github.com/ClickHouse/ClickHouse/pull/109302) ([Groene AI](https://github.com/groeneai)).
* أصبح `clickhouse-local`، عند تشغيله كخادم (بعد `SYSTEM START LISTEN HTTP`)، يقدّم HTTP connections باستخدام output format الافتراضي `TabSeparated`، بما يتوافق مع `clickhouse-server`، بدلًا من الافتراضي التفاعلي `PrettyCompact`. ويعالج هذا مشكلة الاتصال بـ `clickhouse-local` عبر HTTP باستخدام برامج تشغيل مثل `clickhouse-connect`. وتظل جلسة terminal التفاعلية تعرض النتائج بصيغة `PrettyCompact`. [#109362](https://github.com/ClickHouse/ClickHouse/pull/109362) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح إخفاق عابر من النوع `Code: 499 ... InvalidPart` (`S3_ERROR`) في multipart uploads على S3. فقد قد يُبلغ MinIO، لفترة وجيزة، عن part تم رفعه للتو على أنه مفقود عند `CompleteMultipartUpload`؛ ويُعاد الآن هذا الخطأ كما هو الحال مع `NoSuchKey` الذي كانت تتم معالجته مسبقًا، وذلك ضمن الحدود التي يفرضها `s3_max_unexpected_write_error_retries`. [#109364](https://github.com/ClickHouse/ClickHouse/pull/109364) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `UNKNOWN_IDENTIFIER` في `ALTER TABLE ... DROP COLUMN` عندما يحتوي عمود آخر على expression من نوع `DEFAULT` أو `MATERIALIZED` يعرّف alias مضمنًا ويشير إليه. [#109374](https://github.com/ClickHouse/ClickHouse/pull/109374) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح data race (وما قد ينتج عنها من تعطل نادر) في الدمج المتوازي لحالات aggregate للدالة `uniqExact` مع sets ثنائية المستوى، وهو ما كان يمكن أن يحدث مع `GROUPING SETS` و`ROLLUP` و`CUBE`. [#109389](https://github.com/ClickHouse/ClickHouse/pull/109389) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ (`NOT_FOUND_COLUMN_IN_BLOCK`، أو `std::bad_function_call` في الإصدارات الأقدم) عند تشغيل `CREATE TABLE ... ON CLUSTER ... AS SELECT` مع قراءة جدول `Distributed` على cluster يحتوي على shardين أو أكثر. [#109407](https://github.com/ClickHouse/ClickHouse/pull/109407) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح عمليات الدمج للجداول التي تحتوي على `TTL ... GROUP BY` (rollup): إذ كان يمكن إعادة جدولة parts التي جرى تجميعها بالكامل مسبقًا للدمج مرة تلو الأخرى إلى ما لا نهاية، كما كانت الجداول التي تحتوي على أعمدة `MATERIALIZED` أو persistent virtual columns مفعّلة تُعالَج بشكل غير صحيح — وتُجمَّع هذه الأعمدة الآن باستخدام `any`. يُغلق [#105647](https://github.com/ClickHouse/ClickHouse/issues/105647). [#109410](https://github.com/ClickHouse/ClickHouse/pull/109410) ([Mikhail Artemenko](https://github.com/Michicosun)). [#109532](https://github.com/ClickHouse/ClickHouse/pull/109532) ([Mikhail Artemenko](https://github.com/Michicosun)).
* تم إصلاح `IN` عند استخدام array column مجردة في argument الأيمن، إذ كانت تعيد بصمت نتيجة خاطئة (دائمًا false) أو تطرح استثناءً، بحيث أصبح `x IN arr` يتصرف مثل `has(arr, x)`. [#109416](https://github.com/ClickHouse/ClickHouse/pull/109416) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح أخطاء `UNKNOWN_IDENTIFIER` في عمليات `ALTER TABLE` (`RENAME`/`ADD`/`MODIFY COLUMN`، و`MATERIALIZE INDEX` على table تحتوي على parts أُدرجت حديثًا) في جداول `MergeTree` التي تتضمن min-max index ضمنيًا على persistent virtual columns ‏`_block_number`/`_block_offset` (مفعّل عبر `add_minmax_index_for_block_number_column`/`add_minmax_index_for_block_offset_column`). [#109428](https://github.com/ClickHouse/ClickHouse/pull/109428) ([Groene AI](https://github.com/groeneai)). [#110236](https://github.com/ClickHouse/ClickHouse/pull/110236) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` في `arrayFold` على argument غير ثابت من النوع `Array(LowCardinality(T))` (على سبيل المثال `arrayFold((acc, x) -> acc + x, materialize([1, 2, 3]::Array(LowCardinality(Int64))), toInt64(0))`)؛ إذ كان يفشل مع `Arguments of 'plus' have incorrect data types` (وكان يتسبب في إيقاف server في بنى debug وsanitizer). [#109462](https://github.com/ClickHouse/ClickHouse/pull/109462) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `CHECK TABLE` على table من نوع `ReplicatedMergeTree` كانت تُبلّغ عن part سليمة على أنها معطوبة عند حدوث خطأ ZooKeeper عابر وقابل لإعادة المحاولة (مثل فقدان connection) أثناء الفحص؛ وتظهر هذه الأخطاء الآن بدلًا من ذلك كخطأ query قابل لإعادة المحاولة. [#109465](https://github.com/ClickHouse/ClickHouse/pull/109465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح أعطال segfault في `groupArrayLastMerge` وaggregate function ‏`largestTriangleThreeBuckets`: إذ أصبح deserialization لحالات aggregate function يُتحقق منه الآن، بحيث لا تؤدي الحالة المعطوبة إلى وصول إلى الذاكرة خارج الحدود. [#109485](https://github.com/ClickHouse/ClickHouse/pull/109485) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). [#109492](https://github.com/ClickHouse/ClickHouse/pull/109492) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح عدم فرض الحدّ العام `max_rows_in_join` / `max_bytes_in_join` على join algorithm ‏`parallel_hash`، إذ كان يمكن لـ query مع `join_overflow_mode = 'throw'` أن تنجح بصمت بدلًا من رفع `SET_SIZE_LIMIT_EXCEEDED`. [#109488](https://github.com/ClickHouse/ClickHouse/pull/109488) ([Hechem Selmi](https://github.com/m-selmi)).
* تم إصلاح قراءة Paimon tables المقسّمة حسب column من نوع `BIGINT` لا تتسع قيمته داخل `Int32`. وكانت قيم partition هذه تُقتطع (فعلى سبيل المثال كانت `9223372036854775807` تصبح `-1`)، مما كان ينتج عنه مسار partition خاطئ ويفشل مع خطأ filesystem. [#109510](https://github.com/ClickHouse/ClickHouse/pull/109510) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح crash عند قراءة Iceberg tables التي تحتوي على equality delete files. فإذا كانت column قابلة لأن تكون nullable في equality delete file لكنها غير nullable في table schema (أو العكس)، كانت values المقروءة من delete file تُدرج في column من نوع مختلف عبر cast غير متحقق منه (التباس في column type)، مما كان يفسد column ويتسبب في تعطل server. [#109551](https://github.com/ClickHouse/ClickHouse/pull/109551) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح عدم سريان `connect_timeout` ومهلتَي القراءة والكتابة الخاصة بـ MySQL: إذ كان يمكن لمحاولة connection إلى MySQL server غير مستجيب أن تظل معلّقة لأكثر من دقيقتين حتى مع `connect_timeout = 1`، لأن الإشارات الدورية الخاصة بـ sampling query profiler كانت تواصل إعادة ضبط مهلة poll الداخلية في MySQL client. [#109592](https://github.com/ClickHouse/ClickHouse/pull/109592) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح `LOGICAL_ERROR` (`creation_csn is not set while removal_csn is set to 1`) الذي كان يمكن أن يظهر عند تشغيل `TRUNCATE` غير معاملاتي بالتزامن مع معاملة غير مُعتمدة كانت قد أدخلت بيانات إلى الجدول نفسه. ولم يعد `TRUNCATE` من هذا النوع يزيل الأجزاء التي أنشأتها المعاملات التي لم تُعتمد بعد. [#109598](https://github.com/ClickHouse/ClickHouse/pull/109598) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح أخطاء `TYPE_MISMATCH` عند قراءة أعمدة struct في `Parquet` عندما تختلف قابلية NULL الفعلية عن نوع ClickHouse المطلوب: إذ يمكن الآن قراءة مجموعة `Parquet` غير القابلة لـ NULL على أنها `Nullable(Tuple(...))`، كما يمكن لقارئ `Parquet` الأصلي قراءة struct قابل فعليًا لـ NULL (أي مجموعة `OPTIONAL` في `Parquet`) على أنه `Nullable(Tuple(...))`. [#109615](https://github.com/ClickHouse/ClickHouse/pull/109615) ([Groene AI](https://github.com/groeneai)). [#109898](https://github.com/ClickHouse/ClickHouse/pull/109898) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح فقدان صامت للبيانات عند إلحاق عبارة `INSERT ... VALUES` في دفق متعدد الاستعلامات بتعليق SQL ختامي (مثل `VALUES (1) -- comment`) ضمن مسار تحليل الإدراج المضمّن على جانب الخادم (`send_table_structure_on_insert_with_inline_data = 0`). إذ كان التعليق الختامي يُفسَّر على أنه بيانات صف بعد علامة الإنهاء `;`، ما كان يؤدي إلى تخطي الاستعلامات التالية في الدفق بصمت. [#109643](https://github.com/ClickHouse/ClickHouse/pull/109643) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ segfault عند وصول استعلام خلال نافذة زمنية ضيقة أثناء إيقاف تشغيل الخادم بعد حدوث خطأ عند بدء التشغيل. [#109675](https://github.com/ClickHouse/ClickHouse/pull/109675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح فهارس التخطي القديمة (`text` و`bloom_filter` وغيرها) وprojections بعد materializing lightweight updates باستخدام `ALTER TABLE ... APPLY PATCHES`. سابقًا، كانت ملفات الفهرس وprojection التي تعتمد على عمود تم تحديثه عبر patch تبقى دون تغيير، لذلك كان يمكن أن تُرجع الاستعلامات التي تستخدمها نتائج غير صحيحة (مثل أن يفوّت `hasToken` صفًا مُحدَّثًا، أو أن تُرجع projection تجميعات قديمة بعد إزالة patch part المستهلَك). [#109709](https://github.com/ClickHouse/ClickHouse/pull/109709) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة قيام `system.tables` بتخطي قواعد البيانات بصمت للمستخدمين الذين لديهم أذونات على مستوى كل قاعدة بيانات، عندما يقرأ الاستعلام العمودين `name`/`database` فقط. قُدِّمت في 26.2. [#109723](https://github.com/ClickHouse/ClickHouse/pull/109723) ([Samay Sharma](https://github.com/samay-sharma)).
* إصلاح `LOGICAL_ERROR` عند كتابة عمود `LowCardinality(Time)` إلى تنسيق `Arrow` مع `output_format_arrow_low_cardinality_as_dictionary = 1`. [#109730](https://github.com/ClickHouse/ClickHouse/pull/109730) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة قيام `ObjectStorageQueue`/`AzureQueue` (ودالة الجدول `azureBlobStorage`) بتخطي الكائنات بصمت عندما تُرجع object storage صفحة سرد فارغة مع token متابعة. يحدث هذا في Azure Blob Storage (على سبيل المثال عند عبور السرد حدًا داخليًا لـ partition)، وكان مكرّر السرد غير المتزامن يتعامل مع الصفحة الفارغة على أنها نهاية السرد ويتجاهل الـ token. أما الآن فأصبح يتبع token المتابعة. [#109761](https://github.com/ClickHouse/ClickHouse/pull/109761) ([Gal Ben Moshe](https://github.com/GalBenMoshe)).
* تم إصلاح مشكلة تسبب partition pruning في عدم إرجاع أي صفوف لِـ Iceberg tables المقسّمة بحسب عمود timestamp (`DateTime64`). [#109764](https://github.com/ClickHouse/ClickHouse/pull/109764) ([Den Kalantaevskii](https://github.com/Diskein)).
* إصلاح استثناء `ILLEGAL_COLUMN` في الدالة `conv` لوسائط `FixedString`؛ إذ تُحوَّل الآن بشكل صحيح إلى `String`. يغلق [#109670](https://github.com/ClickHouse/ClickHouse/issues/109670). [#109771](https://github.com/ClickHouse/ClickHouse/pull/109771) ([hp](https://github.com/hp77-creator)).
* أصبحت الدالة `getClientHTTPHeader` تتعامل الآن مع أسماء الترويسات على أنها غير حساسة لحالة الأحرف، وفقًا لـ [RFC 9110](https://www.rfc-editor.org/info/rfc9110/#section-5.1)؛ وعلى وجه الخصوص، باتت ترويسة `authorization` تُستبعَد الآن بغض النظر عن حالة الأحرف. إغلاق [#103957](https://github.com/ClickHouse/ClickHouse/issues/103957). [#109791](https://github.com/ClickHouse/ClickHouse/pull/109791) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* إصلاح مشكلة في `max_execution_time` (مع `timeout_overflow_mode = 'throw'`) حيث كان أحيانًا لا يُلغي الاستعلام مطلقًا: فعندما يكون مراقب المهلة الداخلي بانتظار استعلام له موعد نهائي لاحق، قد يُغفَل تمامًا استعلامٌ بموعد نهائي أبكر يُسجَّل بعد ذلك، مما يسمح له بالاستمرار بعد حدّه الزمني بمدة طويلة. [#109792](https://github.com/ClickHouse/ClickHouse/pull/109792) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح اسم الملف لملفات البيانات الوصفية لـ Iceberg المضغوطة بصيغة gzip. كان ClickHouse يكتبها بصيغة `v{N}.gzip.metadata.json` (رمز HTTP `Content-Encoding`)، بينما تتوقع مواصفة Iceberg الامتداد `gz` أي `v{N}.gz.metadata.json`. ونتيجةً لذلك، لم يتمكن Spark وغيره من القرّاء المعتمدين على كتالوج Hadoop من العثور على البيانات الوصفية التي كتبها ClickHouse. يكتب ClickHouse الآن `v{N}.gz.metadata.json`، وما يزال يقرأ الاسم القديم `gzip` حفاظًا على التوافق مع الإصدارات السابقة. [#109812](https://github.com/ClickHouse/ClickHouse/pull/109812) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `NOT_IMPLEMENTED` ‏("Method getDataAt is not supported for Nullable(String)") الذي كان يمكن أن ينشأ عند تنفيذ join مع `enable_join_runtime_filters = 1` (مفعّل افتراضيًا منذ 26.2) عندما يكون مفتاح join في جهة البناء هو `LowCardinality(Nullable(...))` مع قيم `NULL`، ويعود runtime filter إلى bloom filter الخاص به. [#109824](https://github.com/ClickHouse/ClickHouse/pull/109824) ([Groene AI](https://github.com/groeneai)).
* لم تعد محركات قواعد البيانات الخارجية (مثل `PostgreSQL`) تدفع مقارنات النطاق (`>=`, `>`, `<=`, `<`) إلى الأسفل على أعمدة `UUID`. يرتّب ClickHouse وقواعد البيانات الخارجية معرّفات UUID بطريقة مختلفة، لذا كان دفع هذه الشروط إلى الأسفل يؤدي بصمت إلى إسقاط صفوف من النتيجة؛ وتُقيَّم هذه الشروط الآن داخل ClickHouse بدلًا من ذلك. [#109833](https://github.com/ClickHouse/ClickHouse/pull/109833) ([Vismay](https://github.com/vismaytiwari)).
* تم إصلاح انهيار في الخادم عند تمرير تعبير لامبدا في موضع تتوقع فيه دالة عالية الرتبة قيمةً فعلية (مثل المُراكِم في `arrayFold`، كما في `arrayFold(lambda, arr, another_lambda)`). وتُرفَض مثل هذه الاستعلامات الآن بخطأ `ILLEGAL_TYPE_OF_ARGUMENT` بدلًا من التسبب في الانهيار عندما يكون `enable_analyzer = 0`. [#109840](https://github.com/ClickHouse/ClickHouse/pull/109840) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعريف `icebergLocal` table function و`IcebergLocal` engine لنوع object storage على أنه `azure` بدلًا من `local`، وهو ما كان يؤدي إلى فشلهما في التحقق من نوع القرص (`Disk type doesn't match`) عند استخدامهما مع قرص محلي عبر `SETTINGS disk = '...'`. [#109872](https://github.com/ClickHouse/ClickHouse/pull/109872) ([Pedro Ferreira](https://github.com/PedroTadim)).
* إصلاح قراءة جداول Iceberg المُقسَّمة بحسب عمود المصدر نفسه أكثر من مرة (على سبيل المثال `PARTITIONED BY (hours(ts), ts)`). وكانت مثل هذه الجداول تفشل سابقًا برسالة `Cannot add column ...: column with this name already exists (ILLEGAL_COLUMN)`. [#109895](https://github.com/ClickHouse/ClickHouse/pull/109895) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج استعلام غير صحيحة ناتجة عن قيام فهرس المفتاح الأساسي باستبعاد الحبيبات على نحوٍ خاطئ في الجداول التي تحتوي على عمود مفتاح بترتيب معكوس (`DESC`) عندما لا تحتوي الأجزاء على علامة نهائية (granularity غير متكيفة، `index_granularity_bytes = 0`). [#109901](https://github.com/ClickHouse/ClickHouse/pull/109901) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح `generateRandomStructure` الذي كان يُنتج أحيانًا سلسلة بنية غير صالحة تتضمن نوعَي بيانات ملتصقين (مثل `Decimal32(7)IPv4`) عندما يتجاوز تداخل الأنواع حد العمق الداخلي، مما يجعل النتيجة متعذّرة التحليل. [#109928](https://github.com/ClickHouse/ClickHouse/pull/109928) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `NOT_IMPLEMENTED` (`Method getDataAt is not supported for Nullable(String) in case if value is NULL`) عند إنشاء فهرس `text` على `Array(LowCardinality(Nullable(String)))` (بما في ذلك حقول `Nested` المخزنة بهذه الطريقة) إذا كانت المصفوفة المفهرسة تحتوي على عنصر `NULL`. أصبحت عناصر `NULL` في المصفوفة الآن تُتخطى أثناء إنشاء الفهرس، بما يتوافق مع `Array(Nullable(String))`. [#110055](https://github.com/ClickHouse/ClickHouse/pull/110055) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح النتائج الخاطئة عند إنشاء skip index من نوع `minmax` على عمود `LowCardinality(Nullable(...))`: إذ كانت predicates من نوع `WHERE`/`PREWHERE`/`HAVING ... IS NULL` التي تُدفَع إلى طبقة التخزين تستبعد سابقًا كل granule وتُرجع 0 صفوف رغم أن العمود كان يحتوي على قيم `NULL`. [#110061](https://github.com/ClickHouse/ClickHouse/pull/110061) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `distinct_overflow_mode = 'break'`: أصبح `DISTINCT` الآن يُرجع النتيجة الجزئية المتراكمة حتى بلوغ الحد ويتوقف عن قراءة المصدر، كما هو موثّق. سابقًا، كانت الـ chunk التي تتجاوز `max_rows_in_distinct` / `max_bytes_in_distinct` تُهمَل (مما يؤدي إلى نتائج مقتطعة أو فارغة)، بينما كان الاستعلام يواصل القراءة والإدراج في مجموعة التجزئة حتى نهاية الإدخال، وقد ينتهي ذلك بـ `MEMORY_LIMIT_EXCEEDED`. [#110075](https://github.com/ClickHouse/ClickHouse/pull/110075) ([Sergey Kuznetsov](https://github.com/skuznetsov-clickhouse)).
* تم إصلاح خطأ منطقي `ChunkInfoRowNumbers does not exist` عند تنفيذ `OPTIMIZE TABLE` على Iceberg table يحتوي على ملف بيانات بتنسيق غير Parquet (مثل `ORC`) أحدث من جميع position delete files. [#110107](https://github.com/ClickHouse/ClickHouse/pull/110107) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `max_bytes_in_distinct` و `max_bytes_in_set`: إذ تُخزَّن مفاتيح السلاسل النصية في arena لم تكن تُحتسب ضمن فحوصات الحدود، لذلك كان `DISTINCT` / `IN` على مفاتيح السلاسل النصية قد يحتفظ بذاكرة تتجاوز حد البايتات بمقدار payload المفتاح بالكامل (من دون حد لطول المفتاح). أصبحت الحدود الآن تحتسب الـ arena، بما يطابق التوثيق؛ وقد تتجاوز الاستعلامات ذات مفاتيح السلاسل النصية القريبة من حد البايتات هذا الحد في وقت أبكر الآن (على نحو صحيح). [#110120](https://github.com/ClickHouse/ClickHouse/pull/110120) ([Sergey Kuznetsov](https://github.com/skuznetsov-clickhouse)).
* تم إصلاح خطأ `LOGICAL_ERROR` (`Bad cast from type ColumnLowCardinality to ColumnString`) عندما يُغلّف `identity` (أو نتيجة استعلام فرعي قيَمي) قيمةً تحتوي على `LowCardinality` متداخلة ويستخدم الاستعلام `WITH TOTALS`/`WITH ROLLUP`. [#110138](https://github.com/ClickHouse/ClickHouse/pull/110138) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح قراءة ملفات `Npy` ذات الأبعاد الداخلية صفرية الحجم: أصبح عدد الصفوف المادية ونتائج `count` المحسّنة وغير المحسّنة متطابقًا الآن. [#110146](https://github.com/ClickHouse/ClickHouse/pull/110146) ([Yanjun Qiu](https://github.com/qiuyanjun888)).
* تم إصلاح تضخّم بزمن تربيعي (وعدم الاستجابة لـ `max_execution_time`) في aggregation in order عند التجميع بحسب عدة مفاتيح يكون sort order فيها مجرد بادئة لمفتاح التجميع. [#110159](https://github.com/ClickHouse/ClickHouse/pull/110159) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح خطأ منطقي (`Unexpected number of columns in result sample block`) عندما يُحسَّن عامل تصفية يحتوي على استعلام فرعي مترابط (مثل `exists((SELECT ...))`) باستخدام `convert_query_to_cnf` أو `optimize_and_compare_chain`. [#110187](https://github.com/ClickHouse/ClickHouse/pull/110187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استثناء (`UNION mode UNION_DEFAULT must be normalized`) كان يحدث عندما تستخدم عملية mutation من نوع `DELETE` أو `ALTER UPDATE` عمليةً على المجموعات (`UNION`/`UNION ALL`/`UNION DISTINCT`/`EXCEPT`/`INTERSECT`) داخل استعلام فرعي في شرط `WHERE` أو في إسناد `UPDATE`. [#110196](https://github.com/ClickHouse/ClickHouse/pull/110196) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح الخطأ المنطقي `ReadBuffer is canceled. Can't read from it.` (توقف الخادم في بُنى debug/sanitizer) الذي كان يمكن أن يحدث أثناء قراءة أرشيف zip (مثلًا أثناء `RESTORE` من نسخة احتياطية بصيغة zip) بعد فشل قراءة سابقة من الأرشيف نفسه في منتصف التدفق. [#110197](https://github.com/ClickHouse/ClickHouse/pull/110197) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح بطء إيقاف تشغيل الخادم وعدم استجابة `KILL MUTATION` عندما كانت عملية mutation تحتوي على `x IN (subquery)` وتبني مجموعة الاستعلام الفرعي أثناء تحليل المفتاح الأساسي؛ ويُلغى الآن بناء المجموعة فورًا. [#110198](https://github.com/ClickHouse/ClickHouse/pull/110198) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يرفض Keeper الآن تعيين إعدادات coordination ‏`max_requests_batch_size` و`max_requests_append_size` إلى `0` بدلًا من أن يعلق في حلقة append-entries لا نهائية في إعداد متعدد العُقد. [#110200](https://github.com/ClickHouse/ClickHouse/pull/110200) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` عند استخدام `GROUP BY ALL` على تعبير tuple مع `ORDER BY`. [#110206](https://github.com/ClickHouse/ClickHouse/pull/110206) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` عند تنفيذ `INSERT` في جدول يحتوي على قيد `CHECK` يشير إلى subcolumn (مثل `x.null` لعمود `Nullable` أو `arr.size0` من `Array`). [#110208](https://github.com/ClickHouse/ClickHouse/pull/110208) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح قراءة Iceberg tables التي يشير فيها sort order الافتراضي إلى عمود يحتاج إلى وضعه بين علامتَي اقتباس (مثل `@timestamp`). وكانت هذه الجداول غير قابلة للقراءة لأن `ORDER BY` المُنشأ للتخزين كان يُبنى من اسم العمود الخام ويفشل تحليله مع `SYNTAX_ERROR`. [#110233](https://github.com/ClickHouse/ClickHouse/pull/110233) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `system.tables` لقاعدة بيانات `DataLakeCatalog` ‏(Iceberg/Glue)، حيث كان يؤدي إلى إيقاف الاستعلام بالكامل أو إسقاط الجداول بصمت عندما يتعذر حل metadata لجدول واحد. ويظل هذا الجدول الآن مُدرجًا بالاسم مع قيم default/`NULL` للأعمدة التي تحتاج إلى كائن التخزين المفتوح (`engine` و`total_rows` وما إلى ذلك)، بغض النظر عن `database_datalake_require_metadata_access`. ولا يزال الوصول المباشر إلى الجدول المعطوب يُبلغ عن الخطأ. [#110242](https://github.com/ClickHouse/ClickHouse/pull/110242) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح احتمال حدوث تعطل (heap-buffer-overflow) عندما كان عمود حالة دالة aggregate من عائلة `quantileTDigest` يُستخدم كمفتاح `GROUP BY` ويُسلسَل بالتوازي بواسطة عدة threads. [#110263](https://github.com/ClickHouse/ClickHouse/pull/110263) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح فشل `INSERT` في جدول `DataLakeCatalog` على Microsoft Fabric / OneLake مع `IncorrectEndpointError` ‏(HTTP 400)، وذلك بتوجيه عمليات كتابة ADLS Gen2 ‏(DFS) إلى المضيف ذي نقطة النهاية `.dfs` بدلًا من المضيف `.blob`. ملاحظة: عند استخدام `remote_url_allow_hosts`، يجب إدراج مضيفَي Fabric ‏`.blob` (للقراءة) و`.dfs` (للكتابة) في قائمة السماح لتنفيذ `INSERT`. [#110290](https://github.com/ClickHouse/ClickHouse/pull/110290) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* تم إصلاح إيقاف للخادم عند تحليل بعض استعلامات PRQL (`SET dialect = 'prql'`). كان حدوث panic داخل المصرّف `prqlc` يؤدي إلى إنهاء العملية بدلًا من الإبلاغ عنها كخطأ في الاستعلام. [#110316](https://github.com/ClickHouse/ClickHouse/pull/110316) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح نتائج استعلام خاطئة كانت تمر بصمت عندما كان projection part، المكتوب قبل تغيّر مجموعة أعمدة الـ projection (على سبيل المثال، بعد الترقية عبر إصدارات تُجسِّد مصدر عمود `ALIAS` بشكل مختلف، أو بعد أن يعيد `ALTER TABLE ... MODIFY COLUMN` توجيه عمود `ALIAS` يستخدمه projection)، يُقرأ عبر الـ projection أو يُدمج: إذ كان العمود المفقود يُملأ بقيم افتراضية بدلًا من البيانات الفعلية. تُقرأ هذه الأجزاء الآن من base table، وتعيد عمليات الدمج بناء الـ projection انطلاقًا من البيانات الأساسية. [#110328](https://github.com/ClickHouse/ClickHouse/pull/110328) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح عدم التزام `ORDER BY ... WITH FILL` بـ `max_execution_time` وبطئه في الإلغاء عند توليد نطاق fill كبير (خصوصًا مع `INTERPOLATE`). [#110332](https://github.com/ClickHouse/ClickHouse/pull/110332) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح logical error (إيقاف للخادم في إصدارات debug/sanitizer) عند تنفيذ `ALTER` متعدد الأوامر مثل `UPDATE ..., DELETE ...` على Iceberg table. أصبحت مثل هذه mutations تُرفض الآن مع خطأ واضح `NOT_IMPLEMENTED`. [#110347](https://github.com/ClickHouse/ClickHouse/pull/110347) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح bug في parser حيث كان `COMMENT` يُفسَّر خطأً على أنه alias ضمني عندما ينتهي استعلام `SELECT` مباشرة بعد معرّف table مجرد (مثل `... FROM t COMMENT 'x'`)، مما كان يؤدي إلى خطأ صياغة مضلل بدلًا من تطبيق التعليق على الـ view/table. [#110372](https://github.com/ClickHouse/ClickHouse/pull/110372) ([Aditya Kumar](https://github.com/adityaksolves)).
* تم إصلاح تعطل في الخادم (overflow أصلي في المكدس) عند نسخ أو إتلاف قيمة حرفية متداخلة بعمق من النوع `Array`/`Tuple`/`Map`/`Object`، مثل استعلام يحتوي على قيمة حرفية شديدة التداخل عند رفع `max_parser_depth`. [#110393](https://github.com/ClickHouse/ClickHouse/pull/110393) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح حالتين كان يمكن فيهما لـ vector search أن يعيد عددًا من rows أقل من المتوقع: إذ كانت قيم `vector_search_index_fetch_multiplier` الأقل من 1.0 قد تختزل عدد fetch المحسوب إلى الصفر وتنتج نتيجة فارغة (وأصبحت هذه القيم الآن مرفوضة)، كما يُتخطى الآن optimization الخاص بـ vector search لاستعلامات `LIMIT ... WITH TIES`، لأن هذا optimization يقيّد البحث بعدد N من المرشحين بالضبط ويحذف rows المتعادلة مع الصف رقم N. [#110452](https://github.com/ClickHouse/ClickHouse/pull/110452) ([Tamish Mhatre](https://github.com/tamish560)). [#110453](https://github.com/ClickHouse/ClickHouse/pull/110453) ([Tamish Mhatre](https://github.com/tamish560)).
* تم إصلاح logical error ‏`Expected CommonSubplanReferenceStep to reference CommonSubplanStep`، والخطأ ‏`Subplan cannot be used to build pipeline`، وlogical error ‏`Trying to extract chunk from ChunkBuffer before all inputs are finished` في `IN (subquery)` عندما يحتوي الـ subquery على correlated subquery ويُبنى الـ set أثناء index analysis. [#110491](https://github.com/ClickHouse/ClickHouse/pull/110491) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح substitution الخاصة بـ query parameters داخل تعريفات عبارة `WINDOW` مسمّاة. سابقًا، كانت parameters هناك تُترك دون substitution بصمت، وكان parameter `Identifier` غير المعيَّن قد يؤدي إلى الاستثناء `Logical error: '!part.empty()'` أثناء `EXPLAIN SYNTAX`. [#110506](https://github.com/ClickHouse/ClickHouse/pull/110506) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح فشل بدء تشغيل الخادم لجداول `MergeTree` على object storage disks عندما يكون الملف المتبقي `txn_version.txt.tmp` قد أفسد metadata على مستوى disk. [#110519](https://github.com/ClickHouse/ClickHouse/pull/110519) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي في filesystem cache (`Expected file ... not to exist`) كان يمكن أن يحدث عند فشل تنزيل cache في الخلفية بسبب خطأ غير متعلق بـ filesystem (على سبيل المثال أثناء تشغيل `OPTIMIZE` على Iceberg table)، ما كان يترك ملف cache يتيمًا وفارغًا. [#110549](https://github.com/ClickHouse/ClickHouse/pull/110549) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح قراءة stream تالف بتنسيق `Native` عندما يكون عدد الأنواع في `Dynamic` أو عدد المسارات في `JSON`/`Object` قريبًا من `SIZE_MAX`: إذ أصبح هذا الإدخال المشوّه يُرفض الآن برسالة خطأ واضحة `INCORRECT_DATA` بدلًا من `std::length_error` غير الملتقط. [#110590](https://github.com/ClickHouse/ClickHouse/pull/110590) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تعطل في الخادم ضمن database engine `MaterializedPostgreSQL` كان يمكن أن يحدث عندما يكون table في حالة detached (أو يتغير هيكله) بينما لا يزال مُدرجًا في قائمة انتظار المزامنة. [#110596](https://github.com/ClickHouse/ClickHouse/pull/110596) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح السلوك غير الصحيح لـ `SET param_<name>` في العميل (وأعلام `--param_<name>`) عندما يطابق اسم parameter اسم setting مضمّنًا مثل `limit` أو `offset` أو `max_threads` أو `log_comment`. وبحسب setting المتصادم، كان query يفشل مع `CANNOT_PARSE_QUOTED_STRING`، أو كانت value تُطبَّع بصمت (مثلًا `max_threads=0` تصبح `auto(N)`)، أو كان اسم alias الخاص بـ setting يُفقد. كما كان هذا النوع من parameter يُعطّل جميع أوامر `SET param_*` اللاحقة في الجلسة نفسها. [#110597](https://github.com/ClickHouse/ClickHouse/pull/110597) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح قراءة subcolumns التابعة لـ column يحتوي على expression من نوع `DEFAULT` ولم يتم materialize له في part (مثلًا بعد `ALTER TABLE ADD COLUMN` أو أثناء `ALTER TABLE MATERIALIZE COLUMN`): إذ كان subcolumn يُملأ بالقيم default الخاصة بالنوع بدلًا من ناتج expression `DEFAULT` بعد تقييمه، كما كانت دوال Distance functions للمتجهات المنقولة (`cosineDistanceTransposed` وغيرها) على أعمدة `QBit` هذه تفشل بخطأ `SIZES_OF_ARRAYS_DONT_MATCH`. يغلق هذا [#110634](https://github.com/ClickHouse/ClickHouse/issues/110634). [#110636](https://github.com/ClickHouse/ClickHouse/pull/110636) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `LOGICAL_ERROR` بعنوان `Invalid partition key size: 0` كان يمكن أن يتسبب في فشل `INSERT` إلى table من نوع `MergeTree` ومقسّم إلى partition مع تفعيل `non_replicated_deduplication_window`، وذلك عندما تكون دفعة async insert قد خضعت لإزالة التكرار جزئيًا فقط (كانت بعض قيم `insert_deduplication_token` مكررة وبعضها جديدًا). [#110651](https://github.com/ClickHouse/ClickHouse/pull/110651) ([Groene AI](https://github.com/groeneai)).
* أصبحت عملية flush الخاصة بـ asynchronous insert في الخلفية تتوقف سريعًا عند إنهائها باستخدام `KILL QUERY`؛ إذ كانت عملية flush لحمولة كبيرة مخزنة مؤقتًا تواصل التحليل حتى النهاية وتتجاهل الإلغاء سابقًا. [#110652](https://github.com/ClickHouse/ClickHouse/pull/110652) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تم إصلاح نتائج خاطئة من `GROUP BY` مع `optimize_aggregation_in_order` و`DISTINCT` مع `optimize_distinct_in_order` عند وضعهما فوق JOIN من نوع `partial_merge`. فقد كان تحسين read-in-order يُمرَّر عبر partial-merge join، الذي يعيد ترتيب الإدخال الأيسر بحسب join key، وبالتالي لا يحافظ على الترتيب الأصلي لـ stream الأيسر، ما أدى إلى تجميع الصفوف بشكل غير صحيح. [#110671](https://github.com/ClickHouse/ClickHouse/pull/110671) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح overflow لعدد صحيح موقّع في `toStartOfInterval` عند استخدام عدد interval بالغ التطرف من `MONTH` أو `WEEK` أو `DAY` على قيم `Date`/`Date32`/`DateTime64`. [#110688](https://github.com/ClickHouse/ClickHouse/pull/110688) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` في الاستعلامات التي تحتوي على استعلام فرعي داخل `FROM` عند تشغيل النسخ المتماثلة المتوازية في وضع `custom_key_sampling` / `custom_key_range`. وكانت هذه الاستعلامات (مثل `SELECT * FROM (SELECT id, k, v FROM t WHERE id < 20) ORDER BY k`) تفشل سابقًا برسالة `Not found column __table2.id in block ...`. [#110690](https://github.com/ClickHouse/ClickHouse/pull/110690) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة رفض `readWKT` لسلاسل WKT التي تبدأ بمسافة بادئة (مثل `readWKT(' POINT(1 2)')`)، رغم أن قارئات `readWKTPoint`/`readWKTPolygon`/... المعرّفة نوعيًا تقبلها، وكذلك قواعد WKT نفسها. [#110706](https://github.com/ClickHouse/ClickHouse/pull/110706) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ منطقي (`Column ... already added for reading`، وهو ما يؤدي إلى إيقاف الخادم في buildات `debug`/`sanitizer`) عند استخدام predicate نفسه لفهرس نصي في كلٍّ من `PREWHERE` و`WHERE` ضمن استعلام على جدول `Merge` فوق جدول `Distributed`. [#110710](https://github.com/ClickHouse/ClickHouse/pull/110710) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` في دوال المسافة المنقولة على أعمدة `QBit` (مثل `cosineDistanceTransposed`) عند استدعائها باستخدام استعلام فرعي قياسي أو متجه مرجعي ثابت مع تفعيل النسخ المتماثلة المتوازية. وهذا يغلق [#110719](https://github.com/ClickHouse/ClickHouse/issues/110719). [#110729](https://github.com/ClickHouse/ClickHouse/pull/110729) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ نادر من نوع `LOGICAL_ERROR` (`Unexpected number of parts to remove from parts_queue`؛ وهو ما يؤدي إلى إيقاف الخادم في buildات `debug`/`sanitizer`) في `ReplicatedMergeTree` عندما كانت عمليتا partition (مثل استعلامَي `MOVE PARTITION`/`REPLACE PARTITION`، أو عندما يتسابق أحدهما مع `DROP_RANGE` في الخلفية) تُلغيان فحص الجزء في الخلفية على ranges متداخلة في الوقت نفسه. [#110738](https://github.com/ClickHouse/ClickHouse/pull/110738) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ منطقي `Hash is not set for serialization` كان قد يحدث عندما يكون عمود ذو codec من نوع `Quantized(...)` مُغلّفًا داخل serialization أخرى، على سبيل المثال في جدول `Merge` فوق مصادر يكون فيها العمود ذو الاسم نفسه بأنواع مختلفة (مُدمجة في `Variant`). [#110776](https://github.com/ClickHouse/ClickHouse/pull/110776) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعليق الخادم عند ضرب state الخاصة بـ aggregate function من نوع `median`/`quantile` في ثابت صحيح ضخم (مثل `medianState(x) * 18446744073709551615`). إذ كان الاستعلام يصبح غير مستجيب للإلغاء وقد يستمر في العمل إلى أجل غير مسمى. [#110779](https://github.com/ClickHouse/ClickHouse/pull/110779) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم (قسمة عدد صحيح على صفر) عند استهلاك quota ذات interval بطول صفري (على سبيل المثال `CREATE QUOTA q FOR INTERVAL 0 SECOND MAX queries = 1000`). ويُرفض الآن عند إنشاء quota أي interval للحصة مدته غير موجبة. [#110846](https://github.com/ClickHouse/ClickHouse/pull/110846) ([Pedro Ferreira](https://github.com/PedroTadim)).
* تم إصلاح مشكلة `throwIf(notLike(col, pattern))` (وغيرها من حالات `throwIf` على دالة) التي كانت تتسبب في الرمي دون شرط عندما يكون `col` من نوع `LowCardinality`. إذ كان التنفيذ الافتراضي لـ `LowCardinality` يشغّل `throwIf` على الـ Dictionary بالكامل، والذي يحتوي دائمًا على default value المحجوزة حتى عندما لا يشير إليها أي row، لذا فإن وجود قيمة غير صفرية في ذلك الموضع غير المستخدم كان يؤدي إلى أن يرمي `throwIf` على بيانات لا تستوفي الشرط. [#110864](https://github.com/ClickHouse/ClickHouse/pull/110864) ([Groene AI](https://github.com/groeneai)).
* تمرير الأدوار النشطة للاستعلام (`SET ROLE` أو المعلمة `role`) إلى العقد البعيدة عند قراءات النسخ المتوازية وقراءات `Distributed` عبر عنقود مؤمَّن بسرّ interserver؛ إذ كانت العقد البعيدة سابقًا تعود إلى الأدوار الافتراضية للمستخدم، ما كان يؤدي إلى تقييم سياسات الصفوف على نحو غير متسق مع العقدة البادئة. [#110867](https://github.com/ClickHouse/ClickHouse/pull/110867) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح جداول Iceberg التي كانت تنتج معرّفات حقول مكررة بعد `ALTER TABLE ... ADD COLUMN` عندما يحتوي المخطط الأولي على حقول متداخلة (`Tuple`/`Array`/`Map`). يسجّل `last-column-id` الآن أكبر معرّف حقل مُسنَد، بما في ذلك الأبناء المتداخلون، لذلك لم يعد العمود المضاف لاحقًا يعيد استخدام معرّف حقل متداخل، ولم تعد القراءات تفشل بسبب `ICEBERG_SPECIFICATION_VIOLATION` (`Duplicate field id`). [#110884](https://github.com/ClickHouse/ClickHouse/pull/110884) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل في builds الخاصة بـ FIPS عند استخدام مفتاح SSH من نوع Ed25519 (`CREATE USER ... IDENTIFIED WITH ssh_key ... TYPE 'ssh-ed25519'`، أو مثل هذا المفتاح في `users.xml`). ‏Ed25519 غير معتمد من FIPS؛ لذا تُرفض هذه المفاتيح الآن برسالة `LIBSSH_ERROR` واضحة. [#110891](https://github.com/ClickHouse/ClickHouse/pull/110891) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح النتائج منخفضة الدقة لدوال المسافة المنقولة على أعمدة `QBit` (`cosineDistanceTransposed`, `L2DistanceTransposed`, `dotProductTransposed`). كانت القيم المقتطعة إلى مستويات البت `precision` يُعاد بناؤها مع ملء البتات المحذوفة بالأصفار، ما كان يحرّف كل قيمة معاد بناؤها نحو الصفر ويؤدي إلى سلوك متدهور عند الدقة المنخفضة: بالنسبة إلى `QBit(BFloat16)` عند `precision` يساوي 1 لا يبقى سوى بت الإشارة، لذلك كانت كل قيمة تُعاد بناؤها إلى `±0.0` وكانت المسافة ثابتة نفسها لكل صف، من دون أي معلومات للترتيب. تُعاد الآن القيم المقتطعة إلى نقطة وسط محدودة ضمن خلية الدقة المتبقية (شيفرات `Int8` الخام إلى مركز خليتها؛ مع الحفاظ على الأصفار الدقيقة واللانهايات)، بحيث تتيح قيمة `precision` الأصغر مبادلة الدقة بالسرعة من دون نتائج منحازة بشدة. أما النتائج ذات الدقة الكاملة فلم تتغير. هذا يغلق [#110898](https://github.com/ClickHouse/ClickHouse/issues/110898). [#110911](https://github.com/ClickHouse/ClickHouse/pull/110911) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل في server (use-after-free) أثناء الإيقاف السلس بعد الاستعلام عن جداول Iceberg من جلسات استخدمت أيضًا جداول مؤقتة. [#110914](https://github.com/ClickHouse/ClickHouse/pull/110914) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح `LOGICAL_ERROR: Cannot sum Bools` (إيقاف server في debug/sanitizer builds) عند دمج aggregate states الخاصة بـ `sumMap`/`sumMapWithOverflow`/`sumMapFiltered` مع قيم `Bool` جرى serialize لها بتنسيق الحالة القديم (الإصدار 0). ويصحح الإصلاح نفسه أيضًا حالتين صامتتين لنتائج خاطئة مع حالات `Bool` من الإصدار 0: لم تكن مفاتيح map من النوع `Bool` تُزال ازدواجيتها عبر الحالات، وكانت عملية compaction للقيم الصفرية تُسقط الإدخالات الخاطئة. [#110922](https://github.com/ClickHouse/ClickHouse/pull/110922) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل عند استخدام aggregate function مع combinator ‏`-Tuple` مع `RESPECT NULLS` وإنتاجها حالة وسيطة (`-State`، أو aggregation موزعة، أو `WITH ROLLUP`/`WITH CUBE`). كانت الوظيفة المدمجة تُسمّى باسم متغير الحالة الخاطئ، لذلك كان النوع `AggregateFunction` المُسلسَل يُحلّ مجددًا إلى تخطيط غير متوافق في الذاكرة عند round-trip. [#110930](https://github.com/ClickHouse/ClickHouse/pull/110930) ([Groene AI](https://github.com/groeneai)).
* إصلاح `PREWHERE` (وسياسات مستوى الصف) على عمود في Iceberg أُعيدت تسميته عبر schema evolution، إذ كان يعيد بصمت `0` rows لملفات البيانات القديمة. تُرجِع مثل هذه الاستعلامات الآن الصفوف الصحيحة، بما يطابق `WHERE`. [#110941](https://github.com/ClickHouse/ClickHouse/pull/110941) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` (`LazyMaterializingTransform: Number of rows in lazy chunk N does not match number of offsets M`) الذي قد يحدث في استعلامات البحث المتجهي عند استخدام `vector_search_with_rescoring = 1` مع التجسيد الكسول عندما تتساوى عدة مسافات. [#111003](https://github.com/ClickHouse/ClickHouse/pull/111003) ([Groene AI](https://github.com/groeneai)).
* إصلاح قراءة بيانات `Arrow`/`ArrowStream` التي تحتوي على أعمدة `Array`/`Map` متداخلة وفارغة، والمولَّدة بواسطة Apache Arrow Java \< 19.0.0 (المضمَّن مع Apache Spark)، والتي كان يجري رفضها سابقًا بخطأ `INCORRECT_DATA` يفيد بأن مخزن offsets المؤقت صغير جدًا. [#111101](https://github.com/ClickHouse/ClickHouse/pull/111101) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح القراءات المتقادمة على أقراص `plain_rewritable` عند تمكين ذاكرة تخزين الصفحات المؤقتة. [#111105](https://github.com/ClickHouse/ClickHouse/pull/111105) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح خطأ `CANNOT_CONVERT_TYPE` للثوابت من النوع `Variant` (بما في ذلك `Geometry`) في الاستعلامات الموزعة والاستعلامات التي تستخدم النسخ المتماثلة المتوازية. [#111136](https://github.com/ClickHouse/ClickHouse/pull/111136) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح خلل كان قد يتسبب في فشل قراءة الملفات الكبيرة من HDFS أو قراءتها بشكل غير صحيح عندما يتجاوز طلب قراءة واحد حد الحجم 32-بت الخاص بـ `hdfsPread` (`INT_MAX`). [#98470](https://github.com/ClickHouse/ClickHouse/pull/98470) ([Arup Chauhan](https://github.com/arup-chauhan)).
* إصلاح الاستخدام غير الصحيح لفهرس النص في مقارنات المساواة مع قيمة بحث فارغة. [#108340](https://github.com/ClickHouse/ClickHouse/pull/108340) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح حالة تعليق في `SYSTEM SYNC MERGES` مع محدد الدمج `Manual` عندما يتعذر وضع دمج مجدول ضمن مجموعة خلفية ممتلئة. [#108770](https://github.com/ClickHouse/ClickHouse/pull/108770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `ATTACH TABLE ... AS REPLICATED` الذي كان يتجاهل البيانات المعتمدة ويعيد إحياء الصفوف السابقة لـ `mutation` عند ترك ملف `txn_version.txt.tmp` متقادمًا على جزء بيانات. [#108772](https://github.com/ClickHouse/ClickHouse/pull/108772) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة تسابق محتملة في `ALTER TABLE ... MOVE PARTITION TO TABLE` مع جداول `MergeTree` غير المتماثلة، والتي كان يمكن أن تنتج أجزاء بيانات متداخلة، لأن اعتماد الأجزاء المنقولة وتخصيص رقم الكتلة لم يكونا تحت القفل نفسه. [#108922](https://github.com/ClickHouse/ClickHouse/pull/108922) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح قراءة جداول `Iceberg` المكتوبة بواسطة Databricks UniForm، الذي يكتب مخططًا شكليًا placeholder (مع قائمة حقول فارغة) في ملفات manifest. [#108945](https://github.com/ClickHouse/ClickHouse/pull/108945) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح استخدام ذاكرة بعد تحريرها عند قراءة جدول `Hive` غير مقسَّم إلى partition باستخدام عدة خيوط. [#109164](https://github.com/ClickHouse/ClickHouse/pull/109164) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم إعادة مستوى سجل وحدة التحكم بعد بدء تشغيل الخادم عند تعيين `logger.startup_console_log_level`: إذ كان المستوى يُلتقط من مفتاح إعدادات خاطئ، لذلك ظلت وحدة التحكم على مستوى بدء التشغيل المرتفع طوال عمر الخادم. يغلق [#103472](https://github.com/ClickHouse/ClickHouse/issues/103472). [#109858](https://github.com/ClickHouse/ClickHouse/pull/109858) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* إصلاح اختلالات عزل اللقطة في معاملات metadata الخاصة بأقراص `plain_rewritable`. يُصلح [#92055](https://github.com/ClickHouse/ClickHouse/issues/92055). [#110948](https://github.com/ClickHouse/ClickHouse/pull/110948) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح حالة توقّف (`front() called on an empty vector`) في `clickhouse-client --login` عندما لا يتم تمرير المضيف كوسيط `--host` صريح، مثلًا إذا كان مأخوذًا من `--connection` أو ملف الإعدادات أو متغير البيئة `CLICKHOUSE_HOST`. يغلق [#103603](https://github.com/ClickHouse/ClickHouse/issues/103603). [#110279](https://github.com/ClickHouse/ClickHouse/pull/110279) ([Christoph Wurm](https://github.com/cwurm)).
* إصلاح خطأ منطقي (`!part.empty()`) عندما تكون وسيطة lambda معرّفًا محاطًا بعلامات backtick ويحتوي اسمه على نقطة (مثل `__table1.`). كان هذا الاستعلام ينتج سابقًا استثناءً مُعالَجًا في إصدارات release، ويتسبب في توقّف الخادم في إصدارات debug وsanitizer أثناء تنسيق رسالة الخطأ. [#108735](https://github.com/ClickHouse/ClickHouse/pull/108735) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` (`No set is registered for key`) في `ALTER TABLE ... DROP COLUMN`، وmutations الخاصة بـ `ALTER TABLE ... DELETE`/`UPDATE`، و`DELETE FROM` خفيف الوزن، على الجداول التي تحتوي على عمود `ALIAS` يستخدم تعبيره عامل التشغيل `IN` (بما في ذلك عبر عمود `ALIAS` آخر). [#111039](https://github.com/ClickHouse/ClickHouse/pull/111039) ([Pedro Ferreira](https://github.com/PedroTadim)).
* إصلاح فقدان صامت للبيانات مع async inserts وإزالة التكرار (`async_insert=1`, `async_insert_deduplicate=1`). فعندما كانت عدة إدخالات async-insert ذات قيم `insert_deduplication_token` مختلفة تُدمج في عملية flush واحدة وتُكتب إلى partitions منفصلة، كان كل token يُسجَّل في سجل إزالة التكرار لكل partition لمستها عملية flush، وليس فقط في الـ partition التي انتهت فيها صفوفه. ونتيجةً لذلك، كان أي insert لاحق يعيد استخدام أحد هذه tokens في partition لم يسبق أن كتب إليها يُزال تكراره بصمت. والآن لم تعد tokens تُسجَّل إلا في الـ partition التي انتهت فيها صفوفها فعليًا. يغلق [#111031](https://github.com/ClickHouse/ClickHouse/issues/111031). [#111049](https://github.com/ClickHouse/ClickHouse/pull/111049) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء `LOGICAL_ERROR` (`ScatterExchangeStep should have one source shard, got 8`) وظهور صفوف مكررة عند الاستعلام عن جدول `Merge` فوق جداول أو عروض `Distributed` مع الإعداد التجريبي `make_distributed_plan = 1`. يغلق [#107946](https://github.com/ClickHouse/ClickHouse/issues/107946). [#108401](https://github.com/ClickHouse/ClickHouse/pull/108401) ([Groene AI](https://github.com/groeneai)).
* إجراء serialize لعمود `Nullable(Tuple(...))` كحقل `CSV` واحد بدلًا من تسطيحه إلى أعمدة منفصلة. سابقًا، كانت القيمة غير NULL تُكتب على شكل عدة حقول `CSV`، بينما كان `NULL` يُكتب كحقل واحد `\N`، مما جعل عدد الأعمدة يعتمد على الصف وأفسد ترويسات `CSVWithNames`/`CSVWithNamesAndTypes` وعمليات round-trip. [#108959](https://github.com/ClickHouse/ClickHouse/pull/108959) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ منطقي (`KeyCondition uses PREWHERE output`) في قارئ `Parquet` v3 عندما يشير شرط المفتاح على مستوى format إلى عمود لا تتم قراءته من ملف `Parquet`. [#109267](https://github.com/ClickHouse/ClickHouse/pull/109267) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج غير صحيحة لعمليات القراءة عبر table function مع `FINAL` أو `SAMPLE` عند استخدام `serialize_query_plan = 1`. وكذلك إصلاح مفتاح ذاكرة التخزين المؤقت لإحصاءات جدول hash الخاص بـ aggregation لِـ table functions، بحيث لم تعد table functions المختلفة تشترك في نفس مُدخل التخصيص المسبق. [#109847](https://github.com/ClickHouse/ClickHouse/pull/109847) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تنظيف `BACKUP ... TO Memory(...)` عند فشله قبل الإنهاء النهائي: إذ كان النسخ الاحتياطي الفاشل يبقى مسجلًا، وبالتالي لا يمكن إعادة استخدام اسمه. [#109947](https://github.com/ClickHouse/ClickHouse/pull/109947) ([Julia Kartseva](https://github.com/jkartseva)).
* إصلاح العمليات الحسابية للحالات القصوى لـ interval في `WITH FILL STEP` ودوال interval للتاريخ/الوقت `add*` / `subtract*`: لم تعد الفروق الخارجة عن النطاق تعتمد على overflow الموقَّع، ولم يعد `WITH FILL` مع خطوة `YEAR` كبيرة جدًا يتعطل بسبب إرجاع التقويم إلى الخلف. [#110158](https://github.com/ClickHouse/ClickHouse/pull/110158) ([Groene AI](https://github.com/groeneai)).
* إصلاح أخطاء `411 Length Required` من خدمات Azure: أصبح نقل Azure عبر HTTP المعتمد على Poco يضبط `Content-Length` استنادًا إلى request body لعملاء SDK الذين لا يضبطونه بأنفسهم، مثل Azure Key Vault. [#110299](https://github.com/ClickHouse/ClickHouse/pull/110299) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* لم يعد يُطبَّق تحسين `FINAL` الكسول (`query_plan_optimize_lazy_final`، وهو معطّل افتراضيًا) عندما يقرأ query وفق ترتيب مفتاح sorting، لأن plan الاستبدال الناتجة عنه لا تحافظ على هذا الترتيب وقد تُرجع نتائج بترتيب غير صحيح. كما لم يعد يُطبَّق عندما يُطبَّق `LIMIT` أصغر من عدد rows المطلوب قراءتها مباشرةً على step القراءة، لأن تمريرة بناء المجموعة الإلزامية تُفقد ميزة الإنهاء المبكر. [#110576](https://github.com/ClickHouse/ClickHouse/pull/110576) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح مشكلة قيام `readWKT` و`readWKTPoint` بإرجاع إحداثيات غير مهيأة (scalar) أو قديمة من row سابقة (vectorized) للقيمة `POINT EMPTY`. وأصبح `POINT EMPTY` يُرفَض الآن مع `CANNOT_PARSE_TEXT`، لأن `Point` في ClickHouse هو `Tuple(Float64, Float64)` ثابت ولا يملك تمثيلًا فارغًا. [#110692](https://github.com/ClickHouse/ClickHouse/pull/110692) ([Groene AI](https://github.com/groeneai)).
* إصلاح التعامل الخاطئ مع timezone عند materializing أعمدة الجهة اليمنى في hash joins. يغلق [#111033](https://github.com/ClickHouse/ClickHouse/issues/111033). [#111074](https://github.com/ClickHouse/ClickHouse/pull/111074) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح نتائج `count()` الخاطئة وسقوط rows عند ترشيح مفتاح من نوع `String` (أو `FixedString` أضيق) أو skip index من نوع minmax بمقارنة مع ثابت `FixedString` أعرض، مثل `toFixedString('abc', 257) = string_col`. كان كل من pruning لمفتاح primary وminmax يبنيان النطاق من الثابت المحشو بـ NUL ويتخطيان granules المطابقة على نحو خاطئ. [#111106](https://github.com/ClickHouse/ClickHouse/pull/111106) ([Groene AI](https://github.com/groeneai)).
* إصلاح عمليات inserts غير المتزامنة بتنسيق `Native` بحيث لم يعد إدخال واحد مخزَّن مؤقتًا يصبح غير متوافق بعد `ALTER ... MODIFY COLUMN` يتسبب في فشل الدفعة بالكامل. يغلق [#111064](https://github.com/ClickHouse/ClickHouse/issues/111064). [#111108](https://github.com/ClickHouse/ClickHouse/pull/111108) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* إصلاح `CREATE OR REPLACE` لقاموس مع كائن من نوع آخر: كان يفشل مع `CANNOT_DETACH_DICTIONARY_AS_TABLE` بعد أن يكون الاستبدال قد committed بالفعل، مما يترك table يتيمة باسم `_tmp_replace_*`. [#111142](https://github.com/ClickHouse/ClickHouse/pull/111142) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح `INCOMPATIBLE_TYPE_OF_JOIN` لعملية join من نوع `ANY` على table بمحرك `Join` عندما كان filter `WHERE` على عمود من الجهة اليمنى يسمح لـ query planner بإعادة كتابة join إلى `SEMI` أو `ANTI`. فـ table بمحرك `Join` لها strictness معلنة وثابتة لا يمكن تغييرها، لذا أصبح هذا التحويل يُرفَض الآن لمثل هذه الجداول. [#111362](https://github.com/ClickHouse/ClickHouse/pull/111362) ([Groene AI](https://github.com/groeneai)).
* إصلاح table function `format` التي كانت لا تُرجع أي columns عندما تُحلَّل بيانات الإدخال إلى zero rows (على سبيل المثال، مستند JSON فارغ أو `FeatureCollection` من GeoJSON بلا features). وهي الآن تُرجع نتيجة فارغة مع columns الصحيحة بدلًا من إطلاق `NOT_FOUND_COLUMN_IN_BLOCK`. يغلق [#111390](https://github.com/ClickHouse/ClickHouse/issues/111390). [#111428](https://github.com/ClickHouse/ClickHouse/pull/111428) ([Groene AI](https://github.com/groeneai)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* أصبحت builds الخاصة بـ sanitizer تلتقط الآن تقرير sanitizer في المخزن المؤقت العام `sanitizer_report`، بحيث يتمكن محلل core dump من قراءته من core dump. [#109333](https://github.com/ClickHouse/ClickHouse/pull/109333) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* ابنِ `musl` من المصدر بدلًا من استخدام binaries المضمّنة. [#97452](https://github.com/ClickHouse/ClickHouse/pull/97452) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام تطبيقات SIMD للدوال `memcmp`/`memcpy`/`memmove`/`memset`/`bcmp`/`memmem` من LLVM-libc. [#107566](https://github.com/ClickHouse/ClickHouse/pull/107566) ([Konstantin Bogdanov](https://github.com/thevar1able)). وإصلاح تلف صامت في `memmove` في builds الخاصة بـ Debug عند `-O0` (`-DDEBUG_O_LEVEL=0`) على الأجهزة التي تدعم AVX-512. [#110904](https://github.com/ClickHouse/ClickHouse/pull/110904) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إزالة استخدامات مكتبة `curl` من كامل codebase ومن مكتبات third-party المضمّنة. [#108296](https://github.com/ClickHouse/ClickHouse/pull/108296) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تم تحديث `mariadb-connector-c` إلى 3.4.9. [#108328](https://github.com/ClickHouse/ClickHouse/pull/108328) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحديث `libssh` إلى 0.12.0. [#108329](https://github.com/ClickHouse/ClickHouse/pull/108329) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح تعليق عند تنفيذ `COMMIT` للمعاملة على MacOS. [#108375](https://github.com/ClickHouse/ClickHouse/pull/108375) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيف خيار CMake باسم `COMPRESS_DEBUG_SECTIONS` لضغط أقسام Debug من نوع DWARF في object files (`-gz`)، ويُفعَّل تلقائيًا حيث يدعمه المصرّف، لتقليص دليل builds الخاصة بـ Debug؛ وتبقى binaries النهائية غير مضغوطة، لذلك لا يتأثر ترميز رموز stack trace وقت التشغيل. [#109306](https://github.com/ClickHouse/ClickHouse/pull/109306) ([Murphy](https://github.com/murphy-4o)). كما تُبنى الآن سلسلة أدوات LLVM المضمّنة مع zlib، بحيث يدعم clang الخاص بها `-gz=zlib`، وأُضيف أيضًا الرابط الرمزي المفقود `clang++-21`. [#109596](https://github.com/ClickHouse/ClickHouse/pull/109596) ([Murphy](https://github.com/murphy-4o)).
* أصبحت builds الخاصة بـ Debug تُصرِّف الآن Rust crates المضمّنة مع معلومات Debug مخفّضة (`debug = 1`، مستوى cargo's `limited`) ومن دون incremental cache (`REDUCE_RUST_DEBUG_INFO`، مفعّل افتراضيًا)، ما يقلّص build artifacts الخاصة بـ Rust (\~12 → \~7 GB من الصفر) ويمنع النمو غير المحدود لذاكرة cache الخاصة بـ cargo عبر عمليات إعادة البناء. اضبط `-DREDUCE_RUST_DEBUG_INFO=OFF` لاستعادة DWARF الكامل وincremental compilation. [#109471](https://github.com/ClickHouse/ClickHouse/pull/109471) ([Murphy](https://github.com/murphy-4o)).
* دعم exchange الخاص بـ distributed query المتدفقة وعمليات reads لـ `STREAM` على MacOS. [#109769](https://github.com/ClickHouse/ClickHouse/pull/109769) ([Raúl Marín](https://github.com/Algunenano)).
* ترقية `libarchive` من 3.8.7 إلى 3.8.8. [#109874](https://github.com/ClickHouse/ClickHouse/pull/109874) ([Robert Schulze](https://github.com/rschu1ze)).
* ترقية `c-ares` من 1.34.6 إلى 1.34.8. [#109905](https://github.com/ClickHouse/ClickHouse/pull/109905) ([Robert Schulze](https://github.com/rschu1ze)).
* تحديث `krb5` لإصلاح CVE-2026-40355 و CVE-2026-40356. [#109910](https://github.com/ClickHouse/ClickHouse/pull/109910) ([Robert Schulze](https://github.com/rschu1ze)).
* أُزيلت التبعية التابعة لجهة خارجية `libpng`. ويستخدم `FORMAT PNG` الآن مُشفِّر PNG صغيرًا مدمجًا بدلًا منه، ويعتمد على zlib المضمَّن. [#110051](https://github.com/ClickHouse/ClickHouse/pull/110051) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف تتبّع لتخصيصات C الخام (التي لا تمر عبر `operator new`) في `memory tracker` على macOS، وذلك عبر تغليف نطاق malloc الخاص بـ jemalloc، بحيث تُطبَّق عليها حدود الذاكرة. [#110370](https://github.com/ClickHouse/ClickHouse/pull/110370) ([Raúl Marín](https://github.com/Algunenano)).
* تُبنى الآن صور Docker ذات اللاحقة `-distroless` لكلٍّ من `clickhouse-server` و`clickhouse-keeper` انطلاقًا من مرحلة production الخالية من shell؛ بينما كان يجري سابقًا بناؤها من مرحلة debug وكانت تتضمّن `/busybox/sh`. يُغلق [#105677](https://github.com/ClickHouse/ClickHouse/issues/105677). [#105678](https://github.com/ClickHouse/ClickHouse/pull/105678) ([ashishch432](https://github.com/ashishch432)).
* تحديث `abseil-cpp` إلى LTS `20260526.0`. [#108991](https://github.com/ClickHouse/ClickHouse/pull/108991) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="266">
  ### إصدار ClickHouse 26.6، بتاريخ 2026-06-25. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.6/)، [الفيديو](https://www.youtube.com/watch?v=-NmqMH9y4EY)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* يزيل هذا التغيير الميزة `allow_experimental_query_deduplication`. ظلت هذه الميزة تجريبية لفترة طويلة، ولا توجد لها اختبارات، ولن تحظى بالدعم (إذ كانت الاختبارات الأولية غير مستقرة وقد أُزيلت في [#49579](https://github.com/ClickHouse/ClickHouse/pull/49579)). [#99398](https://github.com/ClickHouse/ClickHouse/pull/99398) ([Igor Nikonov](https://github.com/devcrafter)).
* تستخدم ميزة `SYSTEM INSTRUMENT` المستندة إلى XRay الآن `arguments` بدلًا من `parameters`: فقد أُعيدت تسمية العمود `system.instrumentation.parameters` إلى `arguments`، وأُعيدت تسمية الصياغة `SYSTEM INSTRUMENT ADD ... HANDLER PARAMETERS ...` إلى `SYSTEM INSTRUMENT ADD ... HANDLER ARGUMENTS ...`. يجب تحديث أي استعلامات أو عمليات أتمتة تستخدم العمود أو الصياغة القديمة لاستخدام الأسماء الجديدة؛ إذ لم تعد الأسماء القديمة مدعومة. [#103854](https://github.com/ClickHouse/ClickHouse/pull/103854) ([Pablo Marcos](https://github.com/pamarcos)).
* أُعيدت تسمية الإعداد `show_data_lake_catalogs_in_system_tables` إلى `show_remote_databases_in_system_tables` مع توسيع نطاقه: عندما تكون قيمته 0 (القيمة الافتراضية)، تُخفى أيضًا قواعد بيانات `MySQL` و`PostgreSQL` من `system.tables` و`system.columns` و`system.completions`، بالإضافة إلى كتالوجات بحيرات البيانات. ويظل اسم الإعداد القديم محفوظًا كاسم مستعار. [#104416](https://github.com/ClickHouse/ClickHouse/pull/104416) ([Pablo Marcos](https://github.com/pamarcos)).
* تستهدف بنية x86 الافتراضية الآن x86-64-v3 ‏(AVX2) بدلًا من x86-64-v2 ‏(SSE4.2). ويتطلب ذلك معالج CPU يدعم AVX2 ‏(Intel Haswell أو أحدث، وAMD Excavator أو أحدث). إذا كان معالج CPU لديك لا يدعم AVX2، فاستخدم بنية `amd64compat` التي تستهدف x86-64 العادي. [#105019](https://github.com/ClickHouse/ClickHouse/pull/105019) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح يُرفض استخدام `Dynamic`/`Variant` المتداخلة في تجميعات `min`/`max` وفهارس `minmax`. سابقًا، كان التحقق يقتصر على `Dynamic`/`Variant` في المستوى الأعلى فقط. يُغلق [#104747](https://github.com/ClickHouse/ClickHouse/issues/104747). [#105468](https://github.com/ClickHouse/ClickHouse/pull/105468) ([Pavel Kruglov](https://github.com/Avogar)).
* يرفض كل من `icebergHash` و`icebergBucket` الآن وسائط `Int128` و`UInt128` و`Int256` و`UInt256` و`Decimal256` مع إظهار خطأ صريح. سابقًا، كانا يقتطعان القيم الأكبر بصمت وينتجان تجزئات متصادمة. لا تعرّف مواصفة Iceberg التجزئة إلا للأعداد الصحيحة ذات 32/64 بت وللأعداد العشرية ذات دقة تصل إلى 38؛ حوِّل إلى `Int64` أو `Decimal128` للحفاظ على السلوك السابق للقيم التي تتسع لها هذه الأنواع. [#105866](https://github.com/ClickHouse/ClickHouse/pull/105866) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيف تحكم دقيق في تكرار عرض الاستعلامات في CLI. يقبل الخيار `--echo` الآن قيمة منطقية اختيارية ويعمل في كل من الوضع التفاعلي ووضع الدُفعات. ويتحكم الخياران الجديدان `--echo-formatted` و`--echo-query-id` في ما إذا كانت الاستعلامات المعاد عرضها تُنسَّق وما إذا كان `query_id` يُطبع، على التوالي. كما يتحكم الخيار `--hilite`/`--highlight` الآن أيضًا في تمييز الاستعلامات المعاد عرضها. وكأثر جانبي، أصبح `--echo` الآن خيارًا يقبل قيمة منطقية، لذا فإن أي استعلام موضعي يأتي مباشرة بعد `--echo` المجرد يُعامَل على أنه قيمته؛ استخدم `--echo --query "..."` أو `--echo=false` بدلًا من ذلك. [#106191](https://github.com/ClickHouse/ClickHouse/pull/106191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُزيلت دوال KQL ‏(Kusto) التجريبية `array_sort_asc` و`array_sort_desc`، وكذلك الواجهات الخلفية الخاصة بها في SQL وهي `kql_array_sort_asc` و`kql_array_sort_desc`. كانت هذه الدوال تجريبية، ومنفذة بجودة منخفضة، وكانت مصدرًا لأخطاء في الصحة والمحلل. وتُرجع الاستعلامات التي تستخدم هذه الأسماء الآن `UNKNOWN_FUNCTION`. [#108101](https://github.com/ClickHouse/ClickHouse/pull/108101) ([Groene AI](https://github.com/groeneai)).
* لم يعد `ALTER TABLE ... REPLACE PARTITION ... FROM ...` يحذف بصمت بيانات القسم في الوجهة عندما لا يحتوي جدول المصدر على أي أجزاء في القسم المطلوب. سابقًا، كان هذا الطلب يزيل قسم الوجهة ولا يكتب شيئًا بدلًا منه — وهو سلوك قد يتسبب بسهولة في فقدان البيانات. والآن، يُرفض هذا افتراضيًا مع `BAD_ARGUMENTS`. لاستعادة سلوك المسح الصامت السابق، اضبط الإعداد الجديد `allow_replace_partition_from_empty_source = 1`، أو اضبط `compatibility` على `26.5` أو أقل؛ ولحذف بيانات الوجهة صراحةً، استخدم `ALTER TABLE ... DROP PARTITION`. [#104939](https://github.com/ClickHouse/ClickHouse/pull/104939) ([Groene AI](https://github.com/groeneai)).
* تتغير القيمة الافتراضية لإعداد الخادم `insert_deduplication_version` من `compatible_double_hashes` إلى `new_unified_hash`. تعمل إزالة التكرار عند الإدراج الآن على كتلة الإدراج بالكامل (لكل عملية insert) بدلًا من أن تعمل على مستوى كل جزء/قسم: تظل إعادة محاولة عملية insert نفسها خاضعة لإزالة التكرار، لكن لم تعد عمليتا insert مختلفتان تنتجان جزءًا متطابقًا تخضعان لإزالة التكرار بشكل متبادل، كما أن عمليات insert للصفوف نفسها بعد إعادة ترتيبها لم تعد تخضع لإزالة التكرار. اضبط `insert_deduplication_version = compatible_double_hashes` لاستعادة السلوك السابق. ويجب على المثيلات التي تُرقّى مباشرةً من إصدار كان يستخدم `old_separate_hashes` افتراضيًا أن تعمل أولًا باستخدام `compatible_double_hashes` حتى تنقضي أطول نافذة إزالة تكرار ذات صلة قبل الاعتماد على `new_unified_hash`. [#107886](https://github.com/ClickHouse/ClickHouse/pull/107886) ([Sema Checherinda](https://github.com/CheSema)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* تمت إضافة دعم للاستعلامات المستمرة فوق جداول `MergeTree`، ويُنفَّذ ذلك عبر سلسلة من قراءات snapshot. وهذه خطوة أولى نحو دعم عام للاستعلامات المتدفقة. [#105114](https://github.com/ClickHouse/ClickHouse/pull/105114) ([Mikhail Artemenko](https://github.com/Michicosun)).
* تمت إضافة فهارس تخطٍّ افتراضية (what-if). استخدم `CREATE HYPOTHETICAL INDEX ... ON t (expr) TYPE ...` لتعريف فهرس تخطٍّ افتراضي ضمن نطاق الجلسة، ثم `EXPLAIN WHATIF SELECT ...` لتقدير نسبة التخطي والتكلفة من دون إنشائه فعليًا. وتظهر الفهارس المعرّفة في الجدول الجديد `system.hypothetical_indexes`. [#104608](https://github.com/ClickHouse/ClickHouse/pull/104608) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* أُضيفت واجهة ويب مضمّنة عند `/schema` إلى `clickhouse-server` تعرض بصريًا مخطط الاعتماديات بين الجداول، والعروض المادية، والعروض المادية القابلة للتحديث، والقواميس، والجداول الموزعة، والعروض. [#105276](https://github.com/ClickHouse/ClickHouse/pull/105276) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تمت إضافة دعم تنسيق الإخراج `PNG`، مما يتيح عرض نتائج الاستعلام مباشرةً على هيئة صور PNG. [#74691](https://github.com/ClickHouse/ClickHouse/pull/74691) ([Maksim Dergousov](https://github.com/m7kss1)).
* تمت إضافة اكتشاف وكيل البرمجة المعتمد على الذكاء الاصطناعي (Claude Code وCursor وCodex وGemini CLI وGoose وغيرها) الذي استدعى `clickhouse-client` أو `clickhouse-local`، وذلك استنادًا إلى متغيرات البيئة. ويُبلَّغ عن الوكيل المكتشَف في العمود الجديد `client_agent` ضمن `system.query_log` و`system.query_thread_log` و`system.processes`. [#106619](https://github.com/ClickHouse/ClickHouse/pull/106619) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة جدول نظام جديد باسم `system.documentation` يجمع التوثيق المرجعي المضمّن للمكوّنات الموحدة في النظام (الدوال، ومحركات الجداول، وأنواع البيانات، والإعدادات، والتنسيقات، وغيرها) في جدول واحد، مع عرض التوثيق بصيغة Markdown. [#107463](https://github.com/ClickHouse/ClickHouse/pull/107463) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف تنسيق الإدخال `GeoJSON` لقراءة مستندات `FeatureCollection` الخاصة بـ [GeoJSON](https://geojson.org/)، بحيث يُنتج صفًا واحدًا لكل معلم مع الأعمدة `id` (`String`) و`geometry` (`Geometry`) و`properties` (`Nullable(JSON)`). وتُقرأ الأشكال الهندسية من الأنواع `Point` و`LineString` و`MultiLineString` و`Polygon` و`MultiPolygon` إلى النوع الأصلي `Geometry` في ClickHouse. أما `GeometryCollection` و`MultiPoint`، اللذان لا يستطيع النوع `Geometry` تمثيلهما، فيُطلقان استثناءً افتراضيًا، أو يمكن تخزينهما على هيئة `NULL` عبر الإعداد `input_format_geojson_unsupported_geometry_handling`. يساهم ذلك في [#91533](https://github.com/ClickHouse/ClickHouse/issues/91533). [#98124](https://github.com/ClickHouse/ClickHouse/pull/98124) ([Mark Needham](https://github.com/mneedham)).
* تمت إضافة دوال لتقديم Mapbox Vector Tiles مباشرةً من SQL: تقوم `MVTEncodeGeom` بإسقاط شكل هندسي إلى فضاء البكسل لبلاطة slippy-map وقصّه، وتقوم `MVTEncode` بتجميع الأشكال الهندسية المُسقطة لمجموعة ما في البايتات الثنائية لبلاطة أحادية الطبقة، بينما تُرجع `MVTBoundingBox` / `MVTBoundingBoxMercator` المربع المحيط بالبلاطة لتقييد الصفوف به. ويدعم ذلك الأشكال الهندسية من نوع النقاط والخطوط والمضلعات. كما يتوفر أيضًا تحت الأسماء البديلة الخاصة بـ PostGIS، وهما `ST_AsMVTGeom` و`ST_AsMVT`. [#106107](https://github.com/ClickHouse/ClickHouse/pull/106107) ([Saarthak Gupta](https://github.com/saarthak2002)).
* يدعم `clickhouse-local` الآن الاستعلامين `SYSTEM START LISTEN` و`SYSTEM STOP LISTEN`، مما يتيح تحويله إلى خادم يقبل اتصالات TCP وHTTP. [#101143](https://github.com/ClickHouse/ClickHouse/pull/101143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة أمر `help` تفاعلي إلى `clickhouse-client` و`clickhouse-local`. تؤدي كتابة `help <name>` (وأيضًا `/help` و`man` و`/man`) إلى عرض توثيق دالة أو محرك جدول أو نوع بيانات أو تنسيق أو إعداد أو أي مكوّن آخر، مع تقديمه من Markdown داخل الطرفية مع تمييز صياغة SQL. وعندما تكون الكلمة ملتبسة، تُعرض جميع المطابقات، وعند عدم العثور عليها، تُقترح أسماء مشابهة. [#108042](https://github.com/ClickHouse/ClickHouse/pull/108042) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم الكتابة إلى Azure Data Lake Storage Gen2. [#105406](https://github.com/ClickHouse/ClickHouse/pull/105406) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إضافة التنسيق `RowBinaryWithNamesAndTypesAndDefaults` لتحسين دعم schema evolution. [#105736](https://github.com/ClickHouse/ClickHouse/pull/105736) ([Mark Zitnik](https://github.com/mzitnik)).
* تنفيذ `ADD ENUM VALUES` في استعلامات `ALTER TABLE` لتبسيط إضافة قيم جديدة إلى نوع `Enum` موجود، من دون الحاجة إلى إعادة تحديد جميع قيم `Enum` الحالية. [#93830](https://github.com/ClickHouse/ClickHouse/pull/93830) ([Ilya Golshtein](https://github.com/ilejn)).
* أصبح العرض المادي القابل للتحديث يدعم الآن `REFRESH DEPENDS ON` لتشغيل عمليات التحديث استنادًا إلى تحديثات RMV آخر بدلًا من جدول زمني قائم على الوقت. (كانت `REFRESH EVERY ... DEPENDS ON` موجودة بالفعل، لكنها لم تكن قابلة للاستخدام بشكل موثوق لهذا السيناريو.) راجع توثيق `CREATE MATERIALIZED VIEW`. [#104440](https://github.com/ClickHouse/ClickHouse/pull/104440) ([Michael Kolupaev](https://github.com/al13n321)).
* إضافة دعم لاختيار الأعمدة بحسب نمط الاسم باستخدام `* LIKE '<pattern>'` و`* ILIKE '<pattern>'`، بما في ذلك الصيغ المؤهلة مثل `table.* LIKE '<pattern>'` و`table.* ILIKE '<pattern>'`. يطابق `LIKE` أسماء الأعمدة مع مراعاة حالة الأحرف، بينما يطابق `ILIKE` من دون مراعاة حالة الأحرف. [#104569](https://github.com/ClickHouse/ClickHouse/pull/104569) ([Yue Ni](https://github.com/niyue)).
* تمت إضافة صياغة `ESCAPE` التي تعرّف محرف إفلات مخصصًا في نمط `LIKE`، ما يتيح التعامل مع `%` و`_` كمحارف حرفية بدلًا من wildcards. [#99774](https://github.com/ClickHouse/ClickHouse/pull/99774) ([Ilya Yatsishin](https://github.com/qoega)).
* إضافة إعدادي الجدول `materialize_projections_on_insert` و`materialize_projections_on_merge` لـ `MergeTree`. عندما يكون `materialize_projections_on_insert = 0`، تتخطى عمليات `INSERT` إنشاء projection parts، مما يحسّن throughput الإدراج للجداول التي تحتوي على projections كثيرة. وعندما يكون `materialize_projections_on_merge = 1`، تعيد عملية merge إنشاء projection مفقود من جميع source parts الخاصة به، بحيث يمكن إنشاء projections أثناء merges بدلًا من on insert. وتظل merges تجمع فقط بين parts التي تشترك في المجموعة نفسها من projections. [#100993](https://github.com/ClickHouse/ClickHouse/pull/100993) ([Christoph Wurm](https://github.com/cwurm)).
* إضافة إعداد `MergeTree` جديد غير قابل للتغيير باسم `allow_tuple_element_aggregation`، وهو معطّل افتراضيًا. عند تفعيله، تقوم `SummingMergeTree` و`AggregatingMergeTree` و`CoalescingMergeTree` بتسطيح أعمدة `Tuple` بشكل متكرر وتجميع كل عنصر نهائي بصورة مستقلة أثناء merges، تمامًا كما لو كان عمودًا من المستوى الأعلى — إذ تقوم `SummingMergeTree` بجمعه، وتقوم `AggregatingMergeTree` بدمج حالة دالة التجميع الخاصة به، بينما تحتفظ `CoalescingMergeTree` بآخر قيمة غير `NULL` له. يجب تحديد هذا الإعداد عند إنشاء الجدول، ويُتجاهل بصمت من قِبل المحركات التي لا تدعمه. [#98039](https://github.com/ClickHouse/ClickHouse/pull/98039) ([johnjing](https://github.com/JingYanchao)).
* دالتان جديدتان `quantizeBFloat16ToInt8` و`dequantizeInt8ToBFloat16`: codec عددي يضغط مكونات التضمينات إلى 8-bit باستخدام مكمّم Gaussian Lloyd-Max ذي 256 مستوى، ويمكن استخراج شيفرات Int4/Int2/binary منه عبر اقتطاع البتات. [#108102](https://github.com/ClickHouse/ClickHouse/pull/108102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت الدالتان `arrayTopK` و`arrayBottomK`: - تُرجِع `arrayTopK(k, array)` أكبر K عنصرًا بترتيب تنازلي - تُرجِع `arrayBottomK(k, array)` أصغر K عنصرًا بترتيب تصاعدي. [#104563](https://github.com/ClickHouse/ClickHouse/pull/104563) ([Vitaly Baranov](https://github.com/vitlibar)).
* أُضيف جدول نظام جديد `system.iceberg_files` يعرض البيانات الوصفية لكل ملف في جداول `Iceberg`، بصف واحد لكل ملف بيانات أو حذف في اللقطة الحالية لكل جدول. ويغلق هذا [#98777](https://github.com/ClickHouse/ClickHouse/issues/98777). [#104415](https://github.com/ClickHouse/ClickHouse/pull/104415) ([Asya Shneerson](https://github.com/asya-ch)).
* أُضيف جدول `system.constraints` الذي يوفّر معلومات عن جميع قيود `CHECK` و`ASSUME` عبر كل الجداول، بما في ذلك اسم القيد ونوعه والتعبير الخاص به. [#105337](https://github.com/ClickHouse/ClickHouse/pull/105337) ([Pedro Ferreira](https://github.com/PedroTadim)).
* أُضيف جدول جديد `system.dictionary_layouts` يسرد تخطيطات القواميس المتاحة مع الوثائق المضمّنة (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106182](https://github.com/ClickHouse/ClickHouse/pull/106182) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف جدول جديد `system.dictionary_sources` يسرد مصادر القواميس المتاحة مع الوثائق المضمّنة (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106184](https://github.com/ClickHouse/ClickHouse/pull/106184) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف جدول جديد `system.data_skipping_index_types` يسرد أنواع فهارس تخطي البيانات المتاحة مع الوثائق المضمّنة (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106186](https://github.com/ClickHouse/ClickHouse/pull/106186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف جدول جديد `system.disk_types` يسرد أنواع الأقراص المتاحة مع الوثائق المضمّنة (`description`, `syntax`, `examples`, `introduced_in`, `related`). [#106187](https://github.com/ClickHouse/ClickHouse/pull/106187) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جرى تنفيذ `SYSTEM RESTART DISK <name>`: إذ يعيد الآن تحميل البيانات الوصفية الموجودة في الذاكرة الخاصة بالقرص، ويعيد فحص الأجزاء البيانية لجداول النسخ المتماثلة للقراءة فقط الموجودة عليه. يتيح هذا لنسخة متماثلة للقراءة فقط من جدول على تخزين `plain_rewritable` مشترك أن ترى، عند الطلب، البيانات التي كتبها خادم آخر، من دون انتظار `refresh_parts_interval` أو إعادة تشغيل الخادم. [#106645](https://github.com/ClickHouse/ClickHouse/pull/106645) ([Jordi Villar](https://github.com/jrdi)).
* أصبحت صيغة PostgreSQL `expr OP SOME(array)` / `expr OP ALL(array)` (عندما لا يكون الطرف الأيمن استعلامًا فرعيًا) مدعومة الآن، ويُعاد كتابتها إلى `has` / `NOT has` في حالة `=`/`<>`، أو إلى دوال لامبدا في `arrayExists` / `arrayAll` مع عوامل المقارنة الأخرى. لا يُقبل `ANY` في صيغة المصفوفة لأن `any` هي أيضًا دالة تجميعية؛ استخدم `SOME` بدلًا من ذلك. وتستمر صيغة الاستعلام الفرعي لكل من `ANY`/`SOME`/`ALL` في التحويل إلى `IN` / `NOT IN`. [#105129](https://github.com/ClickHouse/ClickHouse/pull/105129) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت استراتيجيتان جديدتان إلى `load_balancing`، هما `hostname_longest_common_prefix` و`hostname_longest_common_suffix`، وتُفضّلان النسخة المتماثلة التي يشترك اسم مضيفها مع اسم مضيف الجهة المُبادِئة في أطول بادئة مشتركة (أو لاحقة مشتركة، على الترتيب). وهما مفيدتان عندما يكون مركز البيانات مُشفّرًا كبادئة أو لاحقة في أسماء مضيفين تحتوي على مقاطع رقمية متفاوتة الطول، حيث تختار الاستراتيجيتان الحاليتان `nearest_hostname` و`hostname_levenshtein_distance` النسخة المتماثلة الخاطئة. [#107360](https://github.com/ClickHouse/ClickHouse/pull/107360) ([Denny \[DBA at Innervate\]](https://github.com/den-crane)).
* أُضيفت معلومات شهادة عميل TLS (الموضوعات، والرقم التسلسلي، والجهة المُصدِرة، وفترة الصلاحية) إلى جدول `system.session_log` لتحسين الأوبزرفابيليتي للمصادقة المستندة إلى الشهادات. [#107679](https://github.com/ClickHouse/ClickHouse/pull/107679) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف مُعرّف اعتماد اختياري `external_id` للوصول المستند إلى الدور في `S3`. [#106941](https://github.com/ClickHouse/ClickHouse/pull/106941) ([Elian Gidoni](https://github.com/eliangidoni)).
* أُضيف إعداد جديد لـ `S3Queue` باسم `after_processing_move_preserve_path`. عند تمكينه مع `after_processing='move'` و`after_processing_move_prefix`، تُنقل الكائنات المُعالجة مع الحفاظ على مسار المصدر الكامل ضمن بادئة الوجهة بدلًا من تسطيحها إلى اسم الملف فقط. [#105354](https://github.com/ClickHouse/ClickHouse/pull/105354) ([Asya Shneerson](https://github.com/asya-ch)).
* أُضيف إعداد على مستوى الخادم باسم `message_queue_disable_insertion` لتعطيل الإدراج من محركات طوابير الرسائل (`Kafka`, `RabbitMQ`, `NATS`) إلى العروض المادية المرفقة. وهذا مفيد لسيناريوهات النسخ المتماثلة للقراءة فقط. [#104911](https://github.com/ClickHouse/ClickHouse/pull/104911) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* أُضيف `LOCALTIME` و`LOCALTIMESTAMP` (بصياغة SQL القياسية / PostgreSQL). ‏`LOCALTIMESTAMP` هو اسم بديل لـ `now()` (ويُرجع `DateTime`)؛ ويُرجع `LOCALTIME` الوقت الحالي من اليوم بوصفه قيمة `Time`. [#106139](https://github.com/ClickHouse/ClickHouse/pull/106139) ([Thomas Cabral](https://github.com/thomas-cabral)).
* أُضيفت `date_part('unit', expr)` بوصفها صياغة مختصرة لـ `EXTRACT(unit FROM expr)`. جميع أنواع Interval القياسية والإضافات الخاصة بـ PostgreSQL (`epoch`, `dow`, `doy`, `isodow`, `isoyear`, `century`, `decade`, `millennium`) مدعومة. [#105127](https://github.com/ClickHouse/ClickHouse/pull/105127) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم متوافق مع PostgreSQL لـ `EXTRACT(TIMEZONE_HOUR FROM dt)` و`EXTRACT(TIMEZONE_MINUTE FROM dt)` لاستخراج جزأي الساعة والدقيقة من إزاحة المنطقة الزمنية، وكذلك `EXTRACT(<unit> FROM INTERVAL n <unit>)` / `date_part('<unit>', INTERVAL n <unit>)` لاستخراج القيمة من interval. [#106227](https://github.com/ClickHouse/ClickHouse/pull/106227) ([Vinayak Joshi](https://github.com/vinayakj592)).
* أُضيف اسمان بديلان تجميعيان `min_by` و`max_by` لـ `argMin` و`argMax`. [#105712](https://github.com/ClickHouse/ClickHouse/pull/105712) ([Joey Yu](https://github.com/itsjoeoui)). هذه الأسماء البديلة غبية، فالمهندسون الحقيقيون يستخدمون أسماء ClickHouse الأصلية.
* أُضيف `REGEXP_SUBSTR` بوصفه اسمًا بديلًا غير حساس لحالة الأحرف لـ `regexpExtract` لتحقيق التوافق مع Oracle/MySQL/Snowflake. [#105122](https://github.com/ClickHouse/ClickHouse/pull/105122) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف `SESSION_USER` بوصفه اسمًا بديلًا غير حساس لحالة الأحرف لـ `currentUser()` لتحقيق التوافق مع PostgreSQL / SQL القياسية. [#106081](https://github.com/ClickHouse/ClickHouse/pull/106081) ([Takumi Hara](https://github.com/takumihara)).
* دعم مُعدِّل لاحق `NULL` / `NOT NULL` في `ALTER TABLE ... ADD/MODIFY COLUMN`، على غرار `CREATE TABLE`. [#106150](https://github.com/ClickHouse/ClickHouse/pull/106150) ([Takumi Hara](https://github.com/takumihara)).
* يمكنك الآن استخدام الدالة `h3PolygonToCellsWithContainment` من h3 للاستفادة من خوارزميتهم الجديدة، التي تدعم أوضاع الاحتواء المعتمدة على المركز، والاحتواء الكامل، والتداخل. [#104455](https://github.com/ClickHouse/ClickHouse/pull/104455) ([Youssef Kadry](https://github.com/yousefQadry)).
* يضيف العلامتين `IPV4_PREFIX_BITS and IPV6_PREFIX_BITS` عند إجراء Keying باستخدام `IP_ADDRESS` أو `FORWARDED_IP_ADDRESS`. [#89270](https://github.com/ClickHouse/ClickHouse/pull/89270) ([Aditya Chopra](https://github.com/adityachopra29)).
* تقبل `formatReadableTimeDelta` الآن تعبير `INTERVAL` من نوع غير `Month` و`Year` كإدخال. [#64315](https://github.com/ClickHouse/ClickHouse/pull/64315) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* يمكن للمستخدم الآن تحديد وسيطة precision اختيارية للدوال `formatReadableSize` و`formatReadableDecimalSize` و`formatReadableQuantity` للتحكم في عدد الأرقام بعد الفاصلة العشرية. القيمة الافتراضية هي 2، مع الحفاظ على السلوك السابق. [#104648](https://github.com/ClickHouse/ClickHouse/pull/104648) ([Antonio Filipovic](https://github.com/antoniofilipovic)).
* يضيف الإعداد `output_format_float_precision` للتحكم في عدد الخانات العشرية في المخرجات النصية للأعداد ذات الفاصلة العائمة. [#99721](https://github.com/ClickHouse/ClickHouse/pull/99721) ([phulv94](https://github.com/phulv94)).
* أُضيف الإعداد `output_format_always_write_decimal_point_in_float_and_decimal` لعرض الفاصلة العشرية دائمًا مع الأعداد ذات الفاصلة العائمة وأعداد `Decimal` في التنسيقات النصية، حتى عندما تكون القيمة عددًا صحيحًا. على سبيل المثال، يُخرج `1.` بدلًا من `1`. وهو معطّل افتراضيًا. [#62614](https://github.com/ClickHouse/ClickHouse/pull/62614) ([Ilya Yatsishin](https://github.com/qoega)).
* يضيف دعمًا لعناصر config الجديدة لمعالجات HTTP: `<url_prefix>` و`<full_url_prefix>` (لمطابقة جميع المسارات تحت مسار أساسي، وهو مفيد مثلًا لمعالجات prometheus)، بالإضافة إلى `<url_regexp>` و`<full_url_regexp>` و`<headers_regexp>`. أما الصيغة القديمة `<url>regex:...</url>` فأصبحت Obsolete الآن. [#107492](https://github.com/ClickHouse/ClickHouse/pull/107492) ([Vitaly Baranov](https://github.com/vitlibar)).
* يدعم إحصاءات `basic`، وهي إحصاءات مدمجة لكل column تخزن الحد الأدنى/الأقصى الرقمي، ومتوسط طول السلسلة النصية، وعدد قيم NULL حيثما ينطبق ذلك. [#106048](https://github.com/ClickHouse/ClickHouse/pull/106048) ([Han Fei](https://github.com/hanfei1991)).
* يدعم عقد TTL في ClickHouse Keeper، مع تفعيل اختياري عبر flag الميزة `create_ttl`. [#100397](https://github.com/ClickHouse/ClickHouse/pull/100397) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* يقدّم ميزة memory reservation لأحمال العمل. راجع وثائق [Workload scheduling](https://clickhouse.com/docs/operations/workload-scheduling). [#82414](https://github.com/ClickHouse/ClickHouse/pull/82414) ([Sergei Trifonov](https://github.com/serxa)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* تنفيذ الاستعلامات الموزعة متعددة المراحل: يقسم المُخطِّط خطة الاستعلام إلى مراحل مترابطة عبر تبادلات scatter / broadcast / gather / shuffle، ثم يوزّع أجزاء الخطة على عُقد worker. وتُبث البيانات بين المراحل عبر TCP أو تُمرَّر عبر temporary files في object storage مشتركة. ويدعم هذا المسار distributed shuffle وbroadcast hash joins وshuffle aggregation وdistributed sort. هذه الميزة Experimental وهي معطلة افتراضيًا. [#106020](https://github.com/ClickHouse/ClickHouse/pull/106020) ([Alexander Gololobov](https://github.com/davenger)). ويمكن الآن لمحرك distributed query plan التجريبي (`make_distributed_plan`) استخدام منفذ مختلف لكل worker لكل من توزيع المهام وstreaming exchange، ويُضبط ذلك لكل replica في `<remote_servers>` باستخدام `stateless_worker_port` و`streaming_exchange_port`. وعند عدم تعيينهما، تُستخدم منافذ server السابقة على مستوى الخادم (`stateless_worker_client.port` و`distributed_query.streaming_exchange_port`). وهذا يتيح تشغيل عدة workers على مضيف واحد. [#107885](https://github.com/ClickHouse/ClickHouse/pull/107885) ([Alexander Gololobov](https://github.com/davenger)).
* أُضيفت خوارزمية إعادة ترتيب `join` التجريبية `dphyp` لعمليات inner joins كخيار للإعداد `query_plan_optimize_join_order_algorithm`، وكذلك الإعداد `query_plan_optimize_join_order_max_searched_plans`، الذي يضع حدًا لبحث ترتيب join ويعود إلى الخوارزمية التالية في السلسلة عند تجاوز هذا الحد؛ اضبطه على `0` للحفاظ على سلوك البحث السابق غير المقيّد. [#98798](https://github.com/ClickHouse/ClickHouse/pull/98798) ([Alexander Gololobov](https://github.com/davenger)).
* أُضيفت الدالة `aiEmbed` لاستخدام واجهات LLM API في توليد embeddings من داخل ClickHouse. [#102922](https://github.com/ClickHouse/ClickHouse/pull/102922) ([George Larionov](https://github.com/george-larionov)).
* أُضيف canary تجريبي لـ Linux OOM: sacrificial child process يستهدفه قاتل نفاد الذاكرة (OOM) في Linux قبل عملية server الرئيسية. وعند تفعيله باستخدام `oom_canary_enable`، فإنه يخفف memory pressure عبر تنظيف caches الخاصة بالمُخصِّص، وإلغاء queries، وإلغاء عمليات الدمج، وتسجيل حدث في `system.crash_log`. وتتطلب الاستجابة لحالة OOM وجود دليل على OOM-kill من `memory.events` في cgroup v2. [#101942](https://github.com/ClickHouse/ClickHouse/pull/101942) ([Peng](https://github.com/fastio)).
* أصبحت واجهة web terminal عند `/webterminal` الآن ميزة جاهزة للإنتاج ومفعّلة افتراضيًا. ويجري التحكم فيها عبر إعداد server الجديد `enable_webterminal`؛ أما الإعداد السابق `allow_experimental_webterminal` فقد أصبح deprecated لكنه ما يزال مدعومًا حفاظًا على backward compatibility. ولتعطيل الـ endpoint، اضبط `enable_webterminal` على `false`. [#106255](https://github.com/ClickHouse/ClickHouse/pull/106255) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تدعم نقاط نهاية PromQL عبر HTTP الآن تحديد database وtable عبر URL query parameters (`database=`, `table=`, أو `table=db.table`). وقد أُزيل fallback الضمني السابق للجدول `default.prometheus`: فإذا لم تُحدِّد لا مواصفة handler ولا URL جدولًا، فسيُرجع handler الآن `The time series table name is not set`. وللاحتفاظ بالسلوك السابق، اضبط `<table>default.prometheus</table>` أو مرِّر `table=...` في URL. [#107553](https://github.com/ClickHouse/ClickHouse/pull/107553) ([Vitaly Baranov](https://github.com/vitlibar)).
* أُضيف دعم لدالة PromQL `histogram_quantile` في Table functions‏ `prometheusQuery` و`prometheusQueryRange`. ويتيح ذلك حساب quantiles على buckets الخاصة بـ Prometheus histogram التقليدي والمُعرَّفة بالوسم `le`. [#103477](https://github.com/ClickHouse/ClickHouse/pull/103477) ([Joe Smith](https://github.com/Yasumoto)).
* أُضيف وضع lazy posting list apply mode إلى text index. وعند تفعيله عبر `SET allow_experimental_text_index_lazy_apply = 1` و`SET text_index_posting_list_apply_mode = 'lazy'`، تُفك شيفرة posting lists عند الطلب على مستوى packed-block باستخدام أسلوب قائم على cursor بدلًا من تمثيلها كاملًا في Roaring Bitmaps، مما يقلل استهلاك الذاكرة ووقت CPU في text index queries الانتقائية. [#100035](https://github.com/ClickHouse/ClickHouse/pull/100035) ([Peng](https://github.com/fastio)).
* تمت إضافة دعم ABI الخاص بـ [AssemblyScript](https://www.assemblyscript.org) لـ WebAssembly UDFs. يمكنك تجربة ABI الخاص بـ AssemblyScript بدون تثبيت سلسلة الأدوات محليًا باستخدام [playground](https://pastila.nl/?0009878e/b9768c4e2144d0c2f3dd512e7a1aaf69.html) المستند إلى المتصفح، والذي يترجم شيفرة AssemblyScript ويحمّل وحدة WebAssembly الناتجة إلى ClickHouse المحلي. [#104606](https://github.com/ClickHouse/ClickHouse/pull/104606) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إتاحة إرفاق معالجات Prometheus على منفذ HTTP الرئيسي مع بادئة اختيارية. [#104975](https://github.com/ClickHouse/ClickHouse/pull/104975) ([James Cunningham](https://github.com/JTCunning)).
* تمت إضافة إعداد تجريبي في `MergeTree` باسم `packed_skip_index_max_bytes` يجمع التدفقات الفرعية الصغيرة لـ skip-index في أرشيف `skp_idx.packed` واحد لكل جزء، مما يقلل الضغط على inode عند تعريف عدد كبير من فهارس التخطي على جدول. ويُتخذ القرار لكل تدفق فرعي وقت الكتابة: فالتدفقات الفرعية التي يبقى حجمها المتسلسل دون العتبة تُوضَع في الأرشيف، بينما يحتفظ أي شيء أكبر بتخطيط `skp_idx_<name>.idx2` / `.mrk2` المستقل. ويمكن لجزء واحد أن يجمع بين التخطيطين. فهارس النص الكامل غير مدعومة وتظل دائمًا لكل ملف. القيمة الافتراضية هي 0 (التجميع معطّل). [#105321](https://github.com/ClickHouse/ClickHouse/pull/105321) ([Raúl Marín](https://github.com/Algunenano)).
* دعم serialization لـ `Buffers` في WebAssembly UDFs باستخدام `ABI BUFFERED_V1`، وإضافة `webassembly_udf_enable_fuel` كإعداد persisted لدالة WASM UDF. [#105574](https://github.com/ClickHouse/ClickHouse/pull/105574) ([Antonio Andelic](https://github.com/antonio2368)).
* إضافة إعداد تجريبي باسم `use_reader_executor` (معطّل افتراضيًا) يوجّه reads عبر `ReaderExecutor` جديد قائم على pipeline بدلًا من سلسلة read buffers الـ legacy. [#106570](https://github.com/ClickHouse/ClickHouse/pull/106570) ([Sema Checherinda](https://github.com/CheSema)). كما أُضيفت metrics خاصة بـ observability لمسار القراءة التجريبي `use_reader_executor`، بما في ذلك KPI لتكلفة القراءة المُنمذجة (`ReaderExecutorModeledCostMsPerRequestedMiB`). [#106968](https://github.com/ClickHouse/ClickHouse/pull/106968) ([Sema Checherinda](https://github.com/CheSema)). وتم تقديم المخزن المؤقت `ChainedBuffers` ضمن مسار القراءة التجريبي `use_reader_executor`، مع metric باسم `ReaderExecutorChainedBufferBytes`. [#107210](https://github.com/ClickHouse/ClickHouse/pull/107210) ([Sema Checherinda](https://github.com/CheSema)).
* أصبح ترتيب الفرز التنازلي في sorting key الخاصة بـ `MergeTree` (مثل `ORDER BY (time DESC, key)`) مدعومًا دائمًا الآن، ولم يعد يتطلب الإعداد التجريبي `allow_experimental_reverse_key`، الذي أصبح مهملًا. [#106440](https://github.com/ClickHouse/ClickHouse/pull/106440) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* أصبح `Nullable(Tuple(...))` الآن في مرحلة Beta. وهو معطّل افتراضيًا؛ اضبط `enable_nullable_tuple_type = 1` لاستخدامه. [#107754](https://github.com/ClickHouse/ClickHouse/pull/107754) ([Nihal Z. Miaji](https://github.com/nihalzp)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* تغييرات متنوعة في Keeper تجعله أسرع إجمالًا بنحو الضعف (تحسين التجميع، وتمرير الرسائل إلى القائد عبر خطوط الأنابيب، وتمرير إلحاقات السجل عبر خطوط الأنابيب). [#101757](https://github.com/ClickHouse/ClickHouse/pull/101757) ([Michael Kolupaev](https://github.com/al13n321)).
* تقليل الحمل الإضافي لكل query في استعلامات `SELECT` البسيطة (التحليل النحوي، والتحليل، والتخطيط). على سبيل المثال، أصبح `SELECT count() FROM hits` عبر connection واحدة أسرع بنحو 50%. [#104513](https://github.com/ClickHouse/ClickHouse/pull/104513) ([Raúl Marín](https://github.com/Algunenano)).
* تحسين index analysis لـ primary key index في primary keys الطويلة وعالية الكاردينالية. بالنسبة إلى primary key طويل، أصبح زمن تشغيل index analysis يعتمد الآن أساسًا على تعقيد filter الخاص بـ query (أي key columns التي يستخدمها فعليًا)، لا على طول primary key — لذا فإن توسيع sorting key يضيف حملًا إضافيًا ضئيلًا جدًا إلى index analysis في queries التي تُجري filter على عدد قليل فقط من columns الخاصة به. أما في حالة primary key عالي الكاردينالية، حيث يحتفظ ClickHouse في الذاكرة فقط بـ prefix انتقائي من key columns ولا يحمّل الأعمدة اللاحقة، فإن index analysis يعمل الآن على هذا الـ in-memory prefix فقط بدلًا من المفتاح بالكامل. هذا التحسين مفعّل افتراضيًا، ويمكن تعطيله عبر الإعداد الجديد `use_lightweight_primary_key_index_analysis`. يغلق [#65103](https://github.com/ClickHouse/ClickHouse/issues/65103). [#91836](https://github.com/ClickHouse/ClickHouse/pull/91836) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أصبح build الافتراضي لـ x86 يستهدف الآن x86-64-v3 ‏(AVX2) بدلًا من x86-64-v2 ‏(SSE4.2). ويتطلب ذلك CPU يدعم AVX2 ‏(Intel Haswell أو أحدث، AMD Excavator أو أحدث). إذا كان CPU لديك لا يدعم AVX2، فاستخدم build ‏`amd64compat` الذي يستهدف x86-64 القياسي. [#105019](https://github.com/ClickHouse/ClickHouse/pull/105019) ([Raúl Marín](https://github.com/Algunenano)).
* استخدام `ipnsort` و`driftsort` ‏(sorting مستقر) — وهما منفذان بلغة C++ لتنفيذات الفرز في المكتبة القياسية لـ Rust — في عمليات sorts للمقارنة العامة. وهذا يسرّع `ORDER BY` على columns غير الرقمية وعمليات الفرز المستقرة، ويزيل إحدى أسوأ الحالات عند الإدخال المفروز عكسيًا. [#106650](https://github.com/ClickHouse/ClickHouse/pull/106650) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين جديد لـ `GROUP BY` للمفاتيح عالية الكاردينالية والمتوزعة بالتساوي، يوزّع الصفوف عبر threads من خلال hash لمفتاح التجميع، بحيث يجمّع كل thread مجموعة منفصلة من المفاتيح من دون مرحلة merge. اضبط `enable_sharding_aggregator = 1` لتفعيله. [#104233](https://github.com/ClickHouse/ClickHouse/pull/104233) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تفعيل prefetching لـ hash table في queries ‏`GROUP BY` ذات المفاتيح النصية، مما يحسّن أداء aggregation النصية عالية الكاردينالية بنحو 8%. [#101007](https://github.com/ClickHouse/ClickHouse/pull/101007) ([Le Zhang](https://github.com/damahua)).
* تقليل Peak memory usage عند merge نتائج two-level aggregation الجزئية ذات aggregate states الكبيرة (مثل `groupArray`)، وذلك بتحرير الحالات المصدرية لكل bucket تدريجيًا أثناء الـ merge بدلًا من إبقائها جميعًا نشطة حتى اكتمال الـ merge. [#102330](https://github.com/ClickHouse/ClickHouse/pull/102330) ([Yuri Fedoseev](https://github.com/yurifedoseev)).
* جرى تحسين التمثيل في الذاكرة لـ `Enum` `DataType`. ويمكن أن يتحسن استهلاك الذاكرة للجداول التي تحتوي على النوع `Enum` بما يصل إلى 10 أضعاف لمكوّن `Enum`. كما أن زمن استرجاع name حسب value (الرقم) مماثل أو أسرع. أما البحث حسب الاسم فأبطأ قليلًا، لكن هذا النمط من الوصول أقل شيوعًا. [#95668](https://github.com/ClickHouse/ClickHouse/pull/95668) ([Ilya Yatsishin](https://github.com/qoega)).
* إضافة تخزين مؤقت لحلّ المعرّفات لمنع تكرار حلّها أثناء query analysis. [#88043](https://github.com/ClickHouse/ClickHouse/pull/88043) ([Max Justus Spransy](https://github.com/maxjustus)).
* تحسين أداء تحليل الاستعلامات للاستعلامات التي تعمل على جداول تضم عدداً كبيراً من الأعمدة: إذ جرى تجنّب حساب قيم hash لعُقد الأعمدة (التي تتضمن تعبير الجدول المصدر بالكامل) عند عدم الحاجة إليها. وأصبح تحليل الاستعلامات الفرعية المتداخلة `SELECT *` فوق جدول يحتوي على نحو 1200 عمود أسرع الآن بحوالي 50 مرة. [#106957](https://github.com/ClickHouse/ClickHouse/pull/106957) ([Dmitry Novik](https://github.com/novikd)).
* تسريع تحليل الاستعلامات التي تتضمن عدداً كبيراً من استدعاءات الدوال أو استدعاءات دوال متداخلة بعمق، وذلك بإزالة قيمة hash زائدة لشجرة الاستعلام من cache تحليل الدوال. [#107516](https://github.com/ClickHouse/ClickHouse/pull/107516) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح حالات التعطل الطويلة عند تسجيل الدخول وبدء الاستعلامات في مخزن الوصول المتماثل عند تغيّر عدد كبير من كيانات الوصول (سياسات الصفوف، والأدوار، والحصص، وملفات تعريف الإعدادات) دفعة واحدة. وأصبحت كل cache على مستوى الكيان تعيد الحساب مرة واحدة لكل Batch من الإشعارات بدلاً من مرة لكل كيان متغيّر، مما يزيل عملاً تربيعياً كان قد يُبقي قفل الوصول محتجزاً لعدة دقائق. [#107672](https://github.com/ClickHouse/ClickHouse/pull/107672) ([Azat Khuzhin](https://github.com/azat)).
* مشاركة `FixedHashMap` الخاصة بـ hash join كعامل تصفية وقت التشغيل للربط على جهة probe. فعندما يكون جدول hash على جهة build من نوع `FixedHashMap` (أو يمكن تحويله إليه)، يُنشر بوصفه عامل تصفية وقت التشغيل ويستبدل `Set`/`BloomFilter` الذي كان `BuildRuntimeFilterStep` سيُثبّته في الحالة العادية. ويتحكم في ذلك الإعداد الجديد `join_runtime_filter_from_fixed_hash_table` (القيمة الافتراضية `true`). [#105640](https://github.com/ClickHouse/ClickHouse/pull/105640) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* تطبيق lazy لفهارس selector وفهارس replication في حالة وجود `JOIN` يتبعه `LIMIT` انتقائي أو `TopN` أو `JOIN` آخر. وللتحكم في عدد أعمدة الحمولة المطلوبة لتفعيل فهارس selector المؤجلة، استخدم الإعداد `query_plan_min_columns_for_join_lazy_indexing` (تعني القيمة 0 أن التحسين معطّل). وللتحكم في قيمة `LIMIT` التي يُطبَّق عندها هذا التحسين، استخدم الإعداد `query_plan_max_limit_for_join_lazy_indexing`. [#106566](https://github.com/ClickHouse/ClickHouse/pull/106566) ([Hechem Selmi](https://github.com/m-selmi)).
* أصبح الآن مسموحاً بإعادة ترتيب `JOIN` باستخدام DP (البرمجة الديناميكية) مع parallel replicas. [#105889](https://github.com/ClickHouse/ClickHouse/pull/105889) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين query plan عندما يستخدم `JOIN` عوامل تصفية وقت التشغيل (مع تفعيل `enable_join_runtime_filters` افتراضياً): إذ أصبح نموذج تكلفة إعادة ترتيب الربط يتجاوز `WindowTransform` (وغيره من plan step التي تحافظ على الصفوف) في الشجرة الفرعية اليمنى، ويستخدم عدد الصفوف الأساسي وNDV لكل عمود بدلاً من الرجوع إلى غياب الإحصاءات. [#107229](https://github.com/ClickHouse/ClickHouse/pull/107229) ([UnamedRus](https://github.com/UnamedRus)).
* إزالة الافتراضية من عملية إخراج الصفوف غير المنضمّة في RIGHT وFULL join عبر تجميعها على شكل Batch. [#105679](https://github.com/ClickHouse/ClickHouse/pull/105679) ([Hechem Selmi](https://github.com/m-selmi)).
* دعم طريقتَي `keys32` و`keys64` المعبأتين في `HashJoin`. [#107202](https://github.com/ClickHouse/ClickHouse/pull/107202) ([Nikita Taranov](https://github.com/nickitat)).
* دعم طريقتَي `keys32` و`keys64` المعبأتين في `Set`. [#107564](https://github.com/ClickHouse/ClickHouse/pull/107564) ([Nikita Taranov](https://github.com/nickitat)).
* معالجة أكثر كفاءة للأعمدة القابلة للقيم الفارغة في aggregation. [#106015](https://github.com/ClickHouse/ClickHouse/pull/106015) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين أداء استعلامات `LIMIT BY`. [#103349](https://github.com/ClickHouse/ClickHouse/pull/103349) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع استعلامات `ORDER BY ... LIMIT BY` عبر تنفيذ `LIMIT BY` داخل كل تدفق مرتّب متوازٍ أثناء `Sort` عندما تكون أعمدة `LIMIT BY` بادئة لـ `ORDER BY`. يقلّل ذلك عدد الصفوف التي تمر عبر دمج الفرز النهائي وأي مراحل لاحقة في خط المعالجة. يتحكم في هذا التحسين الإعداد الجديد `query_plan_push_limit_by_into_sort` (مُمكّن افتراضيًا). [#104000](https://github.com/ClickHouse/ClickHouse/pull/104000) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع استعلامات `SELECT ... LIMIT N BY <cols>` عندما تكون `<cols>` بادئة لمفتاح الفرز في الجدول، أو تصبح كذلك بعد أن يثبّت `WHERE col = const` الأعمدة الأولى. عند تمكين ذلك، يقرأ `MergeTree` البيانات بترتيب المفتاح الأساسي، ثم يطبّق `LIMIT BY` التصفية أولًا في وضع التدفق مع ذاكرة O(1) لكل تدفق مرتّب، مما يستبعد معظم البيانات، ثم يُنفَّذ `LIMIT BY` العادي أخيرًا على البيانات المُقلَّصة للحصول على النتيجة النهائية. يتحكم في ذلك الإعداد الجديد `optimize_limit_by_in_order` (مُمكّن افتراضيًا). [#105135](https://github.com/ClickHouse/ClickHouse/pull/105135) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع استعلامات `LIMIT BY` على جداول `MergeTree` المُقسَّمة إلى partitions عبر تنفيذ `LIMIT BY` داخل تدفق كل partition على نحو متوازٍ، بدلًا من دمج جميع التدفقات في تدفق واحد قبل تطبيق الحد. ينطبق ذلك عندما يكون partition expression دالة حتمية لأعمدة `LIMIT BY`، بحيث لا يمكن لأي مجموعة `LIMIT BY` أن تمتد عبر قسمين. يتحكم في ذلك الإعداد الجديد `allow_limit_by_partitions_independently` (مُمكّن افتراضيًا). [#105126](https://github.com/ClickHouse/ClickHouse/pull/105126) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع استعلامات `LIMIT BY` عبر إزالة key expressions الزائدة: فيُسقَط المفتاح الذي يكون دالة حتمية للمفاتيح الأخرى (مثلًا `LIMIT 5 BY x, f(x)` تصبح `LIMIT 5 BY x`)، وتُستبدل الدالة الحقنية للمفتاح بالـ argument الخاص بها (مثلًا `LIMIT 5 BY toString(x)` تصبح `LIMIT 5 BY x`). يقلّل ذلك عدد تعبيرات التي تُقيَّم لكل row وتكلفتها. يتحكم في ذلك الإعدادان الجديدان `optimize_limit_by_function_keys` و `optimize_injective_functions_in_limit_by`، وكلاهما مُمكّن افتراضيًا. [#106818](https://github.com/ClickHouse/ClickHouse/pull/106818) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تسريع aggregation الموزّع على الشظايا، وتقسيم `grace_hash` join إلى buckets، وتقسيم window المتوازي، عبر استبدال تجزئة الأعمدة لكل chunk بنواة تستخدم CRC32C العتادي. [#106538](https://github.com/ClickHouse/ClickHouse/pull/106538) ([Harikrishnan Prabakaran](https://github.com/harikrishnan94)).
* تحسين `L1Distance` و`L2Distance` و`L2SquaredDistance` و`LinfDistance` و`cosineDistance` لوسائط Array باستخدام المعالجة المتجهية التلقائية متعددة الأهداف على x86-64-v4/v3. وبالنسبة إلى وسائط Array غير الثابتة، يمكن الآن لجميع هذه الدوال، باستثناء `LpDistance` التي تستخدم `std::pow` مع exponent وقت التشغيل، الاستفادة من kernels ذات معالجة متجهية من قِبل المصرّف. كما جرى الحفاظ على مسارات التسريع الحالية AVX-512 وSapphire Rapids لوسائط `BFloat16` الثابتة في `L2Distance` و`cosineDistance`. [#101310](https://github.com/ClickHouse/ClickHouse/pull/101310) ([Peng](https://github.com/fastio)).
* تحسّن أداء الدالة `{Norm}Distance` و`dotProduct`. [#106007](https://github.com/ClickHouse/ClickHouse/pull/106007) ([Nikita Taranov](https://github.com/nickitat)).
* تحسّن أداء الدالة `arrayNorm`. [#106211](https://github.com/ClickHouse/ClickHouse/pull/106211) ([Nikita Taranov](https://github.com/nickitat)).
* تحسّن أداء `dotProduct` في بعض الحالات. [#106210](https://github.com/ClickHouse/ClickHouse/pull/106210) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين أداء مسارات AVX-512 ذات المعامل الثابت على اليسار لكل من `L2Distance` و`cosineDistance` على `Array(Float32)` و`Array(Float64)` و`Array(BFloat16)` عندما يكون طول المصفوفة قابلاً للقسمة تمامًا على عرض المعالجة المتجهية. [#104625](https://github.com/ClickHouse/ClickHouse/pull/104625) ([Sergey Kuznetsov](https://github.com/skuznetsov)).
* تمكين توليد شيفرة AVX-512 لمعالجات amd، مع تحسين توليد الشيفرة للدالة `arrayDistance`. [#106505](https://github.com/ClickHouse/ClickHouse/pull/106505) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين أداء الدالتين `L2DistanceTransposed` و`cosineDistanceTransposed` لنوع البيانات `QBit`. [#106701](https://github.com/ClickHouse/ClickHouse/pull/106701) ([Raufs Dunamalijevs](https://github.com/rienath)).
* تحسين أداء الدوال `encrypt` و`decrypt` و`tryDecrypt` و`aes_encrypt_mysql` و`aes_decrypt_mysql` بما يصل إلى عشرة أضعاف، مع استعادة الأداء المفقود نتيجة الترحيل من BoringSSL إلى OpenSSL 3.x ‏(24.4). [#107339](https://github.com/ClickHouse/ClickHouse/pull/107339) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحسين أداء الدوال `encrypt` و`decrypt` و`halfMD5` من خلال تجنب عمليات lookup الضمنية لكل صف على provider في OpenSSL 3.x. [#99105](https://github.com/ClickHouse/ClickHouse/pull/99105) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إضافة تنفيذ SIMD للدالة `SHA1` يحسب قيم hash لعدة مدخلات بالتوازي باستخدام AVX-512، مما يحسن الإنتاجية. [#105459](https://github.com/ClickHouse/ClickHouse/pull/105459) ([Joanna Hulboj](https://github.com/jh0x)).
* إضافة backend ‏AArch64 ASIMD/NEON لتنفيذ `MD5` متعدد المخازن المؤقتة. [#105563](https://github.com/ClickHouse/ClickHouse/pull/105563) ([Venkata  Vineel ](https://github.com/vyalamar)).
* دمج blocks المصدر قبل حساب الإسقاط أثناء `MATERIALIZE PROJECTION` لتقليل عدد projection parts المؤقتة وتقليل overhead الدمج. أدى ذلك إلى تسريع بنحو \~3.4x على table تضم 50 مليون صف. [#100047](https://github.com/ClickHouse/ClickHouse/pull/100047) ([Amos Bird](https://github.com/amosbird)).
* تقليل latency لأوامر `INSERT` في جداول `MergeTree` التي تحتوي على skip indices على columns الخاصة بـ `ORDER BY`، وذلك عبر تجنب تبديلات الأعمدة غير الضرورية أثناء كتابة part (بنحو \~17% على workloads بنمط traces). [#101101](https://github.com/ClickHouse/ClickHouse/pull/101101) ([Amos Bird](https://github.com/amosbird)).
* تمكين مسارات شيفرة SIMD الخاصة بـ Arrow (‏NEON على ARM، وSSE4.2/AVX2/AVX512 على x86)، واستخدامها لتسريع فك ترميز columns من نوع Parquet ‏`FLOAT`/`DOUBLE` المرمزة باستخدام `BYTE_STREAM_SPLIT`. [#106376](https://github.com/ClickHouse/ClickHouse/pull/106376) ([Raúl Marín](https://github.com/Algunenano)).
* تحسين أداء الإدراج لأعمدة `LowCardinality` التي تحتوي على فهارس `bloom_filter`. [#106410](https://github.com/ClickHouse/ClickHouse/pull/106410) ([Michael Jarrett](https://github.com/EmeraldShift)).
* تنفيذ نسخ blob بالتوازي في `DiskObjectStorageTransaction::copyFile` باستخدام thread pool مخصص لكل disk. [#105089](https://github.com/ClickHouse/ClickHouse/pull/105089) ([Asya Shneerson](https://github.com/asya-ch)).
* تجنب قراءة محتويات file عند استخدام input format ‏`One` مع table functions الشبيهة بالملفات مثل `file` و`s3`. [#105157](https://github.com/ClickHouse/ClickHouse/pull/105157) ([Yue Ni](https://github.com/niyue)).
* تسريع بدء تشغيل `clickhouse` على macOS بنحو 3x من خلال عدم تصدير الرموز الديناميكية، التي كان الرابط الديناميكي سيعالجها لولا ذلك عند كل تشغيل. [#107768](https://github.com/ClickHouse/ClickHouse/pull/107768) ([Raúl Marín](https://github.com/Algunenano)).
* تسريع تحميل filesystem cache عند بدء التشغيل من خلال تجنّب فتح directory إضافي لكل مفتاح cache. [#107414](https://github.com/ClickHouse/ClickHouse/pull/107414) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تسريع تحميل filesystem cache عند بدء التشغيل عبر تمكين خيوط سرد directory من المساعدة في تحميل metadata الخاصة بـ cache فور انتهاء السرد، بدلًا من ترك نصف الخيوط في حالة idle. [#107416](https://github.com/ClickHouse/ClickHouse/pull/107416) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تقليل overhead بدء تشغيل عملية `clickhouse` من خلال تحديث مكتبة WasmEdge المضمّنة، التي لم تعد تُنشئ قيمة hash سرية عشوائية في مهيّئ عام عند كل بدء تشغيل. [#107869](https://github.com/ClickHouse/ClickHouse/pull/107869) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح بإمكان المفتاح الأساسي في `MergeTree` وفهارس التخطي الآن استبعاد granules عند تطبيق عامل تصفية يغلّف فيه `ifNull` أو `coalesce` شرطًا ما، مثل `ifNull(key = 0, 0)` أو `coalesce(key = 0, 0)`. وكانت مثل هذه predicates — التي تُنشئها مولدات query غالبًا لتحويل مقارنة قد تكون `NULL` إلى قيمة منطقية محددة — غير مفهومة سابقًا لتحليل الفهارس، وبالتالي لم يكن ممكنًا تخطي granules. ويُوسّع هذا الإعداد الحالي `allow_key_condition_coalesce_rewrite` (المُمكَّن افتراضيًا). يغلق [#106264](https://github.com/ClickHouse/ClickHouse/issues/106264). [#106272](https://github.com/ClickHouse/ClickHouse/pull/106272) ([Andy Zhao](https://github.com/andyzzhao)).
* ينبغي أن يستهلك تقييم فهرس التخطي على أنواع `DateTime64` قدرًا أقل من CPU في 26.6. [#107707](https://github.com/ClickHouse/ClickHouse/pull/107707) ([Shankar Iyer](https://github.com/shankar-iyer)).
* تحسين أداء تحليل text index في عمليات البحث متعددة token عبر تحسين التعامل مع token النادرة. [#98226](https://github.com/ClickHouse/ClickHouse/pull/98226) ([Anton Popov](https://github.com/CurtizJ)).
* استخدام cache لمقاطع segments المضغوطة لقائمة الترحيل الخاصة بـ text index. [#106299](https://github.com/ClickHouse/ClickHouse/pull/106299) ([Anton Popov](https://github.com/CurtizJ)).
* تحسين أداء generic exclusion search لطلبات query التي تحدد نطاقات متتالية كبيرة من الجدول. [#93813](https://github.com/ClickHouse/ClickHouse/pull/93813) ([Michael Jarrett](https://github.com/EmeraldShift)).
* تتشارك clients ‏`S3` التي تستخدم endpoint وbucket نفسيهما cache واحدة، مما يتجنب تكرار discovery للمنطقة. يغلق [#92482](https://github.com/ClickHouse/ClickHouse/issues/92482). [#96802](https://github.com/ClickHouse/ClickHouse/pull/96802) ([Andrey Zvonov](https://github.com/zvonand)).
* إذا احتوت query على `has(<constant array>, <expr>)`، فسيقوم analyzer بتحويل العقدة لاستخدام تنفيذ `in` أسرع إذا كان ذلك ممكنًا. [#97341](https://github.com/ClickHouse/ClickHouse/pull/97341) ([Shankar Iyer](https://github.com/shankar-iyer)).
* عند جدولة job جديدة في `ThreadPool`، أيقِظ worker thread التي أصبحت idle مؤخرًا (LIFO) بدلًا من واحدة عشوائية. يقلل هذا من تجزؤ الذاكرة الناتج عن cacheات allocator الخاصة بكل thread. ولا يتغير ترتيب معالجة jobs. [#100177](https://github.com/ClickHouse/ClickHouse/pull/100177) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء Runtime Filters التقريبية وفهارس bloom filter. [#100201](https://github.com/ClickHouse/ClickHouse/pull/100201) ([Christoph Viebig](https://github.com/cv4g)).
* السماح لـ `ASOF JOIN` باستخدام خوارزمية join ‏`parallel_hash`، مع تنفيذ مرحلة البناء بالتوازي عبر قيم مفاتيح المساواة المميّزة. في السابق، كان `ASOF` مستبعدًا دائمًا من `parallel_hash`. [#105375](https://github.com/ClickHouse/ClickHouse/pull/105375) ([Greg Maher](https://github.com/gregakinman)).
* تجنّب قراءة مدخلات غير محدودة لطلبات query ‏`INTERSECT` و`EXCEPT` عندما تجعل مدخلة فارغة النتيجة معروفة مسبقًا بأنها فارغة. [#105393](https://github.com/ClickHouse/ClickHouse/pull/105393) ([Yue Ni](https://github.com/niyue)).
* إضافة `constinit` لمجموعة متنوعة من مانعات `MemoryTracker`. [#105490](https://github.com/ClickHouse/ClickHouse/pull/105490) ([Azat Khuzhin](https://github.com/azat)).
* تحسين أداء `bitmapContains` لحالات `groupBitmap` غير `UInt64` عبر تجنّب استدعاءات `rb_max` المتكررة أثناء التحقق من النطاق. [#105960](https://github.com/ClickHouse/ClickHouse/pull/105960) ([Yue Ni](https://github.com/niyue)).
* تسريع الاستعلامات غير المتصلة لأعمدة `LowCardinality` المعتمدة على قاموس واحد. [#103662](https://github.com/ClickHouse/ClickHouse/pull/103662) ([Ivan Babrou](https://github.com/bobrik)).
* إضافة مسار سريع لمرحلة probe في `HashJoin` عندما تحتوي الكتلة على صف واحد. [#106008](https://github.com/ClickHouse/ClickHouse/pull/106008) ([Nikita Taranov](https://github.com/nickitat)).
* أصبحت predicates في استعلامات مثل `SELECT ... FROM view(SELECT ... FROM remote(...)) WHERE ... ` تُدفَع الآن إلى الاستعلام المُرسَل إلى الـ shard البعيد. وكان التحسين `allow_push_predicate_ast_for_distributed_subqueries` يفتقر إلى حالة خاصة بـ table functions. [#105986](https://github.com/ClickHouse/ClickHouse/pull/105986) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تفعيل `enable_join_transitive_predicates` افتراضيًا. [#103724](https://github.com/ClickHouse/ClickHouse/pull/103724) ([Alexander Gololobov](https://github.com/davenger)).
* إضافة دعم للدوال `multiSearchAny` و`multiSearchAnyUTF8` و`multiMatchAny` في text indexes. كما جرى تحسين index analysis في text indexes للدالة `match`، بحيث يمكن الآن للأنماط التي تحتوي على مجموعات بديلة تخطي المزيد من granules. [#106279](https://github.com/ClickHouse/ClickHouse/pull/106279) ([Anton Popov](https://github.com/CurtizJ)).
* السماح بدمج عوامل التصفية التي تُضاف بعد اختيار PREWHERE الأولي (predicate pushdown، أو Runtime Filters، أو PREWHERE صريح مع WHERE يحدده المخطط) في PREWHERE الحالي خلال تمريرة ثانية للمحسّن، بدلًا من بقائها كخطوة Filter منفصلة فوق قراءة `MergeTree`. [#105445](https://github.com/ClickHouse/ClickHouse/pull/105445) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* يسجّل `QueryConditionCache` الآن granules التي تُستبعَد بالتصفية بشكل منفصل، حتى داخل دفعات القراءة التي تجتاز PREWHERE جزئيًا، مما يقلّل عدد العلامات التي تعيد الاستعلامات اللاحقة قراءتها عند استخدام condition نفسه. [#105335](https://github.com/ClickHouse/ClickHouse/pull/105335) ([Han Fei](https://github.com/hanfei1991)).
* إضافة إعداد Keeper وهو `nuraft_use_bg_thread_for_snapshot_io`، والمفعّل افتراضيًا، بحيث يقرأ `NuRaft` كائنات snapshot من خيط خلفي بدلًا من worker threads الخاصة بـ Raft. [#106285](https://github.com/ClickHouse/ClickHouse/pull/106285) ([Antonio Andelic](https://github.com/antonio2368)).
* تقليل ذروة استخدام الذاكرة عند تطبيق snapshots المستلَمة في ClickHouse Keeper باستخدام `KeeperMemoryStorage`. [#105851](https://github.com/ClickHouse/ClickHouse/pull/105851) ([Antonio Andelic](https://github.com/antonio2368)).
* توجيه allocations الخاصة بـ LLVM/JIT إلى arena مخصّص في jemalloc. ويؤدي ذلك إلى تقليل تجزئة RSS الناتجة عن تداخل عمليات التتبّع طويلة العمر الخاصة بـ JIT مع allocations قصيرة العمر الخاصة بالاستعلامات. كما تُضاف مقاييس غير متزامنة جديدة هي `jemalloc.jit_arena.active_bytes` و`jemalloc.jit_arena.dirty_bytes` و`CompiledExpressionCacheBytesMax` و`CompiledExpressionCacheCountMax` لأغراض الرصد. وأصبح `SYSTEM DROP COMPILED EXPRESSION CACHE` الآن يحذف أيضًا مثيلات CHJIT الأساسية ويفرّغ JIT arena. [#104113](https://github.com/ClickHouse/ClickHouse/pull/104113) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح الزيادة المفرطة في حجز الذاكرة عند قراءة أعمدة `Nullable(String)` المتناثرة والمشفّرة بالقاموس من `Parquet` باستخدام القارئ native V3. [#102805](https://github.com/ClickHouse/ClickHouse/pull/102805) ([Francisco](https://github.com/Milias)).
* تم إصلاح `CREATE TABLE ... CLONE AS (and REPLACE / ATTACH PARTITION ... FROM)` على الأقراص المشفّرة بحيث لم يعد ينسخ البيانات بدلًا من إنشاء روابط صلبة إليها. [#106731](https://github.com/ClickHouse/ClickHouse/pull/106731) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تم تحسين تقدير cardinality في مُحسّن plan للاستعلام: فالعمود الناتج عن دالة حتمية أحادية الوسيط (مثل `toYear(date)`) يرث الآن عدد القيم المميزة لوسيطه باعتباره حدًا أعلى، بدلًا من تركه بلا إحصاءات، مما يؤدي إلى إعادة ترتيب أكثر دقة لعمليات join. [#107757](https://github.com/ClickHouse/ClickHouse/pull/107757) ([Alexander Gololobov](https://github.com/davenger)).
* تم تقليل الحمل الإضافي على CPU الناتج عن logging غير المتزامن عند ارتفاع معدلات السجلات، وذلك عبر إخطار consumer السجل فقط عند انتقال queue من فارغة إلى غير فارغة بدلًا من كل رسالة. [#107352](https://github.com/ClickHouse/ClickHouse/pull/107352) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تمت إزالة العمليات الحسابية المكررة أثناء query execution في مزيد من السيناريوهات. [#106113](https://github.com/ClickHouse/ClickHouse/pull/106113) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تمت موازاة معالجة نتيجة تعبير الجدول الشائع التعاودي: لم يعد `GROUP BY` أو أي إجراء آخر على نتيجة `WITH RECURSIVE` كبيرة الحجم مقصورًا على thread واحد. [#107694](https://github.com/ClickHouse/ClickHouse/pull/107694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تحسين أداء البحث غير الحساس لحالة الأحرف عن substring (`positionCaseInsensitiveUTF8` و`ILIKE` و`multiSearchAnyCaseInsensitiveUTF8` والدوال ذات الصلة) عبر إضافة مسار NEON SIMD على ARM ونواة AVX2 أوسع على x86. [#107882](https://github.com/ClickHouse/ClickHouse/pull/107882) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح تراجع في throughput بنسبة تقارب 16% لبرنامج الترميز `FPC` ذي الفاصلة العائمة على ARM، وكان قد أُدخل عندما بدأت جداول التنبؤ الخاصة به تستخدم `VectorWithMemoryTracking`. [#108182](https://github.com/ClickHouse/ClickHouse/pull/108182) ([Groene AI](https://github.com/groeneai)).

<div id="267-improvement">
  #### تحسينات
</div>

* يُحدِّث `MemoryWorker` الذي يعمل في الخلفية الآن الحد الصارم للذاكرة في الخادم بشكل دوري استنادًا إلى استخدام الذاكرة الحالي ومقدار الذاكرة الذي تُبلغ النواة بأنه متاح، بحيث يترك ClickHouse هامشًا للعمليات الأخرى التي تعمل على المضيف نفسه. الصيغة هي `(resident memory + system MemAvailable) * max_server_memory_usage_to_ram_ratio`. ويتحكم إعداد الخادم نفسه `max_server_memory_usage_to_ram_ratio` في كلٍّ من الحد الأقصى عند بدء التشغيل والضبط الديناميكي؛ اضبطه على `0` لتعطيلهما معًا. وللاحتفاظ فقط بالحد الثابت عند بدء التشغيل/إعادة التحميل (وهو سلوك الإصدارات السابقة)، اضبط إعداد الخادم الجديد `memory_worker_dynamic_hard_limit` على `0`. [#104964](https://github.com/ClickHouse/ClickHouse/pull/104964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم PostgreSQL client لـ C# في بروتوكول `PostgreSQL`. يُغلق هذا [#18611](https://github.com/ClickHouse/ClickHouse/issues/18611). [#80785](https://github.com/ClickHouse/ClickHouse/pull/80785) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تستخدم mutations الآن analyzer. [#98884](https://github.com/ClickHouse/ClickHouse/pull/98884) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* أُضيف تحكم دقيق في إظهار الاستعلامات في CLI. وأصبح الخيار `--echo` يقبل الآن قيمة Boolean اختيارية، ويعمل في كلٍّ من الوضع التفاعلي وbatch mode. وتتحكم الخيارات الجديدة `--echo-formatted` و`--echo-query-id` في ما إذا كانت الاستعلامات المعروضة ستُنسَّق، وما إذا كان سيتم طباعة `query_id`، على التوالي. كما يتحكم الخيار `--hilite`/`--highlight` الآن أيضًا في تمييز الاستعلامات المعروضة. وكنتيجة جانبية، أصبح `--echo` الآن خيارًا ذا قيمة Boolean، لذا فإن الاستعلام الموضعي الذي يأتي مباشرة بعد `--echo` بدون قيمة صريحة يُعامَل على أنه قيمته؛ استخدم `--echo --query "..."` أو `--echo=false` بدلًا من ذلك. [#106191](https://github.com/ClickHouse/ClickHouse/pull/106191) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم تطور المخطط مع عمليات التحقق المتزامنة من الاتساق لكتالوجات بحيرة البيانات. [#106102](https://github.com/ClickHouse/ClickHouse/pull/106102) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* السماح باستخدام cache disk لمحركات جداول بحيرة البيانات. [#102017](https://github.com/ClickHouse/ClickHouse/pull/102017) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* إصلاح قراءة بيانات الجداول في قواعد بيانات `DataLakeCatalog` التي تستخدم `catalog_type = 'onelake'` عبر استخدام endpoint الخاص بـ OneLake Blob (`.blob.fabric.microsoft.com`) افتراضيًا. اضبط `onelake_use_blob_endpoint = false` للإبقاء على السلوك السابق لنقطة نهاية DFS (`.dfs.fabric.microsoft.com`). [#106843](https://github.com/ClickHouse/ClickHouse/pull/106843) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تحديث القيمة الافتراضية للإعداد `persistent_processing_node_ttl_seconds` في `S3(Azure)Queue` من `1 hour` إلى `6 hours` (وهو ما يمثل وقت التنظيف الناتج عن إعادة تشغيل غير نظيفة للخدمة، وما إلى ذلك). كانت القيمة الافتراضية السابقة مناسبةً لـ ttl لعُقد المعالجة، لكنها تُستخدم أيضًا لـ ttl لقفل bucket، الذي قد يبقى محتفَظًا به لمدة أطول، لذلك لم تكن ساعة واحدة كافية. [#106838](https://github.com/ClickHouse/ClickHouse/pull/106838) ([Kseniia Sumarokova](https://github.com/kssenii)).
* خُفِّض الحجم الافتراضي لـ metadata cache الخاصة بـ `Iceberg` من 1 GB إلى 128 MB. [#106492](https://github.com/ClickHouse/ClickHouse/pull/106492) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تمرير `query_id` لمهمة streaming في `S3Queue` إلى عمليات insert في الجداول التابعة. [#106494](https://github.com/ClickHouse/ClickHouse/pull/106494) ([Christoph Wurm](https://github.com/cwurm)).
* تعبئة `used_storages` في `system.query_log` باسم محرك التخزين عند الاستعلام عن الجداول عبر `DataLakeCatalog`. [#100706](https://github.com/ClickHouse/ClickHouse/pull/100706) ([Melvyn Peignon](https://github.com/melvynator)).
* يمكنك التحقق من قيمتي `operation` و`summary` الموجودة في snapshots الخاصة بـ Iceberg. يفيد ذلك في الاختبار وتصحيح الأخطاء. [#106246](https://github.com/ClickHouse/ClickHouse/pull/106246) ([Den Kalantaevskii](https://github.com/Diskein)).
* أصبح طلب الرفع النهائي متعدد الأجزاء إلى `S3` يُستكمَل الآن بشكل غير متزامن عبر متتبّع المهام، بحيث يمكن أن يتداخل مع رفع الجزء الأخير بدلًا من تشغيله تسلسليًا في مرحلة الإنهاء. [#105487](https://github.com/ClickHouse/ClickHouse/pull/105487) ([Asya Shneerson](https://github.com/asya-ch)).
* أُضيفت أربعة إعدادات جدول جديدة إلى `MergeTree` للتحكم في المعلمات الافتراضية للفهارس النصية: `text_index_dictionary_block_size` و`text_index_dictionary_block_frontcoding_compression` و`text_index_posting_list_block_size` و`text_index_posting_list_codec`. تتيح هذه الإعدادات ضبط سلوك الفهرس النصي على مستوى الجدول من دون الحاجة إلى تحديد معلمات في كل تعريف فهرس. وتظل الوسيطات الصريحة لكل فهرس لها الأسبقية. [#100626](https://github.com/ClickHouse/ClickHouse/pull/100626) ([Anton Popov](https://github.com/CurtizJ)).
* أصبح بإمكان projections تجاوز إعدادات `MergeTree` إضافية (الضغط، وتنسيق الأجزاء، والتسلسل) إلى جانب `index_granularity`، مع قائمة سماح للإعدادات المسموح بها والتحقق منها. [#101170](https://github.com/ClickHouse/ClickHouse/pull/101170) ([Amos Bird](https://github.com/amosbird)).
* أُضيفت الأعمدة `current_projection` و`current_projection_progress` و`projections_completed` و`projections_remaining` إلى `system.merges` لعرض تقدّم دمج projections. [#102611](https://github.com/ClickHouse/ClickHouse/pull/102611) ([Amos Bird](https://github.com/amosbird)).
* أُصلحت مشكلة في `PREWHERE` مع استعلام `IN` الفرعي على أعمدة المفتاح الأساسي، إذ لم يكن يستخدم فهرس المفتاح الأساسي في Granule pruning، ما كان يؤدي إلى فحص كامل للجدول بدلًا من قراءة granules ذات الصلة فقط. [#102570](https://github.com/ClickHouse/ClickHouse/pull/102570) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تفرض الدالة `h3PolygonToCells` الآن الحد الأقصى لحجم المصفوفة عبر جميع المضلعات في `MultiPolygon`، وتتحقق من رموز الإرجاع الخاصة بمكتبة H3 الأساسية، وترفض وسائط `MultiLineString` بدلًا من إرجاع نتيجة فارغة بصمت. [#106399](https://github.com/ClickHouse/ClickHouse/pull/106399) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيف جدول جديد مخصّص لـ Keeper فقط باسم `system.keeper_snapshots`، ويحتوي على معلومات عن snapshots المحلية في ClickHouse Keeper. [#105571](https://github.com/ClickHouse/ClickHouse/pull/105571) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُضيف جدول جديد مخصّص لـ Keeper فقط باسم `system.keeper_changelogs`، ويحتوي على معلومات عن ملفات changelog المحلية في ClickHouse Keeper (سجل Raft). [#105617](https://github.com/ClickHouse/ClickHouse/pull/105617) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُضيف جدول `system.keeper_cluster` مخصّص لـ Keeper فقط. ويحتوي على صف واحد لكل عضو في cluster الخاص بـ Raft كما يراه Keeper الحالي. [#105646](https://github.com/ClickHouse/ClickHouse/pull/105646) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُضيف المزيد من أحداث ملف تعريف Keeper (من جهة الخادم + جهة العميل) الخاصة بـ watches. يُغلق [#97703](https://github.com/ClickHouse/ClickHouse/issues/97703). [#105336](https://github.com/ClickHouse/ClickHouse/pull/105336) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أُضيفت إعدادات `coordination_settings` في Keeper لـ `NuRaft` لتقييد قبول log entries غير المُعتمدة، ولتقييد الاستقصاء العكسي لـ append-entries. [#106108](https://github.com/ClickHouse/ClickHouse/pull/106108) ([Antonio Andelic](https://github.com/antonio2368)).
* أُضيف الإعداد `enable_compression` إلى table function ‏`mysql`، وtable engine ‏`MySQL`، وdatabase engine ‏`MySQL`، وDictionary ‏`SOURCE(MYSQL)`، وnamed collections. وعند تفعيله، يفاوض ClickHouse على Compression على مستوى بروتوكول MySQL لكل البيانات المنقولة عبر connection. [#103229](https://github.com/ClickHouse/ClickHouse/pull/103229) ([Bernard Lim](https://github.com/bernardlim)).
* تم تقليل زمن استجابة الإلغاء للاستعلامات التي تعمل عبر PostgreSQL wire protocol: إذ أصبح `KILL QUERY` الآن يوقف تسلسل الإخراج داخل chunk واحد بدلًا من انتظار إرسال الـ chunk بالكامل إلى العميل. [#106535](https://github.com/ClickHouse/ClickHouse/pull/106535) ([Roman Vasin](https://github.com/rvasin)).
* تم تقليل زمن استجابة الإلغاء للاستعلامات التي تعمل عبر MySQL wire protocol: إذ أصبح `KILL QUERY` الآن يوقف تسلسل الإخراج داخل chunk واحد بدلًا من انتظار إرسال الـ chunk بالكامل إلى العميل. [#107228](https://github.com/ClickHouse/ClickHouse/pull/107228) ([Roman Vasin](https://github.com/rvasin)).
* تم إصلاح قراءة طول `auth_response` في MySQL handshake، إذ كانت قيمة بايت الطول `>= 128` تُفسَّر على أنها قيمة بحجم عدة غيغابايت لأنه كان يُقرأ كـ `char` موقَّع. [#107384](https://github.com/ClickHouse/ClickHouse/pull/107384) ([uwezkhan](https://github.com/uwezkhan)).
* أصبح `MaterializedPostgreSQL` الآن يربط أعمدة PostgreSQL من النوع `numeric(p, 0)` ذات precision الأكبر من 76 (مثل `numeric(78, 0)` المستخدمة للأعداد الصحيحة بعرض 256 بت) مع `Int256` في ClickHouse بدلًا من الفشل برسالة "Precision too big". وتُرفَض القيم التي لا تتسع داخل `Int256` مع رسالة error واضحة. [#107431](https://github.com/ClickHouse/ClickHouse/pull/107431) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إرسال Exception إلى العميل عند فشل إعداد TCP connection. [#107317](https://github.com/ClickHouse/ClickHouse/pull/107317) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* يمكن للمستخدمين الآن insert حقول `Fixed` من `Avro` لمتغيرات الأعداد الصحيحة 8 بت و16 بت و32 بت و64 بت. [#98139](https://github.com/ClickHouse/ClickHouse/pull/98139) ([Patrick Pichler](https://github.com/patrickpichler)).
* أصبح format `AvroConfluent` الآن يعيد المحاولة في Confluent Schema Registry HTTP client عند الإخفاقات المؤقتة (مهلات النقل، ورفض connection، وأخطاء DNS، وأخطاء HTTP `5xx`/`408`/`429`) باستخدام backoff أُسِّي، بدلًا من إيقاف عملية INSERT عند أول خلل شبكي. ويتحكم الإعدادان الجديدان `format_avro_schema_registry_max_retries` (القيمة الافتراضية `5`) و`format_avro_schema_registry_retry_initial_backoff_ms` (القيمة الافتراضية `100`) في هذه السياسة. وتظل validation error الخاصة بـ schema (HTTP `409` أو Avro JSON غير صالح) قاتلة. [#106661](https://github.com/ClickHouse/ClickHouse/pull/106661) ([Groene AI](https://github.com/groeneai)).
* تُسجَّل الآن الامتيازات في `system.query_log.used_privileges` لجميع عمليات التحقق من الوصول الممنوح، بما في ذلك تلك التي تمر عبر المسار `isGranted` غير المُطلِق للاستثناءات (`checkAccessWithFilter`). في السابق، كانت تُسجَّل فقط الامتيازات التي جرى التحقق منها عبر نقاط الدخول المُطلِقة للاستثناءات (`checkAccess` / `checkGrantOption`)، مما جعل `READ ON FILE` / `READ ON S3` / `READ ON AZURE` / `READ ON URL` غير مرئية في سجل التدقيق بالنسبة إلى استعلامات `DESCRIBE` و`CREATE TABLE AS` والاستعلامات المشابهة التي تستخدم table functions `file` / `s3` / `azure` / `url`. ولم يتغير فرض الوصول. [#104693](https://github.com/ClickHouse/ClickHouse/pull/104693) ([Alexey Bakharew](https://github.com/alexbakharew)).
* أُضيفت المقاييس Asynchronous `TotalUncompressedBytesOfMergeTreeTables` و`TotalUncompressedBytesOfMergeTreeTablesSystem`، وتعرضان إجمالي uncompressed size للبيانات المخزنة في جداول MergeTree-family. [#106364](https://github.com/ClickHouse/ClickHouse/pull/106364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف حدث profile باسم `GlobalMemoryLimitExceeded` لكي يتمكن Operators من مراقبة وقت بلوغ memory limit على مستوى الخادم بالكامل. [#106466](https://github.com/ClickHouse/ClickHouse/pull/106466) ([Sacheendra Talluri](https://github.com/sacheendra)).
* تمّ ملء العدّادات `ProfileEvents` الخاصة بـ `ExecutableUserDefinedFunction*` لوظائف UDF من النوع `executable_pool`. وأصبحت الآن قيمة عدد مرات الاستدعاء لكل نداء، ووقت التنفيذ الفعلي ووقت انتظار المجمّع، واستهلاك CPU للعمليات الفرعية وذروة الذاكرة، وبايتات stdin/stdout، مرئية في `system.query_log.ProfileEvents`. [#105010](https://github.com/ClickHouse/ClickHouse/pull/105010) ([Xu Jia](https://github.com/XuJia0210)) [#105618](https://github.com/ClickHouse/ClickHouse/pull/105618) ([Ilya Andreev](https://github.com/andreev-io)).
* أُضيفت المقاييس غير المتزامنة `ExecutableUserDefinedFunctionMemoryResidentBytes` و`ExecutableUserDefinedFunctionProcesses`، وهما يبلّغان عن الذاكرة المقيمة (`VmRSS`) وعدد العمليات الحية لوظائف user-defined function من النوعين `executable` و`executable_pool`، بما في ذلك العمليات التابعة وعمّال المجمّع الخاملون. [#107300](https://github.com/ClickHouse/ClickHouse/pull/107300) ([Hanzi Jiang](https://github.com/HanziJiang)).
* أُضيفت ثلاثة مقاييس غير متزامنة تعمل على Linux فقط — `MemoryThreadStacksCount` و`MemoryThreadStacksVirtual` و`MemoryThreadStacksResident` — وتبلّغ عن ذاكرة مكدسات pthread بشكل منفصل عن بقية الذاكرة المجهولة. ويجري تفعيلها عبر `asynchronous_metrics_enable_heavy_metrics`. ويتطلب ذلك Linux 5.17+ (`prctl(PR_SET_VMA_ANON_NAME)`) وإمكانية قراءة `/proc/self/smaps`؛ وإلا فلن تظهر هذه المقاييس وسيُبلّغ عن هذا القيد في `system.warnings`. [#106230](https://github.com/ClickHouse/ClickHouse/pull/106230) ([Raúl Marín](https://github.com/Algunenano)).
* أُتيحت المقاييس غير المتزامنة `MemoryThreadStacks*` (الحجم المقيم/الافتراضي وعدد مكدسات الخيوط) على macOS. [#107752](https://github.com/ClickHouse/ClickHouse/pull/107752) ([Raúl Marín](https://github.com/Algunenano)).
* أصبحت table engines تتضمن وثائق مضمّنة يمكن فحصها عبر الأعمدة الجديدة `description` و`syntax` و`examples` و`introduced_in` و`related` في جدول `system.table_engines`. [#106177](https://github.com/ClickHouse/ClickHouse/pull/106177) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت database engines تتضمن وثائق مضمّنة يمكن فحصها عبر الأعمدة الجديدة `description` و`syntax` و`examples` و`introduced_in` و`related` في جدول `system.database_engines`. [#106178](https://github.com/ClickHouse/ClickHouse/pull/106178) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت data types تتضمن وثائق مضمّنة يمكن فحصها عبر الأعمدة الجديدة `description` و`syntax` و`examples` و`introduced_in` و`related` في جدول `system.data_type_families`. [#106180](https://github.com/ClickHouse/ClickHouse/pull/106180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت تنسيقات الإدخال/الإخراج تتضمن وثائق مضمّنة يمكن فحصها عبر الأعمدة الجديدة `description` و`examples` و`introduced_in` و`related` في جدول `system.formats`. [#106181](https://github.com/ClickHouse/ClickHouse/pull/106181) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت combinators الخاصة بالدوال التجميعية تتضمن وثائق مضمّنة يمكن فحصها عبر الأعمدة الجديدة `description` و`syntax` و`examples` و`introduced_in` و`related` في جدول `system.aggregate_function_combinators`. [#106185](https://github.com/ClickHouse/ClickHouse/pull/106185) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف خيار سطر الأوامر `--chime` إلى `clickhouse-client` و`clickhouse-local` والعميل المضمّن. عند انتهاء الاستعلام (سواء بنجاح أو بخطأ) بعد تشغيله لمدة لا تقل عن N ثانية، يكتب العميل المحرف التحكمي ASCII `BEL` (`\x07`) إلى stderr. وتحدّد بيئات `terminal` ما إذا كانت ستصدر صوتًا أو وميضًا مرئيًا وفقًا لتفضيلات المستخدم. ويكون هذا مفعّلًا افتراضيًا بعتبة قدرها 5 ثوانٍ؛ مرّر `--chime N` لتحديد عتبة مخصّصة أو `--chime 0` للتعطيل. يغلق [#92718](https://github.com/ClickHouse/ClickHouse/issues/92718). [#104545](https://github.com/ClickHouse/ClickHouse/pull/104545) ([Groene AI](https://github.com/groeneai)).
* في `clickhouse-client`، عندما لا تدعم الطرفية اللصق بين الأقواس، تُدمَج الآن فواصل الأسطر المضمَّنة في الاستعلام متعدد الأسطر الملصَق داخل مخزن التحرير نفسه بدلًا من الانتقال إلى موجّه المتابعة لكل سطر. ويبقى الاستعلام الملصَق ضمن موجّه واحد، كما تتيح مفاتيح الأسهم التنقّل بين أسطره. وهذا تحسين يُقدَّم على أساس أفضل جهد ويعتمد على سلوك اللصق المعتاد المخزَّن مؤقتًا في TTY. [#104299](https://github.com/ClickHouse/ClickHouse/pull/104299) ([Alexey Milovidov](https://github.com/alexey-milovidov)). ويعمل الآن أيضًا عند تعطيل تمييز بناء الجملة (`--highlight 0`). [#106665](https://github.com/ClickHouse/ClickHouse/pull/106665) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت آلية للتحكم في مقسّم الصفحات وقت التشغيل بأسلوب MySQL لكل من `clickhouse-client` و`clickhouse-local`. [#105706](https://github.com/ClickHouse/ClickHouse/pull/105706) ([Azat Khuzhin](https://github.com/azat)).
* أصبح `clickhouse-client` الآن يراعي الطرفيات غير UTF-8: فعندما لا يكون ترميز محارف الطرفية هو UTF-8 (مثلًا عند استخدام `LANG=C`)، تعود تنسيقات `Pretty` إلى حدود شبكية ASCII بدلًا من طباعة محارف Unicode الخاصة برسم الصناديق، والتي قد تُفسد عرض الطرفية. [#106213](https://github.com/ClickHouse/ClickHouse/pull/106213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جرى تنظيف سلاسل العرض التي يزوّد بها server عند معالجة packet ‏`Hello` في `clickhouse-client` (اسم server، وtime zone، واسم العرض، وأنماط ورسائل قواعد password) بحيث لا يتمكن server خبيث من حقن بايتات يعرضها client حرفيًا، مع تقييد حجمها أيضًا للحماية من allocation غير المقيّد. [#105243](https://github.com/ClickHouse/ClickHouse/pull/105243) ([Raúl Marín](https://github.com/Algunenano)).
* تعرض واجهة الويب الآن النتيجة على هيئة image عندما يستخدم query تنسيق output format للصور مثل `FORMAT PNG`، بدلًا من عرض raw bytes كجدول. [#107638](https://github.com/ClickHouse/ClickHouse/pull/107638) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الإعداد `output_format_pretty_use_nbsp_for_padding` لعرض padding الخاص بتخطيط الجدول في تنسيقات `Pretty` ذات نمط الجدول باستخدام `U+00A0` NO-BREAK SPACE عندما تكون `output_format_pretty_grid_charset` هي `UTF-8`. ويساعد ذلك على احتفاظ مخرجات `Pretty` المنسوخة بمحاذاة الجدول في الأدوات التي تطوي المسافات العادية. ويكون هذا الإعداد معطّلًا افتراضيًا، بينما يحتفظ خرج مجموعة المحارف `ASCII` بالمسافات العادية. [#103559](https://github.com/ClickHouse/ClickHouse/pull/103559) ([Ashrith Bandla](https://github.com/ashrithb)).
* يقوم برنامج التثبيت النصي universal الآن أيضًا بتثبيت `clickhousectl` في `~/.local/bin` على Linux وmacOS، مع وصلة رمزية `chctl`. اضبط `CLICKHOUSE_ONLY=1` لتخطي ذلك. [#105399](https://github.com/ClickHouse/ClickHouse/pull/105399) ([Alasdair Brown](https://github.com/sdairs)).
* تم إصلاح الخطأ العارض `Syntax error: Unterminated quoted string` الذي كان قد يظهر بشكل متقطع عند تثبيت ClickHouse عبر `curl https://clickhouse.com/ | sh` بينما كان الملف التنفيذي `clickhouse` موجودًا بالفعل في الدليل الحالي. [#106417](https://github.com/ClickHouse/ClickHouse/pull/106417) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح ارتفاع اللوحة اليسرى في صفحة `play.html` عند فتح web terminal، بحيث يبقى زر toggle الخاص بالطرفية في الأسفل مرئيًا. [#105087](https://github.com/ClickHouse/ClickHouse/pull/105087) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تجنّب تحديد الاستعلام الوحيد في واجهة الويب بعد تشغيله. [#105711](https://github.com/ClickHouse/ClickHouse/pull/105711) ([Joey Yu](https://github.com/itsjoeoui)).
* توسّع واجهة SQL على الويب الآن محرر الاستعلام عندما لا يزيد ارتفاع الاستعلام على 30% من ارتفاع المحرر الحالي. [#105713](https://github.com/ClickHouse/ClickHouse/pull/105713) ([Joey Yu](https://github.com/itsjoeoui)).
* في واجهة الويب، رتّب أيقونات القائمة السفلية (طرفية الويب وGitHub) أفقيًا عند توسيع اللوحة اليسرى، مما يمنح قائمة قواعد البيانات والجداول مساحة رأسية أكبر. [#106427](https://github.com/ClickHouse/ClickHouse/pull/106427) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في واجهة الويب (`play.html`)، يؤدي الضغط على `Escape` الآن إلى إلغاء تنشيط الخلية المحددة حاليًا في جدول النتائج. [#107777](https://github.com/ClickHouse/ClickHouse/pull/107777) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسينات على لوحة قاعدة البيانات في واجهة SQL على الويب (Play): تلميح عند أيقونة قاعدة البيانات، وزر لإخفاء اللوحة، وإتاحة النقر على أسماء قواعد البيانات والجداول بعرض كامل، وإصلاح تغيّر عرض اللوحة عند ظهور شريط التمرير. [#108013](https://github.com/ClickHouse/ClickHouse/pull/108013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة إعداد خادم (`min_allocation_size_to_throw_on_memory_limit`) للسماح لأي عملية تخصيص بأن تُطلق `MEMORY_LIMIT_EXCEEDED`، مما يساعد على منع حالات نفاد الذاكرة (OOM). [#105265](https://github.com/ClickHouse/ClickHouse/pull/105265) ([Azat Khuzhin](https://github.com/azat)).
* السماح بمصادقة `NONE` مع SSH (لمنع طلب كلمة المرور لمستخدمي `no_password`). [#105476](https://github.com/ClickHouse/ClickHouse/pull/105476) ([Azat Khuzhin](https://github.com/azat)).
* إعادة تعيين قائمة المجموعات الإضافية في `clickhouse su` قبل إسقاط الامتيازات، بما يطابق سلوك `/bin/su` و`sudo`. سابقًا، كانت العملية التي أُسقطت امتيازاتها ترث المجموعات الإضافية للمستدعي. [#105247](https://github.com/ClickHouse/ClickHouse/pull/105247) ([Raúl Marín](https://github.com/Algunenano)).
* إضافة دعم `BFloat16` إلى دوال predicate العددية (`isFinite`, `isNaN`). [#105391](https://github.com/ClickHouse/ClickHouse/pull/105391) ([Mohamed Hussain S](https://github.com/mohhddhassan)).
* تقليل استخدام الذاكرة في polygon dictionaries (`polygon_index_cell`, `polygon_index_each`) وجعل `system.dictionaries.bytes_allocated` يعكس بشكل صحيح فهرس البحث الذي تنشئه. [#105431](https://github.com/ClickHouse/ClickHouse/pull/105431) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح مستهلكي Kafka table engine الذين استمروا في استخدام فترة استطلاع قصيرة بعد تعيين partition، بحيث يعودون إلى القيمة المضبوطة `kafka_poll_timeout_ms` ويتجنبون عمليات استطلاع فارغة مفرطة، وأجزاءً مُدرجة أصغر، وعبئًا إضافيًا على الدمج بعد إعادة التوازن. [#100431](https://github.com/ClickHouse/ClickHouse/pull/100431) ([sugaf1204](https://github.com/sugaf1204)).
* تحديد الأعمدة بحسب الموضع (بدلًا من الاسم) عند إزالة الأعمدة غير المستخدمة في query plan. يتيح ذلك إزالة الأعمدة غير المستخدمة عند وجود أسماء أعمدة مكررة. [#100586](https://github.com/ClickHouse/ClickHouse/pull/100586) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* يُطلق ClickHouse استثناءً مناسبًا عند محاولة استخدام `table_readonly` مع المحركات المكررة، مع تحسين معالجة الاستثناءات لاستعلامات DDL (و`DatabaseReplicated`) المرتبطة بهذا الإعداد. [#100950](https://github.com/ClickHouse/ClickHouse/pull/100950) ([alesapin](https://github.com/alesapin)). لم يعد `OPTIMIZE TABLE ... ON CLUSTER` وعمليات DDL الأخرى تتعطل عندما يكون `table_readonly = 1` في الجدول الهدف. ويُطلق الإعداد الآن رمز خطأ مخصصًا جديدًا هو `TABLE_IS_PERMANENTLY_READ_ONLY`، ويتعامل معه `DDLWorker` على أنه غير قابل لإعادة المحاولة (وهو مختلف عن `TABLE_IS_READ_ONLY` المؤقت الذي يظهر أثناء انقطاع ZooKeeper المؤقت في `ReplicatedMergeTree`). كما يُرفَض إعداد `table_readonly` الآن صراحةً مع `ReplicatedMergeTree`، سواء عند الإنشاء أو عبر `ALTER MODIFY SETTING`. متابعة لـ [#97652](https://github.com/ClickHouse/ClickHouse/issues/97652). [#105109](https://github.com/ClickHouse/ClickHouse/pull/105109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تحديثات العرض المادي القابل للتحديث التي كان يمكن أن تفشل بخطأ `UNKNOWN_TABLE` بعد استبدال الجدول الهدف (على سبيل المثال عبر `EXCHANGE TABLES` أو الحذف ثم إعادة الإنشاء): إذ أصبح التحديث الآن يحدّد الجدول الهدف بالاسم بدلًا من الاعتماد على UUID قديم. [#102724](https://github.com/ClickHouse/ClickHouse/pull/102724) ([Seva Potapov](https://github.com/seva-potapov)).
* أُضيف إعداد `wait_for_part_commit_in_dependent_materialized_views` (القيمة الافتراضية `false`). عندما يقرأ `SELECT` في عرض مادي مرة أخرى من جدول المصدر الخاص به (على سبيل المثال عبر `INNER JOIN` مع المصدر)، كان التنفيذ المتسلسل قد يفوّت الصف الذي يُدرج حاليًا، لأن الجزء المُدرج لا يُعتمَد إلا بعد تشغيل العروض التابعة. يؤدي تفعيل هذا الإعداد إلى اعتماد الجزء قبل تشغيل العروض التابعة، بحيث تتمكن من رؤية الصف قيد الإدراج، لكن على حساب تقليل insert parallelism. [#105943](https://github.com/ClickHouse/ClickHouse/pull/105943) ([Elmi Ahmadov](https://github.com/ahmadov)).
* عدم تجاهل الأخطاء الفادحة (مثل `MEMORY_LIMIT_EXCEEDED`) في `tryDeserialize`. [#106808](https://github.com/ClickHouse/ClickHouse/pull/106808) ([Azat Khuzhin](https://github.com/azat)).
* التحقق من امتياز `CREATE TEMPORARY TABLE` عند الحاجة في `InverseDictionaryLookupPass`. [#107098](https://github.com/ClickHouse/ClickHouse/pull/107098) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح خطأ `ILLEGAL_TYPE_OF_ARGUMENT` في distributed queries مع `serialize_query_plan = 1` التي تحتوي على lambda ذات argument ثابت (مثل `arrayMap(t -> t.2, ...)`). أصبحت الأعمدة الثابتة لعُقد `INPUT` في `ActionsDAG` محفوظة الآن أثناء serialization لـ query plan. [#107124](https://github.com/ClickHouse/ClickHouse/pull/107124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت عملية إلغاء تسلسل حالات الدوال التجميعية `contingency` و`cramersV` و`cramersVBiasCorrected` و`theilsU` تتحقق من أن الأعداد المخزنة تشكّل جدول contingency متسقًا، وتطرح استثناء `CORRUPTED_DATA` بخلاف ذلك. يُغلق [#106899](https://github.com/ClickHouse/ClickHouse/issues/106899). [#107185](https://github.com/ClickHouse/ClickHouse/pull/107185) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* الحفاظ على رموز الخطأ الأصلية للاستثناءات المغلّفة داخل `arrow::Status`. [#107267](https://github.com/ClickHouse/ClickHouse/pull/107267) ([Azat Khuzhin](https://github.com/azat)).
* دعم `keyed_by_normalized_query_hash` للحصص المُعرّفة في إعدادات الخادم الثابتة (`users.xml`)، بما يطابق صياغة DDL الحالية `CREATE QUOTA ... KEYED BY normalized_query_hash`. [#107654](https://github.com/ClickHouse/ClickHouse/pull/107654) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد إعداد compatibility يطبّق الإعدادات المهملة، لذلك لم يعد يضع عليها علامة بأنها تغيّرت أو يُصدر تحذيرات بشأن الإعدادات المهملة. [#107737](https://github.com/ClickHouse/ClickHouse/pull/107737) ([Maxim Orlovsky](https://github.com/UberDever)).
* لم تعد async inserts تسجّل القائمة الكاملة لـ `query_id`s عند مستوى `trace`/`debug`، وهو ما كان يمكن منذ 26.2 أن يتسبب في تضخّم `text_log` على الخدمات ذات حركة async insert الكثيفة. أصبحت الأسطر التفصيلية الآن عند مستوى `test`. [#107852](https://github.com/ClickHouse/ClickHouse/pull/107852) ([Sema Checherinda](https://github.com/CheSema)).
* تحسين filesystem cache: منع إدخالات priority غير الصالحة من تثبيت `KeyMetadata`. متابعة لـ [#106387](https://github.com/ClickHouse/ClickHouse/pull/106387). [#107903](https://github.com/ClickHouse/ClickHouse/pull/107903) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تحسين مقاييس `FileCache`. [#106116](https://github.com/ClickHouse/ClickHouse/pull/106116) ([Kseniia Sumarokova](https://github.com/kssenii)).
* لا تطبع المقدمة "Stack trace (when copying this message, always include the lines below):" في رسائل الاستثناء عندما يكون تتبّع المكدس فارغًا فعلًا. [#106524](https://github.com/ClickHouse/ClickHouse/pull/106524) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال حدوث overflow في `roundUpToMultiple` عند حساب محاذاة حدود filesystem cache لإزاحات كبيرة جدًا. [#92579](https://github.com/ClickHouse/ClickHouse/pull/92579) ([Bharat Nallan](https://github.com/bharatnc)).
* أصبح `EXPLAIN SYNTAX` الآن ينسّق Operators على هيئة استدعاءات دوال بشكل متّسق في مخرجات الشرح (على سبيل المثال `plus(1, 2)` بدلًا من `1 + 2`). [#94681](https://github.com/ClickHouse/ClickHouse/pull/94681) ([Mohamed Abdelhalim ](https://github.com/1abdelhalim)).
* تحسين التلميحات الخاصة بأسماء الجداول في رسائل الخطأ: لم تعد تقترح الاسم نفسه حرفيًا، وأصبحت تتضمن اسم قاعدة البيانات في الاقتراح (مثلًا: "Maybe you meant `other_db.my_table`?"). [#95116](https://github.com/ClickHouse/ClickHouse/pull/95116) ([Mathuranath Metivier](https://github.com/matt-metivier)).
* تحسين رسالة الخطأ الخاصة بالمعرّفات غير المحلولة في الاستعلامات التي لا تحتوي على عبارة `FROM`، بحيث تقترح إضافتها. [#101769](https://github.com/ClickHouse/ClickHouse/pull/101769) ([Yash ](https://github.com/Onyx2406)).
* إضافة خيار `EXPLAIN PIPELINE` لضغط سلاسل المعالجات المتكررة. [#104662](https://github.com/ClickHouse/ClickHouse/pull/104662) ([Yue Ni](https://github.com/niyue)).
* إصلاح قراءة heap-buffer-overflow أثناء إنشاء رسالة خطأ الصياغة (`UTF8::computeWidthImpl` عبر `parseQuery.cpp`) كانت تحدث عندما يتراجع parser إلى ما قبل أول فاصلة منقوطة / رمز نهاية الدفق؛ إذ كانت إصدارات release تُدرج بايتات من ذاكرة الكومة المجاورة ضمن الخطأ المعروض، بينما كانت إصدارات ASan تُوقف التنفيذ. [#105086](https://github.com/ClickHouse/ClickHouse/pull/105086) ([Groene AI](https://github.com/groeneai)).
* جعل استراتيجية partition الخاصة بـ hive هي الافتراضية ضمن إعداد التوافق `file_like_engine_default_partition_strategy`. [#86746](https://github.com/ClickHouse/ClickHouse/pull/86746) ([Kseniia Sumarokova](https://github.com/kssenii)).
* استخدام مكدس thread أكبر (8 MiB) على macOS لمطابقة القيمة الافتراضية في Linux، ما يعالج حالات تعطل server النادرة الناتجة عن stack overflow أثناء ترجمة JIT. [#107033](https://github.com/ClickHouse/ClickHouse/pull/107033) ([Raúl Marín](https://github.com/Algunenano)).
* لم يعد حد حجم التخزين المؤقت لـ `clickhouse-local` مضبوطًا برمجيًا على 1 GiB. وقد رُفعت القيمة الافتراضية إلى 1 TiB، ويمكن ضبطها عبر server setting ‏`max_temporary_data_on_disk_size`. [#106689](https://github.com/ClickHouse/ClickHouse/pull/106689) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة الأمر `read-checksums` إلى `clickhouse-disks`. يقرأ ملف `checksums.txt` الخاص بـ `MergeTreeDataPart` ويطبعه كجدول مقروء للبشر ومفصول بعلامات الجدولة. [#106901](https://github.com/ClickHouse/ClickHouse/pull/106901) ([Asya Shneerson](https://github.com/asya-ch)).
* تمت إضافة الأمر `read-bitmap` إلى `clickhouse-disks`. [#107834](https://github.com/ClickHouse/ClickHouse/pull/107834) ([murphy-4o](https://github.com/murphy-4o)).
* Chdig: تمكين TLS للاتصالات الآمنة (إذ كان الوضع السابق يؤدي إما إلى "unknown setting `skip_verify`" أو "connection reset by peer"). [#105864](https://github.com/ClickHouse/ClickHouse/pull/105864) ([Azat Khuzhin](https://github.com/azat)).
* [`chdig` v26.5.1](https://github.com/azat/chdig/releases/tag/v26.5.1). [#105918](https://github.com/ClickHouse/ClickHouse/pull/105918) ([Azat Khuzhin](https://github.com/azat)).
* [`chdig` v26.6.1](https://github.com/azat/chdig/releases/v26.6.1) - `{asynchronous_,}metric_log`، وأنماط الاستعلامات، والخرائط الحرارية، والسجلات/التتبعات المخزنة على القرص (إذ كان قد يستهلك سابقًا >40GiB لساعة واحدة من التتبعات). [#107678](https://github.com/ClickHouse/ClickHouse/pull/107678) ([Azat Khuzhin](https://github.com/azat)).
* تضبط إعدادات الخادم (`programs/server/config.xml`) الآن `keep_alive_timeout` على 30 (بدلًا من 10 سابقًا)، بما يتوافق مع القيمة الافتراضية الفعلية الموثقة والمطبقة. [#107779](https://github.com/ClickHouse/ClickHouse/pull/107779) ([Dan Checkoway](https://github.com/dcheckoway)).
* تغيّرت القيمة الافتراضية لإعداد الخادم `disk_connections_rcvbuf` من `0` (الضبط التلقائي لـ TCP في النواة) إلى `204800` (200 كيلوبايت)، مما يضع حدًا أقصى لذاكرة التخزين المؤقت لاستقبال TCP لكل مقبس في اتصالات الأقراص الخاصة بتخزين الكائنات (`S3`/`Azure`/`GCS`). [#107859](https://github.com/ClickHouse/ClickHouse/pull/107859) ([Sema Checherinda](https://github.com/CheSema)).
* يجمع مُحسِّن `PREWHERE` الآن المقترنات التي تشير إلى مجموعة الأعمدة نفسها قبل تقدير الانتقائية، بحيث تُقيَّم شروط مثل `a > 2500 AND a < 2502` معًا كنطاق واحد بدلًا من معاملتها كمسندين مستقلين، مما ينتج عنه تقدير أكثر دقة للانتقائية. [#106337](https://github.com/ClickHouse/ClickHouse/pull/106337) ([Han Fei](https://github.com/hanfei1991)).
* تمت إضافة تطبيقات للمقابس الآمنة والعادية تراعي silk fiber. [#107680](https://github.com/ClickHouse/ClickHouse/pull/107680) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح رسالة خطأ مشوشة (بسبب تبديل الوسيطات) وخطأ مطبعي في الدالة `nested`. [#108031](https://github.com/ClickHouse/ClickHouse/pull/108031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة أمر `sed` إلى `clickhouse-disks` يطبّق تعبير sed على مسار معيّن مباشرةً في مكانه. [#107131](https://github.com/ClickHouse/ClickHouse/pull/107131) ([Asya Shneerson](https://github.com/asya-ch)).
* تمت إضافة الإعداد `materialized_postgresql_use_extended_date_and_time_types` الخاص بوقت الإنشاء إلى محرك قاعدة البيانات `MaterializedPostgreSQL`. افتراضيًا (عند تمكينه)، يُستدل على أعمدة PostgreSQL ‏`date`/`timestamp` على أنها `Date32`/`DateTime64`؛ أما ضبطه على `0` وقت `CREATE DATABASE` فيؤدي إلى استنتاج النوعين الأضيق `Date`/`DateTime`. [#107428](https://github.com/ClickHouse/ClickHouse/pull/107428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* إتاحة حذف detached parts ذات اللاحقة `tryN`. [#58957](https://github.com/ClickHouse/ClickHouse/pull/58957) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح استثناء `MULTIPLE_EXPRESSIONS_FOR_ALIAS` في الاستعلامات التي تحتوي على أسماء مستعارة مكررة للإسقاط (مثل `SELECT *, day + 365 AS day`) داخل الاستعلامات الفرعية المتداخلة عند التشغيل باستخدام النسخ المتماثلة المتوازية. [#80310](https://github.com/ClickHouse/ClickHouse/pull/80310) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خلل في `splitMultipartQuery` كان يتسبب في ظهور خطأ "Empty query" في الاستعلامات التي تنتهي بتعليق بعد الفاصلة المنقوطة. [#85491](https://github.com/ClickHouse/ClickHouse/pull/85491) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء في `ARRAY JOIN`: `Function writeSlice expects same column types for GenericArraySlice and GenericArraySink`، ويحدث ذلك عند استخدام الأنواع الرقمية `LowCardinality` (المشكلة [#57243](https://github.com/ClickHouse/ClickHouse/issues/57243)). [#91784](https://github.com/ClickHouse/ClickHouse/pull/91784) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح استثناء `NOT_FOUND_COLUMN_IN_BLOCK` عند استخدام `LIMIT BY` مع الأعمدة الثابتة إلى جانب `DISTINCT` و `ORDER BY` مع المحلل الجديد. [#93195](https://github.com/ClickHouse/ClickHouse/pull/93195) ([Ashrith Bandla](https://github.com/ashrithb)).
* إصلاح مشكلة إنشاء أعمدة `NOT NULL` بصمت على أنها `Nullable` عندما تكون `data_type_default_nullable = 1` ويُنشأ الجدول في قاعدة بيانات `Replicated` أو عبر `ON CLUSTER`. [#97572](https://github.com/ClickHouse/ClickHouse/pull/97572) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* إصلاح استقرار الاتصال بـ HiveCatalog من خلال إضافة آلية إعادة محاولة تلقائية ومنطق لإعادة الاتصال للتعامل مع أخطاء TTransportException عند التواصل مع Hive Metastore. [#98471](https://github.com/ClickHouse/ClickHouse/pull/98471) ([Dmitriy Borisenko](https://github.com/otselnik)).
* إصلاح الدالة `nested` (المستخدمة داخليًا بواسطة `ARRAY JOIN`) التي كانت تزيل `LowCardinality` من أنواع الأعمدة، مما يؤدي إلى تحوّل `Array(LowCardinality(String))` إلى `Array(String)` في المخرجات. يغلق [#95582](https://github.com/ClickHouse/ClickHouse/issues/95582). [#98974](https://github.com/ClickHouse/ClickHouse/pull/98974) ([Yash ](https://github.com/Onyx2406)).
* إصلاح استثناء "Distributed task iterator is not initialized" عند استخدام `url` أو `s3` أو table functions مشابهة في الاستعلامات مع تفعيل النسخ المتماثلة المتوازية. [#100146](https://github.com/ClickHouse/ClickHouse/pull/100146) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء logical error عند قراءة Iceberg tables التي رُقِّي إصدار التنسيق الخاص بها بواسطة أداة خارجية (مثل Spark). [#100407](https://github.com/ClickHouse/ClickHouse/pull/100407) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت الدوال `like` و `ilike` و `notLike` و `notILike` و `match` تدعم الآن haystack ثابتًا مع needle غير ثابت (مثل `'foo' LIKE pattern_column`)، بعدما كان ذلك يؤدي سابقًا إلى `ILLEGAL_COLUMN`. [#100479](https://github.com/ClickHouse/ClickHouse/pull/100479) ([Yash ](https://github.com/Onyx2406)).
* إصلاح عدد الصفوف غير الصحيح الذي يعيده استعلام `MaterializedView` مع `query_plan_enable_optimizations = 0` عندما يربط العرض عمودًا صحيحًا بعمود `Bool`. [#100692](https://github.com/ClickHouse/ClickHouse/pull/100692) ([Maksim Moisiuk](https://github.com/Maximus5)).
* إصلاح استثناء (`LOGICAL_ERROR: 'PREWHERE passed to format that doesn't support it'`) عند قراءة Iceberg tables التي تحتوي على data files بتنسيق ORC مع تفعيل PREWHERE optimization. [#101206](https://github.com/ClickHouse/ClickHouse/pull/101206) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة سباق في RestCatalog. [#101216](https://github.com/ClickHouse/ClickHouse/pull/101216) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` عند تنفيذ select من VIEW فوق table تحتوي على projection عادي. [#101218](https://github.com/ClickHouse/ClickHouse/pull/101218) ([Amos Bird](https://github.com/amosbird)).
* إصلاح البيانات الوصفية القديمة في FileLog عند حذف ملف ثم إعادة إنشائه. [#101408](https://github.com/ClickHouse/ClickHouse/pull/101408) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح إعادة ترتيب join التي كانت تؤدي بصمت إلى إسقاط الصفوف غير المتطابقة في `RIGHT`/`LEFT JOIN` عند ضمّها بفاصلة (cross) مع table أخرى، مثل `t1 RIGHT JOIN t2 ON t1.c = t2.c, t3`. كان query يعيد سابقًا نتيجة inner-join بدلًا من outer-join. [#101684](https://github.com/ClickHouse/ClickHouse/pull/101684) ([Groene AI](https://github.com/groeneai)).
* إصلاح استهلاك clause ‏`FORMAT` من قِبل `INSERT` بدلًا من تطبيقها على مخرجات `EXPLAIN` في `EXPLAIN INSERT INTO ... SELECT ... FORMAT ...`. [#101772](https://github.com/ClickHouse/ClickHouse/pull/101772) ([Yash ](https://github.com/Onyx2406)).
* إصلاح الاختيار غير الصحيح لـ compression codec لأجزاء `MergeTree` عندما يكون workload setting ‏`default_compression_codec` على مستوى table مُعدًّا صراحةً. كانت الأجزاء المكتوبة on insert، وأثناء merges، ولـ projections تستخدم الـ codec الافتراضي على مستوى server بدلًا من الإعداد على مستوى table (ويشمل ذلك الآن أيضًا الجزء الفارغ الناتج عن mutation تحذف كل البيانات). [#101784](https://github.com/ClickHouse/ClickHouse/pull/101784) ([Yash ](https://github.com/Onyx2406)).
* رفض قيم `Float64` السالبة (مثل `-100.5`) في workload settings مثل `max_bytes_per_second` و`max_cpus` وغيرها. سابقًا كان التحقق يقتصر على الأعداد الصحيحة السالبة، ما سمح للقيم العشرية السالبة بإنشاء عُقد scheduler معطوبة بصمت. يُغلق [#101825](https://github.com/ClickHouse/ClickHouse/issues/101825). [#101842](https://github.com/ClickHouse/ClickHouse/pull/101842) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` ("Port is not connected"، الرمز 49) التي كان يمكن أن تحدث عند تنفيذ queries تتضمن VIEW فيها aggregation داخل JOIN. [#102574](https://github.com/ClickHouse/ClickHouse/pull/102574) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح عدم اتساق البيانات الوصفية للجزء بعد mutations على columns ذات serializations غير الافتراضية. [#102817](https://github.com/ClickHouse/ClickHouse/pull/102817) ([Eduard Karacharov](https://github.com/korowa)).
* إصلاح تحديث البيانات الوصفية قبل تنفيذ mutation، ما يحل [#96806](https://github.com/ClickHouse/ClickHouse/issues/96806). [#102882](https://github.com/ClickHouse/ClickHouse/pull/102882) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إصلاح بطء queries من نوع SELECT بشكل ملحوظ عند تشغيل عمليات INSERT متزامنة. سابقًا كانت pipeline الخاصة بـ INSERT تحجز CPU slots حتى `max_threads` عند بدء query حتى عندما لا تُستخدم معظم الـ slots مطلقًا، مما كان يحرم عمليات SELECT المتزامنة من الموارد. أصبح تخصيص CPU slot الآن قائمًا على الطلب: لا تطلب pipeline الـ slots إلا عند دفع عمل قابل للتوازي فعليًا. ينطبق ذلك على كلٍّ من التحكم في Concurrency والـ scheduler الاستباقي للـ CPU الخاص بـ workloads. ويعمل server setting الجديد `concurrent_threads_lazy_allocation` (القيمة الافتراضية `true`) كآلية تراجع. [#102928](https://github.com/ClickHouse/ClickHouse/pull/102928) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح تمرير `NULL` عند قراءة الأعمدة الفرعية المستخرجة من أعمدة `Nullable(Tuple(...))`. على سبيل المثال، في `tup Nullable(Tuple(s Nullable(String)))`، يُرجِع `SELECT tup.s` الآن `NULL` بشكل صحيح في الصفوف التي تكون فيها الـ tuple الخارجية `NULL` بدلًا من قيم المهملات. ويشمل ذلك جميع أنواع العناصر التي يمكنها تمثيل `NULL`: ‏`Nullable` و`Dynamic` و`Variant` و`LowCardinality(Nullable(...))`. يُغلق [#105356](https://github.com/ClickHouse/ClickHouse/issues/105356). [#102942](https://github.com/ClickHouse/ClickHouse/pull/102942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إطلاق `INCORRECT_DATA` بدلًا من `LOGICAL_ERROR` عندما تكون البيانات التي يرسلها العميل بتنسيق Native format مقتطعة أو غير سليمة. [#102975](https://github.com/ClickHouse/ClickHouse/pull/102975) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إضافة فحص للإلغاء إلى عملية القراءة في ObjectStorage. يُغلق [#98165](https://github.com/ClickHouse/ClickHouse/issues/98165). [#103016](https://github.com/ClickHouse/ClickHouse/pull/103016) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* مراعاة `input_format_binary_max_type_complexity` عند فك ترميز معاملات aggregate function. يُغلق [#102903](https://github.com/ClickHouse/ClickHouse/issues/102903). [#103026](https://github.com/ClickHouse/ClickHouse/pull/103026) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح استنتاج nullable لأعمدة geo في Parquet reader المستند إلى Arrow. يُغلق [#101845](https://github.com/ClickHouse/ClickHouse/issues/101845). [#103032](https://github.com/ClickHouse/ClickHouse/pull/103032) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `recursiveRemoveLowCardinality` الذي كان يمحو أسماء أنواع geometry المخصصة (مثل `LineString` مقابل `Ring`، و`MultiLineString` مقابل `Polygon`)، مما كان يؤدي إلى تفسير نوع geometry بشكل خاطئ. يُغلق [#103207](https://github.com/ClickHouse/ClickHouse/issues/103207). [#103041](https://github.com/ClickHouse/ClickHouse/pull/103041) ([Joanna Hulboj](https://github.com/jh0x)).
* إصلاح تجاهل `input_format_max_block_size_bytes` بصمت أثناء parsing لـ `INSERT` عندما تكون `max_insert_block_size_bytes` مساوية لـ `0` (القيمة الافتراضية). يقيّد هذا الإعداد الآن بشكل صحيح حجم blocks الناتجة عن row input formats. [#103068](https://github.com/ClickHouse/ClickHouse/pull/103068) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إصلاح قيام ClickHouse أحيانًا بإنتاج tokens غير صالحة لـ GSSAPI بسبب إزالة غير صحيحة للـ null byte اللاحقة. [#103114](https://github.com/ClickHouse/ClickHouse/pull/103114) ([Michael Jarrett](https://github.com/EmeraldShift)).
* إصلاح طيّ الثوابت في وقت analyzer للدوال ذات short-circuit (`if` و`multiIf` و`and` و`or` وغيرها)، بحيث لم تعد branches غير القابلة للوصول إحصائيًا تثير استثناءات أثناء التحليل. على سبيل المثال، يُرجِع `WITH 0 AS n SELECT multiIf(n = 0, 0, intDiv(100, n))` الآن `0` بشكل صحيح بدلًا من الفشل بخطأ قسمة على الصفر. [#103157](https://github.com/ClickHouse/ClickHouse/pull/103157) ([Peng](https://github.com/fastio)).
* يوسّع `EXPLAIN SYNTAX` parameterized views. [#103263](https://github.com/ClickHouse/ClickHouse/pull/103263) ([Jordi Villar](https://github.com/jrdi)).
* إصلاح تلف البيانات عند كتابة Parquet (وصيغ أخرى تحتوي على trailer مثل ORC وArrow) إلى HDFS عبر `INSERT INTO FUNCTION hdfs(...)`. منذ الإصدار 26.1، لم يكن `WriteBufferFromHDFS` يفرّغ buffer العمل الخاص به عند `finalize()`، لذا كانت آخر `DBMS_DEFAULT_BUFFER_SIZE` بايت — أو أقل — من كل ملف تُفقَد بصمت، بما في ذلك footer الخاص بـ Parquet `PAR1`. وكانت قراءة مثل هذه الملفات تُرجِع `Not a Parquet file (wrong magic bytes at the end of file)`. [#103268](https://github.com/ClickHouse/ClickHouse/pull/103268) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج غير صحيحة وخطأ منطقي محتمل في الاستعلامات الفرعية المترابطة عند ضبط حدّ لحجم join (`max_rows_in_join` / `max_bytes_in_join`) مع `join_overflow_mode = 'break'`. إذ أصبح join المُنشأ داخليًا لتقييم الاستعلام الفرعي المترابط يتجاهل حدود المستخدم هذه، لذلك لم يعد يتوقف مبكرًا ويتسبب في إسقاط صفوف. [#103322](https://github.com/ClickHouse/ClickHouse/pull/103322) ([Groene AI](https://github.com/groeneai)).
* إصلاح خلل كان يؤدي إلى أن `ALTER TABLE ... MODIFY SETTING` على جدول `EmbeddedRocksDB` قد يحفظ قيمة إعداد غير صالحة في ملف البيانات الوصفية للجدول حتى عندما يرفض الخادم الاستعلام. وعند إعادة تشغيل الخادم في المرة التالية، كان الجدول يفشل في الإرفاق مع `CANNOT_PARSE_BOOL` (أو خطأ parsing مشابه)، وفي قواعد البيانات التي تكون فيها إخفاقات التحميل قاتلة، كان الخادم يرفض البدء. وأصبحت قيم الإعدادات غير الصالحة تُرفض الآن قبل كتابة أي بيانات وصفية. [#103417](https://github.com/ClickHouse/ClickHouse/pull/103417) ([Groene AI](https://github.com/groeneai)).
* إصلاح إجهاض للخادم عند إنشاء جدول باستخدام محرك تخزين كائنات (`AzureBlobStorage`, `DeltaLakeAzure`, `S3`, `HDFS`) مع عدد غير مدعوم من الوسائط. يُرجع الخادم الآن الخطأ `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` بشكل واضح بدلًا من الإجهاض في بنيات debug/sanitizer. [#103544](https://github.com/ClickHouse/ClickHouse/pull/103544) ([Groene AI](https://github.com/groeneai)).
* إصلاح انهيار في الخادم أثناء parsing لمعاملات نوعَي البيانات `JSON` و`Dynamic` عندما تكون شجرة البنية المجرّدة (AST) مشوّهة بنيويًا (على سبيل المثال عند إنشائها بواسطة AST fuzzer): إذ كان يمكن أن يبقى تعبير المعامل `equals(name, value)` بأقل من عنصرين فرعيين، ثم يقوم `DataTypeObject` و`DataTypeDynamic` بفكّ الإشارة إليه من دون التحقق من الحدود. [#103545](https://github.com/ClickHouse/ClickHouse/pull/103545) ([Groene AI](https://github.com/groeneai)).
* إصلاح أخطاء منطقية في المحلل عند تصادم أسماء الأعمدة داخل lambda مستخدمة في `PREWHERE`. يغلق [#103584](https://github.com/ClickHouse/ClickHouse/issues/103584). [#103627](https://github.com/ClickHouse/ClickHouse/pull/103627) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الخطأ المتقطع `Logical error: 'Database <name> not found'` من `DataLakeConfiguration::getCatalog` عند تحميل جدول بمحرك `Iceberg` داخل قاعدة بيانات عادية أثناء التحميل غير المتزامن للبيانات الوصفية. [#103775](https://github.com/ClickHouse/ClickHouse/pull/103775) ([Groene AI](https://github.com/groeneai)).
* إصلاح أخطاء `MULTIPLE_EXPRESSIONS_FOR_ALIAS` التي كانت تُصدِرها النسخ المتماثلة البعيدة عند تشغيل استعلامات تشير إلى الأسماء المستعارة للإسقاط داخل `PREWHERE` / `WHERE` / `HAVING` / `QUALIFY` (مثل `SELECT x AS a, y AS b, (a AND b) AS c FROM t PREWHERE c`) أو عند تنفيذ `SELECT *` على self-join مع تداخل في أسماء الأعمدة، مع parallel replicas و`parallel_replicas_local_plan = 0`. يغلق [#74324](https://github.com/ClickHouse/ClickHouse/issues/74324). [#103806](https://github.com/ClickHouse/ClickHouse/pull/103806) ([Groene AI](https://github.com/groeneai)).
* إصلاح إجهاض للخادم عندما يستخدم استعلام مقارنات `coalesce`/`ifNull` متداخلة (مثل `WHERE coalesce(a, b, coalesce(c, d), e) = const`) على جدول `MergeTree` مع عدة skip indexes من نوع `minmax` و`use_skip_indexes_for_disjunctions = 1`. وأصبحت الآن إعادة كتابة skip index للتعبير `<op>(coalesce(...), const)` تُطبَّق بشكل تعاودي على وسائط coalesce الداخلية، بحيث يطابق RPN الخاص بكل `KeyCondition` قالب RPN كما يفترضه بالفعل كود تتبّع الفصل. [#103929](https://github.com/ClickHouse/ClickHouse/pull/103929) ([Groene AI](https://github.com/groeneai)).
* إصلاح تجاهل `max_rows_to_transfer` و`max_bytes_to_transfer` بصمت في استعلامات `GLOBAL IN` و`GLOBAL JOIN` ضمن analyzer الجديد. ترفع هذه الإعدادات الآن الخطأ `SET_SIZE_LIMIT_EXCEEDED` (أو تتوقف، بحسب `transfer_overflow_mode`) عندما يتجاوز external table المُجسَّد الحد المُعدّ، بما يطابق سلوك analyzer القديم. يغلق [#103333](https://github.com/ClickHouse/ClickHouse/issues/103333). [#104119](https://github.com/ClickHouse/ClickHouse/pull/104119) ([Groene AI](https://github.com/groeneai)).
* إصلاح القراءات المفرطة لـ metadata الخاصة بـ catalog/S3 عندما يشير `INSERT` أو DDL statement إلى table غير موجود في database من نوع DataLake catalog مع تفعيل `show_data_lake_catalogs_in_system_tables`. كان مسار اقتراح تصحيح الخطأ المطبعي يحمّل metadata الكاملة لكل table في Iceberg على مستوى catalog بأكمله، مما قد يستنفد الذاكرة في catalogs الكبيرة. [#104124](https://github.com/ClickHouse/ClickHouse/pull/104124) ([DQ](https://github.com/il9ue)).
* إصلاح انهيار (`LOGICAL_ERROR` "Columns are assumed to be of identical types, but they are different in Nullable" في builds التنقيح، وSIGSEGV بسبب مؤشر فارغ في `ColumnString::compareAt` في builds الإصدار) ونتيجة غير صحيحة كان يمكن أن تحدث في queries التي تستخدم `direct` `join_algorithm` مع table على الجانب الأيمن من نوع `MergeTree` عندما كانت query plan الخاصة بالبحث تعيد ترتيب columns أثناء optimization. كان يمكن أن تنتهي columns الخاصة بالجانب الأيمن في مواضع تحمل أسماء خاطئة، بحيث يرى عامل تصفية أو مقارنة على join key عمودًا من type غير صحيح. كُشف عنها بواسطة AST fuzzer تحت STID 2139-5111 وتم الإبلاغ عنها في [#107272](https://github.com/ClickHouse/ClickHouse/issues/107272). [#104174](https://github.com/ClickHouse/ClickHouse/pull/104174) ([Groene AI](https://github.com/groeneai)).
* رفض partition ID من نوع integer إذا كان خارج النطاق لـ `Date` بدلًا من حدوث overflow بصمت أو `LOGICAL_ERROR` في `ALTER`. [#104250](https://github.com/ClickHouse/ClickHouse/pull/104250) ([Azat Khuzhin](https://github.com/azat)).
* تعطيل `additional_table_filters` مع parallel replicas وanalyzer من دون serialization لـ query plan. كان هذا قد يؤدي سابقًا إلى نتائج غير صحيحة. [#104296](https://github.com/ClickHouse/ClickHouse/pull/104296) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح قيام `dictGetOrNull` بالكتابة فوق columns الأخرى في إسقاط `SELECT` بالقيمة `NULL` بصمت عند استدعائه باستخدام Key column من نوع `Nullable` تكون قيمه Missing في Dictionary. كانت الدالة تُعدّل خريطة null المرتبطة بالإدخال في موضعها؛ وهي الآن تنشئ نسخة عميقة من result column قبل mutation. يغلق [#73633](https://github.com/ClickHouse/ClickHouse/issues/73633). [#104327](https://github.com/ClickHouse/ClickHouse/pull/104327) ([Groene AI](https://github.com/groeneai)).
* إصلاح patch part معطوب بعد `ALTER TABLE ... DROP PARTITION ID 'patch-...'` متبوعًا بـ `DETACH`/`ATTACH TABLE`. سابقًا كان part المغطي الفارغ يُكتب من دون `partition.dat` و`source_parts.dat`، مما يؤدي إلى ظهور الإدخال `broken-on-start_patch-...` في `system.detached_parts` بعد attach التالي أو إعادة تشغيل الخادم. يغلق [#93132](https://github.com/ClickHouse/ClickHouse/issues/93132). يغلق [#102103](https://github.com/ClickHouse/ClickHouse/issues/102103). [#104353](https://github.com/ClickHouse/ClickHouse/pull/104353) ([Groene AI](https://github.com/groeneai)).
* إصلاح `INSERT` المتدفق مع `input_format_max_block_wait_ms` لواجهة `HTTP` ولـ `INSERT SELECT FROM input`، بحيث تُكتب كتل الإدخال الجزئية إلى التخزين قبل انتهاء request. [#104534](https://github.com/ClickHouse/ClickHouse/pull/104534) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح خلل كان يؤدي إلى أن تُرجِع الاستعلامات التي تجمع بين `arrayJoin` و`ORDER BY ... LIMIT` بعد `JOIN` صفر صفوف بصمت. ولم يعد تحسين مخطط الاستعلام الذي يرفع تقييم الدالة فوق `SortingStep` يُطبَّق عندما يحتوي التعبير المرفوع على `arrayJoin`، لأن `arrayJoin` قد يغيّر عدد الصفوف. يغلق [#82279](https://github.com/ClickHouse/ClickHouse/issues/82279). [#104558](https://github.com/ClickHouse/ClickHouse/pull/104558) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة إجهاض نادرة للخادم أثناء إتلاف جدول من عائلة `MergeTree`. كان ذلك قد يحدث عندما يطلق `shutdown` استثناءً قبل توقف مجدول المهام الخلفية بالكامل: فإذا نُفِّذت مهمة في الخلفية خلال تلك النافذة الضيقة، فقد ترسل نداءً `virtual` عبر كائن تخزين مُتلف جزئيًا وتصطدم بـ `__cxa_pure_virtual`. [#104561](https://github.com/ClickHouse/ClickHouse/pull/104561) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتيجة غير متسقة في subcolumn المجمّع `JSON` عند استخدام type hint يحتوي على قيمة null. [#104584](https://github.com/ClickHouse/ClickHouse/pull/104584) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح نتائج خاطئة أو projection مفقود عندما يحتوي aggregate projection على عدة تجميعات `sumIf` بشروط `IN (...)` مختلفة. [#104765](https://github.com/ClickHouse/ClickHouse/pull/104765) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح عدد صفوف خاطئ ناتج عن `arrayJoin()` المستخدم داخل `JOIN ON`: إذ كانت النتيجة تُضرَب في طول المصفوفة مرة إضافية. [#104785](https://github.com/ClickHouse/ClickHouse/pull/104785) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح `deltaSumTimestamp` الذي كان يُرجع نتائج خاطئة لأنواع الأعداد الصحيحة الموقعة عند عبور الصفر. يحل [#104750](https://github.com/ClickHouse/ClickHouse/issues/104750). [#104830](https://github.com/ClickHouse/ClickHouse/pull/104830) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح عدم تطابق بنية الكتلة في UnionStep بعد دفع عامل التصفية إلى الأسفل مع ثوابت NULL. يغلق [#104821](https://github.com/ClickHouse/ClickHouse/issues/104821). [#104853](https://github.com/ClickHouse/ClickHouse/pull/104853) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الخطأ `Logical error: 'Metadata is not initialized'` الذي كان يظهر عند تنفيذ `DELETE FROM` على جدول `Iceberg` أو `DeltaLake` أو `Hudi` مُرفَق حديثًا إذا كان ملف البيانات الوصفية تالفًا أو يتعذر تحميله. ويُبلَّغ الآن بدلًا من ذلك عن استثناء عادي موجه للمستخدم، مع استمرار الخادم في العمل. يغلق [#104891](https://github.com/ClickHouse/ClickHouse/issues/104891). [#104917](https://github.com/ClickHouse/ClickHouse/pull/104917) ([Groene AI](https://github.com/groeneai)).
* أُصلِح عدم تحديث `max_memory_usage_soft_limit` آنيًا عند تغيّر الإعدادات. كان حد الذاكرة المرن يُحتسَب مرة واحدة عند بدء التشغيل ويُخزَّن مؤقتًا، لذلك لم تكن لإعادات تحميل الإعدادات اللاحقة أي فاعلية. وبعد هذا الإصلاح، يُعاد حساب الحد ويُطبَّق فورًا مع كل إعادة تحميل للإعدادات، من دون الحاجة إلى إعادة تشغيل Keeper. [#104940](https://github.com/ClickHouse/ClickHouse/pull/104940) ([Kai Zhu](https://github.com/nauu)).
* إصلاح تحليل الرموز في JIT على macOS بحيث لم يعد التجميع الفوري لـ sort وexpression وaggregate يفشل مع `CANNOT_COMPILE_CODE: Could not find symbol _<name>`. [#104946](https://github.com/ClickHouse/ClickHouse/pull/104946) ([Alexei Fedotov](https://github.com/leshikus)).
* إصلاح استثناء (`Received signal 6 (abort)` في تقوية المتجهات، ويظهر على هيئة `Tuple::back()` على متجه فارغ) عند تنفيذ استعلام بالصيغة `SELECT ... FROM <Distributed table> WHERE/HAVING/GROUP BY ... (sharding_key_column IN tuple())` مع تفعيل `optimize_skip_unused_shards_rewrite_in` ضمن analyzer الجديد. [#104966](https://github.com/ClickHouse/ClickHouse/pull/104966) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح توقّف الخادم بسبب `Logical error: 'Inconsistent AST formatting'` ‏(STID 1941-1bfa) في استعلامات مثل `CREATE TABLE t (c0 Int CODEC(not((not(materialize(1), materialize(2)))), ZSTD)) ENGINE = Memory` ضمن بنى debug / sanitiser. لم يعد المنسّق يُصدر أقواسًا خارجية زائدة حول استدعاء الدالة `tuple(...)` متعددة الوسائط عندما يظهر داخل قوائم وسائط `CODEC` / `STATISTICS` / `BACKUP_NAME` (حيث تكون الصيغة العاملية `(a, b)` معطّلة)، مما يحافظ على استقرار دورة format-parse-format ذهابًا وإيابًا. [#104991](https://github.com/ClickHouse/ClickHouse/pull/104991) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `NOT_FOUND_COLUMN_IN_BLOCK` الذي يطرحه `ALTER TABLE ... MATERIALIZE INDEX` على الأجزاء التي أُنشئت في 25.8 وتحتوي على skip index على column أُضيف عبر `ALTER TABLE ... ADD COLUMN` منفصل. أصبحت mutation الآن تقرأ بصورة صحيحة كل column مطلوب من كل skip index وprojection موجودَين مسبقًا على الجزء أثناء إعادة الحساب القسرية. يغلق [#104872](https://github.com/ClickHouse/ClickHouse/issues/104872). [#105039](https://github.com/ClickHouse/ClickHouse/pull/105039) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالتين من `LOGICAL_ERROR: Reading from materialized CTE 'X' before it has been materialized` كانت تطرحهما الاستعلامات التي تستخدم `enable_materialized_cte`: ‏(1) materialized CTE مُعاد استخدامه ومُرشَّح بواسطة `IN (subquery)` فوق materialized CTE آخر، و(2) materialized CTE يُشار إليه مباشرةً وداخل مرشح `WHERE ... IN (...)` يصل إلى primary key في MergeTree عبر IN-subquery متداخل. كما تأثر `EXPLAIN` للاستعلامات نفسها أيضًا لأن العيوب كانت تظهر أثناء optimization للخطة. يغلق [#101940](https://github.com/ClickHouse/ClickHouse/issues/101940)، ويغلق [#102320](https://github.com/ClickHouse/ClickHouse/issues/102320). [#105041](https://github.com/ClickHouse/ClickHouse/pull/105041) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح تقدير selectivity الخاص بـ`PREWHERE` لإحصاءات `countmin` في columns من نوع `Float32`. تسبّب عيبان في أن تُنتج إحصاءات `countmin` تقديرات خاطئة بصمت لـcolumns من نوع `Float32`: إذ كان `ConditionSelectivityEstimator` يتخطّى الإحصاءات بالكامل عندما يكون column type ‏(`Float32`) أضيق من literal type ‏(`Float64`)، فيعود إلى selectivity الافتراضية ويتجاهل sketch؛ كما أن `StatisticsCountMinSketch::estimateEqual` كان يُجري hash على أول N بايت من الكائن `Field`، لكن `Field` يخزّن `Float32` على أنه `Float64` (`NearestFieldType<Float32>` = `Float64`)، لذلك كان نمط البايتات المستخدم عند query time مختلفًا عن بايتات `Float32` الفعلية المخزنة أثناء build. [#105047](https://github.com/ClickHouse/ClickHouse/pull/105047) ([Han Fei](https://github.com/hanfei1991)).
* أصبحت استعلامات `ATTACH TABLE name <clauses>;` التي توفّر clauses للتخزين (`ORDER BY` و`PARTITION BY` و`PRIMARY KEY` و`SAMPLE BY` و`TTL` و`UNIQUE KEY` أو `SETTINGS` الخاصة بالـengine) من دون `ENGINE` تطرح الآن `BAD_ARGUMENTS` بدلًا من إعادة Attach للـtable بصمت باستخدام تعريفها المخزَّن وتجاهل clauses التي قدّمها المستخدم. وما تزال `SETTINGS` الخاصة بالجلسة على مستوى query (مثل `log_comment`) تُطبَّق. استخدم `ATTACH TABLE t;` لإعادة Attach باستخدام metadata المخزَّنة، أو `ALTER TABLE t MODIFY SETTING ...` بعد `ATTACH` لتغيير settings. [#105068](https://github.com/ClickHouse/ClickHouse/pull/105068) ([Groene AI](https://github.com/groeneai)).
* إصلاح use-after-free في `runningAccumulate` عند استدعائها على column تُرجع aggregate function الخاصة به حالتها الخاصة (مثل `uniqStateOrDefaultState` و`sumStateOrDefaultState` و`uniqStateForEachState`). [#105085](https://github.com/ClickHouse/ClickHouse/pull/105085) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح خطأ في Web UI ‏(`play.html`): كان تشغيل query بينما يكون المؤشر بعد `;` الختامية الوحيدة يُبلغ عن "empty query" بدلًا من تشغيل الاستعلام. [#105107](https://github.com/ClickHouse/ClickHouse/pull/105107) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `LOGICAL_ERROR: 'No user in current context, it's a bug'` عند تنفيذ `CREATE TABLE ... AS SELECT` داخل قاعدة بيانات `Replicated` مع القراءة من `system.current_roles` أو `system.enabled_roles`. ينجح الاستعلام الآن ويُرجع مجموعة نتائج فارغة في سياق عامل DDL الداخلي هذا. [#105150](https://github.com/ClickHouse/ClickHouse/pull/105150) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `ILLEGAL_TYPE_OF_ARGUMENT` عند دمج حالات التجميع `quantileExactWeightedInterpolated` أو `quantileDD` أو `quantilePrometheusHistogram` مع نظائرها بصيغة الجمع `quantilesXxxMerge` (والعكس صحيح). تشترك الصيغتان المفردة والجمع لهذه العائلات الثلاث من quantile في حالة التجميع الداخلية نفسها، لكنها لم تكن مُدرجة في جدول ربط الأسماء الداخلي، لذلك كان يُرفض دمج الحالة بين الدوال — وكذلك تحسين دمج الدوال لهذه العائلات. [#105189](https://github.com/ClickHouse/ClickHouse/pull/105189) ([Groene AI](https://github.com/groeneai)).
* إصلاح النتائج غير الصحيحة للدوال `toStartOfWeek` و`toLastDayOfWeek` و`toMonday` و`toStartOfMonth` و`toLastDayOfMonth` و`toStartOfQuarter` و`toStartOfYear` عند استخدام وسائط `Date32` و`DateTime64` التي تقع نتيجتها خارج نطاق `Date`: فبدلًا من تجاوز السعة إلى تواريخ عشوائية، أصبحت النتائج قبل `1970-01-01` الآن مقيَّدة إلى `1970-01-01`، والنتائج بعد `2149-06-06` مقيَّدة إلى `2149-06-06`. ويُصلح هذا أيضًا نتائج الاستعلام الخاطئة (استبعاد `parts` و`granules` بشكل غير صحيح) عند استخدام مثل هذه الدوال في `WHERE` على مفتاح `Date32` أو `DateTime64` يحتوي على قيم خارج النطاق. [#105244](https://github.com/ClickHouse/ClickHouse/pull/105244) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح خطأ منطقي في `arrayRemove` عندما تكون الوسيطة الأولى مصفوفة من `Variant` وكانت جميع بدائلها غير متوافقة مع نوع الوسيطة الثانية وكان `variant_throw_on_type_mismatch` معطّلًا. تتعامل الدالة الآن مع المقارنة على أنها "لا تتساوى مطلقًا" وتُرجع المصفوفة كما هي بدلًا من التسبب في فشل `assertTypeEquality` على جانب الخادم. [#105248](https://github.com/ClickHouse/ClickHouse/pull/105248) ([Groene AI](https://github.com/groeneai)).
* يمكن الآن تنفيذ الاستعلام بنجاح حتى إذا فشل `FileCache` في إنشاء بعض الأدلة على القرص لأغراض التخزين المؤقت. [#105250](https://github.com/ClickHouse/ClickHouse/pull/105250) ([Den Kalantaevskii](https://github.com/Diskein)).
* إصلاح توقّف الخادم مع `Assertion 'px != 0' failed` في `ExtremesTransform` عندما يواجه استعلام فيه `extremes = 1` استثناءً (مثل `MEMORY_LIMIT_EXCEEDED`) بينما كان التحويل يبني أعمدة `Extremes` من أول chunk. يتلقى العميل الآن الاستثناء الأصلي بدلًا من تعطل الخادم. [#105264](https://github.com/ClickHouse/ClickHouse/pull/105264) ([Groene AI](https://github.com/groeneai)).
* أصبح `LEFT ANTI JOIN` الآن يُرجع بشكل صحيح عمود مفتاح `join` من الجانب الأيمن بالقيم الافتراضية للصفوف غير المطابقة، بدلًا من تكرار قيمة المفتاح الأيسر. سابقًا، كان `SELECT a.x AS l, b.x AS r FROM a LEFT ANTI JOIN b ON a.x = b.x` قد يُرجع `r = a.x` للصفوف غير المطابقة، بينما كان ينبغي أن يُرجع القيمة الافتراضية (`0` لـ `Int32`، و`''` لـ `String`، و`NULL` لـ `Nullable`). كان التأثير مقتصرًا على عمود مفتاح `join` فقط؛ أما الأعمدة اليمنى غير المفتاحية فكانت تُضبط بالفعل على القيم الافتراضية بشكل صحيح. وظهر الخطأ نفسه في `RIGHT ANTI JOIN` كلما بدّل المُحسِّن الجانبين. يُغلق [#99959](https://github.com/ClickHouse/ClickHouse/issues/99959). [#105278](https://github.com/ClickHouse/ClickHouse/pull/105278) ([Groene AI](https://github.com/groeneai)).
* إصلاح فقدان البيانات في `clickhouse-local` عند تشغيله بشكل متكرر باستخدام `--default_database` غير `default` (على سبيل المثال `clickhouse-local --path X -- --default_database=mydb`): كان البحث عن معرّف UUID لقاعدة البيانات المحفوظة مُثبتًا على `metadata/default`، لذلك كان كل إعادة تشغيل تُنشئ معرّف UUID جديدًا وتُخفي جداول التشغيل السابق. يغلق [#101831](https://github.com/ClickHouse/ClickHouse/issues/101831). [#105284](https://github.com/ClickHouse/ClickHouse/pull/105284) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ المنطقي `Mutation of `Memory` table produced incomplete output` الذي كان يظهر عند تشغيل `ALTER TABLE <memory_table> APPLY PATCHES` أو `ALTER TABLE <memory_table> APPLY DELETED MASK`. لا تمتلك جداول `Memory` patch parts أو أقنعة حذف، لذا يُعامَل الأمران الآن بشكل صحيح على أنهما بلا تأثير. [#105286](https://github.com/ClickHouse/ClickHouse/pull/105286) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستعلامات طويلة التشغيل مع Unity Catalog عبر تمرير معلمة `table_id` في طلب الاستعلام. [#105303](https://github.com/ClickHouse/ClickHouse/pull/105303) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح `CANNOT_CONVERT_TYPE` في `Merge` فوق `Merge` فوق `Distributed` مع `distributed_group_by_no_merge=1`. [#105330](https://github.com/ClickHouse/ClickHouse/pull/105330) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تجاهل `clickhouse local` و`clickhouse client` للخيار `--query`/`-q` بصمت عند تمرير وسيطة موضعية لملف أيضًا. كلا الشكلين يُنتجان الآن `BAD_ARGUMENTS` بصورة متسقة. [#105334](https://github.com/ClickHouse/ClickHouse/pull/105334) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح قيام `REPLACE TEMPORARY TABLE` بإنشاء جدول جديد بصمت عندما لا يكون الهدف موجودًا. الآن يُصدر `UNKNOWN_TABLE`، بما يطابق دلالات `REPLACE TABLE`. استخدم `CREATE OR REPLACE TEMPORARY TABLE` للحفاظ على سلوك الإنشاء أو الاستبدال. [#105373](https://github.com/ClickHouse/ClickHouse/pull/105373) ([Groene AI](https://github.com/groeneai)).
* إصلاح فشل عمليات القراءة طويلة التشغيل (مثل `INSERT ... SELECT`) من قاعدة بيانات `DataLakeCatalog` مع `catalog_type = 'glue'` بخطأ `ExpiredToken` بمجرد انتهاء صلاحية بيانات اعتماد جلسة AWS STS التي جرى التقاطها عند وقت تحميل البيانات الوصفية للجدول. تُحدَّث بيانات اعتماد AWS STS الآن أثناء تنفيذ الاستعلام، لذا تستمر هذه القراءات بعد انتهاء صلاحية الرمز المميز. [#105381](https://github.com/ClickHouse/ClickHouse/pull/105381) ([Pratima Patel](https://github.com/pratimapatel2008)).
* إصلاح خطأ منطقي في `LIMIT BY` السالب في بعض الحالات عند استخدامه مع `ARRAY JOIN`. [#105403](https://github.com/ClickHouse/ClickHouse/pull/105403) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تضخم `read_bytes` (وكذلك البايتات/الثانية المشتقة المعروضة في `system.query_log` وشريط التقدم وما إلى ذلك) عند قراءة ملفات Parquet. كان التنفيذ السابق يبلّغ عن الحجم المضغوط الإجمالي لـ row group عند كل chunk، لذا كانت قراءة K من أصل N من الأعمدة تؤدي إلى احتساب زائد بمقدار `N / K`. والآن لا يُجمَع إلا عبر الأعمدة المحددة. كما يُصلح أيضًا تتبع التقدم على مستوى الملف لجداول Iceberg، والذي لم يكن يبلّغ سابقًا عن حجم ملف البيانات مطلقًا. [#105413](https://github.com/ClickHouse/ClickHouse/pull/105413) ([Groene AI](https://github.com/groeneai)).
* إصلاح احتمال حدوث segfault في الخادم في cluster table functions (`s3Cluster`, `urlCluster`, `fileCluster`, ...) عندما يُنتج المخطِّط `SELECT` مع تعيين العلامة `recursive_with` ولكن من دون تعبير `WITH`. يغلق [#105370](https://github.com/ClickHouse/ClickHouse/issues/105370). [#105433](https://github.com/ClickHouse/ClickHouse/pull/105433) ([Groene AI](https://github.com/groeneai)).
* إصلاح النتيجة الخاطئة لـ `countDistinct` / `uniqExact` على الأعمدة من النوع `Nullable` عندما يكون `count_distinct_optimization = 1` (كانت مجموعة NULL تُحتسب على نحو غير صحيح). [#105439](https://github.com/ClickHouse/ClickHouse/pull/105439) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح heap-buffer-overflow عند قراءة ملفات Arrow أو ArrowStream التي تحتوي على offsets وسيطة تالفة في عمود ثنائي أو نصي، وكذلك إلغاء مرجعية لمؤشر NULL عند قراءة أعمدة Arrow الموسومة جغرافيًا. [#105449](https://github.com/ClickHouse/ClickHouse/pull/105449) ([Raúl Marín](https://github.com/Algunenano)).
* التحقق من أنواع `Dynamic`/`Variant` في window `PARTITION BY`، إذ لم يكن يُتحقق منها سابقًا عندما يكون `allow_suspicious_types_in_group_by` معطّلًا. يُغلق [#105028](https://github.com/ClickHouse/ClickHouse/issues/105028). [#105450](https://github.com/ClickHouse/ClickHouse/pull/105450) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح عدم عمل `input_format_json_empty_as_default` في تنسيقات JSONStrings\*. يُغلق [#104913](https://github.com/ClickHouse/ClickHouse/issues/104913). [#105453](https://github.com/ClickHouse/ClickHouse/pull/105453) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح إدراج `NULL` في عمود `Variant` عبر تنسيق `VALUES` أثناء parsing للتعبيرات. يُغلق [#104909](https://github.com/ClickHouse/ClickHouse/issues/104909). [#105455](https://github.com/ClickHouse/ClickHouse/pull/105455) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح قيام `dictGetOrDefault` بإطلاق `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN` عندما تكون الوسيطة الافتراضية تعبيرًا من نوع `Nullable` ويكون `short_circuit_function_evaluation` مفعّلًا مع مزيج من مفاتيح Dictionary الموجودة وغير الموجودة. [#105461](https://github.com/ClickHouse/ClickHouse/pull/105461) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح اقتطاع القيم بصمت في أعمدة `Dynamic` عندما يعود قارئ النص `Quoted` (Values) إلى `String` للأنواع المستنتجة غير المكتملة مثل `Map(Array(Nothing), ...)`. سابقًا، كان مسار fallback يغلّف الحقل الخام بربط بسيط على شكل `'...'`، لذا كان وجود علامة اقتباس مفردة داخلية (وهي موجودة دائمًا في مثل هذه الحالات) يُنهي السلسلة المقتبسة مبكرًا، فتُفقد بقية القيمة. [#105463](https://github.com/ClickHouse/ClickHouse/pull/105463) ([Groene AI](https://github.com/groeneai)).
* إصلاح SIGSEGV عند قراءة subcolumns لـ `Dynamic` من جدول `Memory` مضغوط بعد `ALTER`. يُغلق [#104901](https://github.com/ClickHouse/ClickHouse/issues/104901). [#105464](https://github.com/ClickHouse/ClickHouse/pull/105464) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تجاهل `toFloat64`/`toUInt32`/`toString`/إلخ. على `Dynamic` للإعداد `cast_keep_nullable`. يُغلق [#104789](https://github.com/ClickHouse/ClickHouse/issues/104789). [#105467](https://github.com/ClickHouse/ClickHouse/pull/105467) ([Pavel Kruglov](https://github.com/Avogar)).
* تضمين `skip_first_lines` في مفتاح cache الخاص بالمخطط لتنسيقات `WithNames`. يُغلق [#104527](https://github.com/ClickHouse/ClickHouse/issues/104527). [#105469](https://github.com/ClickHouse/ClickHouse/pull/105469) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح segfault في server داخل `uniqStateOrNull` / `uniqStateOrDefault` / `uniqOrNullState` (وسلاسل combinator مشابهة فوق `uniq`) عند استخدامها مع `GROUP BY ... WITH ROLLUP` أو `WITH CUBE` أو `WITH TOTALS` ومع وسيطة `Nullable`. [#105470](https://github.com/ClickHouse/ClickHouse/pull/105470) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء `NOT_FOUND_COLUMN_IN_BLOCK` عند الجمع بين `ORDER BY ... WITH FILL INTERPOLATE` و `LIMIT N BY` مع تفعيل analyzer. يُغلق [#103474](https://github.com/ClickHouse/ClickHouse/issues/103474). [#105481](https://github.com/ClickHouse/ClickHouse/pull/105481) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح `toStartOfMillisecond` و`toStartOfMicrosecond` اللتين كانتا تعيدان نتيجة منحرفة بنحو ثانية تقريبًا لقيم `DateTime64` السالبة (ما قبل الحقبة الزمنية)، وإصلاح مشكلة signed-integer-overflow التي يرصدها `UndefinedBehaviorSanitizer` في `toStartOfSecond` و`toStartOfMillisecond` و`toStartOfMicrosecond` لمدخلات `DateTime64` القريبة من `INT64_MIN`. [#105482](https://github.com/ClickHouse/ClickHouse/pull/105482) ([Groene AI](https://github.com/groeneai)).
* إضافة إعداد توافق جديد `analyzer_compatibility_prefer_alias_over_subcolumn` (معطّل افتراضيًا). عند تفعيله، يفضّل المحلّل الجديد تفسير بادئة الاسم المستعار على مطابقة العمود الفرعي في `Tuple` / الأعمدة المنقوطة للمعرّفات متعددة الأجزاء، مما يعيد سلوك المفسّر السابق. وهذا يتجنب أخطاء `AMBIGUOUS_IDENTIFIER` (وما يتصل بها) عندما يُجري استعلام عملية join مع جدول يطابق اسمه جدولًا داخليًا ضمن تعبير الجدول الشائع/استعلام فرعي يستخدم `SELECT *` فوق join، حيث كان يمكن بخلاف ذلك أن تؤدي الأعمدة المعاد تسميتها بواسطة النجمة (مثل `b.id`) إلى تسرّب معرّفات الجدول الداخلي إلى النطاق الخارجي. [#105491](https://github.com/ClickHouse/ClickHouse/pull/105491) ([Vladimir Cherkasov](https://github.com/vdimir)).
* أصبح استعلام بحث المتجهات الذي يُنفَّذ باستخدام تحسين *index only* يعيد الآن القيمة الصحيحة للدالة `L2Distance()` إذا كانت ضمن قائمة `SELECT`. إذ كانت الدالة تعيد بشكل غير صحيح قيمة المسافة *L2-squared*. لاحظ أن استعلام بحث المتجهات كان يعيد النتائج بالترتيب الصحيح، وأن التطبيقات التي **تسترجع قيمة `L2Distance()` وتفسّرها صراحةً** هي فقط التي كانت سترى القيمة المربعة. [#105495](https://github.com/ClickHouse/ClickHouse/pull/105495) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إصلاح مشكلة نادرة في Kafka table engine الجديد، حيث كان يمكن التعامل مع الرسائل بشكل غير صحيح أثناء إعادة تعيين partition للموضوع، مما قد يؤدي إلى تخطي رسائل بعد التراجع عن الإزاحة. [#105500](https://github.com/ClickHouse/ClickHouse/pull/105500) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح استثناء (`Trying to execute PLACEHOLDER action` logical error) عند استخدام تعبير جدول شائع `MATERIALIZED` يكون جسمه استعلامًا فرعيًا مترابطًا كطرف أيمن لـ `IN`. ويُرفض هذا النوع من التعبيرات الآن في وقت التحليل، اتساقًا مع رفض النمط نفسه بالفعل عند الإشارة إلى تعبير الجدول الشائع مباشرةً في `FROM`. [#105518](https://github.com/ClickHouse/ClickHouse/pull/105518) ([Groene AI](https://github.com/groeneai)).
* إصلاح عدم تطبيق الضغط على stdout/stdin عند تحديد format صراحةً. يغلق [#104441](https://github.com/ClickHouse/ClickHouse/issues/104441). [#105528](https://github.com/ClickHouse/ClickHouse/pull/105528) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح SEGFAULT في إلغاء التسلسل لـ `singleValueOrNull` للنوع `JSON`. يغلق [#103630](https://github.com/ClickHouse/ClickHouse/issues/103630). [#105535](https://github.com/ClickHouse/ClickHouse/pull/105535) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح قيام `clickhouse-format --backslash` بإسقاط بيانات `INSERT` `VALUES` بصمت. يغلق [#103533](https://github.com/ClickHouse/ClickHouse/issues/103533). [#105536](https://github.com/ClickHouse/ClickHouse/pull/105536) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح عدم قيام `variant_throw_on_type_mismatch/dynamic_throw_on_type_mismatch=false` بالتقاط الاستثناءات أثناء تنفيذ الدالة. يغلق [#103484](https://github.com/ClickHouse/ClickHouse/issues/103484). [#105543](https://github.com/ClickHouse/ClickHouse/pull/105543) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تجاهل `input_format_try_infer_datetimes` أثناء الإدراج في البيانات المشتركة في `JSON`. يغلق [#103221](https://github.com/ClickHouse/ClickHouse/issues/103221). [#105544](https://github.com/ClickHouse/ClickHouse/pull/105544) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `histogram` الذي كان يُنتج نتائج غير صحيحة مع المدخلات الصغيرة غير المرتبة. يغلق [#103109](https://github.com/ClickHouse/ClickHouse/issues/103109). [#105548](https://github.com/ClickHouse/ClickHouse/pull/105548) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح التفاف `DateTime` عند القيم الخارجة عن النطاق في `JSONExtract` وعمليات إلغاء التسلسل النصية. يغلق [#103094](https://github.com/ClickHouse/ClickHouse/issues/103094). [#105551](https://github.com/ClickHouse/ClickHouse/pull/105551) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح استخدام جدول الإدراج في دوال الجداول عند تفعيل `optimize_trivial_insert_select`. يغلق [#103083](https://github.com/ClickHouse/ClickHouse/issues/103083). [#105555](https://github.com/ClickHouse/ClickHouse/pull/105555) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعبير `CASE` الذي كان يعيد الفرع `ELSE` بدلًا من `THEN` المطابق عندما كانت كلٌّ من قيمة التعبير وقيمة `WHEN` تساوي `NULL`. [#105556](https://github.com/ClickHouse/ClickHouse/pull/105556) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطل في `replxx` ناتج عن بلوغ حد `FD_SETSIZE` الخاص بـ `select` (وقد استُبدل الآن بـ `poll`). سابقًا، كان هذا قد يؤدي إلى تعطل الخادم عند تمكين SSH أو واجهة الويب الطرفية. [#105559](https://github.com/ClickHouse/ClickHouse/pull/105559) ([Azat Khuzhin](https://github.com/azat)).
* تحويل الأعمدة الفرعية إلى صورة مادية في `executePartitionByExpression` قبل تنفيذ التعبير. يغلق [#103057](https://github.com/ClickHouse/ClickHouse/issues/103057). [#105573](https://github.com/ClickHouse/ClickHouse/pull/105573) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الاستثناء `NOT_FOUND_COLUMN_IN_BLOCK` عندما يشير تعبير `TTL` إلى عمود فرعي. [#105578](https://github.com/ClickHouse/ClickHouse/pull/105578) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعطل في الخادم (SIGSEGV) يمكن لأي مستخدم لديه صلاحيات `CREATE TABLE` التسبب فيه عند إرسال `CREATE TABLE ... TO INNER UUID '...'` من دون clause ‏`ENGINE` عبر HTTP أو البروتوكول الأصلي. وكان الخطأ نفسه يؤدي أيضًا إلى تعطل client. يُبلغ parser الآن عن خطأ `BAD_ARGUMENTS` مناسب بدلًا من إلغاء مرجعية مؤشر null. [#105579](https://github.com/ClickHouse/ClickHouse/pull/105579) ([Groene AI](https://github.com/groeneai)).
* إصلاح الدالة النافذية `estimateCompressionRatio` التي كانت تفقد البيانات المتراكمة بين الصفوف. يغلق [#101738](https://github.com/ClickHouse/ClickHouse/issues/101738). [#105581](https://github.com/ClickHouse/ClickHouse/pull/105581) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعطل عند إدراج tuples بأحجام مختلفة في clause ‏VALUES نفسها داخل عمود `String`. يغلق [#101727](https://github.com/ClickHouse/ClickHouse/issues/101727). [#105582](https://github.com/ClickHouse/ClickHouse/pull/105582) ([Pavel Kruglov](https://github.com/Avogar)).
* أصبح استخراج قيمة partition في Hive يراعي الآن الإعداد `cast_string_to_date_time_mode` ويقبل طوابع زمنية بتنسيق ISO 8601 مع لواحق timezone (مثل `+0000` و`+00:00` و`Z`) في مفاتيح partition افتراضيًا. [#105584](https://github.com/ClickHouse/ClickHouse/pull/105584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الخطأ `NOT_IMPLEMENTED` في `toString` من `DateTime` مع Timezone يحتوي على قيمة `NULL`. يغلق [#103712](https://github.com/ClickHouse/ClickHouse/issues/103712). [#105587](https://github.com/ClickHouse/ClickHouse/pull/105587) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح قراءة OOB في إلغاء التسلسل `Native` لعمود `Dynamic` المسطّح. [#105666](https://github.com/ClickHouse/ClickHouse/pull/105666) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الخطأ `LOGICAL_ERROR` ‏(`Unexpected return type from if`) الذي كان يظهر أثناء تخطيط الاستعلام لتعبيرات `if` التي يكون نوع نتيجتها `Variant`، ويكون فيها الفرع الثاني أو الثالث عبارة عن `if` ذي شرط ثابت على قيمة `UInt64` حرفية يمكن أن تلائم `Int64`. يغلق [#105649](https://github.com/ClickHouse/ClickHouse/issues/105649). [#105680](https://github.com/ClickHouse/ClickHouse/pull/105680) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج غير صحيحة عند قراءة جدول Iceberg مع `iceberg_use_version_hint = 1` بعد أن يقوم writer آخر (مثل الدالة الجدولية `icebergLocal`/`icebergS3`) من دون هذا الإعداد بتحديث الجدول. أصبح الآن `version-hint.text` يُزامَن بواسطة كل writer بمجرد وجود الملف، بحيث يرى القرّاء اللاحقون الذين يستخدمون هذا التلميح أحدث snapshot. [#105682](https://github.com/ClickHouse/ClickHouse/pull/105682) ([Groene AI](https://github.com/groeneai)).
* إصلاح نقص صامت في العدّ في استعلامات `SELECT` عندما يكون `use_query_condition_cache = 1` (الإعداد الافتراضي). كان استعلام بالنمط `PREWHERE pk_prefix = X WHERE non_pk IN (...)` على عمود يحتوي على bloom-filter skip index يفسد `QueryConditionCache` للمسند `pk_prefix = X`، بحيث إن استعلامًا لاحقًا وبسيطًا من نوع `SELECT count() ... WHERE pk_prefix = X` كان يعيد نتيجة غير صحيحة بعدد أقل من الواقع. تأثرت بذلك جميع إصدارات 26.x. [#104781](https://github.com/ClickHouse/ClickHouse/issues/104781). [#105686](https://github.com/ClickHouse/ClickHouse/pull/105686) ([Groene AI](https://github.com/groeneai)).
* إصلاح `singleValueOrNullMerge` الذي كان يعيد قيمة فعلية بدلًا من `NULL` عند دمج حالة كانت قد رصدت مسبقًا عدة قيم مميزة. [#105734](https://github.com/ClickHouse/ClickHouse/pull/105734) ([Minh Vu](https://github.com/fallintoplace)).
* إصلاح استعادة التعافي من الأخطاء في input format ‏`Template` بعد الصفوف غير الصالحة. [#105735](https://github.com/ClickHouse/ClickHouse/pull/105735) ([Yue Ni](https://github.com/niyue)).
* إصلاح تعطل في الدالة الجدولية `mongodb`، وتخزين MongoDB، وdictionary source الخاصة بـ MongoDB عندما يكون اسم collection فارغًا أو يحتوي على بايتات NUL. [#105776](https://github.com/ClickHouse/ClickHouse/pull/105776) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تنظيف snapshot في `Keeper` بعد فشل عمليات writes، بحيث تُنظَّف snapshots الجزئية بأمان ويمكن إعادة محاولة writes الفاشلة من دون تقديم `latest_snapshot_meta`. [#105779](https://github.com/ClickHouse/ClickHouse/pull/105779) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح رفض `ALTER TABLE ... CLEAR COLUMN` لأعمدة `columns_to_sum` الصريحة في `SummingMergeTree` و`CoalescingMergeTree`. [#105785](https://github.com/ClickHouse/ClickHouse/pull/105785) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح assertion في `DatabaseCatalog::tryGetDatabase` (وما ينتج عنه من الخطأ `UNKNOWN_DATABASE` في إصدارات release) عند إنشاء parameterized view يكون اسم database فيها مُمرَّرًا عبر query parameter، على سبيل المثال `CREATE VIEW {db:Identifier}.v AS SELECT {p:UInt64}`. تُستبدل الآن Parameters في أجزاء DDL من عبارة `CREATE` وقت الإنشاء، بينما تبقى Parameters في متن `SELECT` متاحة للاستبدال وقت استدعاء العرض. [#105799](https://github.com/ClickHouse/ClickHouse/pull/105799) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `Bad get: has Decimal32, requested Decimal128` في `sumMap` و`sumMapWithOverflow` على عمود `Nested(... Nullable(Decimal(P, S)))` عندما تكون aggregate state مُسلسلة (مثل parallel replicas، أو `sumMapState` عبر formatter للحالة الثنائية، أو external aggregation). [#105816](https://github.com/ClickHouse/ClickHouse/pull/105816) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأين `Expected ColumnLowCardinality, got String` / `Bad cast from type DB::ColumnString to DB::ColumnLowCardinality` عند استخدام `apply_mutations_on_fly = 1` على جدول يحتوي على عمليات mutation معلّقة أثناء التنفيذ من نوع `UPDATE`/`DELETE` كانت قد أُدرجت في الطابور قبل عملية mutation من نوع `ALTER MODIFY COLUMN ... LowCardinality(...)`. [#105847](https://github.com/ClickHouse/ClickHouse/pull/105847) ([Raúl Marín](https://github.com/Algunenano)).
* أصبحت عمليات الكتابة في Iceberg تحافظ على قيم NULL في أعمدة partition من النوع `Nullable(T)`. سابقًا، كانت قيمة NULL التي يكتبها ClickHouse تظهر كأنها القيمة الافتراضية للنوع الداخلي (`0` في حالة `int`) عند قراءتها مرة أخرى بواسطة Spark أو قارئات Iceberg الأخرى. يُغلق [#105852](https://github.com/ClickHouse/ClickHouse/issues/105852). [#105862](https://github.com/ClickHouse/ClickHouse/pull/105862) ([Groene AI](https://github.com/groeneai)).
* إصلاح pushdown للمرشحات في `Parquet` و`ORC` لمرشحات `IN (subquery)`، مما يتيح لعملية pruning على مستوى row-group/page/bloom-filter أن تعمل مع قراءات `file` و`url` و`s3` وobject storage. [#105863](https://github.com/ClickHouse/ClickHouse/pull/105863) ([Arsen Muk](https://github.com/arsenmuk)).
* إصلاح القراءة بالترتيب لجداول `Merge` (باستخدام المحلّل الجديد). [#105867](https://github.com/ClickHouse/ClickHouse/pull/105867) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح مشكلة إرجاع صفوف غير صحيحة في عمليات حذف المواضع merge-on-read في Iceberg v2 عندما يشير ملف حذف واحد إلى عدة data files وتُطبَّق عدة ملفات حذف من هذا النوع على ملف البيانات نفسه. أصبح القارئ المتدفق (`use_roaring_bitmap_iceberg_positional_deletes = 0`) الآن يرشّح صفوف ملفات الحذف بحسب `file_path` في C++ بدلًا من الاعتماد على pruning لمجموعات صفوف Parquet، مما يعيد الحفاظ على invariant الخاص بترتيب المواضع التصاعدي. [#105888](https://github.com/ClickHouse/ClickHouse/pull/105888) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `Cannot find column` في distributed queries التي تستخدم مرشح `IN Array(...)` مع المحلّل الجديد. [#105894](https://github.com/ClickHouse/ClickHouse/pull/105894) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح SIGSEGV في `ALTER TABLE ... MODIFY COLUMN ... Nullable(...)` على جداول `MergeTree` عندما يُحذف، بالتزامن، عمود يحتوي على `STATISTICS` بواسطة أمر `ALTER` آخر. يُغلق [#105912](https://github.com/ClickHouse/ClickHouse/issues/105912). [#105917](https://github.com/ClickHouse/ClickHouse/pull/105917) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل في الخادم كان قد يحدث عند إلغاء استعلام يقرأ من PostgreSQL — عبر postgresql table function، أو PostgreSQL table engine، أو dictionary بمصدر PostgreSQL — (على سبيل المثال باستخدام KILL QUERY)، إذا فشل إلغاء استعلام PostgreSQL البعيد. [#105949](https://github.com/ClickHouse/ClickHouse/pull/105949) ([Rory Shanks](https://github.com/rorylshanks)).
* إصلاح تنسيق `SYSTEM INSTRUMENT ADD` بحيث تُفصل arguments الخاصة بالمعالج بمسافة واحدة، ورفض قوائم arguments غير الصالحة لـ `SLEEP` instrumentation التي تحتوي على أكثر من قيمتين أو على نطاق يكون فيه الحد الأدنى أكبر من الحد الأقصى. [#105984](https://github.com/ClickHouse/ClickHouse/pull/105984) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح نتائج قد تكون غير صحيحة للاستعلامات التي تجمع بين outer join وinner join لاحق يشير إلى الجانب المزوِّد بقيم NULL في outer join. كان من الممكن أن تؤدي إعادة ترتيب join إلى اختيار خطة تسحب شروط inner join إلى عبارة ON الخاصة بـ outer join. [#105992](https://github.com/ClickHouse/ClickHouse/pull/105992) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح تعطل محتمل بسبب إرسال literal نصي كبير جدًا داخل الاستعلام. [#105996](https://github.com/ClickHouse/ClickHouse/pull/105996) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح استثناء `INVALID_WITH_FILL_EXPRESSION` عند استخدام `INTERPOLATE ()` (الفارغة) مع بادئة ترتيب في `ORDER BY` ومع تفعيل `use_with_fill_by_sorting_prefix`. تُستبعَد الآن أعمدة بادئة الترتيب بشكل صحيح من مجموعة الاستيفاء الضمنية، بما يطابق سلوك `INTERPOLATE (col)` عند تسمية العمود صراحةً. [#106001](https://github.com/ClickHouse/ClickHouse/pull/106001) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح فشل عمليات partition في `ALTER TABLE` بصمت عند استخدام مفاتيح partition من النوع `Bool`. يغلق [#101722](https://github.com/ClickHouse/ClickHouse/issues/101722). [#106004](https://github.com/ClickHouse/ClickHouse/pull/106004) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `JSONExtractRaw` و`JSONHas` لمسارات `JSON` المعرّفة بأنواع والتي تتضمن قيمًا افتراضية. يغلق [#101721](https://github.com/ClickHouse/ClickHouse/issues/101721). [#106005](https://github.com/ClickHouse/ClickHouse/pull/106005) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح إضافة البادئة '/' بشكل غير صحيح إلى basepaths الفارغة في إعدادات بحيرة البيانات. يغلق [#105989](https://github.com/ClickHouse/ClickHouse/issues/105989). [#106013](https://github.com/ClickHouse/ClickHouse/pull/106013) ([thewisenerd](https://github.com/thewisenerd)).
* إصلاح تحوّل محرك الجدول `IcebergLocal` إلى وضع القراءة فقط بعد دورة `DETACH` + `ATTACH` أو إعادة تشغيل الخادم، مما كان يؤدي إلى فشل كل عملية `INSERT` لاحقة مع `Local object storage Local is readonly. (READONLY)`. [#106016](https://github.com/ClickHouse/ClickHouse/pull/106016) ([Groene AI](https://github.com/groeneai)).
* إصلاح أعطال `Keeper` أثناء catch-up على العقدة follower عندما كان من الممكن أن يمتلئ طابور استجابات request dispatcher الجديد قبل بدء خيط الاستجابة. [#106049](https://github.com/ClickHouse/ClickHouse/pull/106049) ([Antonio Andelic](https://github.com/antonio2368)).
* تحسين التوافق مع المحلل القديم. إذا كان الجدول يحتوي على أعمدة مثل `x.a Array, x.b Array, x String`، فستُفضَّل المصفوفات عند `ARRAY JOIN x`. [#106069](https://github.com/ClickHouse/ClickHouse/pull/106069) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح تعطيل ذاكرة التخزين المؤقت لنظام الملفات بصمت مع Azure Blob Storage (مثل جداول Delta Lake على Azure)، لأن البيانات الوصفية للكائن لم تكن تتضمن blob ETag. [#106091](https://github.com/ClickHouse/ClickHouse/pull/106091) ([thewisenerd](https://github.com/thewisenerd)).
* إصلاح قيام `system.dictionaries` بإرجاع 0 صفوف عند وجود سحب جزئي لصلاحية `SHOW DICTIONARIES`. [#106105](https://github.com/ClickHouse/ClickHouse/pull/106105) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعطل الخادم عند الاستعلام عن جداول DeltaLake مع تفعيل `allow_experimental_delta_kernel_rs` ووجود بيانات اعتماد أو خيار يحتوي على بايتات غير صالحة (حدث panic في Rust FFI عبر الحد `extern "C"`). [#106109](https://github.com/ClickHouse/ClickHouse/pull/106109) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح النتائج غير الصحيحة للاستعلامات على الجداول التي يحتوي `ORDER BY` فيها على دالة متناقصة رتيبًا مثل `(c0 / -42)` أو `intDiv(c0, -42)`. كان من الممكن أن تؤدي predicates على العمود الأساسي (مثل `c0 < 0`) إلى استبعاد granules تحتوي على صفوف مطابقة بشكل خاطئ، مما ينتج عنه نتائج ناقصة. يغلق [#106084](https://github.com/ClickHouse/ClickHouse/issues/106084). يغلق [#106124](https://github.com/ClickHouse/ClickHouse/issues/106124). يغلق [#106080](https://github.com/ClickHouse/ClickHouse/issues/106080). [#106136](https://github.com/ClickHouse/ClickHouse/pull/106136) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح دعم استخدام `WASM` SQL UDFs في تعريفات `MATERIALIZED VIEW`. [#106161](https://github.com/ClickHouse/ClickHouse/pull/106161) ([Yue Ni](https://github.com/niyue)).
* أصبح Iceberg partition pruning يتعامل الآن بصورة صحيحة مع عوامل التصفية `WHERE partition_col = (SELECT ... FROM ...)` عندما يغلّف analyzer نتيجة الاستعلام الفرعي القيَمي داخليًا في `_CAST(Const, 'TargetType')` مع تطابق نوعَي المصدر والهدف. سابقًا، كانت مثل هذه العوامل تعطّل Iceberg partition pruning وتؤدي إلى full table scan. [#106204](https://github.com/ClickHouse/ClickHouse/pull/106204) ([Groene AI](https://github.com/groeneai)).
* إصلاح المعامل `--query_id` في clickhouse local للسماح بتحديد معرّف استعلام مخصص. [#106205](https://github.com/ClickHouse/ClickHouse/pull/106205) ([Yue Ni](https://github.com/niyue)).
* تم إصلاح تجاهل فئة تخزين S3 (`s3_storage_class` / `s3_storage_class_name`) للكائنات المكتوبة عبر multipart upload على أقراص `S3` وobject storage، مما كان يؤدي إلى إنشاء الكائنات الكبيرة بالفئة الافتراضية `STANDARD`. وأصبح اسم الخيار الآن مقبولًا بصيغتَي `s3_storage_class` و`s3_storage_class_name` للأقراص وobject storage والنسخ الاحتياطية. [#106214](https://github.com/ClickHouse/ClickHouse/pull/106214) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح مشكلة تعلّق Keeper أحيانًا عند بدء التشغيل عندما يكون الإعداد `nuraft_max_log_gap_in_stream` مضبوطًا على قيمة غير افتراضية (القيمة الافتراضية هي 0، أي تعطيل pipelining لطلبات `append_entries`). [#106220](https://github.com/ClickHouse/ClickHouse/pull/106220) ([Michael Kolupaev](https://github.com/al13n321)).
* التحقق من سلامة حالة دالة التجميع `DDSketch` التالفة (مفاتيح bin) عند الإدراج بدلًا من قبول البيانات غير الصالحة. [#106236](https://github.com/ClickHouse/ClickHouse/pull/106236) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح عدم تطابق وضع coordinator عندما تتجاوز الاستعلامات الفرعية إعدادات التنفيذ بالترتيب. [#106243](https://github.com/ClickHouse/ClickHouse/pull/106243) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح مشكلة عدم تطبيق `optimize_skip_unused_shards` (وفشل `force_optimize_skip_unused_shards` بشكل خاطئ) عند الاستعلام عن جدول `Distributed` عبر جدول `Merge` أو table function ‏`merge`، مع تطبيق predicate فوقه. [#106250](https://github.com/ClickHouse/ClickHouse/pull/106250) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح قيام `INTERPOLATE ()` بطرح الخطأ `INVALID_WITH_FILL_EXPRESSION` عندما تكون أعمدة `ORDER BY` مستخدمة بأسماء مستعارة في قائمة `SELECT` مع analyzer القديم. يغلق [#106248](https://github.com/ClickHouse/ClickHouse/issues/106248). [#106252](https://github.com/ClickHouse/ClickHouse/pull/106252) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* تم إصلاح حالة abort عند إلغاء تسلسل حالة `AggregateFunction(uniqTheta, ...)` غير صالحة من إدخال `RowBinary` أو من query parameter. وأصبح الإدخال غير الصحيح يُرفض الآن بخطأ `CORRUPTED_DATA` بدلًا من أن يتسرّب على هيئة `std::exception` ويتسبب في إجهاض العملية عبر `abortOnFailedAssertion`. [#106260](https://github.com/ClickHouse/ClickHouse/pull/106260) ([Groene AI](https://github.com/groeneai)).
* رفض بايتات `IntervalKind` الخارجة عن النطاق أثناء فك ترميز النوع في `RowBinaryWithNamesAndTypes` (`input_format_binary_decode_types_in_binary_format = 1`) مع إظهار خطأ `INCORRECT_DATA` واضح، بدلًا من إنشاء `DataTypeInterval` بنوع غير صالح قد يؤدي لاحقًا إلى سلوك غير معرّف في مسارات hash. [#106261](https://github.com/ClickHouse/ClickHouse/pull/106261) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة التراجع عند فشل downgrade لـ `SLRU` في `26.1+`. وإصلاح priority لتقسيم cache بين `System`/`Data` مع ميزة `keep_free_space_ratio`. [#106286](https://github.com/ClickHouse/ClickHouse/pull/106286) ([Kseniia Sumarokova](https://github.com/kssenii)).
* قراءة العمود الفرعي `null` كمسار `JSON` في `Nullable(JSON)` بدلًا من خريطة القيم null. يُغلق [#106085](https://github.com/ClickHouse/ClickHouse/issues/106085). [#106295](https://github.com/ClickHouse/ClickHouse/pull/106295) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح إرجاع `RestCatalog::empty` نتيجة غير صحيحة عندما يحتوي REST Catalog لـ Iceberg على جداول. [#106301](https://github.com/ClickHouse/ClickHouse/pull/106301) ([Lefteris](https://github.com/LefterisXefteris)).
* تم إصلاح استثناء في استعلامات `INNER JOIN` مع جدول `MergeTree` أيسر فارغ عند تفعيل `enable_parallel_replicas` و`query_plan_use_new_logical_join_step` و`query_plan_optimize_join_order_algorithm = 'greedy'`. [#106338](https://github.com/ClickHouse/ClickHouse/pull/106338) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تم إصلاح تحويل غير صحيح لقيم `Float16` دون العادية إلى `Float32` (مثلًا عند قراءتها من ملفات Numpy `.npy`) بسبب إزاحة زائدة بمقدار واحد في المانتيسا. [#106343](https://github.com/ClickHouse/ClickHouse/pull/106343) ([Joanna Hulboj](https://github.com/jh0x)).
* إصلاح تعطل وخطأ محتمل `NOT_FOUND_COLUMN_IN_BLOCK` عند استخدام التحسين المعتمد على القيود (`optimize_using_constraints`) مع الاستعلامات الفرعية المترابطة. [#106349](https://github.com/ClickHouse/ClickHouse/pull/106349) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح قراءة خارج الحدود في `sipHash64Keyed` و`sipHash128Keyed` و`sipHash128ReferenceKeyed` عند إجراء hash لعمود تكون جميع مصفوفاته فارغة ولا يكون المفتاح ثابتًا. [#106355](https://github.com/ClickHouse/ClickHouse/pull/106355) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح قيام `SYSTEM RELOAD CONFIG` بإسقاط إعدادات Azure Blob Storage الخاصة بكل نقطة نهاية (مثل `use_native_copy`)، ما كان يؤدي إلى تجاهل الإعدادات المهيأة للقرص في `BACKUP`/`RESTORE` إلى أن يُعاد تشغيل الخادم. [#106357](https://github.com/ClickHouse/ClickHouse/pull/106357) ([Julia Kartseva](https://github.com/jkartseva)).
* إصلاح `regexpExtract(haystack, pattern)` بحيث تُرجع الأنماط التي لا تحتوي على مجموعة التقاط المطابقة كاملةً بدلًا من إطلاق `INDEX_OF_POSITIONAL_ARGUMENT_IS_OUT_OF_RANGE`. [#106374](https://github.com/ClickHouse/ClickHouse/pull/106374) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء `LOGICAL_ERROR` أثناء التنزيل المسبق لذاكرة التخزين المؤقت عندما يُستبدل كائن S3 بعيد بمحتوى أقصر بين الإدراج والقراءة. [#106375](https://github.com/ClickHouse/ClickHouse/pull/106375) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح ازدياد استخدام الذاكرة في ذاكرة التخزين المؤقت لنظام الملفات. [#106387](https://github.com/ClickHouse/ClickHouse/pull/106387) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح عدة حالات قراءة خارج حدود الكومة في قارئ تنسيق Arrow IPC (`ArrowColumnToCHColumn`). كان يمكن لملف Arrow غير صالح أن يعلن عن عدد صفوف أكبر مما تحتويه مخازنه المؤقتة، أو يعلن عن أطوال child في list/struct/map غير متسقة مع الأصل، أو يوفّر offsets غير رتيبة للقوائم، أو يقتطع bitmap صلاحية child، مما يؤدي إلى قراءات تتجاوز نهاية تخصيصات الكومة. يمكن الوصول إلى هذا من أي مستخدم لديه صلاحية `SELECT` عبر `file()` أو `format()` أو table functions أو مدخلات ArrowFlight. ويجري الآن التحقق من جميع مخازن البيانات وoffsets وview-struct وvalidity-bitmap قبل أي وصول إلى مؤشرات خام، كما يجري التحقق من اتساق أشكال وoffsets الخاصة بـ list/struct/map. [#106395](https://github.com/ClickHouse/ClickHouse/pull/106395) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح فشل النسخ الاحتياطية مع `FILE_DOESNT_EXIST` عندما يُجمَع هدف REPLACE الخاص بـ refreshable materialized view على قاعدة بيانات Replicated أو Shared، بينما لم تكن الـ materialized view قد أُنشئت بعد على الـ replica التي بدأت النسخ الاحتياطي. [#106411](https://github.com/ClickHouse/ClickHouse/pull/106411) ([Julia Kartseva](https://github.com/jkartseva)).
* إصلاح خطأ منطقي `Column identifier ... is already registered` عندما يحتوي الشرط في `mutation` (`DELETE`/`UPDATE`) على استعلام فرعي `IN`/`EXISTS` يقرأ من تعبير جدول افتراضي متداخل داخل استعلام فرعي آخر. [#106414](https://github.com/ClickHouse/ClickHouse/pull/106414) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي (`Left and right columns have same names`) في مُحسِّن ترتيب `join` كان قد يحدث في عمليات `join` المنفَّذة باستخدام النسخ المتماثلة المتوازية عندما تشترك علاقتان في مخطط الربط في أسماء الأعمدة نفسها. [#106418](https://github.com/ClickHouse/ClickHouse/pull/106418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي عند إنشاء قاموس مضلعات من بيانات مصدر تحتوي على إحداثيات نقاط `NaN` أو لا نهائية. تُرفَض هذه الإحداثيات الآن برسالة خطأ واضحة. [#106423](https://github.com/ClickHouse/ClickHouse/pull/106423) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح خلل كان يؤدي إلى احتواء العمودين `used_privileges` و`missing_privileges` في `system.query_log` على سلاسل امتيازات متسرّبة من استعلامات سابقة غير مرتبطة تعود إلى مستخدم أو قاعدة بيانات أو جلسة مختلفة. [#106425](https://github.com/ClickHouse/ClickHouse/pull/106425) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت الدوال `base58Encode` و`base58Decode` و`tryBase58Decode` تراعي الآن `max_execution_time` وإلغاء الاستعلام عند التعامل مع مُدخلات كبيرة، كما ترفض المُدخلات التي يزيد حجمها على 10 كيلوبايت بدلًا من الاستمرار في التنفيذ لفترة طويلة جدًا. ويمكن ضبط هذا الحد عبر الإعداد الجديد `function_base58_max_input_size` (تعطِّله القيمة `0`). [#106428](https://github.com/ClickHouse/ClickHouse/pull/106428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح نتائج غير صحيحة متقطعة لاستعلامات `ORDER BY ... DESC` عند قراءة الأجزاء العريضة بترتيب عكسي مع `read_in_order_use_virtual_row_per_block = 1` وقيمة صغيرة لـ `max_block_size`. [#106429](https://github.com/ClickHouse/ClickHouse/pull/106429) ([Vladimir Cherkasov](https://github.com/vdimir)).
* أُصلِح استثناء `NOT_FOUND_COLUMN_IN_BLOCK` عند الاستعلام عن جدول Iceberg أو S3 باستخدام `WHERE` مركّبة تحتوي على `IS NOT NULL` لعمود غير موجود في قائمة `SELECT`، وذلك عند استخدام القارئ الأصلي لـ Parquet V3. [#106443](https://github.com/ClickHouse/ClickHouse/pull/106443) ([Shaohua Wang](https://github.com/tiandiwonder)).
* يتيح للمستخدم تحديد ترويسات لـ `HTTPDictionary` باستخدام المجموعات المسماة. [#106459](https://github.com/ClickHouse/ClickHouse/pull/106459) ([Jan Rada](https://github.com/ZelvaMan)).
* إصلاح حالة كان يمكن أن يبقى فيها خيط عامل مرتبطًا بمجموعة خيوط قديمة بعد فشل `CurrentThread::attachToGroup` في منتصف العملية، مما يؤدي إلى فشل المهام اللاحقة على الخيط نفسه برسالة `Thread is already attached to a group`. [#106462](https://github.com/ClickHouse/ClickHouse/pull/106462) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* أُصلِح استثناء كان يحدث عندما يستخدم استعلام بحث متجهي فهرسًا متجهيًا، ويستخدم أيضًا فهرس تخطٍّ آخر مثل `minmax` مع `use_skip_indexes_on_data_read = 1`. [#106473](https://github.com/ClickHouse/ClickHouse/pull/106473) ([Shankar Iyer](https://github.com/shankar-iyer)).
* أصبحت قيم enum غير الصالحة في `Avro` تُتحقَّق الآن وتُرفَض بخطأ بدلًا من التسبب في قراءة خارج الحدود وإنهاء التنفيذ عند إلغاء تسلسل بيانات `Avro` التالفة. [#106476](https://github.com/ClickHouse/ClickHouse/pull/106476) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح تضخُّم تقارير التقدّم عند القراءة من جداول Iceberg باستخدام عوامل التصفية `_file` أو `_path`. سابقًا، كان تقدّم `total_bytes_to_read` يتضمن جميع الملفات من الـ manifest بغضّ النظر عن التصفية. [#106491](https://github.com/ClickHouse/ClickHouse/pull/106491) ([Pedro Ferreira](https://github.com/PedroTadim)).
* تم إصلاح الاستثناء `Bad cast exception` في قواميس Redis التي تستخدم `STORAGE_TYPE 'simple'` مع تخطيط `cache`/`direct` ومفتاح سلسلة نصية واحد (معقّد)؛ وتعمل هذه القواميس الآن كما ينبغي، كما تُظهر المفاتيح المركبة فوق تخزين `simple` رسالة خطأ واضحة. [#106501](https://github.com/ClickHouse/ClickHouse/pull/106501) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح خلل كان يؤدي إلى نتائج خاطئة، إذ كان `WHERE c0 = const` لا يعيد أي صفوف للجداول التي تحتوي على `ORDER BY f(c0)` عندما يُقيَّم `f(const)` إلى NaN، مثل `ORDER BY sqrt(c0)` مع ثابت سالب. وكان تحليل المفتاح الأساسي يستبعد كل granule بشكل غير صحيح ويفسد query condition cache للاستعلامات اللاحقة. [#106507](https://github.com/ClickHouse/ClickHouse/pull/106507) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح عدم التزام `LIMIT WITH TIES` و`LIMIT WITH TIES` الكسري بـ Collation من `ORDER BY ... COLLATE` عند تحديد الصفوف المتعادلة. كانت الصفوف المتساوية وفقًا لـ Collation (على سبيل المثال `'1'` و`'01'` ضمن Collation رقمي) تُقارَن على مستوى البايتات، لذلك كان يجري إسقاط بعض الصفوف المتعادلة من النتيجة بشكل خاطئ. [#106539](https://github.com/ClickHouse/ClickHouse/pull/106539) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح تحسينات `DISTINCT` in order و`LIMIT BY` in order (بما في ذلك `LIMIT BY` السالب) التي كانت تُرجع نتائج خاطئة عندما يكون الإدخال مرتبًا باستخدام Collation (`ORDER BY ... COLLATE`). فالصفوف المتساوية وفقًا لـ Collation (على سبيل المثال `'a'` و`'A'` ضمن Collation غير حساس لحالة الأحرف) تُرتَّب بحسب مفتاح Collation ولا تكون متجاورة من حيث القيمة، لذلك يُتخطّى الآن تحسين in order عند استخدام collator. [#106564](https://github.com/ClickHouse/ClickHouse/pull/106564) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح النتائج الخاطئة للاستعلام `SELECT c, count() FROM t WHERE c GROUP BY c` على الجداول التي تحتوي على `_minmax_count_projection` ضمني، أو projection تجميعي صريح، أو projection عادي: إذ كانت كل مجموعة تنهار سابقًا إلى صف واحد بمفتاح ثابت وإجمالي عدد الصفوف. [#106590](https://github.com/ClickHouse/ClickHouse/pull/106590) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خلل كان يمنع المستخدمين من استخدام استعلامات فرعية ذات قيمة مفردة في الوسيطة الأولى لـ `IN` عندما تكون الوسيطة الثانية tuple غير ثابتة. [#106610](https://github.com/ClickHouse/ClickHouse/pull/106610) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح الاستثناء `Mutation of `Memory` table produced incomplete output` الذي كان يظهر عند تشغيل أوامر `ALTER TABLE <memory_table>` التي لا تؤثر في بيانات أي صف داخل محرك `Memory`، وهي `APPLY PATCHES` و`APPLY DELETED MASK` و`MATERIALIZE STATISTICS` و`MATERIALIZE INDEX` و`MATERIALIZE PROJECTION` و`REWRITE PARTS`. لا تملك جداول `Memory` هذه البُنى، لذا تُعامل هذه الأوامر الآن على أنها عمليات لا تفعل شيئًا. [#106621](https://github.com/ClickHouse/ClickHouse/pull/106621) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تجاهل `session_timezone` عند تسلسل أعمدة `LowCardinality(DateTime)` إلى text formats ‏(CSV وTSV وJSONEachRow وغيرها). سابقًا، بعد أول عملية كتابة لعمود `LowCardinality(DateTime)` على server، كان كل query لاحق يكتب هذا النوع من الأعمدة يعرض سلسلة الوقت المحلي وفق أي timezone صودفت أولًا، بغض النظر عن `session_timezone`. [#106634](https://github.com/ClickHouse/ClickHouse/pull/106634) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` "Trying to get name of not a column: `ExpressionList`" الذي كانت تثيره queries تمرّر علامة النجمة داخل `multiIf` إلى وسيطة table function، مثل `numbers(multiIf(*, ...), 2)`. ويرفض query الآن هذا المطابق غير القابل للحل باستخدام `UNSUPPORTED_METHOD`. [#106647](https://github.com/ClickHouse/ClickHouse/pull/106647) ([Groene AI](https://github.com/groeneai)).
* إصلاح فشل الخادم في بدء التشغيل مع الخطأ `Too many marks in file ...skp_idx_idx.cmrk4, marks expected 0 (bytes size 0)` عندما يحتوي جدول `MergeTree` على جزء skip-index بعدد صفري من granules وملف marks غير فارغ على القرص. [#106675](https://github.com/ClickHouse/ClickHouse/pull/106675) ([Groene AI](https://github.com/groeneai)).
* رفض أنماط glob الخاصة بـ`file` الشاذة التي قد تتسبب في تكرار غير محدود عند سرد محتويات الدليل. يُفرَض الآن حد أقصى لعمق التكرار يبلغ 1000؛ وأي query يتجاوزه سيؤدي إلى الخطأ `TOO_DEEP_RECURSION` بدلًا من تعطل الخادم بسبب stack overflow. [#106676](https://github.com/ClickHouse/ClickHouse/pull/106676) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقف الخادم بسبب الخطأ `Bad cast from type DB::ColumnNothing to DB::ColumnVector<char8_t>` في `FunctionIf::executeForConstAndNullableCondition` عندما يُطوى شرط `if`/`multiIf` كثابت إلى `Const(Nullable(Nothing))` (على سبيل المثال، استخدام فهرس خارج النطاق على مصفوفة فارغة مثل `arraySort(x -> x, [])[toNullable(1)]`). [#106678](https://github.com/ClickHouse/ClickHouse/pull/106678) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستثناء `'Trying to read from input() twice.'` الذي كان يظهر عند تغليف table function `input` داخل تعبير جدول شائع غير MATERIALIZED ثم الإشارة إليه من أكثر من موضع في query. أصبح query يُرفَض الآن بخطأ واضح `INVALID_USAGE_OF_INPUT` في مرحلة التخطيط. فـ`input` عبارة عن تدفق client أحادي الاستخدام، ولا يمكن استهلاكه إلا من source واحد في query plan. [#106682](https://github.com/ClickHouse/ClickHouse/pull/106682) ([Groene AI](https://github.com/groeneai)).
* جعل `FORMAT` يُطبَّق أيضًا على مخرجات `EXPLAIN` في `EXPLAIN ... INSERT ... SELECT ... FORMAT ...` حتى عندما تسبق `SETTINGS` قيمة `FORMAT` أو عندما يكون output format هو `Values`. متابعة لـ [#101772](https://github.com/ClickHouse/ClickHouse/issues/101772). [#106686](https://github.com/ClickHouse/ClickHouse/pull/106686) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ نادر زائف من نوع `RESOURCE_ACCESS_DENIED` ("Scheduler queue with resource request is about to be destructed") لاستعلام كان قد مُنح بالفعل حق الوصول إلى مورد workload، وكان السبب إعادة استخدام كائن طلب محلي للخيط احتفظ بحالة فشل من طلب سابق. [#106690](https://github.com/ClickHouse/ClickHouse/pull/106690) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة تسابق بين تدمير كائنات `INATSConsumer` واستدعاء `INATSConsumer::onMsg` عليها عبر callbacks في مكتبة NATS. [#106692](https://github.com/ClickHouse/ClickHouse/pull/106692) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح `match` و`extract` و`extractAll` و`countMatches` التي كانت تُرجع نتائج غير صحيحة للتعبيرات النمطية التي تتضمن محارف هروب ست عشرية أو ثمانية. [#106709](https://github.com/ClickHouse/ClickHouse/pull/106709) ([ofeliacode](https://github.com/ofeliacode)).
* أصبحت طبقة TLS الداخلية لـ Raft في Keeper تحترم الآن الإعداد `openSSL.client.verificationMode`. في السابق، كان التحقق من certificate الخاصة بالنظير مفعّلًا دائمًا لاتصالات Raft بين عقد Keeper بغض النظر عن هذا الإعداد، لذا كانت القيمة `none` تُتجاهل بصمت. الآن، تؤدي `none` صراحةً إلى تعطيل certificate verification الخاصة بنظير Raft، بينما يؤدي غياب الإعداد إلى الإبقاء على السلوك السابق الآمن افتراضيًا. أما configuration التي تضبط `none` صراحةً فستتوقف بعد upgrade عن التحقق من certificates الخاصة بنظراء Raft، بما يتوافق مع السلوك المقصود من الإعداد. [#106726](https://github.com/ClickHouse/ClickHouse/pull/106726) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح خطأ منطقي في نصوص البدء البرمجية في `SYSTEM RELOAD CONFIG`. بالإضافة إلى ذلك، أصبح يتم تحميل نصوص البدء البرمجية عند `SYSTEM RELOAD CONFIG` أيضًا (وظيفة متاحة حاليًا بشكل خاص فقط). [#106727](https://github.com/ClickHouse/ClickHouse/pull/106727) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* التراجع عن تغيير كان يجعل `sumMap` / المُركِّب `-Map` يرفضان أنواع القيم الرقمية ذات الأسماء المخصّصة (مثل `SimpleAggregateFunction(sum, T)` و`Bool`) مع ظهور الخطأ `ILLEGAL_TYPE_OF_ARGUMENT: Values for -Map cannot be summed`، مما أدى إلى تعطيل عمليات التجميع التي كانت تعمل سابقًا. [#106729](https://github.com/ClickHouse/ClickHouse/pull/106729) ([Nikita Fomichev](https://github.com/fm4v)).
* أُصلحت عدة مشكلات تتعلق بسلامة الذاكرة واستنزاف الموارد في قارئات التنسيقات التي يمكن الوصول إليها عبر مدخلات غير موثوقة: قراءة خارج حدود الكومة في معالجة أطوال مستويات التعريف/التكرار ضمن `DataPageV2` في قارئ Parquet الأصلي، وفيض في المكدس في ملفات Parquet ذات البُنى شديدة التداخل، وعمليات تخصيص تجاهلت `max_memory_usage` عند تحليل هندسة GeoParquet بصيغ WKB/WKT وسلاسل/بايتات Avro. [#106739](https://github.com/ClickHouse/ClickHouse/pull/106739) ([Raúl Marín](https://github.com/Algunenano)).
* أُصلح فيض المخزن المؤقت في الكومة (تعطل server) في `decodeHTMLComponent` عند فك ترميز السلاسل التي تحتوي على كيانات HTML الموسَّعة `&nGt;` أو `&nLt;`، ويمكن لأي مستخدم الوصول إليه عبر تنفيذ `SELECT` واحد. [#106741](https://github.com/ClickHouse/ClickHouse/pull/106741) ([Raúl Marín](https://github.com/Algunenano)).
* أصبحت أوامر `CREATE TABLE` و`ALTER TABLE ADD INDEX` و`CREATE INDEX` التي تستخدم `GRANULARITY 0` مع skipping indexes تُرفض برسالة `BAD_ARGUMENTS` واضحة. سابقًا، كان هذا يؤدي إلى استثناء `Inconsistent AST formatting` في إصدارات التصحيح. [#106783](https://github.com/ClickHouse/ClickHouse/pull/106783) ([Groene AI](https://github.com/groeneai)).
* أُصلح تجاهل Azure BACKUP/RESTORE لإعدادات endpoint في أقراص `azure_blob_storage` ذات الصيغة القديمة. [#106784](https://github.com/ClickHouse/ClickHouse/pull/106784) ([Julia Kartseva](https://github.com/jkartseva)).
* أُصلح استثناء `Bad cast` أثناء تقليم الأجزاء استنادًا إلى إحصاءات `MinMax` عندما يكون Key column من النوع `LowCardinality` ويكون ثابت predicate من النوع `LowCardinality(Nullable(...))`. [#106793](https://github.com/ClickHouse/ClickHouse/pull/106793) ([Groene AI](https://github.com/groeneai)).
* إصلاح الأعمدة غير المتسقة (التي تؤدي لاحقًا إلى `LOGICAL_ERROR`) عند حدوث استثناء (مثل `MEMORY_LIMIT_EXCEEDED`) أثناء parsing. [#106802](https://github.com/ClickHouse/ClickHouse/pull/106802) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح المشكلة التي كانت تتسبب في أن يعيد server استجابة HTTP عند إرسال طلبات من عملاء HTTPS بعد ضبط `keeper_server.http_control.secure_port`. [#106822](https://github.com/ClickHouse/ClickHouse/pull/106822) ([linjiayu1025-collab](https://github.com/linjiayu1025-collab)).
* إصلاح logical error في `parseDateTime` عند وجود بايتات إدخال غير ASCII. [#106856](https://github.com/ClickHouse/ClickHouse/pull/106856) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `SHOW CREATE ROW POLICY` بحيث لم يعد يُخرج `restrictive`/`permissive` بأحرف صغيرة بدلًا من الأحرف الكبيرة، خلافًا لما هو متبع مع الكلمات المفتاحية الأخرى. [#106865](https://github.com/ClickHouse/ClickHouse/pull/106865) ([Valery Petrov](https://github.com/valerypetrov)).
* إصلاح الحالة التي لم يكن فيها وضع parallel replicas يُطبَّق على view يحتوي على `UNION` بسبب وجود table فارغ داخل `UNION`. [#106900](https://github.com/ClickHouse/ClickHouse/pull/106900) ([Igor Nikonov](https://github.com/devcrafter)).
* إصلاح تعطل server ‏(SIGSEGV) عند قراءة بيانات `Protobuf` مقتطعة مع `input_format_allow_errors_num > 0`. [#106905](https://github.com/ClickHouse/ClickHouse/pull/106905) ([Andrey Tsarevskiy | Андрей Царевский ](https://github.com/atsarevskiy)).
* إصلاح استثناء `THERE_IS_NO_COLUMN` في distributed queries التي تتضمن optimization ‏`optimize_rewrite_aggregate_function_with_if` عندما تتطلب وسيطة الدالة التجميعية تحويلاً إلى النوع `Nullable`. [#106908](https://github.com/ClickHouse/ClickHouse/pull/106908) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح استثناء (`LOGICAL_ERROR`) في عامل تصفية وقت التشغيل لـ JOIN عندما يحتوي مفتاح JOIN على نوع `Variant` أو `Dynamic` متداخل داخل `Tuple` أو `Array` أو `Map`، ويكون في الجانب الأيمن من JOIN قيمة مميزة واحدة فقط. [#106931](https://github.com/ClickHouse/ClickHouse/pull/106931) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تجاوز سعة عدد صحيح موقّع (سلوك غير معرّف) في `arrayLevenshteinDistanceWeighted` و`arraySimilarity` عندما تحتوي مصفوفات الأوزان على قيم صحيحة كبيرة. وأصبحت المسافة الموزونة الآن تتراكم في عدد صحيح أوسع عند استخدام الأوزان الصحيحة، لذا لم تعد الأوزان الصحيحة الكبيرة تتسبب في تجاوز السعة وتظل النتائج دقيقة. [#106934](https://github.com/ClickHouse/ClickHouse/pull/106934) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل في الخادم (إلغاء مرجعية مؤشر فارغ) عند تنفيذ `TRUNCATE` أو `DROP` على جدول `EmbeddedRocksDB` بعد تحرير مقبض RocksDB الخاص به، مثل جدول `read_only` الذي أُفرغ دليل بياناته بواسطة `TRUNCATE` سابق. [#106940](https://github.com/ClickHouse/ClickHouse/pull/106940) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء (`std::length_error` يُبلَّغ عنه على أنه `LOGICAL_ERROR`) عند القراءة من table function `*Cluster` مثل `urlCluster` مع إعداد `max_streams_for_files_processing_in_cluster_functions` كبير جدًا. وأصبح عدد التدفقات الآن مقيّدًا بقيمة معقولة. [#106946](https://github.com/ClickHouse/ClickHouse/pull/106946) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل في الخادم (إلغاء مرجعية مؤشر فارغ لـ `DB::IConnections`) في `RemoteQueryExecutor` عندما يُلغى استعلام موزّع مباشرة قبل إرساله إلى shard. [#106950](https://github.com/ClickHouse/ClickHouse/pull/106950) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة بقاء `elapsed_us` مساويًا للصفر دائمًا، واحتساب `read_rows`/`read_bytes` بأقل من قيمتهما الفعلية، في `system.processors_profile_log` و`system.query_log` لاستعلامات flush الخاصة بعمليات insert غير المتزامنة (`AsyncInsertFlush`). [#106982](https://github.com/ClickHouse/ClickHouse/pull/106982) ([Christoph Wurm](https://github.com/cwurm)).
* إصلاح تعطل (`Source column is not Map` / `SIGSEGV`) عند دمج blocks مرتبة تحتوي على عمود `Variant` مع متغير `Map` يختلف ترتيب تخزينه المحلي عن ترتيبه العام. [#107011](https://github.com/ClickHouse/ClickHouse/pull/107011) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ منطقي `conflicted_part_name.has_value()` كان يظهر أثناء insert متزامن إلى جدول `ReplicatedMergeTree` عندما تكون inserted block قد خضعت لإزالة تكرار بالكامل، وكانت عقدة إزالة التكرار الخاصة بالجزء المتعارض قد أُزيلت بالفعل (على سبيل المثال بسبب `DROP PARTITION` متزامن). [#107026](https://github.com/ClickHouse/ClickHouse/pull/107026) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح استثناء (خطأ منطقي `this->visited_views == right->visited_views`) عند `INSERT` عندما تكتب materialized views اثنتان على source table نفسه إلى target table نفسه، بينما يقرأ view تابع ذلك الهدف، مع تفعيل `materialized_views_squash_parallel_inserts`. [#107027](https://github.com/ClickHouse/ClickHouse/pull/107027) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ المنطقي `Block structure mismatch in UnionStep stream` (توقف الخادم في builds التصحيح/sanitizer، و`Code: 49` في builds الإصدار) الذي كان يحدث عندما يقرأ أحد فروع `UNION`/`INTERSECT`/`EXCEPT` عمودًا مُسلسَلًا بصيغة `Sparse`، بينما يقرأ الفرع المقابل العمود نفسه باعتباره عمودًا كاملًا (على سبيل المثال عند الدفع إلى materialized view). [#107041](https://github.com/ClickHouse/ClickHouse/pull/107041) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح استثناء `LOGICAL_ERROR` عند الإدراج في جدول DeltaLake يحتوي على أعمدة لا تطابق مخطط الكتابة الخاص به (على سبيل المثال، عمود `Nested` يُفك إلى أعمدة فرعية، أو table function مع مجموعة أعمدة صريحة). أصبحت عمليات الإدراج هذه الآن تفشل بخطأ `INCOMPATIBLE_COLUMNS` ظاهر للمستخدم بدلًا من ذلك. يغلق [#87402](https://github.com/ClickHouse/ClickHouse/issues/87402). [#107058](https://github.com/ClickHouse/ClickHouse/pull/107058) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ `TYPE_MISMATCH` ("Cannot convert string ... to type ...") في استعلامات `ORDER BY <numeric column> ... LIMIT n` عندما كانت lazy materialization تضع عمودًا آخر قبل عمود الفرز. تُقرأ الآن عتبة top-K من عمود الفرز الصحيح. [#107060](https://github.com/ClickHouse/ClickHouse/pull/107060) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ نحوي عندما تأتي عبارة `FORMAT` أو `SETTINGS` أو `INTO OUTFILE` بعد `SHOW ROW POLICIES` أو `SHOW MASKING POLICIES` (مثل `SHOW ROW POLICIES FORMAT TabSeparated`). [#107061](https://github.com/ClickHouse/ClickHouse/pull/107061) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح العبارة المركبة `ALTER TABLE ... RENAME COLUMN a TO b, RENAME COLUMN c TO a` التي تعيد استخدام اسم عمود تم تحريره (أي "تبديل") بين أعمدة من أنواع مختلفة. كان الجزء materialized يسجّل نوع عمود غير صحيح، لذلك كان `SELECT` لاحقًا يفشل برسالة `Conversion between numeric types and IPv6 is not supported` (أو يتوقف عند تحميل الجزء في debug builds). [#107064](https://github.com/ClickHouse/ClickHouse/pull/107064) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح النتائج غير الحتمية للدالة `roundDown` عندما تحتوي مصفوفة الحدود على `NaN`. فقد كانت قيمة الإدخال نفسها قد تُرجِع حدًا finite أو `NaN` بحسب الصفوف المحيطة في الدفعة. يتم الآن تجاهل حدود `NaN`، لذا تعتمد النتيجة فقط على الحدود finite. [#107065](https://github.com/ClickHouse/ClickHouse/pull/107065) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح إطلاق `quantileTDigest` و`quantileTDigestWeighted` للخطأ `DECIMAL_OVERFLOW` مع الوسيطات `Date` و`DateTime` عندما تكون quantile المستوفاة كسرية لكنها ضمن النطاق (على سبيل المثال `quantileTDigestWeighted(date, weight)` على قيم تقع كلها ضمن النوع). تُقتطع النتيجة الكسرية الآن إلى نوع النتيجة، بما يتوافق مع `quantilesTDigestWeighted`؛ أما القيم الفعلية خارج النطاق فما زالت تؤدي إلى خطأ. يغلق: [#106722](https://github.com/ClickHouse/ClickHouse/issues/106722). [#107066](https://github.com/ClickHouse/ClickHouse/pull/107066) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح إطلاق `trimLeft` و`trimRight` و`trimBoth` (وكذلك الأسماء البديلة `ltrim` و`rtrim` و`trim`) للخطأ `TOO_LARGE_STRING_SIZE` عندما تكون character set المخصصة للتشذيب أطول من 16 محرفًا. أصبحت مجموعات التشذيب بأي طول مدعومة مجددًا. [#107071](https://github.com/ClickHouse/ClickHouse/pull/107071) ([Nikita Fomichev](https://github.com/fm4v)).
* تم إصلاح الاقتطاع الصامت لقيم الأعداد الصحيحة الخارجة عن النطاق في تعريفات النوع `Enum8`/`Enum16`. أصبح `Enum8('a' = 200)` الآن يطلق `ARGUMENT_OUT_OF_BOUND` بدلًا من إنشاء `Enum8('a' = -56)` بصمت. [#107081](https://github.com/ClickHouse/ClickHouse/pull/107081) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الترتيب غير الصحيح للصفوف (وظهور `LOGICAL_ERROR` برسالة "Rows are not sorted with permutation" في debug builds) في استعلامات `ORDER BY ... LIMIT` متعددة الأعمدة التي تُفرَز حسب أعمدة `Nullable` عندما تتساوى عدة صفوف في الأعمدة الأولى. [#107094](https://github.com/ClickHouse/ClickHouse/pull/107094) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` (`Expected the argument N to have X rows, but it has Y`) عند تنفيذ دالة على عمود `Dynamic` ناتج عن JOIN على `Dynamic` (على سبيل المثال، الصفوف غير المنضمّة في `RIGHT`/`FULL JOIN`، أو استعلام `EXISTS` فرعي مترابط جرى فكّ ترابطه إلى join). [#107095](https://github.com/ClickHouse/ClickHouse/pull/107095) ([Groene AI](https://github.com/groeneai)).
* إصلاح إعادة إنشاء جلسة ZooKeeper دون داعٍ عند إعادة تحميل الإعدادات. [#107096](https://github.com/ClickHouse/ClickHouse/pull/107096) ([Azat Khuzhin](https://github.com/azat)).
* عدم الاحتفاظ بالـ mutex أثناء قراءات ZooKeeper عند تحديث كيانات الوصول. [#107097](https://github.com/ClickHouse/ClickHouse/pull/107097) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح استثناء `Logical error: Too large size passed to allocator` عند تنفيذ `INSERT` في جدول `MergeTree` عندما تكون `adaptive_write_buffer_initial_size` مضبوطة على قيمة كبيرة للغاية. ويُقيَّد الآن الحجم الابتدائي التكيفي لمخزن الكتابة المؤقت بالحد الأقصى للمخزن المؤقت. [#107104](https://github.com/ClickHouse/ClickHouse/pull/107104) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL ERROR` (`Bad cast from type DB::ColumnString to DB::ColumnLowCardinality`) عند مقارنة ثابت `Variant` يحتوي على عضو `LowCardinality` بعمود مفتاح تكون فيه key expression دالة deterministic غير رتيبة (على سبيل المثال، skip index من نوع `minmax` على `sipHash64(col)`). [#107111](https://github.com/ClickHouse/ClickHouse/pull/107111) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ المنطقي `Bad cast from type DB::IColumn const* to DB::ColumnNullable const*` عندما يُمرَّر asterisk مؤهل (`t.*`) على مفتاح `JOIN ... USING` إلى aggregate function، ويكون على الجانب الآخر من OUTER JOIN مفتاح `Nullable` (مع `join_use_nulls = 0`). [#107129](https://github.com/ClickHouse/ClickHouse/pull/107129) ([Groene AI](https://github.com/groeneai)).
* إصلاح دفعات `ALTER TABLE ... ON CLUSTER` التي تمزج بين `MODIFY SETTING`/`RESET SETTING` وتغيير comment (على سبيل المثال `MODIFY COMMENT 'x', MODIFY SETTING old_parts_lifetime = 123`) إذ كان يجري تطبيقها فقط على replica القائدة، مما يترك replicas الأخرى غير متطابقة. كما أُصلحت أيضًا حالة `MODIFY COLUMN ... COMMENT` الموضعية أو الخاصة بكل عمود عبر `SETTINGS`، التي كانت تُصنَّف خطأً على أنها تغيير محلي في metadata يقتصر على comment فقط، مما كان يستبعد إعادة ترتيب الأعمدة من metadata المكرّرة وقد يسبب `INCOMPATIBLE_COLUMNS` عند إعادة تشغيل replica. [#107142](https://github.com/ClickHouse/ClickHouse/pull/107142) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` ("Table expression ... data must be initialized") الذي كان يظهر عندما يشير matcher asterisk مؤهل (على سبيل المثال `x.*`) إلى CTE تعاودي بالاسم داخل جزئه التعاودي نفسه. وتُوسِّع هذه المطابقات الآن أعمدة الجدول التعاودي، بالطريقة نفسها التي يفعلها فيها العمود المؤهل (`x.a`) أو matcher غير المؤهل (`*`) بالفعل في ذلك الموضع. [#107144](https://github.com/ClickHouse/ClickHouse/pull/107144) ([Groene AI](https://github.com/groeneai)).
* إصلاح query results غير صحيحة تسببت فيها query condition cache عندما كانت mutations الفورية (`apply_mutations_on_fly`) أو patch parts تُرشّح الصفوف قبل `PREWHERE`. كان يمكن لاستعلام يقرأ باستخدام `apply_mutations_on_fly = 1` أن يفسد cache، بحيث يؤدي إلى أن يتخطى استعلام لاحق مع `apply_mutations_on_fly = 0` ونفس predicate علاماتٍ كان ينبغي قراءتها، ومن ثم يُرجع عددًا أقل من الصفوف. ويشمل هذا الإصلاح أيضًا سياسات الأمان على مستوى الصفوف، التي تُضاف مسبقًا كـ filter قبل `PREWHERE`: إذ كان يمكن لاستعلام يُشغَّل تحت row policy مقيِّدة أن يفسد cache لاستعلام لاحق يستخدم predicate نفسه من دون تلك policy. [#107145](https://github.com/ClickHouse/ClickHouse/pull/107145) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `BACKUP` إلى `AzureBlobStorage`: كان نسخ ملف بيانات داخل نسخة احتياطية يكتب الكائن الهدف خارج دليل النسخة الاحتياطية. كما أصبحت عمليات التحقق من وجود كائنات النسخ الاحتياطي على وجهات `S3` تستخدم طلبات `HeadObject` دقيقة بدلًا من السرد بحسب البادئة، مما يمنع المطابقات الخاطئة للمفاتيح ذات البادئات المتشابهة. [#107153](https://github.com/ClickHouse/ClickHouse/pull/107153) ([Pablo Marcos](https://github.com/pamarcos)).
* تم إصلاح تجاوز سعة عدد صحيح موقّع في `quantileExactExclusive` و`quantilesExactExclusive` و`quantileExactInclusive` و`quantilesExactInclusive`، كان يمكن أن يؤدي إلى نتيجة خاطئة لمدخلات `Int64` التي تمتد عبر نطاق كبير. [#107154](https://github.com/ClickHouse/ClickHouse/pull/107154) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` ("Unexpected exception in refresh scheduling") كان يمكن أن يُدخل الخادم في حلقة تعطل عند إعادة التشغيل عندما يكون للعرض المادي القابل للتحديث تبعية `REFRESH ... DEPENDS ON <name>` ويطابق اسمها غير المؤهل اسم جدول مؤقت أو اسم تعبير جدول شائع. [#107156](https://github.com/ClickHouse/ClickHouse/pull/107156) ([Groene AI](https://github.com/groeneai)).
* تم التأكد من عدم تشغيل سكربتات بدء التشغيل عند إعادة تحميل الإعدادات، لأن ذلك غير صحيح دلاليًا وغير متوقع للمستخدمين، وقد عُرف بأنه عرضة للأخطاء. [#107187](https://github.com/ClickHouse/ClickHouse/pull/107187) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* وُضع حد أقصى للقيمة القصوى لـ `queue_size` للحجز المسبق. [#107205](https://github.com/ClickHouse/ClickHouse/pull/107205) ([Elian Gidoni](https://github.com/eliangidoni)).
* تم إصلاح الخطأ `Argument ... of GROUPING function is not a part of GROUP BY clause` في الاستعلامات التي تستخدم الدالة `grouping` مع تمكين الإعداد `group_by_use_nulls`. [#107206](https://github.com/ClickHouse/ClickHouse/pull/107206) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تم إصلاح الترتيب غير الصحيح للنتائج في `ORDER BY` فوق `UNION ALL` عند تمكين `optimize_read_in_order`، وذلك عندما جرى تضييق مسار union بسبب إعدادات `max_streams_for_union_step`؛ ويتم الآن تخطي هذا التضييق عندما تعتمد الخطة على تدفقات إخراج UNION المرتبة. يغلق [#106880](https://github.com/ClickHouse/ClickHouse/issues/106880). [#107208](https://github.com/ClickHouse/ClickHouse/pull/107208) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تم إصلاح احتمال فكّ إشارة مؤشر فارغ أثناء تحليل إعدادات الوكيل خلال المراحل المتأخرة من إيقاف الخادم. [#107231](https://github.com/ClickHouse/ClickHouse/pull/107231) ([Pedro Ferreira](https://github.com/PedroTadim)).
* تم إصلاح استعلامات `UPDATE` خفيفة الوزن مع تمكين parallel replicas القديمة لجداول `MergeTree` غير المكررة. [#107246](https://github.com/ClickHouse/ClickHouse/pull/107246) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح توقف للخادم (`std::out_of_range` logical error) عند الإدراج في جدول `Iceberg` لا تتطابق فيه أسماء أعمدة كتلة الكتابة مع معرّفات الحقول في أحدث مخطط (على سبيل المثال، بعد أن يعيد كاتب متزامن تسمية عمود ضمن نافذة `iceberg_metadata_staleness_ms`). أصبح الإدراج الآن يفشل بخطأ استعلام واضح بدلًا من تعطل الخادم. [#107279](https://github.com/ClickHouse/ClickHouse/pull/107279) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خلل تعذّر الإيقاف في الخادم ووضع local بسبب احتفاظ مجمّعات الخيوط الثابتة بالخيوط الخاملة إلى أجل غير مسمى إذا كان `max_*_thread_pool_free_size > 0`. [#107291](https://github.com/ClickHouse/ClickHouse/pull/107291) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح تجاهل دالة الجدول `s3` بصمت لقيمة `partition_strategy` الموضعية المكتوبة بأحرف صغيرة (مثل `hive`). [#107297](https://github.com/ClickHouse/ClickHouse/pull/107297) ([Julia Kartseva](https://github.com/jkartseva)).
* تم إصلاح التعامل مع `low_cardinality_allow_in_native_format=0` في تجهيز الكتل المتوازية. [#107319](https://github.com/ClickHouse/ClickHouse/pull/107319) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح النتائج الخاطئة (وغالبًا الفارغة) من `ORDER BY <col> LIMIT n` عند تفعيل تحسين `use_skip_indexes_for_top_k` ووجود part يحتوي على skip index من نوع `minmax` على عمود الفرز بعد إزالة rows منه باستخدام lightweight `DELETE`. لم يعد التحسين يقدّم minmax القديم للأجزاء التي حُذفت منها rows باستخدام lightweight `DELETE` على الأجزاء التي تحتوي على أعلى rows الحية. [#107320](https://github.com/ClickHouse/ClickHouse/pull/107320) ([Groene AI](https://github.com/groeneai)).
* إصلاح bug في ClickHouse Keeper حيث كانت metadata الخاصة بـ snapshot، والمبلّغ عنها عبر `last_snapshot` (وكذلك `zk_latest_snapshot_size` في `mntr`)، قد تتراجع بعد تثبيت snapshot قديم أو مكرر. وكان هذا قد يسمح أيضًا لـ snapshot محلي يحمل الفهرس نفسه بأن يستبدل snapshot file مسجّلًا في مكانه بينما كان لا يزال يُبث إلى peer أو يُرفع إلى S3. [#107321](https://github.com/ClickHouse/ClickHouse/pull/107321) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح احتمال حدوث server stack overflow ‏(crash) عند قراءة schema أو Value متداخل بعمق في formats ‏`MsgPack` و`BSON` و`ORC` و`Parquet` و`JSON` و`DeltaLake` و`Iceberg` و`Paimon`. ويُرفض الآن هذا الإدخال شديد التداخل مع إرجاع exception. [#107341](https://github.com/ClickHouse/ClickHouse/pull/107341) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح احتمال حدوث logical error في `SYSTEM SYNC DATABASE REPLICA ... STRICT` وجعل المُعدِّل `STRICT` يُطبَّق فعليًا على database replicas. [#107344](https://github.com/ClickHouse/ClickHouse/pull/107344) ([Pedro Ferreira](https://github.com/PedroTadim)).
* إصلاح توقف server في builds الخاصة بـ debug/sanitizer عند قراءة table من نوع `DeltaLake` تكون فيها أسماء schema في ClickHouse تشير إلى column غير موجود في Delta column mapping، على سبيل المثال بعد إعادة تسمية column أو إسقاطه في Delta log. يفشل query الآن بدلًا من ذلك بخطأ `INCORRECT_DATA` يمكن التقاطه. [#107347](https://github.com/ClickHouse/ClickHouse/pull/107347) ([Groene AI](https://github.com/groeneai)).
* إصلاح توليد `ORDER BY ... WITH FILL` لصفوف إضافية عندما يستخدم column في `ORDER BY` يسبق عمود الملء ترتيب Collation عبر `COLLATE`. وتُجمَّع rows الآن بحسب sorting prefix باستخدام ذلك الترتيب، بما يطابق sort order. [#107365](https://github.com/ClickHouse/ClickHouse/pull/107365) ([Groene AI](https://github.com/groeneai)).
* إصلاح crash ‏(`LOGICAL_ERROR` في builds الخاصة بـ debug) وbug صامت يؤدي إلى نتائج خاطئة (في builds الخاصة بالإصدار) عند قراءة Iceberg table تعيد فيها metadata ربط `schema-id` موجود مسبقًا بـ schema مختلفة عبر إصدارات metadata. وتُرفض مثل هذه metadata الآن مع `ICEBERG_SPECIFICATION_VIOLATION`. [#107370](https://github.com/ClickHouse/ClickHouse/pull/107370) ([Groene AI](https://github.com/groeneai)).
* إصلاح `LOGICAL_ERROR` ‏(`Variant N (T) has size X, but expected Y`) عند تطبيق function مثل `toString` أو `concat` على column من نوع `Variant` أو `Dynamic` يحتوي على variant واحد غير فارغ إلى جانب قيم NULL، وتُرجِع function column الإدخال الخاص بها دون تغيير. [#107374](https://github.com/ClickHouse/ClickHouse/pull/107374) ([Groene AI](https://github.com/groeneai)).
* إصلاح `Logical error: 'Duplicate announcement received for replica number N'` الذي كان يمكن أن يحدث مع parallel replicas عندما يحتوي استعلام فرعي قيَمي على subqueries متداخلة تقرأ table نفسها. [#107381](https://github.com/ClickHouse/ClickHouse/pull/107381) ([Groene AI](https://github.com/groeneai)).
* إصلاح `getServerSetting` لكي يعيد القيمة الفعلية السارية لـ server settings القابلة للتغيير أثناء runtime ‏(مثل `max_server_memory_usage` و`mark_cache_size` و`max_concurrent_queries` وأحجام thread pool وغيرها)، بما يطابق ما يبلّغ عنه `system.server_settings`. [#107388](https://github.com/ClickHouse/ClickHouse/pull/107388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `arrayResize` عند استخدام وسيط حجم من النوع `Decimal`: يُفسَّر الحجم الآن وفقًا لقيمته الفعلية (على سبيل المثال، `arrayResize([1, 2, 3], 1.5::Decimal(2, 1))` يعيد عنصرًا واحدًا) بدلًا من التمثيل الخام غير المُحجَّم. [#107389](https://github.com/ClickHouse/ClickHouse/pull/107389) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `LOGICAL_ERROR` ‏(`block.rows() == getRows()`) الذي كان يظهر عند تنفيذ `INSERT` غير متزامن إلى جدول من نوع `Alias` عندما يكون `use_strict_insert_block_limits` مفعّلًا. [#107400](https://github.com/ClickHouse/ClickHouse/pull/107400) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ منطقي ‏(`Unexpected return type from equals. Expected Nullable(UInt8). Got UInt8`) عندما يدفع تحسين إنزال شرط الفصل (المسند الجزئي) شرطًا فوق مفتاح `USING` الذي يوسّع `JOIN` نوعه. كما أُصلح تعطّل في الخادم (segmentation fault) في المُحلِّل عند حلّ المعرّفات في استعلامات `JOIN ... USING` التي تحتوي على فروع `if`/`multiIf` قابلة لطيّ الثوابت وتشير إلى معرّفات غير معروفة. [#107407](https://github.com/ClickHouse/ClickHouse/pull/107407) ([Groene AI](https://github.com/groeneai)).
* إصلاح heap buffer overflow ‏(تعطّل في الخادم) في `windowFunnel` عند إنهاء حالة دالة تجميع مُشكّلة خصيصًا مع نوع حدث خارج النطاق، ويمكن لأي مستخدم الوصول إلى ذلك عبر `SELECT` واحد. [#107412](https://github.com/ClickHouse/ClickHouse/pull/107412) ([uwezkhan](https://github.com/uwezkhan)).
* إصلاح سلوك غير معرّف عند تمرير قيمة فاصلة عائمة غير منتهية (مثل `nan` أو `inf`) كوسيط طابع زمني/مدة إلى دوال الجداول `prometheusQuery` / `prometheusQueryRange`. يرفع هذا الوسيط الآن `BAD_ARGUMENTS` بدلًا من إنتاج طابع زمني غير صالح. [#107417](https://github.com/ClickHouse/ClickHouse/pull/107417) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقّف `MaterializedPostgreSQL` بصمت عن نسخ التغييرات متماثلًا عندما يحتوي اسم قاعدة البيانات أو الجدول في PostgreSQL على أحرف كبيرة (إذ كان مستهلك `pgoutput` يطلب اسم `publication` غير موضوع بين علامتَي اقتباس ومحوّلًا إلى أحرف صغيرة، ما لا يطابق `publication` التي تحتفظ بحالة الأحرف). [#107423](https://github.com/ClickHouse/ClickHouse/pull/107423) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء ‏(`Logical error: Not-ready Set is passed as the second argument for function 'in'`) عندما كان تعبير مفتاح ‏(`ORDER BY` أو `PRIMARY KEY` أو `PARTITION BY` أو `INDEX` للتخطي) يحتوي على عامل التشغيل `IN` مع جدول في الجهة اليمنى، مثل `ORDER BY (x IN some_table)`. تُرفض تعبيرات المفاتيح هذه الآن وقت إنشاء الجدول. [#107424](https://github.com/ClickHouse/ClickHouse/pull/107424) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج غير صحيحة ناتجة عن التحسين `optimize_rewrite_aggregate_function_with_if` لدوال التجميع التي تحتفظ بقيم حمولة `NULL` (عائلة `*_respect_nulls`: ‏`anyRespectNulls` و`first_value_respect_nulls` و`anyLast_respect_nulls` و`last_value_respect_nulls`). لم يعد التحسين يعيد كتابة `f(if(cond, x, NULL))` إلى صيغة `-If` لمثل هذه الدوال. [#107430](https://github.com/ClickHouse/ClickHouse/pull/107430) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء زائف من النوع `filesystem error: in last_write_time: No such file or directory` عند سرد دليل تخزين الكائنات على قرص محلي (مثل جدول Iceberg على قرص `local`) بينما تُستبدل الملفات بالتوازي. وأصبح الآن يتم تجاهل الإدخال الذي يُزال بالتوازي بدلًا من إيقاف عملية السرد. [#107432](https://github.com/ClickHouse/ClickHouse/pull/107432) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `THERE_IS_NO_COLUMN` عندما يكون `optimize_if_transform_strings_to_enum = 1` ويكون التعبير المُحسَّن لـ `if`/`transform` فوق قيم `string` الحرفية مفتاحًا في `GROUP BY` أو `ORDER BY` على جدول Distributed أو parallel replicas. [#107455](https://github.com/ClickHouse/ClickHouse/pull/107455) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعطل نادر في الخادم أثناء معالجة `DISTINCT` كان قد يحدث عند فشل تخصيص للذاكرة (على سبيل المثال، عند بلوغ حد الذاكرة) أثناء تهيئة مجموعة المفاتيح المميزة. [#107467](https://github.com/ClickHouse/ClickHouse/pull/107467) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `LOGICAL_ERROR: Unexpected return type from materialize` (وأخطاء عدم تطابق الأنواع المشابهة) عند استخدام `apply_mutations_on_fly = 1` على جدول يحتوي على `UPDATE` معلّق يُطبَّق أثناء التنفيذ، وكان العمود المستهدف فيه يُقرأ أيضًا كمدخل لدالة بواسطة `UPDATE` سابق يُطبَّق أثناء التنفيذ، وذلك قبل mutation من نوع `ALTER MODIFY COLUMN ... LowCardinality(...)`. [#107475](https://github.com/ClickHouse/ClickHouse/pull/107475) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تقادم بيانات اعتماد AWS STS عند قراءة جداول `DeltaLake` عبر `S3`: إذ يحتفظ المحرك الآن بعميل `S3` المزوَّد ببيانات الاعتماد المُحدَّثة عند تحديث اللقطة snapshot، لذلك لم تعد عمليات القراءة طويلة التشغيل تفشل بعد انتهاء TTL لرمز STS. كما أصبح موفّر بيانات اعتماد assume-role الخاص بـ STS يراعي أيضًا تحديث بيانات الاعتماد لأي وصول إلى `S3` باستخدام STS. [#107480](https://github.com/ClickHouse/ClickHouse/pull/107480) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تم إصلاح قيام `SELECT ... FINAL` و `OPTIMIZE TABLE ... FINAL` بإرجاع صفوف مكررة بعد `CREATE TABLE ... CLONE AS` أو `ATTACH PARTITION ... FROM` أو `MOVE PARTITION ... TO TABLE` عند اعتماد أجزاء من `MergeTree` عادي إلى `ReplacingMergeTree` أو `SummingMergeTree` أو `AggregatingMergeTree`. ويُعاد الآن ضبط merge level للجزء المُعتمَد إلى 0 عندما تختلف محركات المصدر والوجهة، بحيث تُزيل الوجهة التكرار عنه في عملية الدمج التالية. [#107481](https://github.com/ClickHouse/ClickHouse/pull/107481) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح underflow عددي صحيح في parser الخاص بـ PostgreSQL wire protocol، حيث كانت رسالة ذات حقل طول أقل من 4 تتسبب في التفاف `size - 4` وحدوث `resize`/`ignore` بحجم مفرط. [#107485](https://github.com/ClickHouse/ClickHouse/pull/107485) ([uwezkhan](https://github.com/uwezkhan)).
* أصبح تتبع إلغاء query أفضل أثناء انتظار quorum في ReplicatedMergeTree. [#107513](https://github.com/ClickHouse/ClickHouse/pull/107513) ([Nikita Taranov](https://github.com/nickitat)).
* تم إصلاح الخطأ `Not-ready Set is passed as the second argument for function 'in'` (`LOGICAL_ERROR`) عند الاستعلام عن جدول يحتوي على مفتاح `PARTITION BY` مع استعلام فرعي من نوع `IN`/`NOT IN` ملفوف داخل expression أكبر، مثل `WHERE (c0 IN (SELECT ...)) != 0`. [#107515](https://github.com/ClickHouse/ClickHouse/pull/107515) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تقييم `currentUser()` و `user()` و `SESSION_USER` و `authenticatedUser()` إلى سلسلة فارغة في مسار تفريغ asynchronous insert (مع `async_insert = 1`). وقد أثّر ذلك في تعبيرات الأعمدة `DEFAULT`/`MATERIALIZED` وmaterialized views التي تشير إلى هذه الدوال، إذ كانت تخزّن بصمت سلسلة فارغة بدلًا من المستخدم الذي قام بعملية الإدراج. [#107541](https://github.com/ClickHouse/ClickHouse/pull/107541) ([Groene AI](https://github.com/groeneai)).
* مع `enable_analyzer = 1` (وهو الإعداد الافتراضي)، أصبح الاستعلام عن جدول باسمه فقط، عندما لا يكون موجودًا إلا في قاعدة بيانات أخرى، يقترح الجدول الصحيح؛ فعلى سبيل المثال، يعرض `SELECT * FROM functions` الرسالة `Maybe you meant system.functions?`. سابقًا كان analyzer الجديد يعرض الخطأ `Unknown table expression identifier` من دون أي تلميح، بينما كان analyzer القديم يقدّم هذا الاقتراح المفيد بالفعل. [#107550](https://github.com/ClickHouse/ClickHouse/pull/107550) ([Groene AI](https://github.com/groeneai)).
* أصبحت الذاكرة التي تستخدمها مكتبة rapidjson (في `prettyPrintJSON` و `JSONMergePatch` وparser JSON الخاص بـ rapidjson) تُحتسب ضمن memory tracker، بحيث تُرفَض المدخلات الشاذة بخطأ `MEMORY_LIMIT_EXCEEDED` بدلًا من الاستمرار في التخصيص بلا حدود. [#107555](https://github.com/ClickHouse/ClickHouse/pull/107555) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح `LOGICAL_ERROR` (`updateFormatPrewhereInfo called more than once`) الذي كان يظهر عند الاستعلام عن مصدر `file()` أو `url()` أو مصدر تخزين كائنات عند استخدام `PREWHERE` صريح و`WHERE` معًا، بينما كان `optimize_prewhere_after_pushdown` مفعّلًا. [#107568](https://github.com/ClickHouse/ClickHouse/pull/107568) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل (إلغاء مرجعية مؤشر فارغ) كان يمكن أن يحدث عند تنفيذ خطة استعلام موزعة محليًا (`make_distributed_plan` + `distributed_plan_execute_locally`) مع `log_formatted_queries = 1`. [#107570](https://github.com/ClickHouse/ClickHouse/pull/107570) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقف للخادم (`std::terminate`، الإشارة 6) أثناء تفكيك استعلام ذي خطة موزعة (`make_distributed_plan = 1`) عندما يفشل فحص حالة العامل في إعادة جدولة الفحص التالي (مثل `CANNOT_SCHEDULE_TASK` عند الإيقاف أو `MEMORY_LIMIT_EXCEEDED`). أصبح الاستعلام الآن يفشل بشكل سليم مع استمرار الخادم في العمل. [#107575](https://github.com/ClickHouse/ClickHouse/pull/107575) ([Groene AI](https://github.com/groeneai)).
* إضافة فحوصات حدود مفقودة أثناء تحليل Elf وDWARF. [#107579](https://github.com/ClickHouse/ClickHouse/pull/107579) ([Michael Kolupaev](https://github.com/al13n321)).
* إضافة فحوصات حدود مفقودة في قارئ ORC. [#107580](https://github.com/ClickHouse/ClickHouse/pull/107580) ([Michael Kolupaev](https://github.com/al13n321)).
* إصلاح استثناء (`Digest does not match` خطأ منطقي) كان يمكن أن يحدث مع `RENAME TABLE` أو `RENAME DATABASE` أو `CREATE OR REPLACE TABLE` عند التعامل مع جدول `TimeSeries` داخل قاعدة بيانات `Replicated`. وأصبحت إعادة تسمية جدول `TimeSeries` مدعومة الآن. [#107583](https://github.com/ClickHouse/ClickHouse/pull/107583) ([Groene AI](https://github.com/groeneai)).
* إصلاح ثغرة حجب خدمة بسبب استنفاد الذاكرة من دون مصادقة على منفذ بروتوكول MySQL. [#107599](https://github.com/ClickHouse/ClickHouse/pull/107599) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح `DROP TABLE` لجدول `TimeSeries` في قاعدة بيانات `Replicated`، والذي كان سابقًا يسرّب الجداول الداخلية ويترك مهمة الإسقاط في الخلفية تعيد المحاولة بلا نهاية (وكان `DROP TABLE ... SYNC` يعلّق). [#107604](https://github.com/ClickHouse/ClickHouse/pull/107604) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلتين لاجتياز المسار في بروتوكول جلب الأجزاء المكرّرة، وكان من الممكن أن تسمحا لنسخة متماثلة خبيثة بكتابة ملفات خارج مجلد الجزء. [#107606](https://github.com/ClickHouse/ClickHouse/pull/107606) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح الخطأ 'Account must be specified error' عند قراءة جدول Delta Lake عبر Azure. [#107620](https://github.com/ClickHouse/ClickHouse/pull/107620) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إصلاح `ALTER TABLE ... REPLACE PARTITION` على جدول `MergeTree` عادي، إذ كان يعيد إحياء الأجزاء التي تم استبدالها بعد إعادة تشغيل الخادم، مما يجعل الجدول يعيد كلًا من الصفوف البديلة والصفوف القديمة المستبدلة. [#107623](https://github.com/ClickHouse/ClickHouse/pull/107623) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم عند قراءة materialized view يكون هدفها جدول `Distributed` بينما يعمل الاستعلام مع `enable_analyzer = 0`. [#107653](https://github.com/ClickHouse/ClickHouse/pull/107653) ([Groene AI](https://github.com/groeneai)).
* عند تعيين عدة quotas للمستخدم أو الدور نفسه، أصبحت تُفرَض جميعها معًا الآن (ويُرفَض الاستعلام إذا تم تجاوز أي منها)، بدلًا من فرض حصة واحدة فقط واختيارها بصورة غير حتمية. ويعرض `SHOW QUOTA` و`system.quota_usage` الآن جميع الحصص المفروضة على المستخدم الحالي. [#107664](https://github.com/ClickHouse/ClickHouse/pull/107664) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح قيام `s3` ودوال الجداول الأخرى الخاصة بتخزين الكائنات بإطلاق `LOGICAL_ERROR` بدلًا من `BAD_ARGUMENTS` عند تكرار وسيطة من نوع مفتاح-قيمة، مثل `s3('http://...', format = 'CSV', format = 'TSV')`. [#107670](https://github.com/ClickHouse/ClickHouse/pull/107670) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة عدم قابلية استخدام واجهة MySQL مع `MySQL Connector/J` 8.2.0 والإصدارات الأحدث (بما في ذلك 9.x). أصبح الحقل `info` في الحزمة `OK` الآن مُرمَّزًا بالطول، بما يتوافق مع MySQL server، بحيث يتمكن JDBC driver من الاتصال. [#107693](https://github.com/ClickHouse/ClickHouse/pull/107693) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح `LOGICAL_ERROR` ("Input nodes size mismatch in dag") عند تنفيذ استعلام مع `make_distributed_plan = 1` يجري ربطًا على مفتاح ملفوف بدالة، عندما لا يكون للطرفين نوع مشترك (على سبيل المثال `ON intDiv(-1, t1.key) = t2.key` مع مفتاح أيمن من النوع `UInt64`). [#107701](https://github.com/ClickHouse/ClickHouse/pull/107701) ([Groene AI](https://github.com/groeneai)).
* لم تعد قراءة بيانات Arrow/ArrowStream ذات الأعمدة `String`/`Binary` الفارغة، التي ينتجها Apache Arrow Java \< 19.0.0 (بما في ذلك Apache Spark)، تؤدي إلى إطلاق `INCORRECT_DATA`. [#107764](https://github.com/ClickHouse/ClickHouse/pull/107764) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح استثناء `BAD_GET` ("Bad get: has String, requested UInt64") في تقدير column statistics الخاصة بـ `countmin` عندما يقارن استعلام عمودًا بقيمة حرفية من نوع مختلف لم تُحوَّل مسبقًا، مثل `numeric_col IN (SELECT '5')` أو `string_col IN (SELECT 5)`. [#107793](https://github.com/ClickHouse/ClickHouse/pull/107793) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح تعليق دوال الجداول `odbc` و`jdbc` لعدة دقائق وتجاهلها إلغاء الاستعلام (`KILL QUERY`, `max_execution_time`) عندما يصبح الجسر غير مستجيب أثناء استنتاج بنية الجدول البعيد. [#107809](https://github.com/ClickHouse/ClickHouse/pull/107809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استثناء (`Logical error: 'index >= result.start'`) عند تنسيق استعلام غير صالح يمزج بين الصيغتين الموضعية والمسمّاة للوسيطة السرية في دوال الجداول `s3`/`gcs`، مثل `s3('url', 'a', 'b', secret_access_key = 'c')`. [#107818](https://github.com/ClickHouse/ClickHouse/pull/107818) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح عدم قيام فهرس التخطي set بعملية pruning للحبيبات على أعمدة `LowCardinality`. [#107868](https://github.com/ClickHouse/ClickHouse/pull/107868) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تم إصلاح قيام إزالة تكرار الإدراج بحساب قيم hash خاطئة لأعمدة `String` و`Array` مع إعداد الخادم `insert_deduplication_version = new_unified_hash`: إذ كان يمكن أن تفشل عمليات الإدراج المتطابقة في إزالة التكرار لأن hash إزالة التكرار كان يعتمد على موضع الصف داخل كتلة الإدراج. [#107915](https://github.com/ClickHouse/ClickHouse/pull/107915) ([Sema Checherinda](https://github.com/CheSema)).
* تم إصلاح النتائج غير الصحيحة لـ `ORDER BY` على أعمدة `Nullable` مع مفاتيح فرز متعددة على macOS (Apple Silicon)، والناجمة عن غياب توسيع الإشارة في مقارن الفرز المُصرَّف آنيًا (JIT). [#107973](https://github.com/ClickHouse/ClickHouse/pull/107973) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح تراجع الأداء عند قراءة أعمدة `Dynamic` باستخدام عدة خيوط. وكان السبب [#100730](https://github.com/ClickHouse/ClickHouse/pull/100730). ويغلق [#107942](https://github.com/ClickHouse/ClickHouse/issues/107942). [#107997](https://github.com/ClickHouse/ClickHouse/pull/107997) ([Pavel Kruglov](https://github.com/Avogar)).
* أصبح إعداد data lake المهمل `storage_catalog_url` يُرفَض الآن بشكل صحيح بواسطة حارس الكتالوج (إذ كان التحقق سابقًا يقتصر على `storage_catalog_type` و`storage_aws_access_key_id`)، كما أصبحت رسالة الخطأ تسرد جميع الإعدادات المهملة. [#108040](https://github.com/ClickHouse/ClickHouse/pull/108040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح logical error `Bad cast from type DB::ColumnSparse to DB::ColumnVector<char8_t>` عند قراءة query من نوع `LIKE` من index `text` عبر مسار fallback للقراءة المباشرة من column مخزّن بشكل sparse. [#108068](https://github.com/ClickHouse/ClickHouse/pull/108068) ([Groene AI](https://github.com/groeneai)).
* شغّل دائمًا handlers الخاصة بانتهاء batch لذاكرة التخزين المؤقت للوصول، حتى إذا كانت الـ batch فارغة. [#108124](https://github.com/ClickHouse/ClickHouse/pull/108124) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح `LOGICAL_ERROR` (`Column identifier is already registered`) في بعض queries التي تستخدم `UNION ALL`. [#100770](https://github.com/ClickHouse/ClickHouse/pull/100770) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح حالة use-after-free على mutex الخاص بـ workload storage أثناء إيقاف تشغيل server. [#101447](https://github.com/ClickHouse/ClickHouse/pull/101447) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح حالة deadlock في `ALTER DATABASE MODIFY COMMENT` مع catalog `Shared`. [#103683](https://github.com/ClickHouse/ClickHouse/pull/103683) ([Nikolay Degterinsky](https://github.com/evillique)).
* أصبح المعرّف الفارغ المحاط باقتباس Unicode يُطلق الآن `SYNTAX_ERROR` بدلًا من `CANNOT_PARSE_QUOTED_STRING`. [#104173](https://github.com/ClickHouse/ClickHouse/pull/104173) ([leonard9893](https://github.com/leonard9893)).
* الحفاظ على أنواع parameter الأصلية لدوال التجميع `timeSeries*` بحيث تُحفَظ أنواع `AggregateFunction` بشكل صحيح في round-trip عبر إعادة إرفاق الجداول وparallel replicas. [#104812](https://github.com/ClickHouse/ClickHouse/pull/104812) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح `LOGICAL_ERROR` في materialized CTE تحت `serialize_query_plan` مع parallel replicas. [#104896](https://github.com/ClickHouse/ClickHouse/pull/104896) ([Igor Nikonov](https://github.com/devcrafter)).
* إصلاح overflow للأعداد الصحيحة الموقعة في الدوال `timeSeries*ToGrid` عندما تكون parameter التقادم (window) قريبة من `INT64_MAX`. [#105319](https://github.com/ClickHouse/ClickHouse/pull/105319) ([Groene AI](https://github.com/groeneai)).
* لم تعد قيمة setting ‏`compatibility` تعيد `apply_row_policy_after_final` إلى `false`، لذا تُطبَّق row policies دائمًا بشكل صحيح مع `FINAL`. [#105637](https://github.com/ClickHouse/ClickHouse/pull/105637) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح `clickhouse chdig client` من خلال مراعاة `SETPGROUP`/`RESETIDS`/`SETSIGDEF` في stub الخاص بـ `posix_spawn`. [#105858](https://github.com/ClickHouse/ClickHouse/pull/105858) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح Exception أثناء فحوصات السلامة في merge-tree على projections عندما لم يكن executor الخاص بالدمج/التحوير مهيأً. [#105919](https://github.com/ClickHouse/ClickHouse/pull/105919) ([Mikhail Artemenko](https://github.com/Michicosun)).
* أثناء index analysis على projections، أصبح index ‏`minmax` يُحمَّل الآن من projection نفسه بدلًا من الجزء parent، ما ينتج نتائج صحيحة. [#105940](https://github.com/ClickHouse/ClickHouse/pull/105940) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح Exception في `addMonotonicChain` لـ `materialize(monotonic_chain(...))`. [#106050](https://github.com/ClickHouse/ClickHouse/pull/106050) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تم إصلاح فشل `RESTORE` على النسخ الاحتياطية التي تتضمن عناصر تابعة لـ `MASKING POLICY`. [#106086](https://github.com/ClickHouse/ClickHouse/pull/106086) ([Julia Kartseva](https://github.com/jkartseva)).
* تم إصلاح احتمال تلف الذاكرة عند توسيع دوال SQL المعرّفة من قبل المستخدم مع تفعيل `prefer_column_name_to_alias`. [#106121](https://github.com/ClickHouse/ClickHouse/pull/106121) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* أصبح القاموس الذي يستخدم اتصال الجسر يُعاد تحميله الآن بعد إعادة تشغيل الخادم، مع إعادة إنشاء الاتصال. يُغلق [#106151](https://github.com/ClickHouse/ClickHouse/issues/106151). [#106152](https://github.com/ClickHouse/ClickHouse/pull/106152) ([Pedro Ferreira](https://github.com/PedroTadim)).
* تم إصلاح filesystem cache لـ `LocalObjectStorage`. [#106239](https://github.com/ClickHouse/ClickHouse/pull/106239) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تم إصلاح المصدر البعيد المؤجل لدوال الجداول عند استخدام `use_delayed_remote_source`. [#106470](https://github.com/ClickHouse/ClickHouse/pull/106470) ([Nikolay Degterinsky](https://github.com/evillique)).
* تم إصلاح `timeSeriesLastToGrid` للطوابع الزمنية السابقة لبداية الشبكة وللطوابع الزمنية الواقعة خارج النافذة. [#106504](https://github.com/ClickHouse/ClickHouse/pull/106504) ([Vitaly Baranov](https://github.com/vitlibar)). [#106577](https://github.com/ClickHouse/ClickHouse/pull/106577) ([Vitaly Baranov](https://github.com/vitlibar)).
* تم إصلاح `LOGICAL_ERROR` (`Inconsistent AST formatting`) عند احتواء اسم الدالة على query parameters. [#106635](https://github.com/ClickHouse/ClickHouse/pull/106635) ([Vitaly Baranov](https://github.com/vitlibar)).
* تم إصلاح خطأ منطقي عند حذف جدول قبل إلغاء تسلسل مهمة distributed plan. [#106944](https://github.com/ClickHouse/ClickHouse/pull/106944) ([Alexander Gololobov](https://github.com/davenger)).
* استخدم مقارنةً دقيقةً لمفاتيح `GROUP BY` من النوع `Nullable`. [#107050](https://github.com/ClickHouse/ClickHouse/pull/107050) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* تم إصلاح `LOGICAL_ERROR` (`Trying to get name of not a column`) الذي كان يظهر عندما لا تكون وسيطة table function تعبير عمود (على سبيل المثال، مطابقة `*` غير محلولة من `multiIf`/`CASE`). [#107411](https://github.com/ClickHouse/ClickHouse/pull/107411) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح النمو غير المحدود لذاكرة التخزين المؤقت للمنطقة الزمنية (`DateLUT`) عند معالجة عدد كبير من أسماء المناطق الزمنية غير الصالحة والمختلفة. [#107464](https://github.com/ClickHouse/ClickHouse/pull/107464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* اكتب إدخال `part_log` قبل الإبلاغ عن اكتمال mutation عادي في `MergeTree`. [#107741](https://github.com/ClickHouse/ClickHouse/pull/107741) ([Azat Khuzhin](https://github.com/azat)).
* أصبح `arrayFold` الآن يتحقق من سلامة وسيطة Array الخاصة به في مواجهة الإدخال غير السليم. [#107932](https://github.com/ClickHouse/ClickHouse/pull/107932) ([Michael Kolupaev](https://github.com/al13n321)).
* تم إصلاح حالة نادرة من data race واحتمال استخدام بعد التحرير في قارئ أرشيف skip-index المخزّن مؤقتًا لجزء `MergeTree`، وقد يحدث ذلك عندما يقرأ استعلام فهارس التجاوز بينما يكون الجزء قيد النقل أو إعادة التسمية. [#107995](https://github.com/ClickHouse/ClickHouse/pull/107995) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح تراجع الأداء في subcolumns الخاصة بـ `Map` مع `PREWHERE`. [#107988](https://github.com/ClickHouse/ClickHouse/pull/107988) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `parseDateTimeBestEffort` عند استخدام منطقة زمنية، إذ كان يُطلق `CANNOT_PARSE_DATETIME` على الصفوف التي تحتوي على NULL في `toString(Nullable(DateTime64))`. [#108310](https://github.com/ClickHouse/ClickHouse/pull/108310) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح table function وengine ‏`ArrowFlight` اللذين كانا يرفضان named collection التي لا تتضمن المفتاح الاختياري `dataset` مع ظهور الخطأ `No such key 'dataset'`. [#108041](https://github.com/ClickHouse/ClickHouse/pull/108041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح logical error بعنوان `Inconsistent AST formatting` لوظيفة window function بلا argument داخل تعريف `CODEC` أو engine (مثل `CODEC(cume_dist() OVER (...))`)؛ إذ تحتفظ هذه الوظيفة الآن بأقواسها بحيث ينجح الاستعلام في round-trip للتنسيق/التحليل. [#107806](https://github.com/ClickHouse/ClickHouse/pull/107806) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `hasToken` عندما تحتوي الإبرة على فاصل، إذ كانت تُرجع النتائج بصمت عبر text index بدلًا من إطلاق `BAD_ARGUMENTS`. [#108189](https://github.com/ClickHouse/ClickHouse/pull/108189) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* يمكن الآن إعادة الإعداد `use_skip_indexes_on_data_read` إلى قيمته `default` السابقة لما قبل 26.1 (`false`) عبر الإعداد `compatibility`، ما يوفّر مخرجًا من تراجع في الأداء حيث يُفشل مسار القراءة من البيانات تقليم نطاقات علامات skip-index الخاصة بـ `minmax`/`set`/`bloom_filter`. [#108330](https://github.com/ClickHouse/ClickHouse/pull/108330) ([egor romanov](https://github.com/egor-click)).
* تم إصلاح crash محتمل (إلغاء مرجعية مؤشر فارغ) عندما لا يكون تجاوز `database`/`db` في named collection المُمرَّرة إلى `remote`/`remoteSecure` اسم database ثابتًا، مثل `remote(nc, database = (SELECT 1))`. ويفشل الاستعلام الآن برسالة error واضحة بدلًا من الانهيار. [#108271](https://github.com/ClickHouse/ClickHouse/pull/108271) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح refreshable materialized view التي كانت تعلق إذا فُقد اتصال ZooKeeper في لحظة غير مناسبة. [#108234](https://github.com/ClickHouse/ClickHouse/pull/108234) ([Michael Kolupaev](https://github.com/al13n321)).
* إصلاح `Bad cast from type DB::ColumnVector<...> to DB::ColumnTuple` عند قراءة column من النوع `Array(Tuple(...))` تكون قيمتها مملوءة بالقيم الافتراضية، مثلًا بعد `ALTER TABLE ... ADD COLUMN` أو بعد mutation غير مكتملة من `ALTER TABLE ... CLEAR COLUMN` طُبقت أثناء التشغيل. [#107232](https://github.com/ClickHouse/ClickHouse/pull/107232) ([Groene AI](https://github.com/groeneai)).
* إصلاح logical error من نوع `Bad cast from type DB::ColumnDynamic to DB::ColumnNullable` عندما يُمرَّر مرجع صريح إلى مفتاح `JOIN ... USING` يكون common supertype الخاص به `Dynamic` إلى aggregate function، مثل `count(t.key) IGNORE NULLS`. [#107289](https://github.com/ClickHouse/ClickHouse/pull/107289) ([Groene AI](https://github.com/groeneai)).
* إصلاح فقدان بيانات صامت على `MergeTree` العادي (non-replicated) عند تشغيل `REPLACE PARTITION` أو `MOVE PARTITION` أو `DETACH PARTITION` أو `DETACH PART` على partition لا تزال تحتوي على تصحيحات lightweight `UPDATE` لم تُطبّق بعد. وترفض هذه العمليات الآن الأمر، كما يفعل `ReplicatedMergeTree` بالفعل. [#107386](https://github.com/ClickHouse/ClickHouse/pull/107386) ([Groene AI](https://github.com/groeneai)).
* إصلاح crash (‏SIGSEGV في إصدارات release، وassertion لعدم تطابق النوع في إصدارات debug) في `has` على `Map` بمفتاح `Dynamic` عندما تكون argument الخاصة بالبحث من نوع `LowCardinality`، مثل `has(map('a'::Dynamic, ...), toLowCardinality('b'))`. [#107956](https://github.com/ClickHouse/ClickHouse/pull/107956) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` ("عدم تطابق بنية block ... بين `ConvertingTransform` و`RemovingReplicatedColumnsTransform`") عند الإدراج في materialized view يكون جدول `TO` الهدف فيها يعرّف عمودًا من نوع `Enum` أوسع مما ينتجه `SELECT` الخاص بالعرض. ويُطبَّق الآن توسيع `Enum` الصحيح. [#107648](https://github.com/ClickHouse/ClickHouse/pull/107648) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح الخطأ `NUMBER_OF_COLUMNS_DOESNT_MATCH` عند الاستعلام عن جدول `Distributed` (أو عند استخدام parallel replicas) يحتوي على عدة أعمدة `ALIAS` تتوسع إلى التعبير نفسه، مع الإشارة إليها معًا في `ORDER BY`/`GROUP BY`/`HAVING`. [#107913](https://github.com/ClickHouse/ClickHouse/pull/107913) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* تم إصلاح سلوك غير معرّف (تمرير مؤشر NULL إلى `memcpy`) في الدالتين `detectCharset` و`detectLanguageUnknown` عندما تكون سلسلة الإدخال أكبر من 32768 بايت ولا يمكن اكتشاف أي character set. [#108250](https://github.com/ClickHouse/ClickHouse/pull/108250) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `signed integer overflow` (سلوك غير معرّف) في `dateDiff` مع الوحدتين `hour` و`minute` عند قيم `DateTime64` القصوى القريبة من حدود نطاق `Int64`. [#108229](https://github.com/ClickHouse/ClickHouse/pull/108229) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `Too many marks` في text index على merged part فارغ. [#106867](https://github.com/ClickHouse/ClickHouse/pull/106867) ([Azat Khuzhin](https://github.com/azat)).
* تم إصلاح `LOGICAL_ERROR` ("نوع إرجاع غير متوقع من if") عند قراءة عمود مع `apply_mutations_on_fly = 1` بعد `ALTER UPDATE col = ... WHERE <cond>` مع condition غير ثابت أو false، يتبعه `ALTER MODIFY COLUMN col <new type>`. [#108128](https://github.com/ClickHouse/ClickHouse/pull/108128) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح إيقاف server (`Logical error` في `IColumn::insertFrom`) عند تحويل `Array(Dynamic)` أو `Array(Variant)` إلى `QBit` باستخدام `accurateCastOrNull`، مثل `accurateCastOrNull(CAST(range(114), 'Array(Dynamic)'), 'QBit(Float32, 114)')`. [#108288](https://github.com/ClickHouse/ClickHouse/pull/108288) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح خطأ نحوي عند ورود alias بعد subquery في `DESCRIBE TABLE (...) AS ...`. [#100205](https://github.com/ClickHouse/ClickHouse/pull/100205) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* يُعامَل `getClientHTTPHeader` الآن بشكل صحيح على أنه non-deterministic، لذلك لم تعد نتيجة استعلامه تُعاد الاستفادة منها بشكل غير صحيح بواسطة query result cache. [#108029](https://github.com/ClickHouse/ClickHouse/pull/108029) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* ابنِ `delta-kernel-rs` باستخدام الميزة `default-engine-native-tls` لكي يتمكن عميل HTTP الخاص به (`reqwest`) من إعادة استخدام OpenSSL المرتبط مسبقًا بـ ClickHouse. وهذا ليس سوى تفعيل جزئي لـ `native-tls`: إذ لا يزال `object_store` يفرض `reqwest/rustls-tls-native-roots`، لذا ينتهي الأمر بـ `reqwest` باستخدام الواجهتين الخلفيتين `native-tls` و`rustls` معًا. ويظل `delta-kernel-rs` معطّلًا تحت MSan في الوقت الحالي لأن `ring` لا يزال يُصرَّف عبر `object_store` (سواءً بصورة غير مباشرة عبر `rustls` أو مباشرةً لتوقيع HMAC لطلبات AWS)، كما أن شيفرة التجميع المكتوبة يدويًا فيه لا تُنشئ الرموز التي يتطلبها MSan (ويجري تتبّع ذلك في المشروع الأصلي على [arrow-rs-object-store#585](https://github.com/apache/arrow-rs-object-store/pull/585)). [#96856](https://github.com/ClickHouse/ClickHouse/pull/96856) ([Austin Bonander](https://github.com/abonander)).
* أضف تحسين PGO (التحسين الموجَّه بملفات التعريف) وBOLT (أداة تحسين الثنائيات وتخطيطها) بعد الربط للملف التنفيذي `clickhouse`. تُجمَع ملفات التعريف من أعباء عمل CI وتُطبَّق كخطوة بأفضل جهد أثناء إصدارات البناء — وتعود كلتا المرحلتين إلى مخرجات غير مُحسَّنة إذا كان ملف التعريف قديمًا أو غير متوافق. وحتى الآن، لا توجد فوائد من PGO. [#100938](https://github.com/ClickHouse/ClickHouse/pull/100938) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أضف وضع `--storage` إلى `clickhouse keeper-bench` لإجراء اختبارات الأداء على `KeeperStorage` داخل العملية (`in-process`) (من دون شبكة، ومن دون raft، ومن دون state machine)، باستخدام قسمي الإعداد `setup` و`generator` نفسيهما كما في وضع الشبكة. [#103081](https://github.com/ClickHouse/ClickHouse/pull/103081) ([Michael Kolupaev](https://github.com/al13n321)).
* أصلِح البناء مع `ENABLE_AWS_S3=OFF`. [#105390](https://github.com/ClickHouse/ClickHouse/pull/105390) ([Yue Ni](https://github.com/niyue)).
* حدِّث `mongo-cxx-driver` إلى r4.3.0. [#105522](https://github.com/ClickHouse/ClickHouse/pull/105522) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* أصلِح البناء مع RapidJSON. [#105674](https://github.com/ClickHouse/ClickHouse/pull/105674) ([Ilya Golshtein](https://github.com/ilejn)).
* سرِّع البناء بإزالة التضمينات غير المباشرة من ترويسات `base/` واسعة الاستخدام، وحذف الشيفرة غير المستخدمة من `Poco/Logger.h` المضمَّن. [#105702](https://github.com/ClickHouse/ClickHouse/pull/105702) ([Raúl Marín](https://github.com/Algunenano)).
* تم تحديث `libxml2` من 2.15.1 إلى 2.15.3. [#105985](https://github.com/ClickHouse/ClickHouse/pull/105985) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدم `expat` 2.8.1 داخل Poco. [#105988](https://github.com/ClickHouse/ClickHouse/pull/105988) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* ارفع `thrift` إلى `v0.23.0`. [#105993](https://github.com/ClickHouse/ClickHouse/pull/105993) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدم الوسم `REL_18_4` الخاص بـ `postgres`. [#105994](https://github.com/ClickHouse/ClickHouse/pull/105994) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* رقِّ `krb5` إلى 1.22.2. [#106076](https://github.com/ClickHouse/ClickHouse/pull/106076) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* حدِّث نسخة `curl` المضمَّنة إلى 8.20.0. [#106077](https://github.com/ClickHouse/ClickHouse/pull/106077) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* رُقِّي `mariadb-connector-c` إلى 3.1.29. مع الحفاظ على جميع التصحيحات ذات الصلة بـ ClickHouse. [#106287](https://github.com/ClickHouse/ClickHouse/pull/106287) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* رُقِّيَت بصمات base image الخاصة بـ distroless لمعالجة ثغرات CVE في libssl3t64. [#106360](https://github.com/ClickHouse/ClickHouse/pull/106360) ([Rahul Nair](https://github.com/motsc)).
* استخدام `wasmtime` بالإصدار 45.0.1. [#106836](https://github.com/ClickHouse/ClickHouse/pull/106836) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* رُقِّي `openssl` إلى 3.5.7. [#106844](https://github.com/ClickHouse/ClickHouse/pull/106844) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* أصبح build الخاص بـ Distroless Docker يحدّث أيضًا الوسوم العائمة `:X.Y-distroless` و `:X.Y.Z-distroless`، وليس وسم الإصدار الكامل فقط. [#106932](https://github.com/ClickHouse/ClickHouse/pull/106932) ([Rahul Nair](https://github.com/motsc)).
* تعطيل ميزات `curl` غير المستخدمة، مثل مصادقة NTLM وملفات تعريف الارتباط و alt-svc و HSTS و DNS-over-HTTPS و netrc و MIME و AWS SigV4. [#107226](https://github.com/ClickHouse/ClickHouse/pull/107226) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* جرى تحديث `NuRaft` بإصلاح لحالة livelock أثناء تثبيت snapshot كانت تحدث عند تنفيذ snapshot IO على الخيط الخلفي. ويظل إعداد Keeper ‏`nuraft_use_bg_thread_for_snapshot_io` معطّلًا افتراضيًا؛ ويقوم CI الآن بتعيين قيم عشوائية له لتغطية كلا الوضعين. [#107338](https://github.com/ClickHouse/ClickHouse/pull/107338) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح build ‏`abseil` عندما يحتوي مسار checkout الخاص بـ ClickHouse على substring تطابق extension لترويسة. [#107349](https://github.com/ClickHouse/ClickHouse/pull/107349) ([zhiqiang](https://github.com/zhiqiang-hhhh)).
* تحديد cache size لذاكرة L2 من `CPUID` على x86\_64 بدلًا من `sysconf(_SC_LEVEL2_CACHE_SIZE)` الخاص بـ glibc، إذ لا يتوفر تحت musl libc. [#107469](https://github.com/ClickHouse/ClickHouse/pull/107469) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* زيادة حجم stack في builds الخاصة بـ musl إلى 8 MiB لدعم queries المتداخلة بعمق. [#107470](https://github.com/ClickHouse/ClickHouse/pull/107470) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* اشتقاق مجموعة رموز مكتبة C المترجَمة محليًا في مكتبات Rust الثابتة من المكتبات المرجعية الفعلية بدلًا من قائمة سماح تُدار يدويًا، بحيث تشمل جميع builtins الخاصة بـ compiler-rt ودوال libm الخاصة بالمنصة. [#107571](https://github.com/ClickHouse/ClickHouse/pull/107571) ([Raúl Marín](https://github.com/Algunenano)).
* تحويل imageَي server و Keeper من distroless إلى `gcr.io/distroless/base-nossl-debian13` بحيث لا يضمّان إلا المكتبات التي يرتبط بها ClickHouse فعليًا، مع التوقف عن pulling المكتبات التي نربطها نحن ربطًا ثابتًا. [#107837](https://github.com/ClickHouse/ClickHouse/pull/107837) ([Rahul Nair](https://github.com/motsc)).
* إعادة تفعيل 50 من الاختبارات عديمة الحالة على macOS (`arm_darwin`) التي كان يجري تخطيها لأنها stale، واستخدام `fsync` بدلًا من `F_FULLFSYNC` لمزامنة directory على macOS. [#107887](https://github.com/ClickHouse/ClickHouse/pull/107887) ([Raúl Marín](https://github.com/Algunenano)).

<div id="265">
  ### إصدار ClickHouse 26.5، 2026-05-21. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.5/)، [الفيديو](https://www.youtube.com/watch?v=P1IDAvsi7p8)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* تم تغيير القيم الافتراضية لكلٍّ من `date_time_input_format` و`cast_string_to_date_time_mode` من `basic` إلى `best_effort`. وقد تنجح الآن افتراضيًا الاستعلامات التي كانت تفشل سابقًا في تحليل سلاسل datetime غير الأساسية (مثل `2024 April 4` و`Apr 15, 2020 10:30:00`). وللاحتفاظ بسلوك التحليل الصارم السابق، اضبط هذين الإعدادين على `basic` (أو استخدم `compatibility`). [#89334](https://github.com/ClickHouse/ClickHouse/pull/89334) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح اسم عنصر Tuple وهو `null` محظورًا الآن لأنه يتعارض مع اسم subcolumn المستخدم لخرائط null في Nullable، مما يؤدي إلى التباس في تحديد subcolumn. [#98377](https://github.com/ClickHouse/ClickHouse/pull/98377) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة الإعدادات `dynamic_disk_allow_from_env` و`dynamic_disk_allow_from_zk` و`dynamic_disk_allow_include` لمنع استخدام `from_env` و`from_zk` و`include` في dynamic disks. ويُعدّ هذا تغييرًا غير متوافق مع الإصدارات السابقة لأنه يحظر افتراضيًا سلوكًا كان مسموحًا به افتراضيًا من قبل. [#99138](https://github.com/ClickHouse/ClickHouse/pull/99138) ([Kseniia Sumarokova](https://github.com/kssenii)).
* لم يعد بإمكانك استخدام Parquet reader وwriter القديمين المعتمدين على Arrow. وسيُستخدم التنفيذ native بدلًا من ذلك. [#100949](https://github.com/ClickHouse/ClickHouse/pull/100949) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `SHOW CREATE TABLE t` يفضّل الآن temporary table عندما توجد table دائمة وtemporary table كلتاهما باسم `t` ولم يتم تحديد database، بما يتوافق مع السلوك الحالي لـ `DESCRIBE TABLE`. بالإضافة إلى ذلك، أصبح syntax الخاص بـ `DESCRIBE TEMPORARY TABLE` مدعومًا الآن. [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم خفض القيمة الافتراضية لـ `http_max_fields` من 1,000,000 إلى 1,000 و`http_max_field_name_size` من 128 KB إلى 4 KB للحد من memory usage قبل authentication بواسطة HTTP connections. وتمت إضافة الإعدادين `http_max_request_header_size` و`http_headers_read_timeout`. ويمكن للمستخدمين الذين يعتمدون على الحدود الأعلى السابقة استعادة هذه القيم عبر الإعدادات. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).
* تمت إضافة column متداخلة باسم `histograms` إلى `system.metric_log` تلتقط snapshot لكل مُدرَّج تكراري metric مسجلة في كل row، مع إعداد جديد هو `system_metric_log_show_zero_values_in_histograms` للتحكم في إخراج القيم الصفرية. وهذا يجعل table ‏`system.histogram_metric_log` مهملة. [#103770](https://github.com/ClickHouse/ClickHouse/pull/103770) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أصبح `CAST` إلى `DateTime` أو `DateTime64` من دون time zone صريحة يحافظ الآن على time zone الخاصة بـ argument المصدر (عندما يكون المصدر من نوع `DateTime`/`DateTime64` مع time zone صريحة)، بما يتوافق مع سلوك الدالتين `toDateTime`/`toDateTime64`. يُغلق [#55072](https://github.com/ClickHouse/ClickHouse/issues/55072). [#104433](https://github.com/ClickHouse/ClickHouse/pull/104433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُزيلت table function ‏`kql`. استخدم `SET dialect = 'kusto'` لتشغيل الاستعلامات بلهجة KQL. [#105101](https://github.com/ClickHouse/ClickHouse/pull/105101) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت window functions ‏`RANK` و`DENSE_RANK` ترفض arguments وتُطلق `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`، بما يتوافق مع معيار SQL. في السابق، كانت الاستعلامات مثل `RANK(x) OVER (ORDER BY id)` تُقبل بصمت مع تجاهل argument. ولاستعادة السلوك المتساهل السابق، اضبط `allow_rank_dense_rank_arguments = 1`. يُغلق [#49526](https://github.com/ClickHouse/ClickHouse/issues/49526). [#104324](https://github.com/ClickHouse/ClickHouse/pull/104324) ([Groene AI](https://github.com/groeneai)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* أُضيف إعداد جديد `max_bytes_ratio_before_external_join`، مماثلًا لـ `max_bytes_ratio_before_external_group_by` و`max_bytes_ratio_before_external_sort`. ويعبّر عن عتبة النقل إلى disk لعمليات hash join كنسبة من الذاكرة المتاحة؛ وعند استخدامه مع القيمة المطلقة `max_bytes_before_external_join`، تُطبَّق العتبة الأصغر الناتجة. [#103862](https://github.com/ClickHouse/ClickHouse/pull/103862) ([Alexey Milovidov](https://github.com/alexey-milovidov)). أصبح الإعداد `max_bytes_ratio_before_external_join` مفعّلًا افتراضيًا الآن بالقيمة 0.5، على غرار `max_bytes_ratio_before_external_group_by` و`max_bytes_ratio_before_external_sort`. وتنتقل عمليات hash join تلقائيًا إلى grace hash join بمجرد أن تتجاوز بيانات الجانب الأيمن نصف ذاكرة النظام المتاحة (عند تهيئة حدود الذاكرة). [#104285](https://github.com/ClickHouse/ClickHouse/pull/104285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت table function `filesystem`. وهي تتيح تمثيل بنية directory على شكل table، والاستعلام عن metadata الملفات ومحتوياتها باستخدام SQL. طُرحت في الأصل في [#42039](https://github.com/ClickHouse/ClickHouse/pull/42039) بواسطة @perst20. راجع [#42039](https://github.com/ClickHouse/ClickHouse/issues/42039). وراجع [#50208](https://github.com/ClickHouse/ClickHouse/issues/50208). [#53610](https://github.com/ClickHouse/ClickHouse/pull/53610) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح من الممكن تمرير أسماء الدوال مباشرةً إلى الدوال عالية الرتبة مثل `arrayMap` و`arrayFilter` وغيرها. على سبيل المثال، أصبح `arrayMap(negate, [1, 2, 3])` الآن مكافئًا لـ `arrayMap(x -> negate(x), [1, 2, 3])`. [#101033](https://github.com/ClickHouse/ClickHouse/pull/101033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الإعداد `send_table_structure_on_insert_with_inline_data` وخيار client ‏`--inline-insert-data` للسماح لـ server بتحليل بيانات INSERT المضمّنة بنفسه عبر native protocol، ما يجنّب جولة الذهاب والإياب اللازمة لاستقبال بنية table ويحسّن الأداء عند وجود عدد كبير من عمليات insert الصغيرة. [#101034](https://github.com/ClickHouse/ClickHouse/pull/101034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت الدالتان `tokenizeQuery` و`highlightQuery` لتجزئة SQL query إلى tokens وإبراز الصياغة. تُرجع `tokenizeQuery` tokens الخاصة بالمحلل المعجمي مع offsets بالبايت وأنواع tokens؛ وتُرجع `highlightQuery` ranges لإبراز الصياغة استنادًا إلى parser، مع فئات الإبراز (keyword وidentifier وfunction وnumber وstring وغير ذلك). [#101054](https://github.com/ClickHouse/ClickHouse/pull/101054) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الإعداد `url_base` لحل relative URLs في table function ‏`url` وtable engine ‏`URL`، وفق دلالات RFC 3986. [#101113](https://github.com/ClickHouse/ClickHouse/pull/101113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف دعم القيم السالبة في clause ‏`LIMIT BY` لاختيار rows من *نهاية* كل مجموعة بدلًا من بدايتها. على سبيل المثال، يعيد `LIMIT -2 BY id` آخر صفّين لكل `id`. كما أن offsets السالبة (`LIMIT -1 OFFSET -1 BY id`) والإشارات المختلطة (`LIMIT -2 OFFSET 1 BY id`) مدعومة أيضًا. [#103222](https://github.com/ClickHouse/ClickHouse/pull/103222) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أُضيف دعم للدالة `json_value` للإخراج باستخدام `tuple` و`array` لتحسين أداء استعلامات JSON المتعددة. [#78362](https://github.com/ClickHouse/ClickHouse/pull/78362) ([kevinyhzou](https://github.com/KevinyhZou)). وأُضيف أيضًا دعم وسيط JSONPath متعدد المسارات من نوع `Tuple`/`Array` في `JSON_VALUE` و`JSON_EXISTS` و`JSON_QUERY`، بواسطة @KevinyhZou. [#101102](https://github.com/ClickHouse/ClickHouse/pull/101102) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت مَعلمة جديدة باسم `kafka_autodetect_client_rack`. عند ضبطها، يُكتشف Availability Zone عبر إمكانات السحابة ويُمرَّر على أنه المَعلمة `client.rack` في `librdkafka` لتجنّب الاتصالات العابرة للمناطق. [#81323](https://github.com/ClickHouse/ClickHouse/pull/81323) ([Ilya Golshtein](https://github.com/ilejn)).
* أُضيف نوع الحدث `Read` إلى `system.blob_storage_log` لتتبّع عمليات القراءة من object storage، ويتحكم فيه الإعداد الجديد `enable_blob_storage_log_for_read_operations`. [#96867](https://github.com/ClickHouse/ClickHouse/pull/96867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن للمستخدمين الآن الاطّلاع على watches الخاصة بـ ZooKeeper التي يُصدرها `clickhouse-server` باستخدام الجدول الجديد `system.zookeeper_watches`. [#99277](https://github.com/ClickHouse/ClickHouse/pull/99277) ([Den Kalantaevskii](https://github.com/Diskein)).
* أُضيف حدث ملف التعريف `Shards` الذي يحسب عدد shards المشاركة في distributed queries، مع جمعها عبر جميع الجداول. [#99470](https://github.com/ClickHouse/ClickHouse/pull/99470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن الآن تعريف دوال `WASM` المعرّفة من المستخدم على أنها `DETERMINISTIC`، لتخضع لطيّ الثوابت. [#100005](https://github.com/ClickHouse/ClickHouse/pull/100005) ([Vasily Chekalkin](https://github.com/bacek)).
* أُضيف الإعداد `parallel_replicas_prefer_local_replica`: عند تعطيله، تُختار parallel replicas بالكامل وفقًا لخوارزمية load balancing، مما يتيح توجيه الاستعلامات حتى مع `max_parallel_replicas = 1` إلى مضيف آخر. [#100139](https://github.com/ClickHouse/ClickHouse/pull/100139) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيفت إعدادات الخادم `{disk,storage,http}_connections_rcvbuf` و`{disk,storage,http}_connections_sndbuf` للتحكم في أحجام مخازن مقابس TCP على اتصالات HTTP الصادرة، بما يتيح للمشغّلين تجاوز autotuning الخاص بالنواة ووضع حدّ لاستخدام الذاكرة لكل اتصال. [#100478](https://github.com/ClickHouse/ClickHouse/pull/100478) ([Sema Checherinda](https://github.com/CheSema)).
* دعم `CREATE OR REPLACE MATERIALIZED VIEW` بنفس دلالات الاستبدال الذرّي الخاصة بـ `CREATE OR REPLACE TABLE`. يعمل ذلك مع الجداول الداخلية، وجداول `TO`، و`POPULATE`، و`REFRESH`، و`ON CLUSTER`. [#100539](https://github.com/ClickHouse/ClickHouse/pull/100539) ([DQ](https://github.com/il9ue)).
* أُضيفت histogram metrics `s3_read_request_duration_microseconds` و`s3_read_request_bytes` لمراقبة مدة اتصال طلبات GET إلى S3 وحجم البايتات المستهلكة، وهي متاحة في `system.histogram_metrics` وعبر Prometheus endpoint. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* أُضيفت table engines `Paimon` و`PaimonS3` و`PaimonAzure` و`PaimonHDFS` و`PaimonLocal` مع دعم Incremental read بالاستناد إلى تتبّع تقدّم snapshots الخاصة بـ Keeper. يعيد الوضع التزايدي الصفوف الجديدة فقط منذ آخر snapshot معتمدة. كما تتوفر قراءات delta موجَّهة للّقطات عبر `paimon_target_snapshot_id`، وحدود snapshots لكل استعلام عبر `max_consume_snapshots`. ويمكن ضبط metadata refresh في الخلفية عبر `paimon_metadata_refresh_interval_sec`. ويخضع ذلك للإعداد `allow_experimental_paimon_storage_engine`. [#102343](https://github.com/ClickHouse/ClickHouse/pull/102343) ([XiaoBinMu](https://github.com/Binnn-MX)).
* أُضيف إعداد جديد لجدول Kafka باسم `kafka_map_virtual_columns_on_write`. عند تفعيله، تُنتَج الأعمدة المسماة `_key` و`_timestamp` و`_headers.name` و`_headers.value` في مخطط Kafka table على أنها مفتاح رسالة Kafka والطابع الزمني وheaders المقابلة عند `INSERT`، وتُستبعَد من message payload. [#103243](https://github.com/ClickHouse/ClickHouse/pull/103243) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف الاستعلامان `SYSTEM PAUSE VIEW [db.]name` و`SYSTEM PAUSE VIEWS` للعروض المادية القابلة للتحديث. وعلى خلاف `SYSTEM STOP VIEW`، لا يقطع `SYSTEM PAUSE VIEW` عملية التحديث الجارية حاليًا — إذ يُسمح للتحديث قيد التنفيذ بأن يكتمل، ولا تُمنَع إلا عمليات التحديث اللاحقة. ويمكن التراجع عن ذلك باستخدام `SYSTEM START VIEW` أو `SYSTEM START VIEWS`، اللذين يزيلان الآن، بصورة موحّدة، حالتي الإيقاف والإيقاف المؤقت معًا. [#103252](https://github.com/ClickHouse/ClickHouse/pull/103252) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* أُضيفت الدالة `regexpPosition` (مع الأسماء البديلة المتوافقة مع PostgreSQL: `regexpInstr` و`regexp_instr`) التي تُرجع موضع البايت للمطابقة رقم N للتعبير النمطي داخل سلسلة نصية. وهي تدعم إزاحة البداية، ووضع الإرجاع بعد المطابقة، وأعلام التعبير النمطي، واختيار مجموعة الالتقاط. [#104172](https://github.com/ClickHouse/ClickHouse/pull/104172) ([Abhinav Agarwal](https://github.com/aagarwal-gtr)).
* أُضيفت الدالتان الجديدتان `isPrime` و`isProbablePrime` للتحقق من أولية الأعداد. تُرجع `isPrime` نتيجة دقيقة للأعداد الصحيحة غير الموقعة حتى `UInt64`. كما تدعم `isProbablePrime` أيضًا `UInt128` و`UInt256`؛ وبالنسبة إلى هذه الأنواع الأوسع، فإن `0` تعني أن العدد مركب قطعًا، و`1` تعني أنه أولي على الأرجح. وتتحكم الوسيطة الاختيارية الثانية في `isProbablePrime`، وهي `rounds`، بدرجة الثقة (بحد أقصى `256`)؛ إذ يحد الإعداد الافتراضي البالغ `25` جولة من معدل الإيجابيات الكاذبة لعدد مركب عشوائي إلى أقل من `10^-15`، كما يمكن إلغاء `isProbablePrime`. [#104234](https://github.com/ClickHouse/ClickHouse/pull/104234) ([Nihal Z. Miaji](https://github.com/nihalzp)). [#104639](https://github.com/ClickHouse/ClickHouse/pull/104639) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#104806](https://github.com/ClickHouse/ClickHouse/pull/104806) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أصبح `clear` و`/clear` الآن يمسحان الطرفية في أدوات سطر الأوامر الخاصة بـ ClickHouse بدلًا من تنفيذهما على أنهما استعلام خاطئ. [#104318](https://github.com/ClickHouse/ClickHouse/pull/104318) ([Tyler Hannan](https://github.com/tylerhannan)).
* أصبح يُسمح الآن لدالة الجدول `file` بقبول `Array(String)` من المسارات في استعلامات `SELECT`. [#104442](https://github.com/ClickHouse/ClickHouse/pull/104442) ([Yue](https://github.com/niyue)).
* أُضيف العمودان `deterministic` و`higher_order` إلى جدول `system.functions`. [#104479](https://github.com/ClickHouse/ClickHouse/pull/104479) ([Pedro Ferreira](https://github.com/PedroTadim)).
* أُضيف مُعامِل اختياري لمتغير الترميز إلى `bech32Encode` (`bech32` / `bech32m`) ووضع فك ترميز خام إلى `bech32Decode` لترميز العناوين غير الخاصة بـ SegWit (مثل Cosmos SDK وInjective وOsmosis). [#98986](https://github.com/ClickHouse/ClickHouse/pull/98986) ([Yash ](https://github.com/Onyx2406)).
* يمكنك الآن كتابة البيانات بتنسيق `AvroConfluent`، الذي كان سابقًا مخصصًا للإدخال فقط. يتيح ذلك إنتاج رسائل Avro مؤطّرة بواسطة Confluent Schema Registry مباشرةً من ClickHouse، مثلًا عند الكتابة إلى Kafka. ويُسجَّل المخطط تلقائيًا في سجل المخططات. استخدم الإعداد الجديد `output_format_avro_confluent_subject` لتحديد اسم الـ subject. [#101935](https://github.com/ClickHouse/ClickHouse/pull/101935) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* أُضيفت الدالة `prettyPrintJSON` لتنسيق سلسلة JSON إلى صيغة مقروءة للبشر. وهي مفيدة للوحات المعلومات أو التقارير، حيث كان تحسين التنسيق يتطلب سابقًا خطوة إضافية على جانب العميل. ويغلق ذلك [#62523](https://github.com/ClickHouse/ClickHouse/issues/62523). [#102594](https://github.com/ClickHouse/ClickHouse/pull/102594) ([Dmitry Prokofyev](https://github.com/prokofyevDmitry)).
* تمت إضافة `STRING_AGG` كاسم مستعار غير حساس لحالة الأحرف لـ `groupConcat` للتوافق مع PostgreSQL / معيار SQL. [#105125](https://github.com/ClickHouse/ClickHouse/pull/105125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح الآن بالإمكان تخزين نتائج كل استعلام فرعي مؤقتًا بشكل مستقل باستخدام `SETTINGS use_query_cache = true` في استعلامات فرعية محددة، من دون تخزين الاستعلام الخارجي بالكامل مؤقتًا. كما يتيح الإعداد الجديد `query_cache_for_subqueries = true` تعميم `use_query_cache` على جميع الاستعلامات الفرعية دفعةً واحدة. ملاحظة: لم يعد `use_query_cache` في الاستعلام الخارجي يُطبَّق تلقائيًا على الاستعلامات الفرعية. [#99804](https://github.com/ClickHouse/ClickHouse/pull/99804) ([Vincent Voyer](https://github.com/vvo)).
* تمت إضافة تمييز الصياغة البرمجية المعتمد على المحلّل المعجمي إلى محرر الاستعلامات في واجهة الويب (`play.html`)، على غرار ألوان `clickhouse-client`. [#105105](https://github.com/ClickHouse/ClickHouse/pull/105105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* أُضيفت واجهة طرفية تجريبية عبر الويب عند `/webterminal` توفّر جلسة `clickhouse-client` تفاعلية في المتصفح عبر WebSocket. وهي معطّلة افتراضيًا؛ ويمكن تفعيلها باستخدام إعداد الخادم `allow_experimental_webterminal`. اطّلع عليها [هنا](https://play.clickhouse.com/webterminal?user=play). [#100277](https://github.com/ClickHouse/ClickHouse/pull/100277) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105191](https://github.com/ClickHouse/ClickHouse/pull/105191) ([Alexey Milovidov](https://github.com/alexey-milovidov)). [#105059](https://github.com/ClickHouse/ClickHouse/pull/105059) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح المحرّك `Kafka2` (تجريبي، مع تخزين الإزاحات المستند إلى Keeper) يدعم الآن استعلامات `SELECT` المباشرة والإعداد `kafka_commit_on_select`. [#100276](https://github.com/ClickHouse/ClickHouse/pull/100276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن الآن لـ UDFs الخاصة بـ `WASM` إجراء تحويل قسري لمزيد من الأنواع العددية: من الأعداد الصحيحة الأصغر إلى الأعداد الصحيحة الأوسع (مثل `Int8` إلى `UInt64`)، ومن أي عدد صحيح إلى عدد ذي فاصلة عائمة (مثل `Int32` إلى `Float32`). [#100435](https://github.com/ClickHouse/ClickHouse/pull/100435) ([Vasily Chekalkin](https://github.com/bacek)).
* إضافة دعم الدالة `LIKE` في استعلام `DELETE FROM system.webassembly_modules`. [#104397](https://github.com/ClickHouse/ClickHouse/pull/104397) ([Vladimir Cherkasov](https://github.com/vdimir)).
* دعم الأنواع الجغرافية في `Iceberg`. [#103113](https://github.com/ClickHouse/ClickHouse/pull/103113) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إضافة دعم العبارات المُحضّرة إلى خادم ArrowFlight SQL. [#103047](https://github.com/ClickHouse/ClickHouse/pull/103047) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* تحسين متانة محلّل KQL (لدعم لغة Kusto) عبر الحفاظ على عمق المحلّل وعدادات التراجع عبر مراحل محلّل KQL، بحيث تُتتبَّع حدود المحلّل بصورة متسقة في استعلامات KQL المعقّدة. [#103528](https://github.com/ClickHouse/ClickHouse/pull/103528) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* أَعِد استخدام metadata cache الخاصة بتذييل Parquet عند قراءة ملفات Parquet المحلية عبر table function ‏`file` أو table engine ‏`File`. سابقًا، لم يكن يُستفاد من هذه cache إلا مع backends الخاصة بـ object storage. [#104260](https://github.com/ClickHouse/ClickHouse/pull/104260) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* مرِّر `ORDER BY ... LIMIT n` عبر عمليات JOIN من نوع `LEFT`/`RIGHT` عندما لا يشير مفتاح الفرز إلا إلى columns من الجانب الذي يحتفظ به JOIN، ما يقيِّد عدد rows التي يجب أن يُنتجها الإدخال من ذلك الجانب قبل تنفيذ JOIN. ويتحكم في ذلك الإعداد الجديد `query_plan_top_k_through_join` (مُمكَّن افتراضيًا). [#104268](https://github.com/ClickHouse/ClickHouse/pull/104268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* فعِّل الإعدادين `use_top_k_dynamic_filtering` و`use_skip_indexes_for_top_k` افتراضيًا لتحسين أداء queries من نوع `ORDER BY ... LIMIT N`. [#99537](https://github.com/ClickHouse/ClickHouse/pull/99537) ([Alexey Milovidov](https://github.com/alexey-milovidov)). واقصر `use_top_k_dynamic_filtering` افتراضيًا على columns الفرز ذات الطول الثابت، لتجنّب التراجعات في queries من نوع `ORDER BY <var-length-column> LIMIT N` عندما تتجاوز تكلفة مقارنة threshold لكل row وفورات I/O. ويظل السلوك السابق متاحًا عبر الإعداد الجديد `use_top_k_dynamic_filtering_for_variable_length_types`. [#104216](https://github.com/ClickHouse/ClickHouse/pull/104216) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استخدم ميزة oversize-arena في `jemalloc` لتقليل أخطاء الصفحات. [#103958](https://github.com/ClickHouse/ClickHouse/pull/103958) ([Nikita Taranov](https://github.com/nickitat)).
* قلِّل عدد streams النشطة بالتزامن في `UNION ALL` لتقليل Peak memory usage. [#100176](https://github.com/ClickHouse/ClickHouse/pull/100176) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* حسِّن userspace page cache قليلًا. [#100300](https://github.com/ClickHouse/ClickHouse/pull/100300) ([Alexey Milovidov](https://github.com/alexey-milovidov)). والآن أصبحت userspace page cache أفضل دائمًا من OS page cache.
* أصبحت cold reads من object storage عبر userspace page cache (`use_page_cache_for_object_storage = 1`) أسرع بكثير، لأن حالات الإخفاق المتتالية في cache تُدمج الآن في HTTP request واحد بدلًا من طلب واحد لكل block بحجم `page_cache_block_size`. [#104230](https://github.com/ClickHouse/ClickHouse/pull/104230) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* سرِّع index analysis الذي يتضمن CAST وتطبيق FUNCTION. يُغلق [#55653](https://github.com/ClickHouse/ClickHouse/issues/55653). [#100366](https://github.com/ClickHouse/ClickHouse/pull/100366) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* سرِّع queries الضخمة على جداول `Merge` عبر عدد هائل من underlying tables. يُغلق [#32465](https://github.com/ClickHouse/ClickHouse/issues/32465). [#100369](https://github.com/ClickHouse/ClickHouse/pull/100369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أزِل `vtable` من types حقول الإعدادات، ما يقلّل حجم نسخ `Settings` بنحو 28x ويحسّن تموضع cache عبر typed-array layout لجميع أنواع الإعدادات. [#102269](https://github.com/ClickHouse/ClickHouse/pull/102269) ([Raúl Marín](https://github.com/Algunenano)).
* أضِف الإعدادين `max_threads_min_free_memory_per_thread` و`max_insert_threads_min_free_memory_per_thread` لتقليل query parallelism تلقائيًا عندما تنخفض الذاكرة الحرة على server. [#100383](https://github.com/ClickHouse/ClickHouse/pull/100383) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قلِّل memory usage على الأنظمة منخفضة الذاكرة (\< 4 GiB). [#100389](https://github.com/ClickHouse/ClickHouse/pull/100389) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `OptimizeTrivialGroupByLimitPass`. في استعلامات `SELECT ... FROM t GROUP BY k LIMIT n` البسيطة (من دون `HAVING` أو `ORDER BY` أو دوال النوافذ)، يضبط المحلل الآن `max_rows_to_group_by = n + offset` مع `group_by_overflow_mode = 'any'`، بحيث يتوقف التجميع بمجرد إنتاج `n` مفاتيح مميزة بدلًا من تجميع كامل الإدخال. ويتحكم في ذلك الإعداد الجديد `optimize_trivial_group_by_limit_query` (مُمكَّن افتراضيًا). [#104473](https://github.com/ClickHouse/ClickHouse/pull/104473) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* فهرس min-max ضمني على مستوى الـ granule للعمودين الافتراضيين `_part_offset` و `_block_number`، بما في ذلك الإسقاطات. يتيح استبعادًا سريعًا للـ granules استنادًا إلى شروط الأعمدة الافتراضية. [#103952](https://github.com/ClickHouse/ClickHouse/pull/103952) ([Mikhail Artemenko](https://github.com/Michicosun)). [#104746](https://github.com/ClickHouse/ClickHouse/pull/104746) ([Mikhail Artemenko](https://github.com/Michicosun)). [#105137](https://github.com/ClickHouse/ClickHouse/pull/105137) ([Mikhail Artemenko](https://github.com/Michicosun)).
* بالنسبة إلى عائلة أساليب التجميع `prealloc_serialized`، تُحسب قيم hash لكل صف مسبقًا أثناء تمريرة التسلسل الدفعي، ثم تُستخدم من أجل (أ) تجنب إعادة حساب hash في `emplaceKey`/`findKey` و(ب) إجراء software prefetch لـ bucket الخاصة بالصف التالي. يسرّع ذلك التجميع متعدد المفاتيح للسلاسل/البيانات المُسلسلة عبر تقليل زمن الانتظار الناتج عن إخفاقات cache في hash table. [#104475](https://github.com/ClickHouse/ClickHouse/pull/104475) ([Amos Bird](https://github.com/amosbird)) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* query condition cache لجداول `Iceberg`. [#102115](https://github.com/ClickHouse/ClickHouse/pull/102115) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تحسين `cramersV` و`cramersVBiasCorrected` و`theilsU` و`contingency` عند استخدامها مع دوال النوافذ. يُغلق [#83521](https://github.com/ClickHouse/ClickHouse/issues/83521). [#93384](https://github.com/ClickHouse/ClickHouse/pull/93384) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أُضيف تحسين للاستعلامات يعيد كتابة `tupleElement(dictGet('dict', ('a', 'b', 'c'), key), N)` إلى `dictGet('dict', 'a', key)`، ما يتجنب جلب سمات Dictionary غير الضرورية. ويتحكم في ذلك الإعداد `optimize_dictget_tuple_element` (مُمكَّن افتراضيًا). [#100186](https://github.com/ClickHouse/ClickHouse/pull/100186) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تفعيل buffering لخطوات الفرز على initiator من أجل distributed queries التي تتضمن فرزًا. [#100661](https://github.com/ClickHouse/ClickHouse/pull/100661) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين في الأداء لـ `partial_merge` JOIN. [#100945](https://github.com/ClickHouse/ClickHouse/pull/100945) ([Artem Zuikov](https://github.com/4ertus2)).
* تقليل طفيف في التخصيص الزائد للذاكرة في `partial_merge` JOIN. [#100963](https://github.com/ClickHouse/ClickHouse/pull/100963) ([Artem Zuikov](https://github.com/4ertus2)).
* تحسين allocations/deallocations عبر التخزين المؤقت لإعدادات sampling بدلًا من اجتياز التسلسل الهرمي الكامل لمتعقّب الذاكرة. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* تقليل overhead تخصيص الذاكرة أثناء multipart upload إلى S3 عبر التخصيص المسبق لحاويات التتبع الداخلية. [#101799](https://github.com/ClickHouse/ClickHouse/pull/101799) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* إضافة software prefetch في مرحلة probe الخاصة بـ hash join لتقليل زمن الوصول إلى الذاكرة مع جداول hash الكبيرة، ويتحكم في ذلك الإعداد `enable_software_prefetch_in_join`. [#102444](https://github.com/ClickHouse/ClickHouse/pull/102444) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* تحسين بنية `MemoryTracker`، مما حسّن أداءه بنحو \~25%. [#103464](https://github.com/ClickHouse/ClickHouse/pull/103464) ([Azat Khuzhin](https://github.com/azat)).
* إعادة كتابة predicates `coalesce(a, b, ...) <op> const` و `ifNull(a, b) <op> const` قبل index analysis، بحيث تتمكن primary key و skip indexes لكل عمود في كل argument من استبعاد granules. ويتحكم في ذلك الإعداد الجديد `allow_key_condition_coalesce_rewrite` (مفعّل افتراضيًا). [#103468](https://github.com/ClickHouse/ClickHouse/pull/103468) ([Manuel](https://github.com/raimannma)).
* تحسّن query performance بشكل ملحوظ عند قراءة Iceberg catalogs التي تحتوي على ملفات metadata كبيرة بتنسيق JSON، وذلك من خلال تحسين معالجة الشرطات المائلة المُهرَّبة. [#103998](https://github.com/ClickHouse/ClickHouse/pull/103998) ([Mohaidoss](https://github.com/mohaidoss)).
* تجنّب overhead الخاص بـ index uncompressed cache عند تعطيل cache (server setting `index_uncompressed_cache_size = 0`، وهي القيمة default). [#104063](https://github.com/ClickHouse/ClickHouse/pull/104063) ([Michael Kolupaev](https://github.com/al13n321)).
* إصلاح queries من نوع `ORDER BY ... LIMIT` ذات الحد الصغير التي كانت تقرأ granules أكثر من اللازم عند اقترانها بـ filter غير انتقائي في `WHERE`. سابقًا، كان أي filter فوق قراءة مرتبة يعطّل تقسيم المهام لكل نطاق علامات، بحيث لا يتمكن pipeline من الإلغاء بين granules وينتهي به الأمر إلى قراءة part بالكامل لكل stream. [#104112](https://github.com/ClickHouse/ClickHouse/pull/104112) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح عدم إعادة استخدام cache لأحجام hash table بعد إعادة ترتيب جانبي JOIN. [#104131](https://github.com/ClickHouse/ClickHouse/pull/104131) ([Nikita Taranov](https://github.com/nickitat)).
* عند تفعيل `fsync_after_insert`، أصبح تنفيذ fsync لملفات part يتم in parallel باستخدام IO thread pool، مما يسرّع إتمام insert في wide tables. وأصبح تحميل ClickBench الكامل لجدول `hits` أسرع بنحو 22%. [#104137](https://github.com/ClickHouse/ClickHouse/pull/104137) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحويل `find_first_symbols` و `find_first_not_symbols` و `find_last_symbols_or_null` و `find_last_not_symbols_or_null` و `splitInto` إلى تنفيذ متّجه على AArch64 باستخدام NEON. سابقًا، لم يكن لدى هذه helpers مسار SIMD إلا على x86 (SSE2 / SSE4.2)، وكانت تنتقل إلى حلقة scalar على ARM. يسرّع ذلك parsing لملفات TSV بنحو \~2x، ودوال URL و `splitByChar` بنحو \~1.3x على dataset `hits` من ClickBench؛ بينما يتراجع parsing الكثيف جدًا لـ JSON (بتواتر حقول أقل من 16 بايت) بشكل طفيف، بما يتماشى مع المقايضة الحالية في SSE2. [#104228](https://github.com/ClickHouse/ClickHouse/pull/104228) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت قراءة data عبر عمود `ALIAS` بسيط (مثل `some_alias['key']` حيث `some_alias ALIAS m`) تمر عبر مسار القراءة نفسه لكل subcolumn كما لو تمت الإشارة إلى underlying column مباشرةً، مما يعيد وفورات I/O الكبيرة لأعمدة `Map` و `Array` و `Tuple` و `Nullable` المستعارة. [#104245](https://github.com/ClickHouse/ClickHouse/pull/104245) ([Raúl Marín](https://github.com/Algunenano)).
* تقليل التنافس على الأقفال في مسار القراءة Asynchronous من نظام الملفات البعيد عبر جعل `AsyncReadCounters` الخاص بكل query بلا أقفال. [#104374](https://github.com/ClickHouse/ClickHouse/pull/104374) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* query plan أفضل قليلًا لعملية المسح المرتب لـ projections. [#103723](https://github.com/ClickHouse/ClickHouse/pull/103723) ([Mikhail Artemenko](https://github.com/Michicosun)).
* توسيع `optimizeUseNormalProjections` ليتعامل أيضًا مع حالة محددة لم يُرشَّح فيها شيء، لكن sorting key الخاص بـ projection يمكنه إزالة خطوة الفرز من query plan. [#104680](https://github.com/ClickHouse/ClickHouse/pull/104680) ([Mikhail Artemenko](https://github.com/Michicosun)).
* السماح لكتابة الاختصار `json.path[]` وتلميحات الأنواع الصريحة بالعمل بشكل صحيح على مسارات `JSON` محددة النوع. [#99179](https://github.com/ClickHouse/ClickHouse/pull/99179) ([Pavel Kruglov](https://github.com/Avogar)).
* تحسين `json.path[N].nested.path` (التي تتوسع إلى `tupleElement(tupleElement(json.path[N], 'nested'), 'path')`) إلى `json.path[].nested.path[N]`، ما يؤدي إلى قراءة بيانات أقل بكثير. [#99802](https://github.com/ClickHouse/ClickHouse/pull/99802) ([Pavel Kruglov](https://github.com/Avogar)).
* تحسين فحوصات الوصول لـ `SHOW TABLES` في `system.parts` عبر إخراج فحوصات امتيازات مستوى قاعدة البيانات من الحلقة الخاصة بكل جدول. [#100860](https://github.com/ClickHouse/ClickHouse/pull/100860) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إزالة فحص وصول زائد لكل جدول لـ `SHOW TABLES` في المسار السريع `SELECT name` / `SELECT database, name` في `system.tables`. [#100881](https://github.com/ClickHouse/ClickHouse/pull/100881) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تمكين تجميع JIT على macOS. [#100947](https://github.com/ClickHouse/ClickHouse/pull/100947) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تخطي تأجيل سياسة الصفوف بعد `FINAL` عندما تعتمد فقط على أعمدة مفتاح الفرز وتكون حتمية، وكذلك تخطي تأجيل `PREWHERE` المقابل الذي كانت سياسة الصفوف تفرضه في هذه الحالة. [#102884](https://github.com/ClickHouse/ClickHouse/pull/102884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إضافة دعم `hasAny` و`hasAll` كمسندات ترشيح في الفهارس النصية. [#103266](https://github.com/ClickHouse/ClickHouse/pull/103266) ([Anton Popov](https://github.com/CurtizJ)).
* توجيه حالة Heap طويلة العمر في MergeTree (البيانات الوصفية لكل part ولكل table) إلى arena مخصصة في jemalloc، مع إتاحتها عبر المقاييس غير المتزامنة `jemalloc.mergetree_arena.*`. يقلل ذلك من تجزئة الـ arena الافتراضية في حالات التشغيل المستقرة، ويمنع العناصر الباقية لكل part من تثبيت صفحات كان يمكن أن تتحلل لولا ذلك. [#104136](https://github.com/ClickHouse/ClickHouse/pull/104136) ([Raúl Marín](https://github.com/Algunenano)).
* تحسين التعامل مع timeout في client الخاص بـ ZooKeeper تحت الأحمال العالية عندما تُرسل طلبات كثيرة بأسلوب pipelining ضمن جلسة واحدة. يستخدم client الخاص بـ ZooKeeper الآن timeout قائمًا على التقدم: ما دام يتم تلقي أي بيانات من server خلال `session_timeout_ms`، يُمدَّد الانتظار. ويظل هناك حد أقصى صارم قدره `3 * session_timeout_ms` لكل طلب لتقييد زمن الاستجابة لدى المستدعي. يغلق [#100466](https://github.com/ClickHouse/ClickHouse/issues/100466). [#104351](https://github.com/ClickHouse/ClickHouse/pull/104351) ([Antonio Andelic](https://github.com/antonio2368)).
* نقل علامات trace الخاصة بكل حدث إلى مصفوفة منفصلة وتخصيصها عند الحاجة، ما يقلل التكلفة الإضافية لـ tracing في `ProfileEvents`. [#105030](https://github.com/ClickHouse/ClickHouse/pull/105030) ([Azat Khuzhin](https://github.com/azat)).
* إضافة `compareTrackAt` إلى `ColumnDecimal`، ما يحسن أداء المقارنة لأعمدة `Decimal`. [#105110](https://github.com/ClickHouse/ClickHouse/pull/105110) ([Artem Zuikov](https://github.com/4ertus2)).
* إضافة تنفيذ SIMD لـ `MD5` (`AVX2` / `AVX512`) يحسب hash لعدة مُدخلات بالتوازي، مما يحسن الإنتاجية. [#105161](https://github.com/ClickHouse/ClickHouse/pull/105161) ([Joanna Hulboj](https://github.com/jh0x)).

<div id="267-improvement">
  #### تحسينات
</div>

* تحسين مخرجات المساعدة في جميع تطبيقات ClickHouse: أصبح `--help` يعيد الآن رمز الخروج `0` بشكل متسق، ويطبع إلى `stdout`، كما يعرض الأمر الأعلى مستوى `clickhouse --help` جميع الأوامر الفرعية. وتمت إضافة الخيار `--no-sudo` إلى `clickhouse start` / `restart` (وهو مفيد في Docker)، بالإضافة إلى الأمر الفرعي `clickhouse help`. استكمالًا لـ [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244) من @qoega. [#98148](https://github.com/ClickHouse/ClickHouse/pull/98148) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تغيير القيمة الافتراضية للإعداد `input_format_column_name_matching_mode` من `match_case` إلى `auto`. وأصبحت تنسيقات الإدخال التي تطابق أسماء أعمدة الإدخال مع schema الجدول (`JSONEachRow` و`CSVWithNames` و`JSONColumns` و`BSONEachRow` و`RowBinaryWithNames` وغيرها) تحاول أولًا المطابقة الحساسة لحالة الأحرف، ثم تلجأ إلى المطابقة غير الحساسة لحالة الأحرف إذا أخفقت المطابقة الحساسة. ويظل السلوك الصارم السابق محفوظًا ضمن `compatibility`. [#104320](https://github.com/ClickHouse/ClickHouse/pull/104320) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `STDDEV` كاسم مستعار غير حساس لحالة الأحرف لـ `stddevSamp` لتحقيق التوافق مع PostgreSQL/معيار SQL. [#105120](https://github.com/ClickHouse/ClickHouse/pull/105120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `array_to_string` كاسم مستعار غير حساس لحالة الأحرف لـ `arrayStringConcat` لتحقيق التوافق مع PostgreSQL. [#105121](https://github.com/ClickHouse/ClickHouse/pull/105121) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `unnest` كاسم مستعار غير حساس لحالة الأحرف لـ `arrayJoin` لتحقيق التوافق مع PostgreSQL (بصيغة استدعاء الدالة). [#105124](https://github.com/ClickHouse/ClickHouse/pull/105124) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يعرض شريط التقدم في `clickhouse-client` الآن البيانات المؤقتة المتعلقة باستخدام القرص (مثل الفرز الخارجي أو aggregation أو JOIN) إلى جانب RAM، بما في ذلك تفصيلًا لكل مضيف في distributed queries. [#105190](https://github.com/ClickHouse/ClickHouse/pull/105190) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `system.predicate_statistics_log`، وهو سجل جديد قائم على أخذ العينات لانتقائية مرشحات predicate وGranule pruning لفهارس MergeTree على مستوى كل query. وهو معطّل افتراضيًا؛ ويمكن تفعيله عبر server setting `predicate_statistics_sample_rate`. وهو مطلوب للتوصيات التلقائية للفهارس والإسقاطات. [#98727](https://github.com/ClickHouse/ClickHouse/pull/98727) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* السماح بتخطي shard المحلي عند غياب الجدول إذا كان `skip_unavailable_shards` مفعّلًا. [#100141](https://github.com/ClickHouse/ClickHouse/pull/100141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة تحذيرات عند بدء التشغيل (تظهر في `system.warnings`) عندما تكون مصفوفة Linux mdraid قيد إعادة المزامنة أو في حالة تدهور، إذ قد يؤثر كلا الأمرين في أداء IO للقرص أو يشير إلى أعطال في الأقراص. [#100941](https://github.com/ClickHouse/ClickHouse/pull/100941) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تظهر WASM UDFs الآن في `system.functions` مع `origin` الصحيح (`WasmUserDefined`)، مع تعبئة الأعمدة `syntax` و`arguments` و`returned_value` من metadata نوع ClickHouse الخاصة بها. في السابق، كانت إما مفقودة أو مدرجة مكررة مع `origin` غير صحيح. [#101053](https://github.com/ClickHouse/ClickHouse/pull/101053) ([Vasily Chekalkin](https://github.com/bacek)).
* تدعم table function ‏`generate_series` الآن قيم `step` السالبة لتوليد تسلسلات تنازلية، مثل `SELECT * FROM generate_series(99, 0, -1)`. [#101056](https://github.com/ClickHouse/ClickHouse/pull/101056) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناءات `Context has expired` التي كانت تُطلقها بعض الدوال (`dotProduct` و`formatRow` و`structureToCapnProtoSchema`/`structureToProtobufSchema` والدوال المعرفة من قبل المستخدم) عند استخدامها في مسارات التنفيذ المؤجل مثل تعبيرات `DEFAULT`/`MATERIALIZED` وإعدادات محرك الجدول، وذلك بضمان احتفاظ هذه الدوال بمرجع سياق قوي عند الحاجة. [#101109](https://github.com/ClickHouse/ClickHouse/pull/101109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الأخطاء المنطقية الزائفة `Cache limits violated` في الأولويات المُنشأة بحدود صفرية (مثل أولوية filesystem cache لكل query المستخدمة عند تفعيل `enable_filesystem_query_cache_limit`). [#101428](https://github.com/ClickHouse/ClickHouse/pull/101428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* الاكتشاف التلقائي للمنطقة لنقاط النهاية `s3express`. [#101520](https://github.com/ClickHouse/ClickHouse/pull/101520) ([Pradeep Chhetri](https://github.com/chhetripradeep)).
* دعم معرّفات الحقول لملفات البيانات عند الكتابة إلى `Iceberg`. يُغلق [#102322](https://github.com/ClickHouse/ClickHouse/issues/102322). [#102362](https://github.com/ClickHouse/ClickHouse/pull/102362) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أصبحت اللوحة اليسرى في واجهة الويب (`play.html`) قابلة للتمرير بشكل مستقل، وتبقى ظاهرة عند تمرير الصفحة، كما أن النقر على جدول ينقلك إلى منطقة query. [#102498](https://github.com/ClickHouse/ClickHouse/pull/102498) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* السماح بفتح واجهة Play في علامة تبويب جديدة عبر Ctrl/Cmd/Shift+click أو بالنقر الأوسط على شعار ClickHouse في اللوحة اليسرى. [#102501](https://github.com/ClickHouse/ClickHouse/pull/102501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* مقاييس جديدة لتتبّع الذاكرة المستخدمة بواسطة المفاتيح الأساسية للإسقاطات ودرجة حبيبية فهرس الإسقاطات عبر جميع الجداول. [#102587](https://github.com/ClickHouse/ClickHouse/pull/102587) ([Narasimha Pakeer](https://github.com/npakeer)).
* تطبيق `max_network_bandwidth_for_user` و`max_network_bandwidth_for_all_users` على عمليات القراءة والكتابة في نظام الملفات البعيد. [#103080](https://github.com/ClickHouse/ClickHouse/pull/103080) ([Azat Khuzhin](https://github.com/azat)).
* تحسين متانة النسخ الاحتياطية عندما تُحدَّث Refreshable Materialized Views باستمرار، وذلك عبر اتخاذ القرارات بناءً على حالة الجداول في اللقطة بدلًا من حالة عامة مشتركة. [#103384](https://github.com/ClickHouse/ClickHouse/pull/103384) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* أصبح `SELECT * FROM system.databases` يعرض دائمًا قواعد بيانات Data Lake Catalog بغض النظر عن الإعداد `show_data_lake_catalogs_in_system_tables`. في السابق كانت هذه القواعد مخفية افتراضيًا، وهو ما لم يكن متسقًا مع `SHOW DATABASES` الذي كان يعرضها دائمًا. [#103444](https://github.com/ClickHouse/ClickHouse/pull/103444) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* مواءمة القيمة الافتراضية لإعداد الخادم `concurrent_threads_soft_limit_ratio_to_cores` في الشيفرة مع القيمة المضمّنة في `config.xml` (`2`)، بحيث يحدّ مجدول الخيوط المتزامنة الافتراضي `max_min_fair` من خيوط معالجة الاستعلامات إلى ضعف عدد الأنوية افتراضيًا حتى عند عدم استخدام `config.xml` المضمّن. [#103446](https://github.com/ClickHouse/ClickHouse/pull/103446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين متانة أداة sanitizer في الحالات الطرفية الخاصة بالمحلل ودوال السلاسل النصية، عبر التعامل مع الإدخال الفارغ في `getURLScheme`، وتجنّب العمليات الحسابية على المؤشر الصفري في فحوصات `Lexer::nextToken` الخاصة بـ `max_query_size`، والإيقاف المبكر لتقييم التتابع الجزئي UTF-8 عند فراغ سلسلة الإدخال قبل فك الترميز. [#103489](https://github.com/ClickHouse/ClickHouse/pull/103489) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* تحسين دقة استنتاج الرتابة للدالتين `divide(0, x)` و `intDiv(0, x)`: في السابق، كان يُبلَّغ عن هاتين الدالتين على أنهما رتيبتان دائمًا، لكن `0 / x` غير رتيبة على أي نطاق يتضمن 0 لأن `0 / 0` غير معرّف (`NaN`/`Inf` في `divide`، واستثناء القسمة على صفر في `intDiv`). وقد أدى هذا الاستنتاج الخاطئ إلى أن يُنتج `KeyCondition::applyMonotonicFunctionsChainToRange` نطاقات يكون فيها `left > right`، ما تسبب في إطلاق `LOGICAL_ERROR` بعنوان `Invalid binary search result in MergeTreeSetIndex` في بُنى debug عندما كان تعبير `IN` / `NOT IN` على المفتاح الأساسي يغلّف المفتاح داخل `divide(0, key)` أو `intDiv(0, key)`. ولم تتأثر بُنى Release، إذ إن هذا التحقق مقيَّد بـ `#ifndef NDEBUG`. [#103621](https://github.com/ClickHouse/ClickHouse/pull/103621) ([Groene AI](https://github.com/groeneai)).
* استبدال المقاييس غير المتزامنة `HTTPConnectionPool*TCP{Rcv,Snd}BufBytes_{p50,p75,p90,p95}` بهيستوغرام قائم على bucket باسم `http_pool_tcp_buf_bytes` (مع labels `group` و `direction`) في `system.histogram_metrics`. مع الإبقاء على المقاييس غير المتزامنة الإجمالية لكل مجموعة. [#103704](https://github.com/ClickHouse/ClickHouse/pull/103704) ([Sema Checherinda](https://github.com/CheSema)).
* أصبحت server settings `{disk,storage,http}_connections_{rcvbuf,sndbuf}` تُعرض الآن على أنها قابلة للتغيير دون إعادة تشغيل في `system.server_settings`. ويمكن تحديث قيمها عبر `SYSTEM RELOAD CONFIG`؛ وكان مسار تطبيقها وقت التشغيل موجودًا بالفعل منذ [#100478](https://github.com/ClickHouse/ClickHouse/issues/100478). [#103772](https://github.com/ClickHouse/ClickHouse/pull/103772) ([Sema Checherinda](https://github.com/CheSema)).
* إضافة دعم للرموز المحلولة (`Array(String)`) في `flameGraph`. [#103816](https://github.com/ClickHouse/ClickHouse/pull/103816) ([Azat Khuzhin](https://github.com/azat)).
* يمكن لعميل CLI الآن تحديد `<rainbow_parentheses>false</rainbow_parentheses>` في config الخاصة به في البيئات التي تتعارض فيها ألوان الطرفية مع الأقواس (وبالمثل، أصبح `clickhouse format` يدعم الآن الخيار `--no_rainbow_parentheses`). [#103851](https://github.com/ClickHouse/ClickHouse/pull/103851) ([Larry Snizek](https://github.com/larry-cdn77)).
* إصلاح البحث غير الحساس لحالة الأحرف في UTF-8 في `MultiVolnitsky` عبر التراجع عن عمليات insert الجزئية لـ `putNGram` عند الفشل، وتحويل needles الفاشلة إلى أدوات بحث احتياطية، ما يمنع الوصول إلى حالة غير متسقة. [#103864](https://github.com/ClickHouse/ClickHouse/pull/103864) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* تنفيذ `sched_getcpu` عبر `rseq` TLS في musl المتوافق مع glibc. [#104016](https://github.com/ClickHouse/ClickHouse/pull/104016) ([Azat Khuzhin](https://github.com/azat)).
* لن يعود العرض المادي القابل للتحديث من النوع Replicated في وضع APPEND إلى إجراء refresh مرتين إذا فُقد الاتصال بـ ZooKeeper لفترة وجيزة أثناء refresh. [#104051](https://github.com/ClickHouse/ClickHouse/pull/104051) ([Michael Kolupaev](https://github.com/al13n321)).
* السماح لـ Distributed tables التي لا تحتوي على قائمة أعمدة صريحة بالتحقق من sharding keys مقابل بنية الجدول البعيد المستنتجة. [#104111](https://github.com/ClickHouse/ClickHouse/pull/104111) ([Yue](https://github.com/niyue)).
* إصلاح REST catalog مع المسار `Azure` `abfss`. [#104120](https://github.com/ClickHouse/ClickHouse/pull/104120) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* مراعاة إعدادات المصادقة `role_arn` و `role_session_name` في عميل S3 snapshot الخاص بـ Keeper، ما يتيح لعمليات رفع snapshot استخدام مصادقة STS المستندة إلى `AssumeRole`. [#104140](https://github.com/ClickHouse/ClickHouse/pull/104140) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تسرّب في الذاكرة عند تشغيل الاستعلامات التي تستخدم CTEs من نوع `MATERIALIZED`. [#104153](https://github.com/ClickHouse/ClickHouse/pull/104153) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء في `lowerUTF8` / `upperUTF8` عند معالجة مجموعات بيانات كبيرة غير ASCII (مثلًا أثناء إنشاء فهارس النصوص)، حيث كان buffer الإخراج المتراكم يتجاوز 2 GiB؛ مع رفض الصفوف الفردية الطويلة جدًا برسالة خطأ واضحة. [#104229](https://github.com/ClickHouse/ClickHouse/pull/104229) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تعزيز تحميل إحصاءات الأعمدة في MergeTree لمقاومة إخفاقات I/O العابرة، منعًا لتعطيل التحسينات المستندة إلى الإحصاءات بشكل دائم للأجزاء المتأثرة. [#104372](https://github.com/ClickHouse/ClickHouse/pull/104372) ([zoomxi](https://github.com/zoomxi)).
* لم يعد `INSERT INTO ... SELECT FROM input(...)` يتطلب امتياز `CREATE TEMPORARY TABLE`. [#104470](https://github.com/ClickHouse/ClickHouse/pull/104470) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة MergeTree setting جديدة باسم `concurrent_part_removal_threshold_for_remote_disk` (القيمة الافتراضية `16`) تُستخدم بدلًا من `concurrent_part_removal_threshold` عندما يكون جزء واحد على الأقل من الأجزاء الجاري حذفها مخزنًا على disk بعيد. كانت العتبة السابقة `100` قد تؤدي إلى تعطّل `DROP TABLE` وعمليات حذف الأجزاء الأخرى على backends تخزين الكائنات لعشرات الثواني، لأن عمليات الحذف كانت تُنفَّذ تسلسليًا رغم أن كل عملية منها تمثل رحلة شبكة مستقلة ذهابًا وإيابًا. ويجعل الإعداد الجديد مسار الحذف المتوازي يبدأ في وقت أبكر بكثير على التخزين البعيد، مع إبقاء سلوك الأقراص المحلية دون تغيير. [#104676](https://github.com/ClickHouse/ClickHouse/pull/104676) ([Groene AI](https://github.com/groeneai)).
* الإعداد الجديد `defer_partition_pruning_after_final` (الافتراضي `1`) يجعل السلوك الذي قُدِّم في 26.3، والمتمثل في تخطي partition pruning تحت `FINAL`، قابلاً للتعطيل اختياريًا. اضبطه على `0` لاستعادة partition pruning كما كان قبل 26.3 — وهو أسرع بكثير في أعباء عمل سجلات الأحداث حيث لا يمكن أن تمتد الصفوف ذات PK نفسه عبر partitions. ويضبط `compatibility = '26.2'` هذه القيمة إلى `0` تلقائيًا. [#104705](https://github.com/ClickHouse/ClickHouse/pull/104705) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح `intExp2` الذي كان يعيد نتائج غير صحيحة للمدخلات الخارجة عن النطاق (عمليات shift `>= 64` ضمن JIT، والأعداد الصحيحة التي يتجاوز مقدارها `INT_MAX` في كلا مساري التنفيذ). [#105054](https://github.com/ClickHouse/ClickHouse/pull/105054) ([Raúl Marín](https://github.com/Algunenano)).
* إضافة علامات اقتباس إلى shell arguments المُنشأة من خيارات CLI والمدخلات parsed في `clickhouse install` و`clickhouse git-import`، بحيث تُعالَج paths وأسماء المستخدمين/المجموعات وhashes الخاصة بـ commit التي تحتوي على مسافات بيضاء أو محارف shell خاصة بشكل صحيح. [#105232](https://github.com/ClickHouse/ClickHouse/pull/105232) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح محرك الجداول `Alias` الآن غير تجريبي ومتاحًا دون الإعداد `allow_experimental_alias_table_engine`. [#103488](https://github.com/ClickHouse/ClickHouse/pull/103488) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة الخيار `--queries-format` إلى `clickhouse-benchmark` للاختيار بين تنسيق الإدخال الافتراضي المحمي بعلامات تبويب، والذي يضع استعلامًا واحدًا في كل سطر (`tsv`)، وبين parsing الإدخال القياسي كسكربت يضم عدة queries مفصولة بـ `;` (`script`). [#99972](https://github.com/ClickHouse/ClickHouse/pull/99972) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* أصبحت معاملات Tuple العنصرية `tuplePlus` و`tupleMinus` و`tupleMultiply` و`tupleDivide` و`tupleModulo` و`tupleIntDiv` و`tupleIntDivOrZero` تقبل الآن عددًا متغيرًا من الوسائط، بحيث تستقبل قيمتي Tuple أو أكثر من الحجم نفسه، وتُطبَّق عنصرًا بعنصر بأسلوب left-fold. وكانت في السابق تقبل argumentين فقط بالضبط. [#104659](https://github.com/ClickHouse/ClickHouse/pull/104659) ([Aruj Bansal](https://github.com/arujbansal)).
* أُضيفت واجهة ويب مدمجة جديدة عند `/processors-profile` تعرض خط أنابيب أي استعلام `SELECT` سابق على شكل خريطة حرارية، بالاعتماد على `system.query_log` و`system.processors_profile_log`. ويُلوَّن كل معالج بحسب قيمة `elapsed_us` الخاصة به، كما يعرض إحصاءات لكل معالج (الصفوف والبايتات وأوقات الانتظار) عند تمرير المؤشر فوقه. [#104614](https://github.com/ClickHouse/ClickHouse/pull/104614) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* أصبح الإعداد `query_plan_use_logical_join_step` (واسمه البديل `query_plan_use_new_logical_join_step`) الآن مهملاً ولم يعد له أي تأثير؛ إذ تُستخدم خطوة الربط المنطقي دائماً. [#104017](https://github.com/ClickHouse/ClickHouse/pull/104017) ([Vladimir Cherkasov](https://github.com/vdimir)).
* لم يعد حقل الإدخال `user` في `play.html` وغيره من صفحات الويب المدمجة (`dashboard.html` و`jemalloc.html` و`merges.html` و`binary.html` و`webterminal.html`) مُعبأً مسبقاً بالنص الحرفي `default`. وهو يعرض الآن تلميح `placeholder` للحقل `user` ويكون فارغاً افتراضياً. وعند تركه فارغاً، لا تُرسل الصفحة معلمة URL باسم `user=` (كما أن JSON الخاص بمصادقة WebTerminal يحذف الحقل `user`)، لذا يطبّق الخادم آلية fallback المعتادة إلى المستخدم `default` — كما لم تعد بيانات اعتماد HTTP المرسلة عبر قنوات أخرى (`X-ClickHouse-User` وHTTP Basic وإعداد `<handler><user>` الخاص بكل handler) تُتجاوز. [#105254](https://github.com/ClickHouse/ClickHouse/pull/105254) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قارئ `ORC`: فُصلت القراءة المعتمدة على الإزاحة (`readBigAt`) عن `use_prefetch`، بحيث يمكن قراءة البيانات المرمّزة بأسلوب EC على `HDFS` بشكل صحيح حتى عندما تكون قيمة `use_prefetch = false` (على سبيل المثال بواسطة Gluten). [#103348](https://github.com/ClickHouse/ClickHouse/pull/103348) ([zhanglistar](https://github.com/zhanglistar)).
* أصبحت الملفات التي تُنزَّل من `play.html` باستخدام التنسيق `CSVWithNames` تستخدم الآن امتداد الملف `.csv`. [#103737](https://github.com/ClickHouse/ClickHouse/pull/103737) ([JackFielding](https://github.com/JackFielding)).
* مزيد من التحقق من صحة الإدخال في كتالوج BigLake. [#105117](https://github.com/ClickHouse/ClickHouse/pull/105117) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* إصلاح التنسيق غير المتسق عبر تذكّر ما إذا كان التعبير موضوعًا بين قوسين. [#92340](https://github.com/ClickHouse/ClickHouse/pull/92340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح المقارنة الدقيقة بين النوعين Decimal وFloat. [#94293](https://github.com/ClickHouse/ClickHouse/pull/94293) ([zoomxi](https://github.com/zoomxi)).
* السماح باستخدام الوسائط الموضعية في الاستعلامات الموزعة. [#94359](https://github.com/ClickHouse/ClickHouse/pull/94359) ([simonmichal](https://github.com/simonmichal)).
* إصلاح فشل التحقق في `DatabaseCatalog::updateDependencies` عند حذف عرض مادي ثم إعادة إنشائه بالاسم نفسه؛ وكذلك إصلاح فقدان تبعيات العروض بصمت أثناء `RENAME TABLE` أو `EXCHANGE TABLES` عندما تكون التبعيات المرجعية فارغة. [#98779](https://github.com/ClickHouse/ClickHouse/pull/98779) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إنهاء الخادوم قسرًا (فشل تحقق في `DatabaseCatalog::getTableImpl`) الذي كان يحدث عند إنشاء جدول عبر `ON CLUSTER` باستخدام UUID مطابق لـ UUID قاعدة بيانات موجودة. [#98861](https://github.com/ClickHouse/ClickHouse/pull/98861) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* إصلاح استخدام skip indexes عند قراءة البيانات (مع تفعيل الإعداد `use_skip_indexes_on_data_read`) ومع patch parts الموجودة التي أنشأتها lightweight updates. [#99543](https://github.com/ClickHouse/ClickHouse/pull/99543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء "Not-ready Set" عندما ينقل مُحسِّن الاستعلامات عامل تصفية يحتوي على `IN (subquery)` إلى PREWHERE. [#100375](https://github.com/ClickHouse/ClickHouse/pull/100375) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الخطأ "Cannot find column" عند الجمع بين `ADD COLUMN` و`RENAME COLUMN` في عبارة `ALTER TABLE` واحدة. [#100387](https://github.com/ClickHouse/ClickHouse/pull/100387) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح العروض التي تجمع بين معاملات `UNION` و`INTERSECT`/`EXCEPT` وكانت تُرجع نتائج غير صحيحة بعد `DETACH`/`ATTACH` أو إعادة تشغيل الخادوم. [#100390](https://github.com/ClickHouse/ClickHouse/pull/100390) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء "Trying to execute PLACEHOLDER action" الذي كان قد يحدث أثناء اختبار الضغط باستخدام AST fuzzer عندما يظهر استعلام فرعي مترابط في عبارة IN. [#100398](https://github.com/ClickHouse/ClickHouse/pull/100398) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء الخطأ المنطقي عند الإدراج في جدول Iceberg يحتوي على عمود `Date` ومقسّم باستخدام تحويلات `year` أو `month` أو `day`. [#100404](https://github.com/ClickHouse/ClickHouse/pull/100404) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استخدام skip index مع بيانات غير متوافقة بعد أن يغيّر `ALTER TABLE MODIFY COLUMN` نوع العمود، ما قد يؤدي إلى تعطل الخادوم في بُنى sanitizer أو إلى نتائج استعلامات غير صحيحة. [#100526](https://github.com/ClickHouse/ClickHouse/pull/100526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تسرّب بيانات الاعتماد في `query_log` لدوال الجداول `paimonCluster` و`paimonS3Cluster` و`paimonAzureCluster` و`deltaLakeS3`. [#100529](https://github.com/ClickHouse/ClickHouse/pull/100529) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* إصلاح احتمال تعليق `DROP TABLE` على جداول Kafka engine إلى أجل غير مسمى بسبب حالة توقف متبادل في `rd_kafka_consumer_close`. [#100604](https://github.com/ClickHouse/ClickHouse/pull/100604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استُبدلت قائمة `source_table_engines` المضمّنة ببحث وقت التشغيل عبر `StorageFactory` و`DatabaseFactory`. وأُضيف `source_access_type` إلى `DatabaseFactory::EngineFeatures` بحيث يتطلب `CREATE DATABASE` مع محركات المصدر (PostgreSQL وMySQL وS3 وغيرها) منح المصدر نفسها التي يتطلبها `CREATE TABLE`. يُصلح هذا مشكلة فشل `GRANT TABLE ENGINE ON *` عند ضبط `table_engines_require_grant=false`. إغلاق [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#100746](https://github.com/ClickHouse/ClickHouse/pull/100746) ([pufit](https://github.com/pufit)).
* إصلاح تعطل الخادم عند القراءة من table كان عمود `ALIAS` فيها يحتوي على subquery مترابطة متداخلة داخل استدعاء دالة (مثل `ALIAS toString(intDivOrZero(x, (SELECT ...)))`). أصبح `CREATE TABLE` و`ALTER TABLE` الآن يرفضان أي subquery مهما كان عمقها في تعبيرات الأعمدة `DEFAULT` / `ALIAS` / `MATERIALIZED` مع `THERE_IS_NO_DEFAULT_VALUE`. سابقًا، كان التحقق السطحي يقبل subqueries المتداخلة، لذا كانت الحالة المترابطة تتسبب في التعطل وقت القراءة، بينما كانت الحالة غير المترابطة المتداخلة تبدو وكأنها تعمل لكنها قد تؤدي إلى سلوك غير متوقع؛ أما الآن فتُرفض كلتا الحالتين وقت DDL. [#100753](https://github.com/ClickHouse/ClickHouse/pull/100753) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم (`Logical error: Bad cast from type DB::FunctionNode to DB::ColumnNode`) كان يمكن أن يحدث عند استخدام queries تحتوي على subqueries مترابطة على tables لديها تعريفات `CONSTRAINT ... ASSUME`، عندما تكون الإعدادات `optimize_substitute_columns` و`convert_query_to_cnf` مفعّلة. [#100756](https://github.com/ClickHouse/ClickHouse/pull/100756) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء كان يمكن أن يحدث عند insert صف في JSON column، حيث كان الصف يضيف حقلًا ديناميكيًا جديدًا إلى جانب حقل ذي نوع محدد بقيمة غير متوافقة، ثم استُخدم العمود لاحقًا كمفتاح GROUP BY. [#100758](https://github.com/ClickHouse/ClickHouse/pull/100758) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح تجاوز IO scheduling الخاصة بـ workload بصمت في عمليات الكتابة إلى S3/تخزين الكائنات التي تمر عبر المسار `DiskObjectStorageTransaction` (المستخدم في disks من نوع `s3_with_keeper`، وصراحةً عند ضبط `use_fake_transaction=false`). سابقًا، كانت عمليات كتابة INSERT إلى MergeTree tables على هذه disks تتجاهل throttling الخاصة بـ `CREATE RESOURCE` / `CREATE WORKLOAD` لأن رابط resource لم يكن يُحقن مطلقًا في `WriteSettings` لمسار الكتابة المعاملاتي. [#100777](https://github.com/ClickHouse/ClickHouse/pull/100777) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* إصلاح تصادم schema-cache المشتركة بين `Protobuf` و`ProtobufList`: كانت قراءة رسالة أولًا بصيغة `FORMAT Protobuf` ثم بصيغة `FORMAT ProtobufList` قد تفشل لأن `ProtobufList` كان يفرض schema المخزنة مؤقتًا بصيغة الغلاف الخاصة به. أصبح `ProtobufList` الآن يعود إلى نوع الرسالة المخزن مؤقتًا عند عدم توفر schema للغلاف. [#100849](https://github.com/ClickHouse/ClickHouse/pull/100849) ([Callum Cooper](https://github.com/callumc34)).
* إصلاح heap-buffer-overflow في جسر Rust CXX بسبب عدم تطابق ABI لـ `std::exception`. [#100931](https://github.com/ClickHouse/ClickHouse/pull/100931) ([Azat Khuzhin](https://github.com/azat)).
* أصبحت `FunctionVariantAdaptor` الآن ترمي `ILLEGAL_TYPE_OF_ARGUMENT` عندما تكون جميع بدائل `Variant` غير متوافقة مع دالة، بدلًا من إعادة `Nullable(Nothing)` بصمت. سابقًا، كان predicate من النوع `WHERE function(variant_col)`، حيث لا يكون أي نوع بديل متوافقًا، يعيد 0 rows من دون خطأ، بينما كان سياق `SELECT` المكافئ يرمي الخطأ بشكل صحيح بالفعل. [#100939](https://github.com/ClickHouse/ClickHouse/pull/100939) ([Vasily Chekalkin](https://github.com/bacek)).
* لم يعد `TRUNCATE ALL TABLES` يفشل عندما تحتوي database على views. [#100943](https://github.com/ClickHouse/ClickHouse/pull/100943) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح تحسين `optimize_rewrite_array_exists_to_has` ليتعامل بشكل صحيح مع الحالات غير المتوافقة نوعيًا (مثل Date مقابل String)، وأعِد تفعيله افتراضيًا. [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح أولوية إعدادات S3 بحيث تتجاوز إعدادات القرص في `storage_configuration` القسم العام `<s3>`، بينما تتجاوز إعدادات المستخدم/`profile`/مستوى `query` كليهما. [#100975](https://github.com/ClickHouse/ClickHouse/pull/100975) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح مشكلة فقدان التسلسل sparse لإشارة الصفر السالب (-0.0) في أعمدة BFloat16 وFloat32 وFloat64. [#100983](https://github.com/ClickHouse/ClickHouse/pull/100983) ([Takumi Hara](https://github.com/takumihara)).
* أُصلِح خطآن في محلل geometry بصيغة WKT المستخدم عند قراءة ملفات GeoParquet وArrow المرمّزة بـ WKT: كانت الأشكال الهندسية `MULTILINESTRING` تُحلَّل خطأً على أنها `Polygon` (مما يسبب استثناءً في `typed columns` وفسادًا صامتًا للبيانات في أعمدة `Geometry` المختلطة)، كما أن سلسلة WKT غير صحيحة من دون keyword للنوع كانت تؤدي إلى سلوك غير معرّف بدلًا من ظهور خطأ واضح. [#100997](https://github.com/ClickHouse/ClickHouse/pull/100997) ([Vasily Chekalkin](https://github.com/bacek)).
* أصلِح استعلامات `grouping`/`GROUPING SETS` على جداول Distributed ذات shard واحد، والتي كانت تفشل بالرسالة "Method executeImpl is not supported for 'grouping' function". [#101030](https://github.com/ClickHouse/ClickHouse/pull/101030) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح `LOGICAL_ERROR` ‏"Column identifier is already registered" في `planner`، والذي كان قد يحدث عند معالجة expression الجدول نفسه عدة مرات. [#101048](https://github.com/ClickHouse/ClickHouse/pull/101048) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح استثناء LOGICAL\_ERROR ‏"Column identifier is already registered" عند استخدام الإعداد `additional_result_filter` مع استعلامات UNION أو EXCEPT. [#101051](https://github.com/ClickHouse/ClickHouse/pull/101051) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح تعطل server ‏(Logical error: Bad cast from ColumnVector to ColumnNullable) عند استخدام `* APPLY` مع aggregate functions و`group_by_use_nulls=1` مع GROUPING SETS أو ROLLUP أو CUBE. [#101062](https://github.com/ClickHouse/ClickHouse/pull/101062) ([Groene AI](https://github.com/groeneai)).
* أصلِح حلقة لا نهائية عندما تتجاوز `input_format_csv_skip_first_lines` أو `input_format_tsv_skip_first_lines` عدد الأسطر في الملف. [#101111](https://github.com/ClickHouse/ClickHouse/pull/101111) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح وصولًا خارج الحدود في تحسين lazy materialization، كان يمكن أن يتسبب في استثناء في builds التصحيح. [#101144](https://github.com/ClickHouse/ClickHouse/pull/101144) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصلِح type inference في CTEs العودية: أصبحت column types الآن تُوسَّع تكراريًا عبر `getLeastSupertype` بين جانبي `UNION ALL` غير العودي والعودي حتى الوصول إلى الاستقرار، مما يمنع overflow للأعداد الصحيحة في تعبيرات مثل `x + 1`. [#101155](https://github.com/ClickHouse/ClickHouse/pull/101155) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قيِّد إعدادات حجم block الضغط في MergeTree ‏(max\_compress\_block\_size, min\_compress\_block\_size, marks\_compress\_block\_size, primary\_key\_compress\_block\_size) عند 256 MiB لمنع تعطل server عند ضبط قيم متطرفة عبر CREATE TABLE SETTINGS. [#101159](https://github.com/ClickHouse/ClickHouse/pull/101159) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل LOGICAL\_ERROR في `QueryAnalyzer::resolve()` عندما تستخدم ROW POLICY استعلامًا فرعيًا scalar في عبارة `USING` الخاصة بها (مثل `USING (SELECT 1)`). إغلاق [#100695](https://github.com/ClickHouse/ClickHouse/issues/100695). [#101263](https://github.com/ClickHouse/ClickHouse/pull/101263) ([Groene AI](https://github.com/groeneai)).
* إصلاح سلوك غير معرّف في `MergeTreeDataPartWriterCompact::cancel` عند فشل تخصيص تدفق. [#101292](https://github.com/ClickHouse/ClickHouse/pull/101292) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة لم تكن فيها المنطقة الزمنية تُضمَّن أثناء الإسناد في تعليمة ALTER. إغلاق [#101328](https://github.com/ClickHouse/ClickHouse/issues/101328). ذو صلة بـ [https://github.com/ClickHouse/ClickHouse/pull/100647](https://github.com/ClickHouse/ClickHouse/pull/100647). [#101403](https://github.com/ClickHouse/ClickHouse/pull/101403) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح تعطل الخادم (LOGICAL\_ERROR) في استعلامات INSERT SELECT مع ORDER BY ALL عندما يُنتج مسار SELECT عدة تدفقات. [#101443](https://github.com/ClickHouse/ClickHouse/pull/101443) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج الاستعلام غير الصحيحة الناتجة عن إعادة ترتيب join، التي كانت تدفع عامل تصفية INNER JOIN (الذي يشير فقط إلى الجانب المُحتفَظ به من outer join) إلى عبارة ON الخاصة بـ outer join. [#101504](https://github.com/ClickHouse/ClickHouse/pull/101504) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تخطّي تطبيق lazy materialization على الخطط التي تحتوي على arrayJoin، إذ قد يؤدي ذلك إلى عدم احترام limit. إغلاق [#101608](https://github.com/ClickHouse/ClickHouse/issues/101608). [#101644](https://github.com/ClickHouse/ClickHouse/pull/101644) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح نتائج استعلامات JOIN غير الصحيحة عندما كان تحسين `mergeFilterIntoJoinCondition` يُسقط بصمت شرط مساواة في WHERE مع أنواع غير متطابقة. [#101652](https://github.com/ClickHouse/ClickHouse/pull/101652) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* إصلاح عدم عمل تلميح الاختبار `error` مع أخطاء الصياغة/التحليل — إذ كان `-- { error SYNTAX_ERROR }` سابقًا، عند استخدامه مع query غير صحيح، يفشل برسالة "Expected server error" بدلًا من مطابقة خطأ التحليل على جانب العميل. [#101675](https://github.com/ClickHouse/ClickHouse/pull/101675) ([Groene AI](https://github.com/groeneai)).
* إصلاح أن `INTO OUTFILE ... TRUNCATE` لم يكن يستخدم فعليًا إعادة التسمية atomic — إذ كانت الكتابة تتم مباشرة إلى الملف الأصلي بدلًا من ملف مؤقت، لذلك كان المحتوى الأصلي يُدمَّر عند فشل query. والآن تُكتب البيانات إلى ملف مؤقت ولا يُعاد تسميته إلا عند النجاح. [#101884](https://github.com/ClickHouse/ClickHouse/pull/101884) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح الاستثناء `Unsupported DeltaLake type: varchar(n)` عند قراءة جداول Delta Lake التي يحتوي schema الخاص بها على أنواع أعمدة varchar(n) أو char(n). وتُربط هذه الأنواع الآن بـ String، بما يتوافق مع كيفية تخزين protocol الخاص بـ Delta Lake لها كمصفوفات بايت عادية في Parquet. [#101973](https://github.com/ClickHouse/ClickHouse/pull/101973) ([Flavio Malavazi](https://github.com/flaviomalavazi)).
* إصلاح فقدان صامت للبيانات عند قراءة أرشيفات tar من S3 باستخدام `schema_inference_mode=union` وschemas Parquet غير المتجانسة — إذ كانت parquet metadata cache تعيد استخدام metadata الخاص بالملف الأول على نحو غير صحيح لجميع الملفات اللاحقة في الأرشيف. [#101990](https://github.com/ClickHouse/ClickHouse/pull/101990) ([Ahaan Limaye](https://github.com/ahaanlimaye)).
* إصلاح تعطل الخادم (LOGICAL\_ERROR) عند تنفيذ ALTER TABLE UPDATE/DELETE على جداول Iceberg إذا لم يكن قد نُفِّذ أي SELECT أو INSERT مسبقًا على الجدول خلال فترة تشغيل الخادم نفسها. [#102113](https://github.com/ClickHouse/ClickHouse/pull/102113) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل محتمل عند تنفيذ استعلام ALTER على جداول من قاعدة بيانات داخل الذاكرة (مثل الجداول المؤقتة). [#102360](https://github.com/ClickHouse/ClickHouse/pull/102360) ([Den Kalantaevskii](https://github.com/Diskein)).
* تم إصلاح مشكلة قيام `formatQuery` بإنتاج grants مكررة مثل `GRANT FILE ON *.*, FILE ON *.* TO x` بدلًا من `GRANT FILE ON *.* TO x` عند تنسيق grants المتوافقة مع الإصدارات السابقة من READ/WRITE على المصدر نفسه. [#102411](https://github.com/ClickHouse/ClickHouse/pull/102411) ([Groene AI](https://github.com/groeneai)).
* إصلاح فقدان التوازي في التجميع بعد استعلامات read-in-order عندما تكون قيمة `max_streams_to_max_threads_ratio` أكبر من 1. [#102467](https://github.com/ClickHouse/ClickHouse/pull/102467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تعطل (`LOGICAL_ERROR: Unknown virtual column`) عند تحديد subcolumns (مثل `.null` لـ Nullable، و`.size0` لـ Array، وعناصر Tuple، أو مفاتيح/قيم Map) من table engine من نوع Buffer. [#102470](https://github.com/ClickHouse/ClickHouse/pull/102470) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستثناء "Cannot fold actions for projection" في تحسين إعادة ترتيب join عندما يتم دمج LEFT/RIGHT JOIN مع `join_use_nulls` مع joins أخرى تتضمن أكثر من جدولين. [#102516](https://github.com/ClickHouse/ClickHouse/pull/102516) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح overflow صامت في العمليات scalar pointwise على numericIndexedVector (مثل `numericIndexedVectorPointwiseAdd`) عندما تكون قيمة scalar خارج النطاق. أصبحت هذه المدخلات الآن تُطلق `INCORRECT_DATA` بدلًا من إرجاع قيم تالفة. [#102546](https://github.com/ClickHouse/ClickHouse/pull/102546) ([FriendLey](https://github.com/FriendLey)).
* إصلاح تنسيق AST غير المتسق لعبارة INSERT مع SAMPLE وOFFSET على مستوى الاستعلام. يُغلق [#102523](https://github.com/ClickHouse/ClickHouse/issues/102523). [#102547](https://github.com/ClickHouse/ClickHouse/pull/102547) ([zoomxi](https://github.com/zoomxi)).
* إصلاح استثناء `LOGICAL_ERROR` في `groupConcat` عند إلغاء تسلسل حالة aggregate function غير صالحة. [#102558](https://github.com/ClickHouse/ClickHouse/pull/102558) ([Christoph Wurm](https://github.com/cwurm)).
* لم نعد نقبل الآن بيانات غير صالحة في نهاية قيم Time64 بتنسيق CSV عند استخدام `input_format_csv_use_default_on_bad_values=0`. يُغلق [#102490](https://github.com/ClickHouse/ClickHouse/issues/102490). [#102596](https://github.com/ClickHouse/ClickHouse/pull/102596) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء UNKNOWN\_ELEMENT\_OF\_ENUM عند insert قيمة default في JSON column مع paths من النوع Enum. يُغلق [#102359](https://github.com/ClickHouse/ClickHouse/issues/102359). [#102687](https://github.com/ClickHouse/ClickHouse/pull/102687) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تلف الملف columns\_substreams.txt أثناء rename العمود في بعض الحالات. يُغلق [#102259](https://github.com/ClickHouse/ClickHouse/issues/102259). [#102689](https://github.com/ClickHouse/ClickHouse/pull/102689) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح insert في Data type ‏Time أثناء parsing لـ JSON. يُغلق [#102016](https://github.com/ClickHouse/ClickHouse/issues/102016). [#102690](https://github.com/ClickHouse/ClickHouse/pull/102690) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الترميز الست عشري لعينة المحتوى في أسماء ملفات schema المخزنة مؤقتًا. يُغلق [#101904](https://github.com/ClickHouse/ClickHouse/issues/101904). [#102703](https://github.com/ClickHouse/ClickHouse/pull/102703) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح انتهاك ترتيب الفرز (تعطل في وضع debug، وفساد صامت للبيانات في إصدار release) أثناء دمج `SummingMergeTree` عندما يكون مفتاح `ORDER BY` تعبير hash على عمود `Float32` يحتوي على قيم signaling NaN. [#102791](https://github.com/ClickHouse/ClickHouse/pull/102791) ([Groene AI](https://github.com/groeneai)).
* تم جعل `DETACH DATABASE ... SYNC` والعمليات الأخرى التي تستدعي `waitDetachedTableNotInUse` قابلة للإلغاء عبر `KILL QUERY` ومستجيبة لإيقاف تشغيل server، ما يمنع التعليق إلى أجل غير مسمى عندما يحتفظ query متزامن بمرجع إلى table. [#102804](https://github.com/ClickHouse/ClickHouse/pull/102804) ([Antonio Andelic](https://github.com/antonio2368)).
* تم إصلاح احتمال إرجاع نتيجة غير صحيحة في `ANY RIGHT JOIN`. [#102893](https://github.com/ClickHouse/ClickHouse/pull/102893) ([Nikita Taranov](https://github.com/nickitat)).
* تم إصلاح فشل طلبات S3 مع ظهور `ios_base::clear: unspecified iostream_category error` بدلًا من إعادة المحاولة، وكان السبب أن Poco `BufferedStreamBuf::flushBuffer` لا يتعامل مع عمليات الكتابة القصيرة من طبقة socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* تم إصلاح فشل table function ‏`input('auto')` عبر HTTP interface في استعلامات INSERT SELECT. [#102902](https://github.com/ClickHouse/ClickHouse/pull/102902) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم تعطيل تحسين LIMIT البسيط عند استخدام row policies/additional\_table\_filters (للسماح بإجراء index analysis بالتوازي). [#102921](https://github.com/ClickHouse/ClickHouse/pull/102921) ([Azat Khuzhin](https://github.com/azat)).
* تم إخفاء secret key في دالة SQL ‏`HMAC`. إصلاح [#102927](https://github.com/ClickHouse/ClickHouse/issues/102927). [#102997](https://github.com/ClickHouse/ClickHouse/pull/102997) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* تم إصلاح الاستثناء `MULTIPLE_EXPRESSIONS_FOR_ALIAS` الذي كان يظهر في distributed queries التي تشير إلى استدعاء `quantile` نفسه عدة مرات (مثلًا في `SELECT` و`HAVING` و`ORDER BY`) عند تفعيل `optimize_syntax_fuse_functions`. [#103014](https://github.com/ClickHouse/ClickHouse/pull/103014) ([tanner-bruce](https://github.com/tanner-bruce)).
* تم إصلاح حالة اكتشفها CI حيث جرى تمرير set غير جاهز عندما يعتمد filter على column في الجهة اليسرى. يُغلق [#102966](https://github.com/ClickHouse/ClickHouse/issues/102966). [#103029](https://github.com/ClickHouse/ClickHouse/pull/103029) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح castOrNull إلى JSON في بعض الحالات. يُغلق [#101818](https://github.com/ClickHouse/ClickHouse/issues/101818). [#103036](https://github.com/ClickHouse/ClickHouse/pull/103036) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح حالة كان فيها `SELECT DISTINCT` يُرجع بصمت نتائج غير مكتملة عندما كانت aggregate projection تطابق query وكانت بعض parts في table لا تحتوي على بيانات projection (على سبيل المثال، أُضيفت projection إلى table يحتوي بالفعل على بيانات، ولم يُشغَّل `MATERIALIZE PROJECTION`). يُغلق [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح الاستثناء `TOO_FEW_ARGUMENTS_FOR_FUNCTION` عندما ينهار predicate في `WHERE` مثل `AND(OR(A, A), A)` إلى argument واحد على المستوى الأعلى أثناء استخراج التعبيرات المشتركة في analyzer. [#103072](https://github.com/ClickHouse/ClickHouse/pull/103072) ([Peng](https://github.com/fastio)).
* إصلاح خطأ منطقي `Function writeSlice expects same column types for GenericArraySlice and GenericArraySink` كان يظهر عند تقييم `if`/`ifNull` على tuples أو maps أو arrays التي تحتوي على عنصر `QBit`. كانت `ColumnQBit::structureEquals` تقارن بشكل غير صحيح الـ tuple الداخلية لأحد أعمدة `QBit` مع الغلاف الخارجي للآخر، لذلك كان يتم اعتبار أعمدة `QBit` المتطابقة بنيويًا مختلفة. [#103084](https://github.com/ClickHouse/ClickHouse/pull/103084) ([Groene AI](https://github.com/groeneai)).
* جعل `DETACH DATABASE` مع `database_atomic_wait_for_drop_and_detach_synchronously` يستجيب لـ `KILL QUERY` بدلًا من أن يظل معلّقًا إلى أجل غير مسمى عند الاحتفاظ بمرجع إلى table. [#103095](https://github.com/ClickHouse/ClickHouse/pull/103095) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح segfault عند حذف وحدة WASM باستخدام predicate ليس معرّفًا (مثل `WHERE 1=1`). [#103101](https://github.com/ClickHouse/ClickHouse/pull/103101) ([Joe Redfern](https://github.com/JosephRedfern)).
* إصلاح مشكلة في التوافق مع الإصدارات السابقة حيث كانت العملاء القدامى يفشلون مع `UNEXPECTED_PACKET_FROM_SERVER` عند الإدراج في server أحدث عبر `remote()` أو Distributed tables، وكان السبب هو استدعاء `sendProgress` بلا شرط في نهاية `processInsertQuery`. [#103148](https://github.com/ClickHouse/ClickHouse/pull/103148) ([Sema Checherinda](https://github.com/CheSema)).
* يجب ألا يقوم IN، عند استخدام argument ثانٍ من نوع tuple غير ثابت، بإجراء CAST لعناصر tuple إلى نوع الطرف الأيسر، لأن ذلك قد يسبب overflow. يغلق [#103055](https://github.com/ClickHouse/ClickHouse/issues/103055). [#103169](https://github.com/ClickHouse/ClickHouse/pull/103169) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استخدام قيمة غير مهيأة في دالة protocol. [#103187](https://github.com/ClickHouse/ClickHouse/pull/103187) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `LOGICAL_ERROR` (`Bad cast … to ColumnLowCardinality`) أثناء index analysis في MergeTree عندما تقارن عبارة `WHERE` Key column من نوع `LowCardinality` مع ثابت محوَّل إلى نوع يحتوي على `LowCardinality` متداخل (على سبيل المثال `Variant(LowCardinality(Date), String)`). [#103211](https://github.com/ClickHouse/ClickHouse/pull/103211) ([Groene AI](https://github.com/groeneai)).
* إصلاح `Logical error: 'index < bucket_count'` في عائلة aggregate function `timeSeries*ToGrid` (مثل `timeSeriesResampleToGridWithStaleness` و`timeSeriesChangesToGrid` و`timeSeriesResetsToGrid` و`timeSeriesRateToGrid`) عند استدعائها باستخدام parameters قصوى لـ timestamp كانت ستؤدي إلى overflow في العمليات الحسابية الموقعة ذات 64-bit أثناء حساب عدد buckets. كما وُضع حد أقصى لإجمالي عدد grid buckets عند 16 مليونًا لمنع تخصيص كميات كبيرة من الذاكرة بالخطأ نتيجة مدخلات خبيثة. [#103223](https://github.com/ClickHouse/ClickHouse/pull/103223) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستثناء `Logical error: 'Port is already connected'` أثناء توسيع pipeline في مسار `FINAL` الكسول لـ `ReplacingMergeTree`. أثرت هذه المشكلة في queries التي تستخدم `query_plan_optimize_lazy_final = 1` عندما كانت `ReadFromMergeTree::initializePipeline` تُدرج تحويلات داخلية (مثل `Resize`) تربط processors الخاصة بالـ sub-pipeline معًا، مما جعل `LazyUnorderedReadFromMergeTreeSource::expandPipeline` يحاول توصيل منافذ output كانت متصلة مسبقًا. [#103230](https://github.com/ClickHouse/ClickHouse/pull/103230) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتائج غير صحيحة من `LIMIT BY` و`DISTINCT` عندما يكون الإدخال عبارة عن `UNION ALL` من subqueries مرتبة. كان مُحسِّن query plan يتعامل خطأً مع هذا union على أنه مرتب عالميًا، مما أدى إلى إرجاع صفوف إضافية. [#103231](https://github.com/ClickHouse/ClickHouse/pull/103231) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح احتمال حدوث تعطل أثناء حساب الإحصاءات في Map type مع lazy replication. يغلق [#102390](https://github.com/ClickHouse/ClickHouse/issues/102390). [#103273](https://github.com/ClickHouse/ClickHouse/pull/103273) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح حالة data race في dictionary sources الخاصة بـ ClickHouse وMySQL وPostgreSQL وXDBC، حيث يقرأ `clone() const` من السلسلة `invalidate_query_response` نفسها التي يكتب إليها `isModified() const`. [#103277](https://github.com/ClickHouse/ClickHouse/pull/103277) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح الاكتشاف غير الصحيح للرتابة في `Date32`. يُغلق [#101265](https://github.com/ClickHouse/ClickHouse/issues/101265). [#103283](https://github.com/ClickHouse/ClickHouse/pull/103283) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* قصر سلاسل حزمة Hello عبر TCP قبل المصادقة على 64 كيلوبايت، وإضافة server setting باسم `handshake_timeout_milliseconds` للحد من إجمالي وقت المصافحة، بما يمنع clients غير الموثَّقين من استهلاك قدر مفرط من الذاكرة أو إبقاء threads مشغولة إلى أجل غير مسمى. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح الخلل الذي كانت فيه قيمة min\_value > max\_value في إحصاءات ColumnIndex الخاصة بـ Parquet لأعمدة String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* إصلاح التعامل غير الصحيح مع صفوف NULL لمدخلات `Nullable(Tuple(...))` في `flattenTuple` و`tupleToNameValuePairs`. يحتفظ `flattenTuple` الآن بخريطة null الخارجية بحيث تظل صفوف NULL كما هي. ويغيّر `tupleToNameValuePairs` الآن نوع value في النتيجة إلى `Nullable(T)` متى أمكن ذلك عندما يكون الإدخال `Nullable(Tuple(...))`، بحيث تُنتج صفوف NULL `[('a', NULL), ('b', NULL)]` بدلًا من `[('a', 0), ('b', 0)]`. وعندما يتعذر تغليف element type داخل `Nullable` (مثل `Array`)، تُستخدم default values بدلًا من NULL. يُغلق [#103312](https://github.com/ClickHouse/ClickHouse/issues/103312). [#103383](https://github.com/ClickHouse/ClickHouse/pull/103383) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* التحقق من بيانات Dynamic المسطّحة المشوَّهة في Native format. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح RPC stale كان يتسبب في تعطل replication بعد مزامنة snapshot. [#103406](https://github.com/ClickHouse/ClickHouse/pull/103406) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح الخطأ `LOGICAL_ERROR` ‏"Cannot pop N rows from X" الذي كان يؤدي إلى إيقاف server (في builds الخاصة بالتصحيح / sanitizer) عند قراءة document من BSON مشوَّه يحتوي على value يكون نوع BSON الخاص بها غير متوافق مع column type المستهدَف داخل عمود `Nullable(T)` أو `Array(Nullable(T))`. وأصبح الصف المشوَّه الآن يُنتج استثناء `ILLEGAL_COLUMN` واضحًا كما هو مقصود. [#103418](https://github.com/ClickHouse/ClickHouse/pull/103418) ([Groene AI](https://github.com/groeneai)).
* إصلاح إيقاف server في `arrayFill` و`arrayReverseFill` عند تطبيقهما على عمود `Array(String)` يكون صفه الأول فارغًا مع lambda ثابتة القيمة false. إذ تسبب underflow في حلقة aggregate / المصفوفة الفرعية في تحويل فهرس `size_t` إلى `SIZE_MAX`، مما أدى لاحقًا إلى قراءة خارج الحدود داخل `ColumnString::doInsertManyFrom`. وهذه من family نفسها الخاصة بالخلل [#12263](https://github.com/ClickHouse/ClickHouse/issues/12263). [#103424](https://github.com/ClickHouse/ClickHouse/pull/103424) ([Groene AI](https://github.com/groeneai)).
* إصلاح ACCESS\_DENIED / UNKNOWN\_TABLE في RMVs اللاحقة من نوع APPEND مع SQL SECURITY DEFINER عندما يؤدي EXCHANGE في RMV upstream من نوع REPLACE إلى تبديل identity الخاصة بتخزين الهدف أثناء resolution. [#103427](https://github.com/ClickHouse/ClickHouse/pull/103427) ([Alexander Gololobov](https://github.com/davenger)).
* تعبئة عمود `_time` من table function ‏`url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح احتمال حدوث قراءة خارج الحدود في مسار فك الضغط لمرمّز `ALP` عند معالجة مُدخلات تالفة ذات عرض بتات غير صالح. [#103457](https://github.com/ClickHouse/ClickHouse/pull/103457) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح خلل كان قد يؤدي إلى فقدان اسم filesystem cache عند تنسيق الاستعلام `SYSTEM SYNC FILESYSTEM CACHE '<name>' ON CLUSTER ...`، مما يجعل العقد البعيدة تزامن جميع ذواكر التخزين المؤقت لنظام الملفات بدلًا من ذاكرة التخزين المؤقت المطلوبة فقط. [#103469](https://github.com/ClickHouse/ClickHouse/pull/103469) ([Asish Kumar](https://github.com/officialasishkumar)).
* إصلاح معالجة المسار المرمّز بصيغة URL في `deltaLakeAzure`. يغلق [#103509](https://github.com/ClickHouse/ClickHouse/issues/103509). [#103525](https://github.com/ClickHouse/ClickHouse/pull/103525) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إصلاح مشكلة heap-use-after-free عند ضرب حالة `AggregateFunction` بعدد صحيح (مثل `quantilesExactState(...) * N`). كانت حلقة الرفع إلى الأس بالتربيع تدمج الحالة مع نفسها، وهو سلوك غير معرّف عندما يعيد `merge` الخاص بالدالة التجميعية تخصيص مساحة التخزين الداخلية. يغلق STID 0988-40af. [#103536](https://github.com/ClickHouse/ClickHouse/pull/103536) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ النادر `LOGICAL_ERROR` "Part X intersects previous part Y" الذي كان يظهر أثناء بدء تشغيل جدول `ReplicatedMergeTree` عندما يكون على القرص جزءان فارغان غير متوقعين لهما نطاقات blocks متداخلة من دون أن يحتوي أحدهما الآخر. كان هذا الاستثناء يوقف خيط Attach الجدول ويمنع تشغيله. [#103537](https://github.com/ClickHouse/ClickHouse/pull/103537) ([Groene AI](https://github.com/groeneai)).
* إصلاح `Logical error: Incorrect mark rows for part ...` (توكيد مخصص للتنقيح فقط) الذي كانت mutations تُحفّزه في جداول `MergeTree` ذات index granularity غير تكيفية (`index_granularity_bytes = 0`) عندما تكون علامة البيانات الأخيرة غير مكتملة (ويمكن إعادة إنتاجه بأعلى موثوقية عبر `DETACH`/`ATTACH` متبوعًا بـ lightweight `DELETE`). [#103538](https://github.com/ClickHouse/ClickHouse/pull/103538) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة قيام `clickhouse-local` بإرجاع 0 rows بصمت عند القراءة من الملفين الوهميين `/proc` و`/sys` عبر `file()` table function (مثل `SELECT * FROM file('/proc/cpuinfo', 'RawBLOB')`). [#103548](https://github.com/ClickHouse/ClickHouse/pull/103548) ([Ashrith Bandla](https://github.com/ashrithb)).
* إصلاح التعامل مع الوسيط `max_string_length` في `GenerateRandom` table engine. [#103550](https://github.com/ClickHouse/ClickHouse/pull/103550) ([Alex Kuleshov](https://github.com/0xAX)).
* إصلاح إخفاء بيانات الاعتماد المتداخلة في logs. [#103552](https://github.com/ClickHouse/ClickHouse/pull/103552) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح اكتشاف SVE الذي كان يستخدم تعليمات SVE حتى عند عدم توفرها. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح parsing معاملات التخزين الخاصة بـ `GenerateRandom`. [#103574](https://github.com/ClickHouse/ClickHouse/pull/103574) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح حلقة لا نهائية في `WITH FILL` للبيانات التي تبدأ بـ ±inf. [#103580](https://github.com/ClickHouse/ClickHouse/pull/103580) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح `JSONExtract` إلى نوع `Variant` الذي كان يقتطع الأرقام العشرية في JSON بصمت. سابقًا، كان `JSONExtract('{"x": 3.14}', 'x', 'Variant(Int64, Float64)')` يعيد `Int64=3` وكان `JSONExtract('{"x": 3.14}', 'x', 'Variant(String, Int64)')` يعيد `Int64=3`، ما يؤدي إلى إسقاط الجزء الكسري. الآن تُحفَظ القيمة الكسرية بالكامل دون فقدان: إذ يتولاها عضو `Float64`/`Decimal` عند وجوده، وإلا يلتقط عضو `String` قيمة JSON الأصلية. أما أنواع `Variant` التي تحتوي على أعضاء عددية صحيحة فقط (مثل `Variant(Int64, Int32)`) والاستخراج المباشر كعدد صحيح (`JSONExtract(json, 'Int64')`, `JSONExtractInt`, إلخ) فلم يطرأ عليها تغيير. [#103620](https://github.com/ClickHouse/ClickHouse/pull/103620) ([Groene AI](https://github.com/groeneai)).
* إصلاح `SYSTEM INSTRUMENT REMOVE` عند استدعائه من دون وسائط، إذ كان يُنتج `std::bad_optional_access` (رمز الخطأ 1001) بدلًا من `SYNTAX_ERROR` (رمز الخطأ 62). [#103622](https://github.com/ClickHouse/ClickHouse/pull/103622) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح خطأ منطقي / سلوك غير معرّف في `windowID` و`tumble` ضمن window view عند استدعائهما بسلسلة منطقة زمنية بوصفها الوسيطة الثالثة. [#103641](https://github.com/ClickHouse/ClickHouse/pull/103641) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح تسجيل عميل S3 يتعامل الآن مع استجابات HTTP 400 التي تتضمن ترويسة x-amz-bucket-region غير فارغة (أي منطقة توقيع SigV4 خاطئة) على أنها حالة معلوماتية تشير إلى المنطقة الخاطئة، مع سطر سجل أوضح بدلًا من المسار العام ذي طابع الخطأ. كما أُضيف موفّر بيانات الاعتماد لهوية الويب الخاص بـ STS إلى سلسلة بيانات اعتماد S3 فقط عند تهيئة هوية الويب، ما يقلل التحذيرات الزائفة في عمليات النشر التي لا تستخدمه. يغلق [#99140](https://github.com/ClickHouse/ClickHouse/issues/99140). [#103673](https://github.com/ClickHouse/ClickHouse/pull/103673) ([MeltonSmith](https://github.com/MeltonSmith)).
* إصلاح `SYSTEM SYNC REPLICA <db>.<tbl> IF EXISTS` لكي ينجح بصمت عندما لا تكون قاعدة البيانات موجودة، بما يطابق السلوك الحالي عند غياب الجدول والسابقة التي أرساها `DROP TABLE IF EXISTS`. سابقًا، كان الاستعلام يطرح `UNKNOWN_DATABASE` رغم وجود `IF EXISTS`. يغلق [#103629](https://github.com/ClickHouse/ClickHouse/issues/103629). [#103689](https://github.com/ClickHouse/ClickHouse/pull/103689) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ المنطقي `Arguments of 'plus' have incorrect data types` الذي كانت ترميه `FunctionBinaryArithmetic::executeImpl2` عندما يحتوي جدول `MergeTree` على `Array(LowCardinality(...))` في مفتاح الفرز، وتستخدم عبارة `WHERE` الدالتين `plus` / `minus` بين ذلك العمود وثابت `Array` من نوع عنصر مختلف. وأصبح `KeyCondition::getMonotonicityForRange` الآن يزيل `LowCardinality` تكراريًا قبل استدعاء التوجيه العددي الداخلي. [#103701](https://github.com/ClickHouse/ClickHouse/pull/103701) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة تسابق عند تغيير حجم dynamic cache في الإصدار 26.1+. [#103702](https://github.com/ClickHouse/ClickHouse/pull/103702) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح مشكلة كانت فيها فهارس التخطي النصية و bloom\_filter على أعمدة `ALIAS` التي احتوى تعبيرها على lambda ذات ثوابت ملتقطة (مثل `arrayMap((k, v) -> concat(k, '=', v), mapKeys(m), mapValues(m)))`) تُتجاهل بصمت. [#103708](https://github.com/ClickHouse/ClickHouse/pull/103708) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح `position` و`positionCaseInsensitive` عندما تكون `start_pos` قريبة من `UINT64_MAX`، إذ كانا يعلقان أو يتسببان في خطأ segmentation fault بسبب تجاوز في حساب مؤشرات الذاكرة. [#103766](https://github.com/ClickHouse/ClickHouse/pull/103766) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح سلوك غير معرّف أثناء تحليل قيمة DateTime تحتوي على جزء كسري مزدوج. [#103773](https://github.com/ClickHouse/ClickHouse/pull/103773) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح تراجع في صحة البيانات في 26.x، حيث كانت الدالتان `if` و`multiIf` المجمّعتان باستخدام JIT، عند استخدام نوع نتيجة `Decimal` ووجود قيمة literal غير `Decimal` (عدد صحيح أو فاصلة عائمة) في أحد الفروع، تُرجعان بصمت قيمة أصغر بمقدار `10^scale`. ولم يتأثر المسار البطيء (غير المعتمد على JIT). الحل المؤقت في الإصدارات المتأثرة: `SET compile_expressions = 0`. [#103809](https://github.com/ClickHouse/ClickHouse/pull/103809) ([Groene AI](https://github.com/groeneai)).
* إصلاح تمرير tokenizer من text index إلى الدوال المدعومة. [#103826](https://github.com/ClickHouse/ClickHouse/pull/103826) ([Elmi Ahmadov](https://github.com/ahmadov)).
* إصلاح النتائج الخاطئة من `numbers` و`generate_series` والمصادر المشابهة الملتزمة بالنطاق عندما يستخدم الشرط `WHERE` العامل `IN` أو `NOT IN` على tuple تُختزل عناصره إلى Key column واحدة (على سبيل المثال، `WHERE tuple(number, number) NOT IN (tuple(1, 2))`). يُغلق [#103660](https://github.com/ClickHouse/ClickHouse/issues/103660). [#103835](https://github.com/ClickHouse/ClickHouse/pull/103835) ([Groene AI](https://github.com/groeneai)).
* إبقاء ذروة الذاكرة الفعلية لخوارزمية hash join ذات auto-spilling تحت `max_bytes_before_external_join`. سابقًا، كان كلٌّ من التخصيص المسبق المعتمد على الإحصاءات، ومضاعفة hash table في مكانها، وbuckets داخل الذاكرة غير المقيّدة في `GraceHashJoin` قادرًا على دفع query إلى تجاوز الحد المهيأ والتسبب في `MEMORY_LIMIT_EXCEEDED`. [#103838](https://github.com/ClickHouse/ClickHouse/pull/103838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة تعليق عند إيقاف `clickhouse-local` عندما تكون logs النظام (مثل `text_log` أو `filesystem_cache_log`) مهيأة. كانت `SystemLogs::flushImpl` تستدعي `BaseDaemon::instance().flushTextLogs()`، التي تُطلق `std::bad_cast` خارج `clickhouse-server` وتُبقي threads الحفظ قيد التشغيل إلى أن يحجب `pthread_cond_destroy` تدمير طوابير log النظام. [#103874](https://github.com/ClickHouse/ClickHouse/pull/103874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* رفض استعلامات CTE من نوع `MATERIALIZED` التي يُفضي body الخاص بها إلى column types مستنتجة مختلفة عبر مراجع مختلفة، مع إظهار خطأ `TYPE_MISMATCH` واضح بدلًا من تعطل server بخطأ `Bad cast` من نوع `LOGICAL_ERROR`. كان هذا يحدث سابقًا عندما كان body الخاص بـ CTE يشير إلى identifiers من النطاق الخارجي (مثل alias من projection الخاصة بالـ subquery المستدعية) التي كانت تُضمَّن inline كثوابت مختلفة لكل مرجع. [#103879](https://github.com/ClickHouse/ClickHouse/pull/103879) ([Groene AI](https://github.com/groeneai)).
* إصلاح use-of-uninitialized-value في مُحسّنات query plan الخاصة بتحويل JOIN (`tryConvertAnyOuterJoinToInnerJoin`, `tryConvertAnyJoinToSemiOrAntiJoin`) عندما يحتوي filter فوق `ANY` `OUTER` `JOIN` على دالة غير deterministic مثل `rand` أو `now` أو `rowNumberInAllBlocks`. لم يعد المُحسِّن يحاول constant-fold لهذه filters ويترك JOIN دون تغيير، مما يمنع أيضًا التحويلات غير الصحيحة إلى `INNER`/`SEMI`/`ANTI JOIN` التي قد تُسقط rows بصمت. [#103880](https://github.com/ClickHouse/ClickHouse/pull/103880) ([Groene AI](https://github.com/groeneai)).
* إصلاح use-after-free في `StorageKafka2` كان قد يتسبب في تعطل server عندما تُستبدل session لـ Keeper بينما يكون consumer محتفظًا بأقفال topic-partition من النوع ephemeral. [#103890](https://github.com/ClickHouse/ClickHouse/pull/103890) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح `LOGICAL_ERROR` بالنص "Primary key type mismatch" الذي كان يُطلق عند تنفيذ join على table من نوع `EmbeddedRocksDB` عبر `JOIN ... USING (key)` مقابل subquery يكون فيها Key column من type مختلف (مثل `Nullable(UInt64)` أو `Int64` أو `Decimal`) عن primary key الخاصة بالتخزين. أصبح planner الآن يرفض `DirectKeyValueJoin` عند عدم تطابق type ويعود إلى `HashJoin`، الذي يتعامل مع تحويل النوع. [#103928](https://github.com/ClickHouse/ClickHouse/pull/103928) ([Groene AI](https://github.com/groeneai)).
* لم يعد `SET max_threads = DEFAULT` (وكذلك `max_final_threads` و`max_parsing_threads`) يفقد حالة `auto`. سابقًا، بعد إعادة تعيين أحد هذه الإعدادات، كان `system.settings` يعرض عدد الأنوية المحسوب (مثلًا `32`) بدلًا من `'auto(32)'`، وكان الخادم يتصرف كما لو أن القيمة قد ثُبِّتت صراحةً. [#103991](https://github.com/ClickHouse/ClickHouse/pull/103991) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `SIZES_OF_ARRAYS_DONT_MATCH` عند قراءة أعمدة `AggregateFunction(topK(N), String)` التي زادت قيمة `alpha_size` المحفوظة فيها نتيجة دورة deserialize+serialize سبقت الإصدار 25.12. [#104002](https://github.com/ClickHouse/ClickHouse/pull/104002) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح ثغرة حقن SQL في مصادر القواميس PostgreSQL وCassandra وXDBC: كانت مفاتيح السلاسل النصية التي تحتوي على single quotes تُهرَّب باستخدام `\'` (backslash)، بينما تتعامل هذه الأنظمة الخلفية معه على أنه backslash حرفي لا كتسلسل تهريب، ما يتيح حقن SQL عشوائي في استعلامات lookup الخاصة بالقواميس. يُخرج `ExternalQueryBuilder` الآن تهريب `''` القياسي في SQL لهذه الأنظمة الخلفية؛ بينما تواصل مصادر القواميس ClickHouse وMySQL استخدام التهريب عبر backslash. [#104009](https://github.com/ClickHouse/ClickHouse/pull/104009) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح احتمال عدم تطابق النوع في aggregation عند تغيير column type من/إلى LowCardinality، من دون إعادة بناء min-max projection. [#104013](https://github.com/ClickHouse/ClickHouse/pull/104013) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح حلقة لا نهائية من query optimization نتجت عن عدم تمرير منع إزالة column غير المستخدم عند دمج expressions. [#104083](https://github.com/ClickHouse/ClickHouse/pull/104083) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح `LOGICAL_ERROR` في `StreamingStorageRegistry::renameTable` عند إعادة تسمية streaming tables على دفعات (S3Queue وKafka وRabbitMQ)، وذلك باستخدام تتبّع الهوية المستند إلى UUID بدلًا من الاسم. [#104101](https://github.com/ClickHouse/ClickHouse/pull/104101) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح نتائج غير صحيحة عندما كان CTE مُنشأً باستخدام `UNION ALL` يحتوي على فرع `SELECT DISTINCT`، بينما كان query الخارجي يُسقِط فقط subset من columns الخاصة بـ CTE. كانت `RemoveUnusedProjectionColumnsPass` في analyzer الجديد تزيل على نحو غير صحيح column غير المُشار إليه من إسقاط `DISTINCT` الداخلي، ما أدى إلى دمج rows كان ينبغي أن تظل متميزة (القيمة نفسها في column المُسقَط لكن قيمة مختلفة في column المحذوف) في row واحدة. [#104114](https://github.com/ClickHouse/ClickHouse/pull/104114) ([Groene AI](https://github.com/groeneai)).
* إصلاح عدة مشكلات صحة في حالات طرفية في الإعداد `optimize_inverse_dictionary_lookup`، حيث كان التحسين قد يحذف rows بصمت أو يمنع ظهور exceptions. يغلق [#103270](https://github.com/ClickHouse/ClickHouse/issues/103270). ويغلق [#103085](https://github.com/ClickHouse/ClickHouse/issues/103085). [#104133](https://github.com/ClickHouse/ClickHouse/pull/104133) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح كتابة خارج الحدود أثناء deserialize لحالة `quantileTiming`. [#104141](https://github.com/ClickHouse/ClickHouse/pull/104141) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح سلوك غير معرّف عند تحويل قيمة `Float64` خارج النطاق إلى integer type عريض (`UInt64`, `Int64`, `Int128`, `UInt128`, `Int256`, `UInt256`). سابقًا، كانت القيم المساوية لـ `Float64(numeric_limits<T>::max())` (التي تُقرَّب للأعلى إلى قيمة تتجاوز الحد الأقصى الفعلي) تتجاوز فحص الحدود وتنتج UB في التحويل اللاحق. وقد أثّر ذلك في parsing لمعاملات aggregate function (`topK`, `histogram`, `uniqUpTo`, `groupArrayInsertAt`، وغيرها)، وكذلك في settings ذات النوع الصحيح عبر `SET <setting> = <Float64>`. يغلق [#103817](https://github.com/ClickHouse/ClickHouse/issues/103817). [#104154](https://github.com/ClickHouse/ClickHouse/pull/104154) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء `LOGICAL_ERROR` "Unexpected return type from comparison. Expected `UInt8`. Got `Const(Nullable(UInt8))`" عند مقارنة `Tuple(Tuple(Nullable(...)))` متداخلة (أو ذات تداخل أعمق) مع قيمة `String` حرفية. أصبح نوع الإرجاع للمقارنة يُستنتج الآن بشكل صحيح على أنه `Nullable(UInt8)`، بما يتوافق مع سلوك وقت التشغيل. [#104171](https://github.com/ClickHouse/ClickHouse/pull/104171) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم (`UndefinedBehaviorSanitizer: reference binding to null pointer`، وsegfault في إصدارات release) عند `SELECT ... FROM <ReplacingMergeTree(version, is_deleted)> FINAL PREWHERE is_deleted = <expr> AND <other column expr>` عندما تكون `query_plan_optimize_lazy_final = 1`. فقدت خطوة القراءة lazy-FINAL غير المتقاطعة العمود `is_deleted` من ترويسة الخرج لأن `PREWHERE` استهلكه كمدخل من دون إعادة تمريره ضمن الخرج. ثم قامت خطوة `addIsDeletedFilter` اللاحقة بإلغاء مرجعية مؤشر `ActionsDAG::Node` فارغ. [#104177](https://github.com/ClickHouse/ClickHouse/pull/104177) ([Groene AI](https://github.com/groeneai)).
* عند استدعاء جدول system.failpoints، كان يستخدم failpoint، ما قد يؤدي إلى تعطيله. [#104237](https://github.com/ClickHouse/ClickHouse/pull/104237) ([Pedro Ferreira](https://github.com/PedroTadim)).
* إصلاح `MemorySanitizer: use-of-uninitialized-value` في الدوال `detectLanguage*` عندما يحتوي الإدخال على محرف UTF-8 ينتهي تمامًا عند حدّ buffer. [#104257](https://github.com/ClickHouse/ClickHouse/pull/104257) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح خطأ منطقي (`Bad cast from type DB::CachedObjectStorage to DB::S3ObjectStorage`) كان يؤدي إلى إيقاف parsing الوسائط الخاصة بـ table functions وengines لبحيرات البيانات (`icebergS3`, `deltaLakeS3`، إلخ) عند استدعائها باستخدام `SETTINGS disk = '...'` على disk تكون object storage الأساسية له مغلفة بمُزيّن مثل filesystem cache. يُغلق [#89300](https://github.com/ClickHouse/ClickHouse/issues/89300). [#104258](https://github.com/ClickHouse/ClickHouse/pull/104258) ([Groene AI](https://github.com/groeneai)).
* إصلاح parsing تعبيرات الفهرسة الموضوعة بين قوسين على columns المسماة `values`، مثل `(values['a'])`، بحيث لم تعد تُفسَّر على أنها تعبيرات جدول `VALUES` القياسية في SQL. [#104312](https://github.com/ClickHouse/ClickHouse/pull/104312) ([Desel72](https://github.com/Desel72)).
* إصلاح تعطل الخادم/`LOGICAL_ERROR` في thread الإخلاء الخلفية الخاصة بـ filesystem cache (`SLRUFileCachePriority::collectEvictionInfo`) الذي كان يمكن أن يحدث عندما تكون `keep_free_space_size_ratio` أو `keep_free_space_elements_ratio` مرتفعة بما يكفي لتحفيز الإخلاء، بينما تكون جميع cache entries قد رُقّيت بالفعل إلى protected queue الخاصة بـ SLRU (مع فراغ الجزء probationary). [#104313](https://github.com/ClickHouse/ClickHouse/pull/104313) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستثناءات (`NOT_FOUND_COLUMN_IN_BLOCK`, `LOGICAL_ERROR`, `AMBIGUOUS_COLUMN_NAME`) عند استخدام projections مع عروض UNION ALL أو window functions أو حالات تعارض أسماء الأعمدة مع الأسماء المستعارة. هذا تراجع ناتج عن [#88798](https://github.com/ClickHouse/ClickHouse/issues/88798). [#104317](https://github.com/ClickHouse/ClickHouse/pull/104317) ([Amos Bird](https://github.com/amosbird)).
* إصلاح احتمال حدوث underflow أثناء parsing مصفوفات Postgres. [#104322](https://github.com/ClickHouse/ClickHouse/pull/104322) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* أصبحت الدوال التي تُرجِع نوعًا غير `Nullable` (مثل `Array` أو `Tuple` أو `Map`) تقبل الآن وسائط `Nullable`. وتشمل الدوال المتأثرة `extractAll` و`extractAllGroups` و`extractAllGroupsHorizontal` و`extractAllGroupsVertical` و`extractGroups` و`splitByChar` و`splitByString` و`splitByRegexp` و`splitByWhitespace` و`splitByNonAlpha` و`alphaTokens`. وتُنتِج صفوف الإدخال ذات القيمة `NULL` القيمةَ الافتراضية لنوع النتيجة (مثل مصفوفة فارغة) بدلًا من إثارة الخطأ "Nested type is not allowed inside Nullable type". [#104326](https://github.com/ClickHouse/ClickHouse/pull/104326) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إحصاءات Iceberg مع جدول مُقسَّم إلى partition. وهذا يُغلق [#104321](https://github.com/ClickHouse/ClickHouse/issues/104321). [#104329](https://github.com/ClickHouse/ClickHouse/pull/104329) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح خطأ منطقي فادح عند بدء تشغيل الخادم على macOS (وفي إصدارات `jemalloc` المشابهة)، حيث كانت `Jemalloc::verifySetup` تُبلّغ خطأً عن عدم تطابق في `jemalloc_enable_background_threads` لأن `mallctls` الاختيارية `background_thread` / `max_background_threads` غير موجودة؛ ويُتجاوز التحقق عندما لا تكون `mallctls` هذه متاحة، كما أن `getValue` لم تعد تترك المخرجات غير مهيّأة عند الفشل. يُغلق [#102183](https://github.com/ClickHouse/ClickHouse/issues/102183). [#104330](https://github.com/ClickHouse/ClickHouse/pull/104330) ([SAYON DEEP](https://github.com/sayondeep)).
* إصلاح تراجع في السلوك الصحيح حيث كان يمكن لاستعلامات `SELECT` مع `max_rows_to_read_leaf` و`read_overflow_mode_leaf = 'throw'` أن تُطلق `TOO_MANY_ROWS` بشكل غير صحيح حتى عندما كان skip index سيخفض حجم القراءة إلى ما دون الحد الأقصى على مستوى leaf. وكانت الإعدادات المناظرة لغير leaf (`max_rows_to_read` / `read_overflow_mode`) تُعالَج بالفعل. [#104331](https://github.com/ClickHouse/ClickHouse/pull/104331) ([Groene AI](https://github.com/groeneai)).
* أصبحت `toUUID` و`toUUIDOrNull` و`toUUIDOrZero` و`toUUIDOrDefault` و`CAST` إلى `UUID` و`Nullable(UUID)` و`accurateCastOrNull` إلى `UUID`، وكذلك input formats التي تفسّر UUID من النص (`Avro` و`MsgPack` و`JSONExtract` و...)، ترفض الآن السلاسل النصية التي لها الطول الصحيح لكنها تحتوي على محارف غير ستّ عشرية. سابقًا كانت مثل هذه المدخلات تتحول بصمت إلى UUID مُختلق بسبب تجاوز نهاية جدول lookup للأرقام الستّ عشرية؛ أما الآن فإن `toUUID` يُطلق `CANNOT_PARSE_UUID`، وتُرجع متغيرات `Or*` القيمة `NULL` / zero UUID / القيمة الافتراضية المورَّدة. [#104370](https://github.com/ClickHouse/ClickHouse/pull/104370) ([Groene AI](https://github.com/groeneai)).
* إصلاح `Bad cast` `LOGICAL_ERROR` في `caseWithExpression` (وفي SQL ‏`CASE expr WHEN ... THEN ... ELSE ...`) عندما ينتهي النوع الأعلى الخاص بـ THEN فقط والنوع الأعلى الخاص بـ (THENs + ELSE) إلى مخازن `ColumnDecimal` مختلفة -- على سبيل المثال، قيم THEN ‏`(UInt16, Int8)` مع ELSE من النوع `Decimal(9, 2)`. يُغلق [#104335](https://github.com/ClickHouse/ClickHouse/issues/104335). [#104378](https://github.com/ClickHouse/ClickHouse/pull/104378) ([Groene AI](https://github.com/groeneai)).
* أصبحت الأعطال الداخلية المُبلَّغ عنها عبر `logExceptionBeforeStart` (عمليات flush الخاصة بالإدراج غير المتزامن، وعمليات refresh للعروض materialized-view، وأخطاء التحليل التي تُثار أثناء الاستعلامات الداخلية) تزيد الآن بشكل صحيح من ProfileEvents ‏`FailedInternalQuery` و`FailedInternalSelectQuery` و`FailedInternalInsertQuery` إلى جانب العدادات الظاهرة للمستخدم `FailedQuery` و`FailedSelectQuery` و`FailedInsertQuery`. سابقًا كانت هذه العدادات الداخلية تبقى عند الصفر في حالات الفشل التي تقع قبل بدء تنفيذ الاستعلام، مما كان يؤدي إلى تقليل احتساب فئة رئيسية من الأعطال الداخلية. [#104399](https://github.com/ClickHouse/ClickHouse/pull/104399) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `Code: 36. BAD_ARGUMENTS Expected literal, got {name:Type}` الذي كان يظهر عند استخدام query parameter داخل الإعداد `base_backup` في عبارة `BACKUP` أو `RESTORE` (على سبيل المثال `BACKUP ... SETTINGS base_backup = S3({backup_name:String}, ...)`). أُدخل هذا التراجع في `26.1.5` عبر PR [#99205](https://github.com/ClickHouse/ClickHouse/issues/99205). يُغلق [#103324](https://github.com/ClickHouse/ClickHouse/issues/103324). [#104413](https://github.com/ClickHouse/ClickHouse/pull/104413) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقفٍ للخادم في عمليات الكتابة إلى `IcebergLocal`/`IcebergS3` عندما تتبع عملية `INSERT` العبارة `ALTER TABLE ... DROP COLUMN` مع قيمة `iceberg_metadata_staleness_ms` أكبر من الصفر. تُبطِل `ALTER` الآن cache المحلي لملفات Iceberg metadata بحيث ترى عمليات القراءة والكتابة اللاحقة الـ schema الجديدة. [#104419](https://github.com/ClickHouse/ClickHouse/pull/104419) ([Groene AI](https://github.com/groeneai)).
* إصلاح أوامر `DROP ROLE` و`DROP USER` و`DROP SETTINGS PROFILE` و`DROP ROW POLICY` و`DROP QUOTA` و`DROP MASKING POLICY` بحيث تزيل المراجع إلى الـ entity المحذوف من أي access entity آخر كان يشير إليه (مثل قائمة `DEFAULT ROLE` الخاصة بالمستخدم، وقائمة `TO` الخاصة بـ settings profile، والمستفيدين في row policy)، مع حفظ هذا التنظيف على disk. سابقًا، كانت in-memory state تبدو صحيحة لأن `SHOW CREATE` يرشّح UUIDs غير المعروفة، لكن ملفات `.sql` على disk كانت تحتفظ بإدخالات `ID('<dropped-uuid>')` المعلّقة، ثم كانت هذه المراجع تعود للظهور عند إعادة تشغيل server التالية، لتظهر على شكل أخطاء `ACCESS_ENTITY_NOT_FOUND` أثناء distributed query execution. [#104427](https://github.com/ClickHouse/ClickHouse/pull/104427) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقفٍ للخادم يحدث مع `azureBlobStorage` ومحرك `AzureBlobStorage` وDeltaLake-on-Azure عند استخدام connection string يكون فيه عنوان `BlobEndpoint` يحتوي على منفذ فارغ أو غير رقمي أو خارج النطاق (مثل `BlobEndpoint=http://host:abc/`). يعيد الخادم الآن خطأ `BAD_ARGUMENTS` واضحًا بدلًا من التوقف في builds الخاصة بـ debug/sanitizer. [#104460](https://github.com/ClickHouse/ClickHouse/pull/104460) ([Groene AI](https://github.com/groeneai)).
* السماح باستخدام معرّف غير مقتبس كاسم مستخدم في table functions ‏`remote` و`remoteSecure`، بما يتوافق مع كيفية قبول وسيطات database وtable لمعرّفات غير مقتبسة. سابقًا، كان مثل هذا query يفشل مع خطأ authentication مضلّل يشير إلى المستخدم `default`. [#104465](https://github.com/ClickHouse/ClickHouse/pull/104465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `Logical error: Incorrect ASTSelectWithUnionQuery (modes: M, selects: N)` الذي يحدث عندما يحتوي جسم SQL user-defined function على `UNION ALL` داخلي بين قوسين (مثل `CREATE FUNCTION f AS x -> (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))`). [#104477](https://github.com/ClickHouse/ClickHouse/pull/104477) ([Groene AI](https://github.com/groeneai)).
* إصلاح `uniqThetaIntersect` الذي كان يعيد cardinality الخاصة بالـ argument الأول بدلًا من `0` عندما تكون قيمة state الثانية من `uniqTheta` فارغة -- على سبيل المثال، ناتج `uniqThetaMergeStateIf(s, predicate)` عندما يستبعد الـ predicate كل row. [#104529](https://github.com/ClickHouse/ClickHouse/pull/104529) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح قيام `SHOW TABLES` و`system.tables` باقتطاع القائمة بصمت في قواعد بيانات `DataLakeCatalog` المعتمدة على كتالوجات Iceberg REST (`iceberg-rest`, `onelake`, `biglake`). فعندما كان خادم الكتالوج يجزّئ استجابة list-tables أو list-namespaces إلى صفحات (مثل Microsoft Fabric / OneLake عند تجاوز \~50 جدولًا لكل مساحة اسم)، كانت الجداول الموجودة في الصفحات اللاحقة تصبح غير مرئية بصمت لـ `SHOW TABLES` و`system.tables`، رغم أنه كان يمكن الاستعلام عنها عبر `SELECT` مباشر. وأصبح `RestCatalog` الآن يتبع رمز المتابعة `next-page-token` المعرّف في مواصفة Iceberg REST OpenAPI، بما يطابق السلوك الحالي لكل من `PaimonRestCatalog` و`UnityCatalog`. [#104531](https://github.com/ClickHouse/ClickHouse/pull/104531) ([Groene AI](https://github.com/groeneai)).
* تستنتج الدالة الجدولية `input` الآن بنيتها من عبارة `FORMAT` في استعلام `INSERT` المحيط بها عندما يكون لهذا format مخطط ثابت (`LineAsString`, `RawBLOB`, `JSONAsString`، إلخ)، لذلك لم يعد المستخدمون بحاجة إلى تكرار البنية على هيئة `input('line String')` لهذه formats. [#104532](https://github.com/ClickHouse/ClickHouse/issues/104532). [#104533](https://github.com/ClickHouse/ClickHouse/pull/104533) ([Groene AI](https://github.com/groeneai)).
* تم تحديث نوع بيانات الحقول في history الخاصة بـ Iceberg من `Int32` إلى `Int64`. يغلق [#94176](https://github.com/ClickHouse/ClickHouse/issues/94176). [#104579](https://github.com/ClickHouse/ClickHouse/pull/104579) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* تم إصلاح `Inconsistent AST formatting` و`LOGICAL_ERROR` عند تحليل استدعاء دالة تأتي فيه lambda بعد فاصلة، مثل ``SELECT substring(x, `x` -> `x`)``. وكان المحلّل يدمج الوسائط السابقة بصمت في الطرف الأيسر من lambda، مما ينتج عنه استدعاء بوسيط واحد لا يمكن إعادة تحليله إلى AST نفسها. وهو يحافظ الآن على عدد الوسائط الأصلي للدالة. [#104626](https://github.com/ClickHouse/ClickHouse/pull/104626) ([Groene AI](https://github.com/groeneai)).
* يفضّل `CHECK TABLE t` الآن جدول `TEMPORARY` على الجدول الدائم الذي يحمل الاسم نفسه عند عدم تقديم محدِّد database، بما يطابق أولوية الترتيب المستخدمة بالفعل في `SHOW CREATE TABLE` و`DESCRIBE TABLE` و`OPTIMIZE TABLE` و`ALTER TABLE`. سابقًا، كان `CHECK TABLE t` يتجاهل الجداول المؤقتة بالكامل، لذلك كان يفشل مع `UNKNOWN_TABLE` على جدول `Log` أو `File` مؤقت رغم أن هذين المحركين يدعمان `CHECK`. متابعة لـ [#100966](https://github.com/ClickHouse/ClickHouse/pull/100966). [#104637](https://github.com/ClickHouse/ClickHouse/pull/104637) ([Groene AI](https://github.com/groeneai)).
* تم إصلاح مشكلة تؤدي إلى إنهاء Keeper ودخوله في حلقة إعادة تشغيل عند إرسال `get /keeper/availability_zone` مع `quorum_reads=true` إلى Keeper لم يُضبط فيه `<placement>`. [#104663](https://github.com/ClickHouse/ClickHouse/pull/104663) ([myeongjun](https://github.com/myeongjjun)).
* تم إصلاح سباق بيانات TOCTOU في `FutureSetFromTuple::buildOrderedSetInplace` كان يؤدي إلى logical error. [#104673](https://github.com/ClickHouse/ClickHouse/pull/104673) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تم إصلاح عدة دوال كانت تعيد نتائج مختلفة للمدخل نفسه بحسب ما إذا كانت الوسائط قد وصلت على هيئة أعمدة أو ثوابت: `bitRotateLeft` / `bitRotateRight` (قيم shift الحدّية)، و`length(FixedString)` / `concatWithSeparator` مع مدخلات `LowCardinality(Nullable)`، و`roundDown` على NaN، و`rightUTF8` على UTF-8 غير صالح. [#104710](https://github.com/ClickHouse/ClickHouse/pull/104710) ([Raúl Marín](https://github.com/Algunenano)).
* تم إصلاح `anyHeavy` الذي كان يعيد قيمة غير ثقيلة عندما تكون القيمة الأكثر تكرارًا هي default الخاصة بالعمود وتكون البيانات موزعة عبر عدة parts من `MergeTree` (مسار قراءة الأعمدة sparse). [#104712](https://github.com/ClickHouse/ClickHouse/pull/104712) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح عدة عيوب في التعامل مع قيود الإعدادات: كان بالإمكان تجاوز قيود `MergeTreeSettings` المعلنة على الاسم canonical للإعداد عبر الكتابة إلى alias لذلك الإعداد؛ كما كان التحقق من قيد `disallowed_values` يطرح استثناءً في مسارات clamp (الاستعلامات secondary، وعُمّال `ON CLUSTER`، وعروض `SQL SECURITY DEFINER`) بدلًا من إسقاط التغيير بصمت. [#104737](https://github.com/ClickHouse/ClickHouse/pull/104737) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح استثناء `LOGICAL_ERROR` (`Metadata is not initialized`) الذي كانت تسببه أوامر `OPTIMIZE TABLE` و`ALTER TABLE ... DELETE` و`ALTER TABLE ... ADD COLUMN` وغيرها من صيغ ALTER عند تنفيذها على جدول `Iceberg` / `IcebergLocal` / `DeltaLake` / `Hudi` مرفق كسولًا ولم تكن metadata الخاصة به قد حُمِّلت بعد (وهو أمر شائع بعد إعادة تشغيل server، أو بعد فشل سابق في كتابة metadata وترك ملف metadata تالفًا على القرص). أصبحت العملية الآن إما تتابع بشكل طبيعي إذا جرى تحميل metadata بنجاح، أو تُظهر سبب فشل التحميل الفعلي كاستثناء عادي للمستخدم بدلًا من إيقاف server في builds الخاصة بـ debug / sanitizer. [#104738](https://github.com/ClickHouse/ClickHouse/pull/104738) ([Groene AI](https://github.com/groeneai)).
* إصلاح `segfault` ناتج عن خطأ use-after-free في `AvroConfluentRowInputFormat`. [#104751](https://github.com/ClickHouse/ClickHouse/pull/104751) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أصبحت المتغيرات scalar من `numericIndexedVectorPointwiseMultiply` و`numericIndexedVectorPointwiseDivide` و`numericIndexedVectorPointwiseEqual` و`numericIndexedVectorPointwiseNotEqual` ترفع الآن `INCORRECT_DATA` عند استدعائها باستخدام scalar من نوع `UInt64` أكبر من `Int64::max`. [#104784](https://github.com/ClickHouse/ClickHouse/pull/104784) ([FriendLey](https://github.com/FriendLey)).
* إصلاح خلل كان يتسبب في التراجع عن override لإعداد تم ضبطه يدويًا عبر اسم alias الخاص به (مثل `SET enable_analyzer = 1` بدلًا من `SET allow_experimental_analyzer = 1`) بعد تطبيق إعداد `compatibility`، وذلك عند إجراء تغيير لاحق على إعداد `compatibility`. [#104829](https://github.com/ClickHouse/ClickHouse/pull/104829) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطيل AWS logger بعد [https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d](https://github.com/ClickHouse/ClickHouse/commit/0e8ad4355c9d). [#104837](https://github.com/ClickHouse/ClickHouse/pull/104837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح ثلاث دوال إضافية كانت تُرجع نتائج مختلفة للمدخل نفسه بحسب ما إذا كانت arguments قد وصلت على هيئة columns أو constants: الدالة `transform` (وكذلك `caseWithExpression` عبرها) مع قيمة default ثابتة من نوع `Date`/`Date32`/`Enum`/`FixedString`، وعوامل المقارنة بين `String` و`FixedString` ثابت، وكذلك `if`/`ifNull`/`nullIf` مع فرع `FixedString` تحت condition ثابت. [#104858](https://github.com/ClickHouse/ClickHouse/pull/104858) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح إيقاف server بسبب `Bad cast from type DB::ColumnConst to DB::ColumnNullable` أثناء partition pruning لجداول `MergeTree` عندما يحتوي partition expression على سلسلة دوال تختزل إلى قيمة ثابتة واحدة (مثل `floor(NULL, toRelativeYearNum(...))`). [#104861](https://github.com/ClickHouse/ClickHouse/pull/104861) ([Groene AI](https://github.com/groeneai)).
* إصلاح data race في `ThreadSanitizer` داخل مُنشئ النسخ `ContextData`: كانت `table_function_results` تُنسخ من object المصدر دون الحصول على `table_function_results_mutex`، لذا كان من الممكن أن يتسابق كاتب `Context::executeTableFunction` concurrent مع القراءة غير المتزامنة داخل مُنشئ النسخ. [#104879](https://github.com/ClickHouse/ClickHouse/pull/104879) ([Groene AI](https://github.com/groeneai)).
* إصلاح فحوصات اتساق data part للأنواع ذات structure الديناميكية، مع اكتشاف `columns&#95;substreams.txt` التالف. إعادة تقديم لـ [https://github.com/ClickHouse/ClickHouse/pull/103858](https://github.com/ClickHouse/ClickHouse/pull/103858) مع تغييرات إضافية. [#104888](https://github.com/ClickHouse/ClickHouse/pull/104888) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح حالة تسابق بين DROP وUNDROP في DatabaseCatalog. [#104915](https://github.com/ClickHouse/ClickHouse/pull/104915) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تغيير الحجم الديناميكي لذاكرة التخزين المؤقت لنظام الملفات عند وجود مقاطع جرى تنزيلها جزئيًا، بما في ذلك استعادة احتساب الاستخدام بعد فشل الإخلاء. [#104921](https://github.com/ClickHouse/ClickHouse/pull/104921) ([Antonio Andelic](https://github.com/antonio2368)).
* أصبح `DETACH TABLE` على جدول مؤقت (من دون الكلمة المفتاحية `TEMPORARY`) يُطلق الآن `SYNTAX_ERROR` بشكل صحيح، بما يطابق سلوك `DETACH TEMPORARY TABLE`. سابقًا، كان يضبط بصمت العلامة الداخلية `is_detached` ثم يعود من دون خطأ. لإزالة جدول مؤقت، استخدم `DROP TEMPORARY TABLE` أو `DROP TABLE` (إذ يحلّ الأخير الجدول المؤقت عبر `Context::ResolveExternal`). يُغلق [#103475](https://github.com/ClickHouse/ClickHouse/issues/103475). [#104943](https://github.com/ClickHouse/ClickHouse/pull/104943) ([Groene AI](https://github.com/groeneai)).
* أصبحت الدالة الجدولية `filesystem` تراعي `max_memory_usage` / `max_server_memory_usage` عند تحميل محتوى الملف. سابقًا، كان من الممكن أن تتجاوز قراءات المحتوى الكبيرة أو الكثيرة المتوازية هذا الحد من دون إطلاق `MEMORY_LIMIT_EXCEEDED`، لينتهي الأمر بدلًا من ذلك بإنهاء العملية بسبب نفاد الذاكرة. [#104956](https://github.com/ClickHouse/ClickHouse/pull/104956) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `LOGICAL_ERROR` كان يُطلق عند تصفية `system.detached_tables` باستخدام `uuid` (مثل `SELECT count() FROM system.detached_tables WHERE uuid = '...'`). يُرجع الاستعلام الآن النتيجة المتوقعة بدلًا من التسبب في إيقاف الخادم. [#104979](https://github.com/ClickHouse/ClickHouse/pull/104979) ([Groene AI](https://github.com/groeneai)).
* لم تعد `flattenTuple` تُطلق `LOGICAL_ERROR` عند استدعائها على tuple لا تحتوي بنيتها المتداخلة إلا على أوراق `Tuple()` فارغة (مثل `Tuple(c0 Array(Tuple()))` أو `Tuple(c0 Tuple())`). وتُنتج هذه المدخلات الآن استثناءً ظاهرًا للمستخدم من نوع `ILLEGAL_TYPE_OF_ARGUMENT` يوضح أن نتيجة التسطيح ستكون tuple فارغة. [#104989](https://github.com/ClickHouse/ClickHouse/pull/104989) ([Groene AI](https://github.com/groeneai)).
* إصلاح توقف الخادم وخلل يُرجع نتائج خاطئة بصمت عند الاستعلام باستخدام `loop(remote(...))` (أو أي `loop()` يغلّف تخزينًا يمكنه تأجيل aggregation) مع `GROUP BY`. كان المخطِّط الخارجي يضيف `MergingAggregatedStep` استنادًا إلى مرحلة المعالجة التي يبلّغ عنها التخزين الداخلي، لكن `LoopSource` يحقق دائمًا `select` الداخلي الخاص به على هيئة `QueryProcessingStage::Complete` ويُخرج مقاطع أعمدة عادية، لذا كان `MergingAggregatedTransform` يتسبب في `LOGICAL_ERROR` (`Chunk info was not set for chunk in MergingAggregatedTransform`) عند `enable_parallel_replicas = 1`، وفي غير ذلك كان يُسقط التجميع الخارجي بصمت. [#105001](https://github.com/ClickHouse/ClickHouse/pull/105001) ([Groene AI](https://github.com/groeneai)).
* تعطّل `clickhouse-benchmark --reconnect` (بصورته المجردة، من دون قيمة) دون قصد في 25.4 بسبب تغيير حوّل `--reconnect` إلى خيار عددي يتطلب قيمة. وتعمل الصيغة المجردة الآن مجددًا، وتعادل `--reconnect=1` (إعادة الاتصال عند كل query). [#105006](https://github.com/ClickHouse/ClickHouse/pull/105006) ([Groene AI](https://github.com/groeneai)).
* إصلاح مخرجات JSON غير سليمة لأسماء الأعمدة المنتهية بتسلسلات UTF-8 غير مكتملة. [#105012](https://github.com/ClickHouse/ClickHouse/pull/105012) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح فقدان بيانات صامت بعد `EXCHANGE TABLES` أو `CREATE OR REPLACE TABLE` لجدول المصدر الخاص بعرض مادي. ويُحتفَظ الآن بحافة الاعتمادية بين المصدر والعرض الخاصة بـ `MV` على الاسم الأصلي، بحيث تستمر في العمل عند عمليات insert. هذا تراجع أُدخل في [#98779](https://github.com/ClickHouse/ClickHouse/issues/98779)؛ ويستعيد السلوك الذي كان موجودًا قبل هذا التراجع. [#105029](https://github.com/ClickHouse/ClickHouse/pull/105029) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح الخطأ `CANNOT_COMPILE_CODE Could not find symbol __fixunsdfti` عند الترجمة البرمجية باستخدام JIT للتعبيرات التي تحوّل `Float` إلى `UInt128`، مثل `toUInt128(<Float64 expression>)`. كان محلّل الرموز في JIT يفتقد دوال builtins من compiler-rt الخاصة بالتحويل من أعداد الفاصلة العائمة غير الموقّعة ذات 128 بت إلى أعداد صحيحة. يُغلق [#105031](https://github.com/ClickHouse/ClickHouse/issues/105031). [#105048](https://github.com/ClickHouse/ClickHouse/pull/105048) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح عدم طباعة `clickhouse-local` لرسائل السجل الناتجة عن query فاشلة عند تعيين `send_logs_level`. [#105067](https://github.com/ClickHouse/ClickHouse/pull/105067) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح النتائج غير الصحيحة عند الإشارة إلى العرض المعلَّم نفسه أكثر من مرة في query واحدة باستخدام قيم وسيطات مختلفة. سابقًا، كان المُحلِّل يدمج هذه الاستدعاءات في استدعاء واحد، ما كان يؤدي بصمت إلى إسقاط جميع عوامل التصفية باستثناء الأول. [#105170](https://github.com/ClickHouse/ClickHouse/pull/105170) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح ظهور صف `TOTALS` مرتين في أسفل جدول النتائج في واجهة الويب `play.html`. [#103803](https://github.com/ClickHouse/ClickHouse/pull/103803) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* رفض المتجهات غير المنتهية (`NaN`, `±Inf`) أثناء البحث المتجهي (سواء كانت متجهات البحث أو متجهات مرجعية)؛ إذ كانت تتسبب سابقًا في سلوك غير معرّف في `usearch`. [#104079](https://github.com/ClickHouse/ClickHouse/pull/104079) ([Groene AI](https://github.com/groeneai)).
* PromQL: إصلاح عامل التجميع للمتجهات الفارغة. [#104425](https://github.com/ClickHouse/ClickHouse/pull/104425) ([Vitaly Baranov](https://github.com/vitlibar)).
* PromQL: إصلاح معالجة الأخطاء في واجهة Prometheus query API. [#104741](https://github.com/ClickHouse/ClickHouse/pull/104741) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح حالة تسابق في `MergeTreeTransaction::afterCommit` حيث كان من الممكن، بعد فقدان الاتصال بين كتابة `CSN` الخاصة بـ commit إلى ZooKeeper وإنهاء transaction، أن تصل استجابة `COMMIT` إلى client قبل أن تصبح قيمتا `creation_csn` و`removal_csn` الجديدتان مرئيتين في `system.parts`. [#104708](https://github.com/ClickHouse/ClickHouse/pull/104708) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح النمو الأُسّي للذاكرة في parser الخاص بـ KQL عند تحويل فهرسة المصفوفات المتداخلة (`arr[arr[arr[...]]]`). [#105142](https://github.com/ClickHouse/ClickHouse/pull/105142) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح النتائج غير الصحيحة في `RIGHT ANY JOIN` عندما يحتوي الجدول الأيمن على عدة rows لكل key، وتُقسَّم كتلة المخرجات بسبب حدود الحجم. يُغلق [#99431](https://github.com/ClickHouse/ClickHouse/issues/99431). [#102064](https://github.com/ClickHouse/ClickHouse/pull/102064) ([Vladimir Cherkasov](https://github.com/vdimir)).
* التحقق من تجاوز سعة المكدس في قارئ `Avro` أثناء إلغاء تسلسل الأنواع المتداخلة. [#102417](https://github.com/ClickHouse/ClickHouse/pull/102417) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تكرار rows في `system.completions` لإعدادات `MergeTree` — إذ كان كل اسم إعداد يظهر مرتين لأن كلًا من `getMergeTreeSettings` و`getReplicatedMergeTreeSettings` كانا يُفرَّغان رغم تطابق أسماء الإعدادات فيهما. يُغلق [#102013](https://github.com/ClickHouse/ClickHouse/issues/102013). [#102015](https://github.com/ClickHouse/ClickHouse/pull/102015) ([Groene AI](https://github.com/groeneai)).
* إصلاح `StorageObjectStorageQueue` ‏(`S3Queue`، `AzureQueue`) الذي كان يمنع إيقاف التشغيل إلى أن تُقرأ الملفات المُعالجة جزئيًا بالكامل من تخزين الكائنات. أصبح المصدر الآن يوقف القراءة فورًا عند إيقاف التشغيل؛ ويضمن إلغاء التكرار عدم تكرار الصفوف التي جرى بثّها مسبقًا إلى جدول الوجهة قبل إيقاف التشغيل عند إعادة محاولة الملف في بدء التشغيل التالي. [#103126](https://github.com/ClickHouse/ClickHouse/pull/103126) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح عمليات insert متعددة blocks إلى table engine ‏`Alias` مع `insert_deduplication_token` بحيث يتم الاحتفاظ بجميع blocks. [#103246](https://github.com/ClickHouse/ClickHouse/pull/103246) ([Enric Calabuig](https://github.com/eclbg)).
* إصلاح `JSONHas` و`JSONExtractBool` على أعمدة `JSON` الأصلية، حيث كانا يعيدان القيمة المستخرجة (بعد تحويلها إلى `UInt8`) بدلًا من `0`/`1`. [#103313](https://github.com/ClickHouse/ClickHouse/pull/103313) ([zxuhan7](https://github.com/zxuhan)).
* حماية input format ‏`CustomSeparated` من البيانات المشوهة أو العدائية التي تُهمل `format_custom_row_after_delimiter`. كان اكتشاف header، وschema inference، والصفوف ذات الأعمدة المتغيرة، يؤدي سابقًا إلى تجميع fields بلا حدود، وكان يمكن أن يخصص عدة غيغابايت من الذاكرة قبل الفشل. أصبحت عمليات القراءة الآن تفشل مع `INCORRECT_DATA` بمجرد أن يحتوي صف واحد على أكثر من 1,000,000 field. [#103404](https://github.com/ClickHouse/ClickHouse/pull/103404) ([Groene AI](https://github.com/groeneai)).
* إصلاح `RESTORE` لجداول `MergeTree` المتماثلة replicated بحيث يستخدم إلحاق الأجزاء المستعادة `backup_restore_keeper_max_retries` بدلًا من ميزانية إعادة المحاولة العادية الخاصة بـ insert في Keeper. [#104610](https://github.com/ClickHouse/ClickHouse/pull/104610) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح النتائج الخاطئة الناتجة عن `WHERE p AND <LowCardinality(Nullable(int)) constant>` على جداول `MergeTree`. كانت مثل هذه queries تعيد سابقًا صفر rows لأن part pruning كان يستنتج قيمة `NULL` افتراضية من النوع `LowCardinality(Nullable(...))` وينشئ قيد `notEquals(x, NULL)`، مما يؤدي إلى استبعاد كل part. [#104767](https://github.com/ClickHouse/ClickHouse/pull/104767) ([Groene AI](https://github.com/groeneai)).
* إصلاح نتيجة aggregation غير الصحيحة عند التجميع بواسطة دالة غير حقنية لعمود يكون أيضًا partition key (مثلًا `PARTITION BY a` مع `GROUP BY intDiv(a, 2)` أو `a % 2`). لم تكن values القادمة من partitions مختلفة والتي تطابق المجموعة نفسها تُدمج، مما كان ينتج rows مجموعات مكررة عند `allow_aggregate_partitions_independently = 1`. [#104869](https://github.com/ClickHouse/ClickHouse/pull/104869) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح حالة تسابق في نقل snapshot في `Keeper`، حيث كان يمكن إزالة snapshot أو نقلها أثناء إرسالها إلى follower قيد الاستعادة. [#104941](https://github.com/ClickHouse/ClickHouse/pull/104941) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح خطأ صامت يؤدي إلى نتائج خاطئة في `hilbertEncode` و`mortonEncode`، حيث كانت الوسيطة الأولى `Tuple` غير الثابتة (قناع النطاق) تستخدم قيم الصف 0's لتحديد إزاحة البتات لكل صف. أصبحت الدالتان الآن تحسبان قيم القناع لكل صف، لذا لم تعد النتيجة تعتمد على كون الإدخال ثابتًا أو على حجم block. [#104992](https://github.com/ClickHouse/ClickHouse/pull/104992) ([Groene AI](https://github.com/groeneai)).
* إصلاح `clickhouse-local` الذي كان يتجاهل بصمت configuration على مستوى المستخدم (`profiles`، `users`، `quotas`، وإعدادات التحكم بالوصول) عند الاكتشاف التلقائي لـ configuration file من `./clickhouse-local.xml` أو `~/.clickhouse-local/config.xml` أو `/etc/clickhouse-local/config.xml`. كانت هذه settings تُطبَّق سابقًا فقط عند تمرير `--config-file` أو عند وجود `./config.xml` في current directory؛ أما الآن فجميع مسارات الاكتشاف تتصرف بشكل متسق. [#105008](https://github.com/ClickHouse/ClickHouse/pull/105008) ([Groene AI](https://github.com/groeneai)).
* إصلاح مشكلة أعمدة `BFloat16` التي كانت تُرجع بصمت صفر تطابقات عند مقارنتها بقيمة نصية ثابتة (مثل `WHERE bf16_col = '49.9'`). [#105042](https://github.com/ClickHouse/ClickHouse/pull/105042) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح التعامل مع `CLEAR COLUMN` وTTL أثناء عمليات الدمج في `SummingMergeTree` و`AggregatingMergeTree` و`CoalescingMergeTree` عندما تكون الأعمدة المطلوبة للدمج غير موجودة أو منتهية الصلاحية. يغلق [#101953](https://github.com/ClickHouse/ClickHouse/issues/101953). [#105203](https://github.com/ClickHouse/ClickHouse/pull/105203) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح حالة تسابق بين `DNSCacheUpdater::run` و`Context::reloadClusterConfig` عبر إضافة تحقق صريح من عدم كون `shared->clusters_config` قيمة فارغة قبل فك مرجعها. [#105220](https://github.com/ClickHouse/ClickHouse/pull/105220) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* إصلاح تحليل التاريخ والوقت بصيغة `best_effort` في `toDateTime64` بدقة `ms` و`ns`. [#105233](https://github.com/ClickHouse/ClickHouse/pull/105233) ([Kaviraj Kanagaraj](https://github.com/kavirajk)).
* إصلاح قيام `OSIOWaitMicroseconds` بالإبلاغ عن انتظار I/O على مستوى عمر الخيط بدلًا من انتظار I/O على مستوى query. [#105246](https://github.com/ClickHouse/ClickHouse/pull/105246) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* أصبح table engine `Hudi` الآن يرفع `INCORRECT_DATA` (وهو استثناء عادي على مستوى query) بدلًا من `LOGICAL_ERROR` عندما لا يطابق ملف Parquet في directory الجدول اصطلاح التسمية الخاص بـ Hudi وهو `[FileId]_[FileWriteToken]_[Timestamp].[extension]`. في السابق، كانت أسماء الملفات هذه تتسبب في استثناء في builds التصحيح. [#105266](https://github.com/ClickHouse/ClickHouse/pull/105266) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة تعطل متبادل في `ParallelFormattingOutputFormat` عند فشل الجدولة: عندما throws `scheduleFormatterThreadForUnitWithNumber` (مثل `CANNOT_SCHEDULE_TASK`)، كانت الوحدة تُترك في الحالة `READY_TO_FORMAT` من دون خيط formatter يعالجها، مما يؤدي إلى تعليق. تُغلَّف الآن استدعاء الجدولة داخل `try`/`catch` ويُمرَّر أي فشل عبر `onBackgroundException` لكي يخرج collector بشكل سليم. [#105275](https://github.com/ClickHouse/ClickHouse/pull/105275) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح فقدان بيانات صامت في `Distributed` async inserts عند التعافي من إيقاف غير طبيعي: إذا كان آخر ملف `.bin` في Batch محفوظة سليمًا لكن ملفًا في الوسط كان تالفًا، كانت `DistributedAsyncInsertBatch::recoverBatch` تتحقق فقط من ترويسة الملف الأخير، ثم كانت `sendBatch` تضع علامة العطب على Batch بأكملها — بما في ذلك الملفات السليمة — مما يؤدي إلى فقدان rows الخاصة بها. أصبح الآن التحقق من ترويسة كل ملف يتم على حدة، بحيث لا يُنقل إلى `broken/` إلا الملف التالف فعليًا، بينما تصل rows السليمة إلى الـ shard البعيد. [#105281](https://github.com/ClickHouse/ClickHouse/pull/105281) ([Groene AI](https://github.com/groeneai)).
* إصلاح تراجع في `clickhouse extract-from-config --try`: عندما كانت config تستخدم attributes من نوع `from_env` ولم يكن فيها عنصر `include_from` (أو كان يشير إلى ملف مفقود)، كانت جميع substitutions الخاصة بـ `from_env` تُسقط بصمت وتُعاد كسلاسل فارغة. وقد أدى ذلك إلى تعطيل اكتشاف المنفذ في نقطة دخول Docker في الإصدار 26.2.5. يغلق [#101704](https://github.com/ClickHouse/ClickHouse/issues/101704). [#105283](https://github.com/ClickHouse/ClickHouse/pull/105283) ([Groene AI](https://github.com/groeneai)).
* إصلاح فشل `INSERT INTO` في جدول `SQLite` بسبب خطأ صياغي من SQLite عندما تكون value المُدرجة من نوع `Enum` أو `JSON` أو `AggregateFunction` وكان تمثيلها النصي يحتوي على علامة اقتباس مفردة. أصبح الإعداد `output_format_values_escape_quote_with_quote` مُراعًى الآن في عمليات serialization المقابلة (في السابق كان يراعيه فقط `String` و`FixedString`). [#105285](https://github.com/ClickHouse/ClickHouse/pull/105285) ([Groene AI](https://github.com/groeneai)).
* إصلاح الخطأ `Code: 44. ILLEGAL_COLUMN: Cannot add column ...: column with this name already exists` الذي كانت تطرحه الاستعلامات الموزعة مع `allow_push_predicate_ast_for_distributed_subqueries = 1` (القيمة الافتراضية) عند مطابقة tuple في `GLOBAL IN` مع استعلام فرعي يحتوي الإسقاط فيه على أسماء أعمدة مكررة، مثل `(x, y) GLOBAL IN (SELECT number, number FROM numbers(5))`. [#105290](https://github.com/ClickHouse/ClickHouse/pull/105290) ([Groene AI](https://github.com/groeneai)).
* إصلاح `reinterpret` إلى `Array(LowCardinality(...))`، والتي كانت تُرجع خطأ `NOT_IMPLEMENTED` مُربكًا أثناء وقت التشغيل؛ وهي تُرجع الآن `ILLEGAL_TYPE_OF_ARGUMENT` أثناء التحقق من النوع. [#105301](https://github.com/ClickHouse/ClickHouse/pull/105301) ([Raúl Marín](https://github.com/Algunenano)).
* أصبحت `minMap`/`maxMap` (بصيغة array) و`minMappedArrays`/`maxMappedArrays` تتعامل الآن مع `NaN` بشكل متسق مع `ORDER BY`: إذ يُعامل `NaN` على أنه الأخير (ولا يُعاد إلا إذا كانت جميع القيم `NaN`). سابقًا، كانت النتائج تعتمد على موضع `NaN` في البيانات بسبب دلالات المقارنة غير المرتبة في IEEE 754، وكانت تختلف عن صيغة وسيط `Map` في `minMap`/`maxMap` التي أُصلحت في [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448). [#105331](https://github.com/ClickHouse/ClickHouse/pull/105331) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تسرّب في الذاكرة في cache ‏`ColumnsDescription` لكل table ضمن جداول عائلة `MergeTree` التي تحتوي على أعمدة `Nested`. ولم يكن يتم إخلاء entries مطلقًا عبر دورات `ALTER ADD COLUMN`/`DROP COLUMN` عندما يكون `share_nested_offsets = 1` (القيمة الافتراضية). [#105376](https://github.com/ClickHouse/ClickHouse/pull/105376) ([Groene AI](https://github.com/groeneai)).
* إصلاح الاستثناء `BAD_ARGUMENTS` ‏"It's a bug! Only integer types are supported by `__bitWrapperFunc`" الذي كان يُطرح عندما يحتوي `SELECT` مع skip index من النوع `TYPE set(N)` على عنصر `WHERE` تكون نتيجة تقييمه من النوع `Float` أو `BFloat16` أو أي نوع آخر غير صحيح (على سبيل المثال `WHERE c0 + 0.1` أو `WHERE log(c0)`). ويعود skip index الآن إلى مسار filter العادي في هذه الحالة. [#105384](https://github.com/ClickHouse/ClickHouse/pull/105384) ([Groene AI](https://github.com/groeneai)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* إيقاف استخدام مكتبات `compiler-rt` وترويساته الخاصة بالنظام. يُغلق [#91475](https://github.com/ClickHouse/ClickHouse/issues/91475). [#102857](https://github.com/ClickHouse/ClickHouse/pull/102857) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحديث صورة Docker الأساسية من نوع distroless لإصلاح ثغرات OpenSSL الأمنية في `libssl3t64`. [#103583](https://github.com/ClickHouse/ClickHouse/pull/103583) ([Rahul Nair](https://github.com/motsc)).
* ضمان استلام مفتاح GPG بشكل موثوق أثناء عمليات الإصدار عبر ربط عدة خوادم مفاتيح Ubuntu بالتتابع، بدلًا من انتهاء المهلة على `keyserver.ubuntu.com`. [#103834](https://github.com/ClickHouse/ClickHouse/pull/103834) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* إزالة عمليات التحقق في `CMake` وقت البناء ومنعها (`check_*`, `try_compile`, `try_run`). وبما أن المصرّف وسلسلة الأدوات محددان مسبقًا، فلم تعد هناك حاجة إلى اكتشاف الميزات وقت التهيئة، وقد أصبح ذلك الآن محظورًا على مستوى المشروع بأكمله؛ وأي سلوك خاص بإصدار معيّن يجب تقييده صراحةً باستخدام `CMAKE_CXX_COMPILER_VERSION`. [#103980](https://github.com/ClickHouse/ClickHouse/pull/103980) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ترقية `libarchive` من 3.8.6 إلى 3.8.7. [#104047](https://github.com/ClickHouse/ClickHouse/pull/104047) ([Robert Schulze](https://github.com/rschu1ze)).
* تحديث `mongo-c-driver` إلى 2.3.0. [#104300](https://github.com/ClickHouse/ClickHouse/pull/104300) ([Raúl Marín](https://github.com/Algunenano)).
* تحديث تبعيات LLVM للإصدار 22.x. [#104381](https://github.com/ClickHouse/ClickHouse/pull/104381) ([Joshua Carp](https://github.com/jmcarp)).
* تمكين بناء صنفي embedded-client وPTY descriptor على MacOS وFreeBSD باستخدام دوال POSIX المحمولة `posix_openpt` / `grantpt` / `unlockpt` وإزالة حواجز `#if` الخاصة بـ Linux فقط. [#104436](https://github.com/ClickHouse/ClickHouse/pull/104436) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ترقية `librdkafka` إلى الإصدار 2.14.1. [#105222](https://github.com/ClickHouse/ClickHouse/pull/105222) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).

<div id="264">
  ### إصدار ClickHouse 26.4، 2026-04-30. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.4/)، [الفيديو](https://www.youtube.com/watch?v=9lSVy7k2EoI)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* يستخدم المعامل `IN` الآن دلالات مطابقة دقيقة للقيم مع النوع `Bool`: إذ لا تطابق قيم `Bool` إلا القيمتان `0` و`1` داخل المجموعة. سابقًا، كانت القيم الرقمية الأكبر من `255` في مجموعة `IN` تُحوَّل خطأً إلى true عند مقارنتها بـ `Bool`، لذلك كان `SELECT CAST(1, 'Bool') IN (256)` يعيد 1. أما الآن، فهو يعيد `0` بشكل صحيح. يُغلق [#92980](https://github.com/ClickHouse/ClickHouse/issues/92980). [#93115](https://github.com/ClickHouse/ClickHouse/pull/93115) ([Ashrith Bandla](https://github.com/ashrithb)).
* جرى تحديث مكتبة H3 إلى الإصدار v4، مما يحسّن دقة حسابات الطول والمساحة والمقاييس الأخرى. ويُعد هذا التغيير غير متوافق مع الإصدارات السابقة لأن النتائج الجديدة تختلف عن النتائج السابقة. [#100348](https://github.com/ClickHouse/ClickHouse/pull/100348) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد مسموحًا باستخدام `SELECT` كمُعرّف bareword داخل عنصر في قائمة تعبيرات `WITH`. [#101059](https://github.com/ClickHouse/ClickHouse/pull/101059) ([Aruj Bansal](https://github.com/arujbansal)).
* يغيّر هذا التصحيح طريقة تعامل جدول Merge مع الأعمدة الافتراضية. فإذا كان underlying table يحتوي على `_table` أو `_database`، فستُقرأ هذه الأعمدة من التخزين؛ وإلا فستُملأ بعد خطوة القراءة باستخدام خطوة expression. [#101742](https://github.com/ClickHouse/ClickHouse/pull/101742) ([Mikhail Artemenko](https://github.com/Michicosun)).
* يرفض المعامل `IN` الآن أيضًا تحويلات `Decimal` الفاقدة للدقة داخل الأنواع المركبة (`Tuple` و`Array` و`Map`)، مما يجعل سلوكه متسقًا مع مقارنات القيم scalar على المستوى الأعلى. في السابق، كانت فحوصات الدقة تُطبَّق فقط على قيم scalar في المستوى الأعلى: فعلى سبيل المثال، كان `CAST('33.3', 'Decimal64(1)') IN (33.33)` يعيد `0` بشكل صحيح، لكن `CAST(['33.3'], 'Array(Decimal64(1))') IN ([33.33])` كان يعيد `1` خطأً لأن التحويل الفاقد للدقة حدث داخل `Array`. أما الآن، فتعيد كلتا الحالتين `0` بشكل صحيح. [#101812](https://github.com/ClickHouse/ClickHouse/pull/101812) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* خُفِّضت القيم الافتراضية لكلٍّ من `http_max_fields` من 1,000,000 إلى 1,000 و`http_max_field_name_size` من 128 KB إلى 4 KB للحد من استخدام الذاكرة قبل authentication بواسطة HTTP connections. وأُضيفت الإعدادات `http_max_request_header_size` و`http_headers_read_timeout`. ويمكن للمستخدمين الذين يعتمدون على الحدود الأعلى السابقة استعادتها عبر الإعدادات. [#103285](https://github.com/ClickHouse/ClickHouse/pull/103285) ([Sema Checherinda](https://github.com/CheSema)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* إضافة ميزة الكتابة التلقائية إلى القرص لعمليات `hash join` و`parallel hash join` عبر تحويلها إلى `grace hash join` عند بلوغ حد الذاكرة. ويتحكم الإعداد `max_bytes_before_external_join` في هذا السلوك. [#97813](https://github.com/ClickHouse/ClickHouse/pull/97813) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إضافة دعم Arrow Flight SQL. [#91170](https://github.com/ClickHouse/ClickHouse/pull/91170) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إضافة دعم Incremental read لمحركات الجداول `Paimon` مع تتبّع تقدّم اللقطة عبر Keeper، بما في ذلك قراءات delta موجّهة للّقطات باستخدام `paimon_target_snapshot_id`، مع توسيع تغطية الاختبارات لسيناريوهات type mapping وpartition pruning وIncremental read. [#93655](https://github.com/ClickHouse/ClickHouse/pull/93655) ([XiaoBinMu](https://github.com/Binnn-MX)).
* أصبحت الدالة `stem` الآن غير تجريبية (وكان يتعيّن سابقًا تمكين الإعداد `allow_experimental_nlp_functions`). [#102399](https://github.com/ClickHouse/ClickHouse/pull/102399) ([Jimmy Aguilar Mena](https://github.com/Ergus)). ويمكنك الآن بسهولة تطبيق الاشتقاق على جميع الكلمات/الرموز في الأعمدة `String` و`FixedString` و`Array([Fixed]String)` و`Nullable` و`LowCardinality` و`Const` باستخدام الدالة `stem`. [#99137](https://github.com/ClickHouse/ClickHouse/pull/99137) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تنفيذ سلوك جديد للإعدادات `max_insert_block_size_rows` و`max_insert_block_size_bytes` و`min_insert_block_size_rows` و`min_insert_block_size_bytes` في عملية squashing ضمن إعداد التوافق `use_strict_insert_block_limits`. [#94207](https://github.com/ClickHouse/ClickHouse/pull/94207) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إضافة الدالة `arrayAutocorrelation(arr [, max_lag])` التي تحسب الارتباط الذاتي المُطبَّع لمصفوفة رقمية لكل قيمة lag. وتدعم أنواع المصفوفات الصحيحة والعائمة والعشرية. [#94776](https://github.com/ClickHouse/ClickHouse/pull/94776) ([Wenyu Chen](https://github.com/wenyuchen96)).
* إضافة دالة SQL باسم `obfuscateQuery`. يُغلق [#98010](https://github.com/ClickHouse/ClickHouse/issues/98010). [#98305](https://github.com/ClickHouse/ClickHouse/pull/98305) ([Xuewei Wang](https://github.com/Sallery-X)).
* إضافة دعم النوعين Map وJSON/Object كـ dictionary attributes. ويمكن الآن لـ dictionaries تخزين الأنواع المعقدة واسترجاعها، بما في ذلك Map(String, String) وMap(String, Array(String)) وJSON وNullable(JSON)، في كلٍّ من تخطيطي FLAT وHASHED. [#98627](https://github.com/ClickHouse/ClickHouse/pull/98627) ([yanglongwei](https://github.com/ylw510)).
* إضافة إعدادَي MergeTree جديدين — `replicated_fetches_min_part_level` و`replicated_fetches_min_part_level_timeout_seconds` — يتيحان لـ replicas تخطي fetching للأجزاء المُدرجة حديثًا (غير المدمجة) من النظائر، مما يقلل الحمل الإضافي الناتج عن replication أثناء ingestion الكثيف. [#98625](https://github.com/ClickHouse/ClickHouse/pull/98625) ([tanner-bruce](https://github.com/tanner-bruce)).
* إضافة دعم MergeTree skip index لأعمدة JSON باستخدام JSONAllPaths مع أنواع الفهارس bloom\_filter وtokenbf\_v1 وngrambf\_v1 وtext (inverted)، مما يتيح granule skipping استنادًا إلى مجموعة JSON paths الموجودة في كل granule. [#98886](https://github.com/ClickHouse/ClickHouse/pull/98886) ([Pavel Kruglov](https://github.com/Avogar)).
* تدعم الدالة `printf` الآن format strings غير الثابتة، مما يتيح استخدام أنماط format مختلفة لكل row استنادًا إلى قيم column. [#98991](https://github.com/ClickHouse/ClickHouse/pull/98991) ([Yash ](https://github.com/Onyx2406)).
* إضافة projection index جديد، `commit_order`، يعيد تنظيم البيانات وفق ترتيب الإدراج. [#99004](https://github.com/ClickHouse/ClickHouse/pull/99004) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إضافة الدالة `highlight` التي تُغلّف مواضع ظهور مصطلحات البحث في سلسلة نصية بوسوم HTML (الوسومان الافتراضيان هما `<em>`/`</em>`). تدعم المطابقة غير الحساسة لحالة الأحرف لـ ASCII، والدمج التلقائي للتطابقات المتداخلة، ووسومي الفتح/الإغلاق المخصصين. [#99131](https://github.com/ClickHouse/ClickHouse/pull/99131) ([Peng](https://github.com/fastio)).
* تنفيذ quotas استنادًا إلى hash الخاص بالـ normalized query لحماية خدمات ClickHouse العامة من إساءة الاستخدام. 1. دعم `NORMALIZED_QUERY_HASH` باعتباره نوع quota key - مع buckets منفصلة لكل normalized query فريدة، بحيث يتتبع `CREATE QUOTA q KEYED BY normalized_query_hash` كل query مميزة على حدة. 2. دعم `QUERIES_PER_NORMALIZED_HASH` باعتباره نوع مورد quota -- ما يقيّد الحد الأقصى لعدد مرات تنفيذ أي normalized query واحدة ضمن interval، بحيث يمنع `MAX queries_per_normalized_hash = 100` تشغيل أي query pattern واحدة أكثر من 100 مرة. [#99586](https://github.com/ClickHouse/ClickHouse/pull/99586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن للمستخدمين الآن كتابة استعلامات join باستخدام الصياغة `NATURAL JOIN`، التي تطابق تلقائيًا جميع columns التي تحمل الاسم نفسه وتزيل تكرار هذه columns في النتيجة. [#99840](https://github.com/ClickHouse/ClickHouse/pull/99840) ([Peter Nguyen](https://github.com/petern48)).
* دعم `SET TIME ZONE 'tz'` كـ Alias for `SET session_timezone`. [#99883](https://github.com/ClickHouse/ClickHouse/pull/99883) ([phulv94](https://github.com/phulv94)).
* إضافة دعم للاستعلامات المعلَّمة في واجهة الويب (`play.html`): يتم اكتشاف query parameters مثل `{name:Type}`، وتُعرَض حقول إدخال لملء values الخاصة بها. [#100041](https://github.com/ClickHouse/ClickHouse/pull/100041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم clause ‏`VALUES` القياسية في SQL كتعبير table داخل `FROM`، مثل `SELECT * FROM (VALUES (1, 'a'), (2, 'b')) AS t(id, val)`. [#100143](https://github.com/ClickHouse/ClickHouse/pull/100143) ([Desel72](https://github.com/Desel72)).
* إضافة وحدات متوافقة مع PostgreSQL إلى العامل `EXTRACT`: ‏`EPOCH` و`DOW` و`DOY` و`ISODOW` و`ISOYEAR` و`WEEK` و`CENTURY` و`DECADE` و`MILLENNIUM`. كما تم إصلاح `EXTRACT(WEEK FROM date)` الذي كان يُطلق خطأً سابقًا. [#100274](https://github.com/ClickHouse/ClickHouse/pull/100274) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة دعم لقيم interval المركبة القياسية في SQL مع محددات النطاق `TO`، مثل `INTERVAL '1:30' HOUR TO MINUTE`. ويجري داخليًا تفكيكها إلى مجموع intervals. [#100453](https://github.com/ClickHouse/ClickHouse/pull/100453) ([Desel72](https://github.com/Desel72)).
* إضافة metrics غير متزامنة لذاكرة buffer استقبال TCP وإرساله في النواة (`sk_rmem_alloc`, `sk_wmem_alloc`) الخاصة بـ sockets في HTTP connection pool، مع الإبلاغ عنها على شكل النسب المئوية p50/p75/p90/p95 وإجماليات لكل مجموعة connection. [#100575](https://github.com/ClickHouse/ClickHouse/pull/100575) ([Sema Checherinda](https://github.com/CheSema)).
* إضافة web UI خاصة بـ jemalloc profiling لـ ClickHouse Keeper، ومتاحة على `/jemalloc` عبر منفذ HTTP control. [#100606](https://github.com/ClickHouse/ClickHouse/pull/100606) ([murphy-4o](https://github.com/murphy-4o)).
* تنفيذ الأمر `SYSTEM FLUSH OBJECT STORAGE QUEUE db.table PATH 'x'` لكلٍّ من النمطين ordered وunordered. [#100709](https://github.com/ClickHouse/ClickHouse/pull/100709) ([Bharat Nallan](https://github.com/bharatnc)).
* تمت إضافة الدالة `JSONAllValues` التي تُرجع جميع القيم من عمود `JSON` على هيئة `Array(String)`، مع تسلسل القيم بتمثيل نصي وترتيبها حسب أسماء المسارات. كما أُضيف دعم الفهرس النصي لعبارة `JSONAllValues` على أعمدة `JSON`. وعند إنشاء فهرس نصي على `JSONAllValues(json_column)`، يُستخدم تلقائيًا لتصفية الاستعلامات على الأعمدة الفرعية لـ `JSON` (مثل `json_column.key1 = 'value'`). [#100730](https://github.com/ClickHouse/ClickHouse/pull/100730) ([Anton Popov](https://github.com/CurtizJ)).
* تمت إضافة إعداد جديد باسم `input_format_column_name_matching_mode` يتيح درجات مختلفة من حساسية حالة الأحرف في تنسيقات الإدخال. [#99346](https://github.com/ClickHouse/ClickHouse/pull/99346) ([manerone](https://github.com/Manerone)).
* تمت إضافة الأمر `watch` إلى `clickhouse-keeper-client` مع دعم watch في الأوامر `get` و`exists` و`ls`. [#100834](https://github.com/ClickHouse/ClickHouse/pull/100834) ([Den Kalantaevskii](https://github.com/Diskein)).
* تمت إضافة الطلب `getChildrenRecursive` ‏(ListRecursive) إلى ClickHouse Keeper والأمر `lsr` إلى `clickhouse-keeper-client`. وهذا يغلق [#99916](https://github.com/ClickHouse/ClickHouse/issues/99916). [#100998](https://github.com/ClickHouse/ClickHouse/pull/100998) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تمت إضافة دالة جديدة `arrayTranspose` تأخذ Array ثنائي الأبعاد (مصفوفة) وتبدّل صفوفه وأعمدته: `SELECT arrayTranspose([[1, 2, 3], [4, 5, 6]])`. [#101214](https://github.com/ClickHouse/ClickHouse/pull/101214) ([Vitaly Baranov](https://github.com/vitlibar)).
* أصبح الإعداد `auto_statistics_types mergetree` مضبوطًا افتراضيًا على `'minmax, uniq'` — إذ تُنشأ إحصاءات minmax وuniq تلقائيًا لجميع الأعمدة المناسبة في الجداول الجديدة - كما أصبح `materialize_statistics_on_insert` مضبوطًا افتراضيًا على false — إذ تُبنى الإحصاءات الآن أثناء عمليات الدمج بدلًا من وقت الإدراج، مما يقلل العبء الإضافي على عمليات الإدراج. استخدم `SET materialize_statistics_on_insert = 1` لاستعادة السلوك السابق. [#101275](https://github.com/ClickHouse/ClickHouse/pull/101275) ([Han Fei](https://github.com/hanfei1991)).
* تمت إضافة إعداد التحديث `prefer_dependency_replica` لسلاسل تبعية العروض المادية لتقليل البيانات المفقودة الناتجة عن تأخر النسخ المتماثل بين النسخ. [#101591](https://github.com/ClickHouse/ClickHouse/pull/101591) ([Seva Potapov](https://github.com/seva-potapov)).
* تمت إضافة الدالة `hasPhrase` (بالاسم البديل `matchPhrase`) للبحث عن العبارات (تسلسلات متصلة من الرموز). البحث هنا brute-force، أي إنه غير مدعوم بعد بواسطة الفهرس النصي. [#101997](https://github.com/ClickHouse/ClickHouse/pull/101997) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تمت إضافة histogram metrics ‏`s3_read_request_duration_microseconds` و`s3_read_request_bytes` لمراقبة مدة اتصال طلبات S3 GET وعدد البايتات المستهلكة، وهي تظهر في `system.histogram_metrics` وعبر Prometheus endpoint. [#102058](https://github.com/ClickHouse/ClickHouse/pull/102058) ([Sema Checherinda](https://github.com/CheSema)).
* يمكن الآن إضافة قيم `Date` و`Date32` إلى قيم `Time` و`Time64` باستخدام العامل `+`، لينتج عن ذلك `DateTime` أو `DateTime64`. على سبيل المثال، تُرجع `SELECT toDate('2024-01-15') + toTime('14:30:25')` القيمة `2024-01-15 14:30:25`. وتُحسب النتيجة وفق المنطقة الزمنية للجلسة، وتُعالَج النتائج الخارجة عن النطاق وفق الإعداد `date_time_overflow_behavior`. وهذا يغلق [#95914](https://github.com/ClickHouse/ClickHouse/issues/95914). [#102421](https://github.com/ClickHouse/ClickHouse/pull/102421) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أصبح الفهرس النصي الآن في مرحلة GA ويظل مفعّلًا بغض النظر عن الإعداد `compatibility`، مما يمنع تعطيله بشكل غير متوقع أثناء استعادة النسخ الاحتياطية أو عند التشغيل في وضع التوافق. [#101518](https://github.com/ClickHouse/ClickHouse/pull/101518) ([Nikita Fomichev](https://github.com/fm4v)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* إضافة `ALTER TABLE ... EXECUTE remove_orphan_files` إلى جداول Iceberg لتحديد الملفات غير المُشار إليها وإزالتها من التخزين الكائني. [#99127](https://github.com/ClickHouse/ClickHouse/pull/99127) ([murphy-4o](https://github.com/murphy-4o)).
* إضافة الإعداد `query_plan_optimize_join_order_randomize` الذي يضفي عشوائية على الإحصاءات المستخدمة في إعادة ترتيب `join`، وهو مفيد لأغراض الاختبار. [#100643](https://github.com/ClickHouse/ClickHouse/pull/100643) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إضافة دعم دالة AI إلى ClickHouse، بما يتيح للمستخدمين استدعاء نقاط نهاية OpenAI وAnthropic باستخدام SQL. وتُعد `aiGenerate` أول دالة من هذا النوع. [#100831](https://github.com/ClickHouse/ClickHouse/pull/100831) ([George Larionov](https://github.com/george-larionov)).
* إضافة دوال AI: ‏`aiClassify` و`aiExtract` و`aiTranslate` للاستفادة من واجهات برمجة تطبيقات نماذج اللغة الكبيرة في ClickHouse. [#100832](https://github.com/ClickHouse/ClickHouse/pull/100832) ([George Larionov](https://github.com/george-larionov)).
* تمت إضافة `system.histogram_metric_log`، وهو جدول نظام جديد يلتقط لقطات دورية لجميع مقاييس المدرج التكراري (مثل زمن الاستجابة في S3/Azure، ومدد مراحل معالجة طلبات Keeper). كذلك، يتغير العمود `value` في `system.histogram_metrics` إلى `Float64` لأنه أكثر مرونةً وتوافقًا مع نموذج بيانات Prometheus. [#103046](https://github.com/ClickHouse/ClickHouse/pull/103046) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). ومن المرجح أن تتغير بنية الجدول في الإصدارات القادمة.

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* أصبح ClickHouse الآن قادرًا على استبعاد أجزاء البيانات بالكامل في استعلامات SELECT استنادًا إلى إحصاءات الحد الأدنى/الحد الأقصى. [#94140](https://github.com/ClickHouse/ClickHouse/pull/94140) ([zoomxi](https://github.com/zoomxi)).
* تقليل التنافس على الأقفال أثناء عمليات readonly على جداول ReplicatedMergeTree التي اكتملت فيها mutations. [#95771](https://github.com/ClickHouse/ClickHouse/pull/95771) ([Eduard Karacharov](https://github.com/korowa)).
* مراعاة `optimize_read_in_order` عند قراءة projections. يغلق [#89453](https://github.com/ClickHouse/ClickHouse/issues/89453). [#95885](https://github.com/ClickHouse/ClickHouse/pull/95885) ([Andrey Zvonov](https://github.com/zvonand)).
* مجموعة صغيرة من التحسينات في Hash Join وConcurrent Hash Join. [#96663](https://github.com/ClickHouse/ClickHouse/pull/96663) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تحسين تحويل `DISTINCT` عبر تعطيل تحسين أعمدة `LowCardinality` عندما تكون بيانات الإدخال متميزة تقريبًا. [#97113](https://github.com/ClickHouse/ClickHouse/pull/97113) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تحسين أداء استعلامات `LIKE` المذكورة في [#97723](https://github.com/ClickHouse/ClickHouse/issues/97723). ويمكن لهذه الاستعلامات الآن استخدام فهارس النص. [#98149](https://github.com/ClickHouse/ClickHouse/pull/98149) ([Elmi Ahmadov](https://github.com/ahmadov)).
* أصبحت الدوال الرياضية المتجهة (`exp`, `log`, `sigmoid`, `tanh`) أسرع الآن على AArch64 (باستخدام NEON/SVE) وعلى FreeBSD/Darwin، بعدما كانت تستخدم سابقًا مسار scalar احتياطيًا أبطأ. [#98230](https://github.com/ClickHouse/ClickHouse/pull/98230) ([Raúl Marín](https://github.com/Algunenano)).
* يمكن الآن للاستعلامات التي تُجري filtering على أعمدة primary key في `MergeTree` باستخدام بدائل regexp على سلاسل حرفية، مثل `^(abc-1|abc-2)`، الاستفادة من pruning للمفتاح الأساسي عندما تشترك البدائل في prefix واحد. [#98988](https://github.com/ClickHouse/ClickHouse/pull/98988) ([Yash ](https://github.com/Onyx2406)).
* تعميم التصفية الديناميكية top-k في `ORDER BY ... LIMIT` لدعم الأنواع `Nullable` و`String` و`COLLATE`. [#99033](https://github.com/ClickHouse/ClickHouse/pull/99033) ([murphy-4o](https://github.com/murphy-4o)).
* تسريع hash join على المفاتيح `Int32` و`Int64` ذات النطاق الصغير باستخدام hash table بفهرسة مباشرة. [#99275](https://github.com/ClickHouse/ClickHouse/pull/99275) ([Hechem Selmi](https://github.com/m-selmi)).
* تسريع الاستعلامات غير المتصلة لأعمدة `LowCardinality` ذات Dictionary واحد. [#99285](https://github.com/ClickHouse/ClickHouse/pull/99285) ([Ivan Babrou](https://github.com/bobrik)).
* تسريع الدالتين `var*Stable` و`stddev*Stable` لأعمدة `Float64` عبر إلغاء المحاكاة الافتراضية للحلقة الداخلية. ملاحظة: يفعّل هذا تحسينات المصرّف (FMA/registers) التي تغيّر نتائج الفاصلة العائمة على مستوى ULP. [#99460](https://github.com/ClickHouse/ClickHouse/pull/99460) ([Riyane El Qoqui](https://github.com/riyaneel)).
* استخدام ترميز Firedancer base58 المُحسَّن للمدخلات بحجم 32/64 بايت (تلقائيًا مع `base58Encode`). كما أصبح من الممكن استخدام فك ترميز base58 المُحسَّن إذا كانت النتيجة بعد فك الترميز بحجم 32/64 بايت (صراحةً باستخدام `base58Decode('...', 32)` أو ما شابه). [#99461](https://github.com/ClickHouse/ClickHouse/pull/99461) ([Joanna Hulboj](https://github.com/jh0x)).
* تفعيل تحسينات تستند إلى أقسام الرابط (`-ffunction-sections`, `-fdata-sections`, `--icf=all`) لتقليل حجم binary وتحسين الاستفادة من ذاكرة cache الخاصة بالتعليمات. [#99474](https://github.com/ClickHouse/ClickHouse/pull/99474) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح التوسع السلبي للاستعلامات القصيرة التي تتضمن التجميع على الأجهزة ذات العدد الكبير من الأنوية. فعندما يقرأ الاستعلام عددًا قليلًا من العلامات، لم يعد خط المعالجة يتوسع إلى `max_threads` بعد التجميع، مما يتجنب الأعباء الإضافية الناتجة عن تدفقات شبه فارغة. [#99493](https://github.com/ClickHouse/ClickHouse/pull/99493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء الاستعلامات التي تستخدم النسخ المتماثلة المتوازية عبر اختيار حجم مهمة القراءة على نحو صحيح. [#99801](https://github.com/ClickHouse/ClickHouse/pull/99801) ([Nikita Taranov](https://github.com/nickitat)).
* السماح بالاستباق في الجلب عند قراءة ملف بعيد عبر ذاكرة تخزين الصفحات المؤقتة في فضاء المستخدم. [#99919](https://github.com/ClickHouse/ClickHouse/pull/99919) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تجنب الحساب غير الضروري للعمود الفرعي `.size` من النوع `String` أثناء تعداد الأعمدة الفرعية. [#99941](https://github.com/ClickHouse/ClickHouse/pull/99941) ([Pavel Kruglov](https://github.com/Avogar)).
* جعل شريط التقدم في `clickhouse-client` أقل تذبذبًا عند العمل من فندق مع clusters تضم عددًا كبيرًا جدًا من replicas. [#100145](https://github.com/ClickHouse/ClickHouse/pull/100145) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تشغيل `MemoryWorker` في `clickhouse-local` عند تفعيل page cache، بحيث يمكن استخدام userspace page cache فعليًا. [#100306](https://github.com/ClickHouse/ClickHouse/pull/100306) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين الاستعلامات عبر دفع clause `LIMIT` إلى داخل `UNION ALL`. [#100364](https://github.com/ClickHouse/ClickHouse/pull/100364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة دعم ترجمة JIT لمقارنات الأعمدة `String` و`FixedString` في `ORDER BY`، مما يحسن أداء الفرز في مرحلة الدمج بنسبة 6–17% لمفاتيح الفرز التي تعتمد بكثافة على السلاسل النصية. بالمشاركة في التأليف مع @lgbo-ustc. [#100577](https://github.com/ClickHouse/ClickHouse/pull/100577) ([Raúl Marín](https://github.com/Algunenano)).
* عند تفعيل `read_in_order_use_virtual_row` مع الإعداد الجديد `read_in_order_use_virtual_row_per_block`، أصبحت معلومات حدود الصفوف الافتراضية تُرسَل الآن بعد قراءة كل block من `MergeTree`، مما يسمح لعملية الدمج بإعادة ترتيب أولويات المصادر أثناء التدفق للأجزاء التي تُصفّى بياناتها بالكامل بواسطة `WHERE`/`PREWHERE`/`JOIN`. يُغلق [#99945](https://github.com/ClickHouse/ClickHouse/issues/99945). [#100603](https://github.com/ClickHouse/ClickHouse/pull/100603) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تسريع تحويل `Float` إلى `String` للقيم الصحيحة الكبيرة عبر توسيع المسار السريع `itoa` مع تقريب متوافق مع dragonbox. [#100649](https://github.com/ClickHouse/ClickHouse/pull/100649) ([Raúl Marín](https://github.com/Algunenano)).
* استبدال `dragonbox` بـ `zmij` للحصول على تحويل `Float` إلى `String` أسرع بمقدار 1.5x-3x. [#100650](https://github.com/ClickHouse/ClickHouse/pull/100650) ([Raúl Marín](https://github.com/Algunenano)).
* تسريع تحويل `Int128`/`UInt128` إلى سلسلة نصية عبر استبدال القسمة البرمجية باختزال Barrett وفكّ تكرار حلقة التحويل. [#100671](https://github.com/ClickHouse/ClickHouse/pull/100671) ([Raúl Marín](https://github.com/Algunenano)).
* تجنب إنشاء threads زائدة في الدمج المتوازي لـ `uniqExact`. [#100686](https://github.com/ClickHouse/ClickHouse/pull/100686) ([Jiebin Sun](https://github.com/jiebinn)).
* إضافة دمج متوازٍ على دفعات لـ `uniqExact`. [#100687](https://github.com/ClickHouse/ClickHouse/pull/100687) ([Jiebin Sun](https://github.com/jiebinn)).
* تحسين التوازي في الاستعلامات ذات views البسيطة (مع table أساسية من `MergeTree`) التي تُنفذ باستخدام parallel replicas. [#100815](https://github.com/ClickHouse/ClickHouse/pull/100815) ([Igor Nikonov](https://github.com/devcrafter)).
* يضيف دعم `parallel replicas` عبر `views` البسيطة (بما في ذلك عروض `UNION ALL` المؤهلة فوق جداول `MergeTree`) عند تعيين `parallel_replicas_allow_view_over_mergetree=1`. ويتيح ذلك تنفيذ الاستعلام الخارجي للـ view بالتوازي بدلًا من الاستعلام الداخلي، مما يزيد من مستوى التوازي في الاستعلامات عبر العقد. [#100958](https://github.com/ClickHouse/ClickHouse/pull/100958) ([Igor Nikonov](https://github.com/devcrafter)).
* تحسين القراءة وفق ترتيب `primary key` في `full_sorting_merge` عند وجود عوامل تصفية تتضمن `IN` في `query plan`. [#101261](https://github.com/ClickHouse/ClickHouse/pull/101261) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين `allocations/deallocations` عبر تخزين إعدادات `sampling` مؤقتًا بدلًا من اجتياز كامل التسلسل الهرمي لـ `memory tracker`. [#101267](https://github.com/ClickHouse/ClickHouse/pull/101267) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تراجع كبير في أداء `INSERT` عندما يكون `deduplicate_insert = 'enable'` (وهو الإعداد الافتراضي منذ 26.2)، وذلك عبر تأجيل حساب `hash` البيانات من `squashing` إلى جهة المصب، واستخدام تجزئة دفعية للأعمدة عبر `updateHashWithValueRange`، مما يقلّل الحمل الإضافي من نحو \~2.5s إلى \~0.5s لـ 5M صفوف مع 22 عمودًا. [#101494](https://github.com/ClickHouse/ClickHouse/pull/101494) ([Sema Checherinda](https://github.com/CheSema)).
* تقليل الحمل الإضافي لأقفال التحليل باستخدام `try_lock` لتجنّب احتساب زمن عمليات الاستحواذ غير المتنازع عليها، مع إزالة قياس مدة الاحتفاظ بالقفل. [#101502](https://github.com/ClickHouse/ClickHouse/pull/101502) ([Antonio Andelic](https://github.com/antonio2368)).
* استبدال تعليمات AVX-512 المضمنة المكتوبة يدويًا في `arrayDotProduct` بحلقات مستقلة عن المنصة قابلة للتوجيه التلقائي، مع إضافة دعم AVX2 وARM NEON. [#101571](https://github.com/ClickHouse/ClickHouse/pull/101571) ([Peng](https://github.com/fastio)).
* تحسين الأداء في `INSERT VALUES` لأعمدة `Map` و`Array` و`Tuple` عند تمرير القيم كسلاسل نصية مُهربة (مثل `'{\'key\':1}'`)، مع تجنّب الرجوع غير الضروري إلى `parser` تعبيرات SQL. [#102119](https://github.com/ClickHouse/ClickHouse/pull/102119) ([Joanna Hulboj](https://github.com/jh0x)).
* إصلاح الاستخدام المفرط للمعالج من قِبل `table engine` ‏`RabbitMQ`. [#102711](https://github.com/ClickHouse/ClickHouse/pull/102711) ([Jaap Elst](https://github.com/jaapieaapie1)).
* أصبح مُحسِّن `join order` الآن يستنتج `predicates` مساواة انتقالية من شروط `join` الحالية. فعلى سبيل المثال، عند وجود `A.x = B.x AND B.x = C.x`، يتعرّف على التكافؤ `A.x = C.x`، مما يتيح للمُحسِّن النظر في عمليات `join` مباشرة بين الجداول المرتبطة انتقاليًا. ويمكن أن يحسّن ذلك جودة `plan` في `schemas` النجمية وندفة الثلج، حيث ترتبط جداول الأبعاد عبر جدول وقائع مشترك. وتتحكم في هذه الميزة `setting` الجديدة `enable_join_transitive_predicates` (وهي معطلة افتراضيًا). [#98479](https://github.com/ClickHouse/ClickHouse/pull/98479) ([Alexander Gololobov](https://github.com/davenger)).
* تحسين `TRUNCATE DATABASE TABLES LIKE` عبر الإلغاء المسبق لعمليات `merges` بالتوازي. [#98597](https://github.com/ClickHouse/ClickHouse/pull/98597) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إضافة دعم الرتابة لعملية الضرب، مما يتيح `pruning` باستخدام `primary key` لتعبيرات `key * constant`. [#98983](https://github.com/ClickHouse/ClickHouse/pull/98983) ([Amos Bird](https://github.com/amosbird)).
* لم تعد `cache dictionaries` تأخذ قفلًا `exclusive` في `hasKeys`؛ مما يقلّل التزاحم على الأقفال باستخدام قفل مشترك لقراءات `cache`. [#100796](https://github.com/ClickHouse/ClickHouse/pull/100796) ([liuguangliang](https://github.com/sourcelliu)).
* تضمين `subquery` الخاصة بـ VIEW داخل `query tree` لإتاحة تطبيق المزيد من التحسينات على VIEW. [#100830](https://github.com/ClickHouse/ClickHouse/pull/100830) ([Dmitry Novik](https://github.com/novikd)).
* تحسين `loading` الخاصة بـ `cache` عند بدء تشغيل الخادم. [#101500](https://github.com/ClickHouse/ClickHouse/pull/101500) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تطبيق التجسيد المادي الكسول للأعمدة في ReplacingMergeTree مع FINAL عندما يكون الشرط انتقائيًا بما يكفي. [#101647](https://github.com/ClickHouse/ClickHouse/pull/101647) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إعادة تمكين التحسين `optimize_rewrite_array_exists_to_has` (وهو معطّل افتراضيًا منذ 23.10). فهو يعيد كتابة `arrayExists(x -> x = elem, arr)` إلى `has(arr, elem)` الأسرع بكثير، ويتجاوز الآن إعادة الكتابة على نحو صحيح عندما لا يكون نوع عنصر المصفوفة و`elem` متوافقين مع `has` (مثل `Date` مقابل `String`)، بحيث تواصل الاستعلامات التي كانت تتعطل سابقًا العمل. يُغلق [#71431](https://github.com/ClickHouse/ClickHouse/issues/71431). [#100944](https://github.com/ClickHouse/ClickHouse/pull/100944) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-improvement">
  #### تحسينات
</div>

* تحسين مخرجات `EXPLAIN PLAN pretty=1`: طباعة أعمدة مخرجات الاستعلام ذي المستوى الأعلى، وإظهار تسميات/رموز علاقة join مع عدد الصفوف التقديري للنتيجة والمحلية، وتضمين أعمدة المخرجات لكل خطوة في خطوات join/source. تغطي هذه التغييرات جزء Information Deficit من [#98117](https://github.com/ClickHouse/ClickHouse/issues/98117). [#99462](https://github.com/ClickHouse/ClickHouse/pull/99462) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إضافة إعداد لجدول MergeTree باسم `share_nested_offsets` (القيمة الافتراضية `true`). عند ضبطه على `false`، تُعامل أعمدة Array ذات الأسماء المنقطة (مثل `n.a` و`n.b`) على أنها أعمدة مستقلة بدلاً من مشاركة ملفات offsets والتحقق من تساوي أحجام المصفوفات كجزء من دلالات `Nested` القديمة. [#98416](https://github.com/ClickHouse/ClickHouse/pull/98416) ([Amos Bird](https://github.com/amosbird)).
* يمكن للمستخدمين الآن تحديد عدة authentication methods في إعداد users.xml/yaml (وكان ذلك ممكناً دائماً في SQL). [#91998](https://github.com/ClickHouse/ClickHouse/pull/91998) ([Flip-Liquid](https://github.com/Flip-Liquid)).
* إعادة تحميل اتصالات Raft بين العقد التي تستخدم TLS تلقائياً. [#93455](https://github.com/ClickHouse/ClickHouse/pull/93455) ([Evgeny](https://github.com/evkuzin)).
* توسيع `cast_keep_nullable` ليعمل مع النوعين Dynamic/JSON. عند تفعيله، فإن تحويل NULL من الأنواع التي يمكن أن تكون Nullable سيُرجع NULL، وإلا فسيتسبب NULL في الخطأ `CANNOT_INSERT_NULL_IN_ORDINARY_COLUMN`. [#96504](https://github.com/ClickHouse/ClickHouse/pull/96504) ([Seva Potapov](https://github.com/seva-potapov)).
* تقليل استهلاك الذاكرة لهياكل البيانات الداخلية (`ISerialization` objects) عبر إدخال مجمّع كائنات. [#96563](https://github.com/ClickHouse/ClickHouse/pull/96563) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* إضافة دعم للحقلين `password` و`identity` في إعداد XML الخاص بـ keeper-client. [#96800](https://github.com/ClickHouse/ClickHouse/pull/96800) ([Grigorii Sokolik](https://github.com/GSokol)).
* تحسين عمليات الكتابة إلى `Iceberg` لـ Unity Catalog. [#98162](https://github.com/ClickHouse/ClickHouse/pull/98162) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إضافة الإعداد `finalize_projection_parts_synchronously` للسماح بإنهاء projection parts بشكل متزامن أثناء INSERT، ما يقلل peak memory usage للجداول التي تحتوي على projections كثيرة مع الحفاظ على السلوك غير المتزامن الحالي افتراضياً. [#98228](https://github.com/ClickHouse/ClickHouse/pull/98228) ([Amos Bird](https://github.com/amosbird)).
* إضافة العمود `projections_duration_ms` إلى `system.part_log` لتسجيل مدة merge/rebuild لكل projection بالمللي ثانية. [#98292](https://github.com/ClickHouse/ClickHouse/pull/98292) ([Amos Bird](https://github.com/amosbird)).
* تحسين إلغاء queries التي تستخدم ExpressionTransform وNumbersRangedSource عبر KILL QUERY وإلغاء query (Ctrl+C) في clickhouse-client. [#98908](https://github.com/ClickHouse/ClickHouse/pull/98908) ([Roman Vasin](https://github.com/rvasin)).
* استبدال قائمة `source_table_engines` المرمّزة مسبقاً ببحث وقت التشغيل عبر `StorageFactory::getAllStorages()`. يضيف هذا عمليات تحقق من الوصول لبعض table engines غير المشمولة، ويغلق [#71544](https://github.com/ClickHouse/ClickHouse/issues/71544). [#98984](https://github.com/ClickHouse/ClickHouse/pull/98984) ([pufit](https://github.com/pufit)).
* إضافة إعداد للتحكم في سلوك عدم تطابق النوع لـ Variant وDynamic (throw أو إرجاع null). [#99085](https://github.com/ClickHouse/ClickHouse/pull/99085) ([Bharat Nallan](https://github.com/bharatnc)).
* تحسين التوافق بين `Iceberg` وSpark: إصلاح التعامل غير المتسق مع المسارات الناتج عن المزج بين مسارات التخزين ومسارات البيانات الوصفية؛ وفرض أن تسجّل جداول `Iceberg` موقع الجدول على هيئة عنوان URL أو مسار مطلق؛ وإضافة آلية fallback لحساب أحجام الملفات في `Azure` لأن بعض قارئات ClickHouse لا تدعم عدّ البايتات بعد الاجتياز؛ ومعالجة `version-hint.txt` بطريقة متوافقة مع Spark؛ وإدخال تجريدات على مستوى الأنواع تجعل الخلط بين أنواع المسارات أصعب مستقبلًا؛ وإضافة اختبارات لـ `Azure` و`Local` تتحقق من قابلية التشغيل البيني بين المحركات من دون تحميل/تنزيل وسيط؛ وإصلاح استخدام عمليات الحذف الموضعي، التي كانت تعتمد سابقًا على استدلالات استنتاج المسار في مواضع لا يكون فيها هذا النهج مناسبًا. [#99163](https://github.com/ClickHouse/ClickHouse/pull/99163) ([Daniil Ivanik](https://github.com/divanik)). [#100420](https://github.com/ClickHouse/ClickHouse/pull/100420) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح احتمال حدوث race condition في `IPartitionStrategy::cached_result`، والذي أُدخل في [https://github.com/ClickHouse/ClickHouse/pull/92844](https://github.com/ClickHouse/ClickHouse/pull/92844). [#99400](https://github.com/ClickHouse/ClickHouse/pull/99400) ([Arthur Passos](https://github.com/arthurpassos)).
* يمكن للمستخدمين الآن كتابة أنواع بيانات Interval في ClickHouse بتنسيق Arrow. [#99519](https://github.com/ClickHouse/ClickHouse/pull/99519) ([Peter Nguyen](https://github.com/petern48)).
* إضافة دعم native لاستيراد أنواع بيانات `UUID` وتصديرها بتنسيقات `Arrow` و`Parquet`. يمكن للمستخدمين الآن الاستعلام مباشرةً عن بيانات UUID ونقلها بين ClickHouse وأدوات البيانات الأخرى من دون الحاجة إلى تحويلها يدويًا إلى سلاسل نصية أو استخدام حلول بديلة. كما أُضيف استدلال منطقي تلقائي لعناصر UUID ذات المستوى الأعلى، ودعم لتلميح مخطط صريح لعناصر UUID المتداخلة. [#99521](https://github.com/ClickHouse/ClickHouse/pull/99521) ([Ivan](https://github.com/ivanmantova)).
* دعم أرشيفات `7z` على object storage. يُغلق [#70968](https://github.com/ClickHouse/ClickHouse/issues/70968). [#99600](https://github.com/ClickHouse/ClickHouse/pull/99600) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة أحداث ProfileEvents ‏`ObjectStorageListedObjects` و`ObjectStorageGlobFilteredObjects` و`ObjectStoragePredicateFilteredObjects` و`ObjectStorageReadObjects` لأغراض introspection لخط أنابيب سرد الملفات وقراءتها في object storage (`S3` و`Azure` وغيرهما). [#99778](https://github.com/ClickHouse/ClickHouse/pull/99778) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح فشل table function ‏`merge` مع الخطأ `UNKNOWN_IDENTIFIER` عند الاستعلام عن أعمدة غير موجودة في جميع الجداول الموزعة/البعيدة الأساسية. [#99833](https://github.com/ClickHouse/ClickHouse/pull/99833) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* نضمّن الآن وقت commit في metric الإجمالي لوقت تنفيذ mutation في ReplicatedMergeTree. كان هذا الوقت مفقودًا بعد [#96376](https://github.com/ClickHouse/ClickHouse/issues/96376). [#99936](https://github.com/ClickHouse/ClickHouse/pull/99936) ([alesapin](https://github.com/alesapin)).
* إضافة سجل كتابة مسبقة للكائنات الثنائية الكبيرة (blob) المعلقة للإزالة في `MetadataStorageFromDisk`، مما يحسّن المتانة والاتساق بين البيانات الوصفية وobject storage البعيد عند حذف الكائنات. [#100019](https://github.com/ClickHouse/ClickHouse/pull/100019) ([Maksim Kita](https://github.com/kitaisreal)).
* تعطيل AI SQL generation (الأمر `??`) في العميل embedded (بروتوكولا SSH وWebSocket) لمنع الوصول إلى متغيرات بيئة الخادم. [#100290](https://github.com/ClickHouse/ClickHouse/pull/100290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تغيير الواجهة الخاصة بعمليات insert في Iceberg مع catalog. وإهمال الإعدادات التالية: `storage_catalog_type` و`storage_aws_access_key_id` وغيرها. [#100334](https://github.com/ClickHouse/ClickHouse/pull/100334) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* اعرض علامات الجدولة على شكل 4 مسافات عند اللصق في clickhouse-client. يُغلق [#100405](https://github.com/ClickHouse/ClickHouse/issues/100405). [#100416](https://github.com/ClickHouse/ClickHouse/pull/100416) ([Raúl Marín](https://github.com/Algunenano)).
* تجنّب فحص كتالوج بحيرة البيانات البعيد بالكامل بحثًا عن تلميحات الجداول “Maybe you meant …” عندما يكون `show_data_lake_catalogs_in_system_tables` معطّلًا. [#100452](https://github.com/ClickHouse/ClickHouse/pull/100452) ([Alsu Giliazova](https://github.com/alsugiliazova)).
* طبّق `distributed_index_analysis_min_indexes_bytes_to_activate` بعد تقليم الأقسام. [#100477](https://github.com/ClickHouse/ClickHouse/pull/100477) ([Azat Khuzhin](https://github.com/azat)).
* أصلِح فشل التحقّق في push down لمرشح bloom في Parquet عند استخدام عبارات IN/NOT IN الفارغة. [#100543](https://github.com/ClickHouse/ClickHouse/pull/100543) ([zoomxi](https://github.com/zoomxi)).
* أصبحت إحصاءات الأعمدة MinMax تخزّن القيمتَين الصغرى والكبرى على هيئة Field (مُحدَّد النوع) بدلًا من Float64. ويتضمن التنسيق المُسلسل اسم نوع العمود إلى جانب القيم. كما رُفع إصدار ملف الإحصاءات إلى V2؛ وتستلزم الملفات المكتوبة بإصدارات أقدم إعادة materialization ‏(ALTER TABLE … MATERIALIZE STATISTICS ALL). إصلاح [#53140](https://github.com/ClickHouse/clickhouse-private/issues/53140). [#100605](https://github.com/ClickHouse/ClickHouse/pull/100605) ([Han Fei](https://github.com/hanfei1991)).
* حدّث `cppkafka` ليتضمن إصلاحًا لحالة deadlock عند إغلاق Consumer. [#100612](https://github.com/ClickHouse/ClickHouse/pull/100612) ([Azat Khuzhin](https://github.com/azat)).
* تحتوي معلومات الكائن المستخدمة في parsing لملفات البيانات في Iceberg الآن على عدد صفوف الملف وحجم الملف بالبايت، بعد parsing لهما من manifest file. [#100645](https://github.com/ClickHouse/ClickHouse/pull/100645) ([Daniil Ivanik](https://github.com/divanik)).
* أضف معلمة التهيئة `use_separate_cache_arena` لإتاحة التحكم في فصل Arena الخاصة بذاكرة cache. [#100664](https://github.com/ClickHouse/ClickHouse/pull/100664) ([Seva Potapov](https://github.com/seva-potapov)).
* يضيف دعمًا أصليًا لاستيراد نوعَي البيانات `StringView` و`BinaryView` من Apache Arrow إلى أعمدة `String` في ClickHouse، مما يحسّن التوافق مع ingestion المعتمد على Arrow. [#100762](https://github.com/ClickHouse/ClickHouse/pull/100762) ([Ivan](https://github.com/ivanmantova)).
* أصبحت بعض server settings في Keeper تُعاد تحميلها ديناميكيًا إذا تغيّر config file أثناء runtime: max\_requests\_batch\_size, max\_requests\_batch\_bytes\_size, max\_request\_size, quorum\_reads. [#100773](https://github.com/ClickHouse/ClickHouse/pull/100773) ([Michael Kolupaev](https://github.com/al13n321)).
* زِد profile events ‏`MemoryAllocatedWithoutCheck/MemoryAllocatedWithoutCheckBytes` في إصدار release. [#100899](https://github.com/ClickHouse/ClickHouse/pull/100899) ([Pavel Kruglov](https://github.com/Avogar)).
* يستبعد تتبّع الذاكرة في Cgroupv2 الآن `slab_reclaimable` من ذاكرة النواة، مما يوفّر قياسًا أدق لاستخدام الذاكرة غير القابلة للاسترداد. [#100901](https://github.com/ClickHouse/ClickHouse/pull/100901) ([Antonio Andelic](https://github.com/antonio2368)).
* يعطّل `use_partition_pruning = 0` الآن أيضًا تقليم فهرس `MinMax` وتحسين العد على أعمدة مفتاح partition، بالإضافة إلى تعطيل التقليم المستند إلى مفاتيح partition. [#100904](https://github.com/ClickHouse/ClickHouse/pull/100904) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* يطبع `pretty=1` في `EXPLAIN [PLAN]` الآن expressions بصيغة سهلة القراءة. [#100927](https://github.com/ClickHouse/ClickHouse/pull/100927) ([Kirill Kopnev](https://github.com/Fgrtue)).
* يدعم `accurateCastOrNull` و`accurateCastOrDefault` الآن أنواع الهدف `Tuple`، بما في ذلك `Tuples` المتداخلة التي تحتوي على عناصر `Nullable`. في السابق، كانت هذه الدوال ترفض أهداف `Tuple` لأن `Tuple` لم يكن مدعومًا داخل `Nullable`. إغلاق [#100820](https://github.com/ClickHouse/ClickHouse/issues/100820). [#100942](https://github.com/ClickHouse/ClickHouse/pull/100942) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تكرار المخططات في واجهة Play عند التبديل بين المظهرين الفاتح والداكن. [#101058](https://github.com/ClickHouse/ClickHouse/pull/101058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحديث chdig إلى [v26.3.1](https://github.com/azat/chdig/releases/tag/v26.3.1) (واجهة perfetto، ومخططات sparklines في الملخص لـ CPU/Memory/Merges/Queries، وsystem.warnings، والبحث باستخدام regexp في السجلات). [#101092](https://github.com/ClickHouse/ClickHouse/pull/101092) ([Azat Khuzhin](https://github.com/azat)). وتحديث chdig إلى [v26.4.3](https://github.com/azat/chdig/releases/tag/v26.4.3) (تحسينات perfetto، وإصلاحات للمشاركة عبر pastila.nl، وفروقات flamegraph، وتغيير الإعدادات آنيًا). [#103145](https://github.com/ClickHouse/ClickHouse/pull/103145) ([Azat Khuzhin](https://github.com/azat)).
* يمكنك الآن وضع فاصلة ختامية في clause `WITH` قبل query `SELECT`. [#101093](https://github.com/ClickHouse/ClickHouse/pull/101093) ([Aruj Bansal](https://github.com/arujbansal)).
* إضافة MergeTree setting ‏`compress_per_column_in_compact_parts` للتحكم في كيفية تنظيم blocks المضغوطة داخل compact parts. عندما تكون قيمته `true` (وهي القيمة الافتراضية، مع الحفاظ على السلوك الحالي)، يبدأ كل column block مضغوطة جديدة، مما يتيح فك الضغط انتقائيًا. وعندما تكون قيمته `false`، تُحزم جميع columns داخل granule في block مضغوطة واحدة، مما يحسن compression ratio وأداء القراءة في workloads التي تقرأ جميع columns دائمًا. [#101114](https://github.com/ClickHouse/ClickHouse/pull/101114) ([Amos Bird](https://github.com/amosbird)).
* عرض نافذة معلومات الجدول في واجهة Play فقط عند تمرير المؤشر فوق اسم الجدول، وليس فوق الصف بأكمله. [#101118](https://github.com/ClickHouse/ClickHouse/pull/101118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة أيقونات خاصة بكل engine وتحسين تجربة استخدام قائمة الجداول في الشريط الجانبي لواجهة Play. [#101134](https://github.com/ClickHouse/ClickHouse/pull/101134) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم `Nullable(Tuple)` في formats ‏`Arrow` و`ArrowStream` و`ORC` و`Parquet` القديمة. [#101272](https://github.com/ClickHouse/ClickHouse/pull/101272) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* عرض صف TOTALS كتذييل للجدول في web UI ‏(play.html). [#101286](https://github.com/ClickHouse/ClickHouse/pull/101286) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم وضع الاستعلامات المتعددة في web UI ‏(`play.html`): تشغيل عدة queries دفعة واحدة مع تنفيذ متوازٍ للاستعلامات الشبيهة بـ `SELECT`، وعرض نتائج كل query على حدة. [#101290](https://github.com/ClickHouse/ClickHouse/pull/101290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تغيير حجم columns في web UI ‏play.html بعد إعادة هيكلة result table إلى مكوّن ويب. [#101295](https://github.com/ClickHouse/ClickHouse/pull/101295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة إمكانية تقييد عدد عمليات flushes لملف profile الخاص بـ jemalloc عند MEMORY\_LIMIT\_EXCEEDED لكل interval زمني. [#101396](https://github.com/ClickHouse/ClickHouse/pull/101396) ([Azat Khuzhin](https://github.com/azat)).
* تمت إضافة إعدادات Keeper ‏`nuraft_streaming_mode` (القيمة الافتراضية `false`) و`nuraft_max_log_gap_in_stream` و`nuraft_max_bytes_in_flight_in_stream`. يُغلق [#90743](https://github.com/ClickHouse/ClickHouse/issues/90743). [#101427](https://github.com/ClickHouse/ClickHouse/pull/101427) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تمت إضافة المقياس غير المتزامن `CGroupMemoryUsedWithoutPageCache` الذي يبلّغ عن استخدام ذاكرة cgroup مع استبعاد كلٍّ من OS page cache الخاصة بالنواة وuserspace page cache الخاصة بـ ClickHouse، بما يماثل `MemoryResidentWithoutPageCache`. كما جرى توضيح وصف المقياس `CGroupMemoryUsed`. [#101513](https://github.com/ClickHouse/ClickHouse/pull/101513) ([Francesco Ciocchetti](https://github.com/primeroz)).
* أُضيف تبسيط نحوي على مستوى parser لصياغة الدالة القياسية `OVERLAY` في SQL. الدالة `overlay` موجودة بالفعل؛ وتضيف هذه الميزة دعم الصيغة المعتمدة على الكلمات المفتاحية باستخدام `PLACING` و`FROM` و`FOR` كفواصل. [#101681](https://github.com/ClickHouse/ClickHouse/pull/101681) ([Desel72](https://github.com/Desel72)).
* تمت إضافة اسم مستعار للعمود `INDEX_LENGTH` إلى جدول النظام `information_schema.tables`، على غرار الأسماء المستعارة الحالية المكتوبة بأحرف كبيرة في هذا الجدول. [#101705](https://github.com/ClickHouse/ClickHouse/pull/101705) ([Robert Schulze](https://github.com/rschu1ze)).
* أصبح جدول النظام `information_schema.tables` يتجاهل الآن أجزاء الجدول غير النشطة. وهذا يجعل قيم أحجام الجداول المعروضة أكثر واقعية. [#101706](https://github.com/ClickHouse/ClickHouse/pull/101706) ([Robert Schulze](https://github.com/rschu1ze)).
* أصبحت الدالة `ngrams` ترفض الآن أطوال ngram غير الصالحة. مثال: أصبح `SELECT ngrams('abc', 0)` يُرجع خطأً. [#101922](https://github.com/ClickHouse/ClickHouse/pull/101922) ([Robert Schulze](https://github.com/rschu1ze)).
* متابعة لـ [#91820](https://github.com/ClickHouse/ClickHouse/issues/91820) و[#90837](https://github.com/ClickHouse/ClickHouse/issues/90837): تصفية الخوارزميات غير المدعومة من رسالة الخطأ؛ وتشغيل الاختبارات الخاصة بـ FIPS في بنيات FIPS. [#102067](https://github.com/ClickHouse/ClickHouse/pull/102067) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* قَصر ارتفاع الخلية على ثلاثة أسطر في web UI ‏(`play.html`)، مع إتاحة توسيع الخلايا بالنقر عليها. [#102154](https://github.com/ClickHouse/ClickHouse/pull/102154) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة خيار جديد يتيح فرض نمط (virtual/path) لنقاط نهاية S3. يحل [#82019](https://github.com/ClickHouse/ClickHouse/issues/82019) و[#76007](https://github.com/ClickHouse/ClickHouse/issues/76007)، وهو استكمال لـ [https://github.com/ClickHouse/ClickHouse/pull/83168](https://github.com/ClickHouse/ClickHouse/pull/83168). [#102378](https://github.com/ClickHouse/ClickHouse/pull/102378) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أصبح الإعداد `restore_replace_external_engines_to_null` يتجاوز الآن أيضًا استعادة قواعد البيانات ذات المحركات الخارجية (مثل `DataLakeCatalog` و`MySQL` و`PostgreSQL` و`S3`) بدلًا من الفشل أو بدء اتصالات خارجية. [#102400](https://github.com/ClickHouse/ClickHouse/pull/102400) ([Nikita Fomichev](https://github.com/fm4v)).
* إضافة دعم تحليل الفهرس النصي للدالة `hasPhrase` عبر وضع `HINT`. [#102438](https://github.com/ClickHouse/ClickHouse/pull/102438) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تمت معاملة STATISTICS على أنها للقراءة فقط في ColumnDependency لإصلاح LOGICAL\_ERROR أثناء MATERIALIZE STATISTICS ALL. [#102627](https://github.com/ClickHouse/ClickHouse/pull/102627) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إنشاء `system.asynchronous_metric_log` وتعبئته في وضع keeper-as-server. [#102664](https://github.com/ClickHouse/ClickHouse/pull/102664) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إضافة خيار الإعداد `default_system_log_flush_policy.skip_alias_columns` للسماح بتجاهل أعمدة ALIAS في جداول سجلات النظام، مما يعالج مشكلة سجلات النظام المعتمدة على S3 التي ترفض أعمدة ALIAS. [#102669](https://github.com/ClickHouse/ClickHouse/pull/102669) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* لا تُمكِّن الإحصاءات التلقائية لجداول النظام، إذ نادرًا ما تستفيد منها. [#102862](https://github.com/ClickHouse/ClickHouse/pull/102862) ([Han Fei](https://github.com/hanfei1991)).
* دعم المُجزِّئ `array` لتحسين LIKE. [#102880](https://github.com/ClickHouse/ClickHouse/pull/102880) ([Elmi Ahmadov](https://github.com/ahmadov)).
* إرسال MemoryAllocatedWithoutCheck حتى في بنيات الإصدار. [#103064](https://github.com/ClickHouse/ClickHouse/pull/103064) ([Azat Khuzhin](https://github.com/azat)).
* إتاحة untracked\_memory لكل خيط تنفيذ في system.stack\_trace. [#103065](https://github.com/ClickHouse/ClickHouse/pull/103065) ([Azat Khuzhin](https://github.com/azat)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* إصلاح الخطأ `Block structure mismatch in stream` الناتج عن إرجاع أعمدة غير ضرورية بسبب Lazy materialization. يُصلح [#95191](https://github.com/ClickHouse/ClickHouse/issues/95191). [#96682](https://github.com/ClickHouse/ClickHouse/pull/96682) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح خطأ منطقي في استعلام سياسة إخفاء البيانات مع `ON CLUSTER`. [#97594](https://github.com/ClickHouse/ClickHouse/pull/97594) ([Bharat Nallan](https://github.com/bharatnc)).
* إصلاح خلل عند استخدام Unity catalog فوق GCS. [#98456](https://github.com/ClickHouse/ClickHouse/pull/98456) ([Melvyn Peignon](https://github.com/melvynator)).
* أصبح `DataLakeCatalog` الآن يراعي إعداد `http_forbid_headers` في إعدادات الخادم عند التحقق من الإعداد `auth_header`. [#98827](https://github.com/ClickHouse/ClickHouse/pull/98827) ([Michael Anastasakis](https://github.com/michael-anastasakis)).
* إصلاح استدعاءات `HeadObject` من نوع N+1 لأنماط globs ذات توسيع الأقواس في S3. [#99219](https://github.com/ClickHouse/ClickHouse/pull/99219) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* التحقق من تغييرات الإعدادات في استعلامات CREATE عندما يكون المحرّك نفسه يدعم الإعدادات أيضًا. [#99279](https://github.com/ClickHouse/ClickHouse/pull/99279) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح فشل `ALTER TABLE UPDATE/DELETE` مع الخطأ `Missing columns` عندما يحتوي جدول على عمود MATERIALIZED يعتمد تعبيره على عمود EPHEMERAL. [#99281](https://github.com/ClickHouse/ClickHouse/pull/99281) ([Yash ](https://github.com/Onyx2406)).
* أصبحت بيانات الاعتماد في سلاسل اتصال JDBC وODBC وNATS تُحجب الآن في سجلات الاستعلامات ومخرجات `SHOW CREATE`، مما يمنع الكشف غير المقصود عن المعلومات الحساسة. وبالنسبة إلى سلاسل الاتصال بصيغة URI (مثل `{scheme}://{user}:{password}@{host}`)، لا يُحجب سوى جزء كلمة المرور، بينما يبقى الباقي مرئيًا لتسهيل استكشاف الأخطاء وإصلاحها. كما أصبح الإعداد `nats_token` يُحجب الآن أيضًا. [#99344](https://github.com/ClickHouse/ClickHouse/pull/99344) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح قيام parseDateTimeBestEffort بتحليل كلمات تبدأ ببادئات أسماء الأشهر بشكل غير صحيح في التنسيق DD-month-YYYY. يُغلق [#99345](https://github.com/ClickHouse/ClickHouse/issues/99345#event-23517658314). [#99350](https://github.com/ClickHouse/ClickHouse/pull/99350) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تجاهل TABLE\_UUID\_MISMATCH عند عدم استخدام analyzer. [#99380](https://github.com/ClickHouse/ClickHouse/pull/99380) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح خلل كان يؤدي إلى تجاهل الإعدادات الصريحة المرسلة إلى جانب `compatibility` في الطلب نفسه بصمت إذا كانت قيمتها تطابق القيمة default على الخادم. [#99402](https://github.com/ClickHouse/ClickHouse/pull/99402) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح الحالات التي كانت فيها الأرقام ذات الأصفار البادئة في مسار hive partitioning تتسبب في أخطاء. يُصلح [#98801](https://github.com/ClickHouse/ClickHouse/issues/98801). [#99458](https://github.com/ClickHouse/ClickHouse/pull/99458) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح heap-use-after-free عند حذف جدول بالتزامن مع استعلام قراءة قيد التشغيل (19 حالة في CI خلال آخر 90 يومًا). [#99483](https://github.com/ClickHouse/ClickHouse/pull/99483) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خلل في Keeper حيث كان من الممكن أن يعلق read request (مما يؤدي إلى انتهاء مهلة session) إذا أُغلقت session أخرى غير مرتبطة على الخادم نفسه في توقيت غير مناسب تمامًا. [#99484](https://github.com/ClickHouse/ClickHouse/pull/99484) ([Michael Kolupaev](https://github.com/al13n321)).
* التحقّق من بنية العمود قبل تطبيق التصحيحات. [#99531](https://github.com/ClickHouse/ClickHouse/pull/99531) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح فشل التحقّق `rows_sources` في الدمج العمودي عند التبديل السريع بين `SYSTEM STOP/START MERGES` أثناء دمج جدول يحتوي على أعمدة `Dynamic`. [#99532](https://github.com/ClickHouse/ClickHouse/pull/99532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تشذيب الأقسام غير الصحيح للدالة `toWeek()`، الذي كان يتسبب في أن تُرجع الاستعلامات التي تحتوي على `WHERE toWeek(date, mode) = N` نتائج فارغة للأسابيع 49–52 في الجداول المُقسّمة باستخدام `toYYYYMM(date)`. [#99542](https://github.com/ClickHouse/ClickHouse/pull/99542) ([Takumi Hara](https://github.com/takumihara)).
* إصلاح استثناء في الدوال التي تعمل على ColumnReplicated مع صفوف غير مُشار إليها ناتجة عن JOIN. [#99564](https://github.com/ClickHouse/ClickHouse/pull/99564) ([Hechem Selmi](https://github.com/m-selmi)).
* إصلاح عدم قيام `CLEAR COLUMN` بإعادة بناء projections، وعدم إعادة تقييم materialized columns التي تعتمد على العمود الذي جرت إزالته، مما قد يسبب استثناءات أو تلفًا في البيانات أثناء عمليات الدمج اللاحقة. [#99565](https://github.com/ClickHouse/ClickHouse/pull/99565) ([Desel72](https://github.com/Desel72)).
* إصلاح استثناء (`Bad get: has Tuple, actual type String`) في `ConditionSelectivityEstimator` عندما يستخدم استعلام عامل IN مع query parameter قياسي واحد (مثل `WHERE col IN ({p:String})`) على جدول يحتوي على column statistics ويكون `use_statistics` مفعّلًا. [#99614](https://github.com/ClickHouse/ClickHouse/pull/99614) ([Ilya Yatsishin](https://github.com/qoega)).
* يجب ألّا يُوسَم الجزء الذي يحتوي على projections غير معروفة بأنه مفقود نهائيًا. [#99623](https://github.com/ClickHouse/ClickHouse/pull/99623) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح استثناء `logical error` نادر أثناء الدمج العمودي عند تنفيذ `SYSTEM STOP MERGES` و`SYSTEM START MERGES` بالتوازي. [#99628](https://github.com/ClickHouse/ClickHouse/pull/99628) ([Desel72](https://github.com/Desel72)).
* إصلاح مرجع متدلٍّ في injectRequiredColumns كان يتسبب في تعطل أثناء الدمج. [#99679](https://github.com/ClickHouse/ClickHouse/pull/99679) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح سلوك غير معرّف في قارئ Avro format عند قراءة numeric values تتجاوز سعة column type الهدف. وأصبحت الاستعلامات الآن تفشل عند حدوث overflow بدلًا من إنتاج قيم غير صحيحة بصمت. [#99697](https://github.com/ClickHouse/ClickHouse/pull/99697) ([asyablue22](https://github.com/asyablue22)).
* إصلاح تحليل علامات الاقتباس بأسلوب shell في arguments الخاصة بـ `executable` table function. [#99794](https://github.com/ClickHouse/ClickHouse/pull/99794) ([Nikita Semenov](https://github.com/leftmain)).
* إصلاح إيقاف خاطئ في `NativeReader` عند deserialization لتدفق Native format مع عدم تطابق عدد الصفوف: جرى تغييره من `LOGICAL_ERROR` إلى `INCORRECT_DATA` بحيث يُعالَج الخطأ على أنه خطأ بيانات بدلًا من تشغيل `abort()` في builds الخاصة بـ sanitizer/debug. [#99822](https://github.com/ClickHouse/ClickHouse/pull/99822) ([Rahul Nair](https://github.com/motsc)).
* إصلاح إنهاء العملية أثناء deserialization لعمود `Tuple` عندما يكون نوع serialization في التدفق binary هو `DETACHED`. [#99823](https://github.com/ClickHouse/ClickHouse/pull/99823) ([Rahul Nair](https://github.com/motsc)).
* إصلاح استثناء `LOGICAL_ERROR` زائف أثناء تغيير حجم filesystem cache ديناميكيًا بسبب race condition في ترقية الطابور الفرعي SLRU. [#99850](https://github.com/ClickHouse/ClickHouse/pull/99850) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إبلاغ استعلامات async insert عن `written_rows` و`read_rows` و`result_rows` على أنها صفر في `query_log` ومخرجات العميل. [#99879](https://github.com/ClickHouse/ClickHouse/pull/99879) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح الاستثناء "Bad cast from type X to Y" في `KILL QUERY` عندما يُرجع الاستعلام الداخلي على جداول النظام أعمدةً مغلّفةً في `ColumnConst`. [#99881](https://github.com/ClickHouse/ClickHouse/pull/99881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي في استعلام فرعي مترابط داخل وسيطة `untuple`. [#99917](https://github.com/ClickHouse/ClickHouse/pull/99917) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح استثناء عند استدعاء `right` أو `rightUTF8` أو دوال `substring` أخرى بطول INT64\_MIN (-9223372036854775808)، إذ كان ذلك يؤدي سابقًا إلى سلوك غير معرّف بسبب فيض عددي. تُبلّغ الدوال الآن بشكل صحيح عن الخطأ ARGUMENT\_OUT\_OF\_BOUND. [#99934](https://github.com/ClickHouse/ClickHouse/pull/99934) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* أصبح ClickHouse الآن يتعامل بشكل صحيح مع الجداول بأسلوب Spark (حيث يكون لدينا مسار مطلق كامل لكل ملف أو مسار نسبي إلى مسار الجدول المشترك). يُصلح [#92348](https://github.com/ClickHouse/ClickHouse/issues/92348). [#99935](https://github.com/ClickHouse/ClickHouse/pull/99935) ([alesapin](https://github.com/alesapin)).
* إصلاح الاستثناء "Inconsistent AST formatting" في `ALTER TABLE ... MODIFY QUERY` مع استعلامات فرعية متداخلة تحتوي على `SETTINGS` عندما يحتوي `ALTER` نفسه أيضًا على `SETTINGS`. [#99938](https://github.com/ClickHouse/ClickHouse/pull/99938) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* التراجع عن [#97114](https://github.com/ClickHouse/ClickHouse/issues/97114) "Move join step row estimation before check for 1 child" بسبب الاشتباه في تراجع الأداء. [#99957](https://github.com/ClickHouse/ClickHouse/pull/99957) ([Alexander Gololobov](https://github.com/davenger)).
* إصلاح خلل كان قد يؤدي إلى تخطي ClickHouse لبعض الملفات إذا كان ترويس `Content-Length` مفقودًا من استجابة طلب HEAD الخاص بها (على سبيل المثال، بسبب decompressive transcoding في GCS). [#99971](https://github.com/ClickHouse/ClickHouse/pull/99971) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح فشل assertion (استثناء في debug builds، ونتائج غير صحيحة في release builds) عند ضرب حالات التجميع `aggregate states` الخاصة بـ `NumericIndexedVector` في ثابت صحيح زوجي، وكان السبب self-XOR على bitmaps من نوع Roaring ذات alias في `pointwiseAddInplace`. [#99976](https://github.com/ClickHouse/ClickHouse/pull/99976) ([Desel72](https://github.com/Desel72)).
* منع استثناء `Unexpected return type` في filter pushdown القديم عبر `JOIN USING` متسلسل عندما تتغير أنواع المفاتيح بعد تحويلات `join`. [#99999](https://github.com/ClickHouse/ClickHouse/pull/99999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` "Unexpected node type for table expression ... Actual IDENTIFIER" عندما يُستخدم استعلام فرعي scalar داخل وسيطة غير محلولة لدالة جدول، مثل `SELECT * FROM remote('localhost', view(SELECT 2 AS x), concat(x, (SELECT 1)))`. [#100014](https://github.com/ClickHouse/ClickHouse/pull/100014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل `INSERT` مع `VALUES` عندما كانت البيانات متبوعةً بتعليق SQL ختامي (`--` أو `/* */`) في السطر التالي. يُتجاوز التعليق الآن بدلًا من تحليله على أنه صف آخر. [#100016](https://github.com/ClickHouse/ClickHouse/pull/100016) ([Pratima Patel](https://github.com/pratimapatel2008)).
* إصلاح استثناء في `arrayRemove` عند مقارنة قيم tuple ذات مكونات NULL. [#100017](https://github.com/ClickHouse/ClickHouse/pull/100017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تسرّب البيانات بين المستخدمين في `system.asynchronous_inserts`: كان بإمكان أي مستخدم لديه صلاحية `SELECT` على الجدول رؤية إدخالات async insert المعلّقة الخاصة بمستخدمين آخرين. تُصفّى الإدخالات الآن بحسب المستخدم الحالي، ما لم يكن لدى المستخدم امتياز `SHOW_USERS`. [#100024](https://github.com/ClickHouse/ClickHouse/pull/100024) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح حالة كان فيها التحويل من Time64 إلى UInt64 يقيّد القيم عند 24 ساعة. [#100025](https://github.com/ClickHouse/ClickHouse/pull/100025) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح تعطل الخادم المحلي عندما يحتوي `CREATE DICTIONARY` على تعريف بقيمة قائمة تتضمن دالة غير موجودة. [#100036](https://github.com/ClickHouse/ClickHouse/pull/100036) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح عدم قدرة التنسيقين `CSV` و`MsgPack` على تحليل `Nullable(Tuple)` بشكل صحيح. يغلق [#99753](https://github.com/ClickHouse/ClickHouse/issues/99753). [#100038](https://github.com/ClickHouse/ClickHouse/pull/100038) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح فشل `CREATE VIEW` مع `UNKNOWN_IDENTIFIER` عند استخدام اسم مستعار لتعبير دالة في WITH (مثل `tuple(...)`) كطرف أيمن لـ `IN`. [#100042](https://github.com/ClickHouse/ClickHouse/pull/100042) ([Peng](https://github.com/fastio)).
* إصلاح فشل aggregate functions الخاصة بالسلاسل الزمنية (مثل `timeSeriesResampleToGridWithStaleness`) مع `ILLEGAL_TYPE_OF_ARGUMENT` عند استخدامها مع `initializeAggregation` أو `AggregatingMergeTree` في وضع parallel replicas. [#100053](https://github.com/ClickHouse/ClickHouse/pull/100053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تصحيح معالجة القيم السالبة داخل NumericIndexedVectorDataBSI. [#100086](https://github.com/ClickHouse/ClickHouse/pull/100086) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح عدم احتفاظ الدالتين `accurateCastOrDefault` و`to*OrDefault` بنوع العمود Const للمدخلات الثابتة. [#100132](https://github.com/ClickHouse/ClickHouse/pull/100132) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت query parameters المحذوفة من النوع `LowCardinality(Nullable(T))` تأخذ القيمة الافتراضية NULL بشكل صحيح، تمامًا مثل `Nullable(T)`. [#100144](https://github.com/ClickHouse/ClickHouse/pull/100144) ([Denys Melnyk](https://github.com/germiBest)).
* إصلاح استخدام قيمة غير مهيّأة في StringSearcher.h. [#100225](https://github.com/ClickHouse/ClickHouse/pull/100225) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* السماح بإلغاء الاستعلامات الفرعية scalar وpipelines الأخرى أثناء التحليل عبر Ctrl+C. سابقًا، لم يكن للضغط على Ctrl+C أثناء تنفيذ استعلام فرعي scalar طويل التشغيل أي تأثير حتى يكتمل الاستعلام الفرعي. كما تم إصلاح شريط التقدم وإحصاءات JSON لكي يبلّغا بشكل صحيح عن الصفوف المقروءة أثناء تنفيذ الاستعلام الفرعي scalar، سواء في `clickhouse-client` أو `clickhouse-local`. بالمشاركة في التأليف مع @YjyJeff. [#100230](https://github.com/ClickHouse/ClickHouse/pull/100230) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح استثناء `LOGICAL_ERROR` في queries التي تتضمن أعمدة `Dynamic` مع عمليات CROSS JOIN وRuntime Filters، وكان السبب أن `ColumnVariant::filter` كان يشارك مؤشرات variant column بدلًا من استنساخها في مسار تحسين `hasOnlyNulls`. يغلق [https://github.com/ClickHouse/ClickHouse/pull/100147](https://github.com/ClickHouse/ClickHouse/pull/100147). [#100234](https://github.com/ClickHouse/ClickHouse/pull/100234) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح خلل في Array من النوع variant قد يعيد تفسير نوع البيانات عند استدعاء الدالة `arrayFirst`/`arrayLast`. على سبيل المثال، كان `Array(Variant(Date, Bool))` يتحول سابقًا إلى `Bool` عندما يكون variant type الأساسي الفعلي هو `Date`. [#100255](https://github.com/ClickHouse/ClickHouse/pull/100255) ([timothygk](https://github.com/timothygk)).
* بعض التغييرات الطفيفة على الدوال: أصبحت دوال h3 تتحقق من الحدود بشكل أفضل؛ وأصبحت `readWKB` تتحقق من حدود الحجم (إعداد جديد، `max_wkb_geometry_elements`)؛ كما أصبحت دوال التوليد العشوائي تقيّد الحد الأقصى لعدد التكرارات في حساباتها. متابعة لـ [#93543](https://github.com/ClickHouse/ClickHouse/issues/93543). [#100270](https://github.com/ClickHouse/ClickHouse/pull/100270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلة كانت تؤدي فيها `cutURLParameter` إلى تخطي المعلمات بشكل غير صحيح عندما تظهر كسلاسل فرعية ضمن معلمات أخرى. [#100280](https://github.com/ClickHouse/ClickHouse/pull/100280) ([Nikita Semenov](https://github.com/leftmain)).
* إصلاح استثناء عند احتواء إعداد مسار ملف metadata في Iceberg على null byte. [#100283](https://github.com/ClickHouse/ClickHouse/pull/100283) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الزيادة التربيعية في عدد الاستعلامات المنفذة عند استخدام `distributed_index_analysis` مع predicates تحتوي على استعلامات فرعية `IN`. [#100287](https://github.com/ClickHouse/ClickHouse/pull/100287) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح استثناء "Block structure mismatch" عند استخدام `GROUP BY ... WITH TOTALS HAVING` مع `UNION DISTINCT` وتعبيرات Nullable. [#100293](https://github.com/ClickHouse/ClickHouse/pull/100293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء LOGICAL\_ERROR في `estimateCompressionRatio` عندما تكون المعلمة `block_size_bytes` كبيرة جدًا. [#100298](https://github.com/ClickHouse/ClickHouse/pull/100298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء "Inconsistent AST formatting" في builds التصحيح عند استخدام `GROUP BY CUBE(...) WITH ROLLUP` أو تركيبات مشابهة. [#100376](https://github.com/ClickHouse/ClickHouse/pull/100376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء عند إنشاء view بأسماء alias للأعمدة مع `SELECT *` أو استعلامات `EXCEPT`/`INTERSECT`. [#100386](https://github.com/ClickHouse/ClickHouse/pull/100386) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعليق `DROP TABLE` إلى أجل غير مسمى على جداول Kafka engine عندما يعلق المستهلكون في عملية rebalance بعد خطأ heartbeat. [#100388](https://github.com/ClickHouse/ClickHouse/pull/100388) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `ReadBuffer is canceled. Can't read from it.` في عمليات النسخ الاحتياطي/الاستعادة التي تستخدم أرشيفات zip. [#100400](https://github.com/ClickHouse/ClickHouse/pull/100400) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `TOO_MANY_ROWS` في استعلامات `SELECT count()` مع `max_rows_to_read` / `force_primary_key` عندما تكون البيانات موزعة على عدة parts ذات حدود granule غير متطابقة. [#100408](https://github.com/ClickHouse/ClickHouse/pull/100408) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `system.completions` ليُرشِّح databases وtables وcolumns بشكل صحيح حسب access rights في جميع تركيبات grant: grant لكل table، ولكل DB، وrevoke لكل column. [#100432](https://github.com/ClickHouse/ClickHouse/pull/100432) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح SEGFAULT في NuRaft بسبب race condition. [#100444](https://github.com/ClickHouse/ClickHouse/pull/100444) ([Pablo Marcos](https://github.com/pamarcos)).
* أصبحت `min`/`max`/`argMin`/`argMax` الآن تتعامل مع NaN بشكل متسق مع `ORDER BY`: يُتخطى NaN دائمًا (ولا يُعاد إلا إذا كانت جميع القيم NaN). سابقًا، كانت النتائج تعتمد على موضع NaN في البيانات بسبب دلالات المقارنة غير المرتبة في IEEE 754. [#100448](https://github.com/ClickHouse/ClickHouse/pull/100448) ([Raúl Marín](https://github.com/Algunenano)).
* أُصلح خلل ناتج عن النسخ واللصق، إذ كان يتم تجاهل `delta_lake_snapshot_end_version` بصمت عند ضبطه بدون `delta_lake_snapshot_start_version` بدلًا من إصدار الخطأ `BAD_ARGUMENTS`. [#100454](https://github.com/ClickHouse/ClickHouse/pull/100454) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* إن `StorageRabbitMQ::shutdown` ليس idempotent (إذ يصل دائمًا إلى المؤشرات الضعيفة ثم يدمّر المؤشرات المشتركة المقابلة)، لكنه بات يُستدعى الآن مرتين: مرة في `StreamingStorageRegistry` ثم في `DatabaseCatalog`. يجعل هذا الإصلاح الأسلوب idempotent ويضيف تحققات دفاعية من القيم الفارغة. [#100455](https://github.com/ClickHouse/ClickHouse/pull/100455) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أُصلح استثناء `LOGICAL_ERROR` عند استخدام `accurateCastOrNull` مع النوع الهدف `QBit`. [#100470](https://github.com/ClickHouse/ClickHouse/pull/100470) ([Raufs Dunamalijevs](https://github.com/rienath)).
* أُصلح استثناء LOGICAL\_ERROR "Stream ... not found" عند الإدراج في جدول يحتوي على أعمدة `Array(JSON)` متداخلة ضمن wide parts مع `optimize_on_insert=0`. [#100475](https://github.com/ClickHouse/ClickHouse/pull/100475) ([Pavel Kruglov](https://github.com/Avogar)).
* أُضيف التحقق من مسارات مُدخلات الملفات في البيانات الوصفية للنسخ الاحتياطي لرفض اجتياز المسار، والمسارات المطلقة، والأسماء الفارغة أثناء `RESTORE`. [#100483](https://github.com/ClickHouse/ClickHouse/pull/100483) ([Pablo Marcos](https://github.com/pamarcos)).
* أُصلح عدم عمل صياغة `LIMIT m OFFSET n WITH TIES`. وهذه الصياغة مكافئة لـ `LIMIT n, m WITH TIES` التي كانت تعمل بالفعل. [#100491](https://github.com/ClickHouse/ClickHouse/pull/100491) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أُصلح الاستثناء "No set is registered for key" عند استخدام `IN` مع أعمدة `Nullable(Tuple)` التي تحتوي على حقول مسماة وعناصر `LowCardinality`. [#100523](https://github.com/ClickHouse/ClickHouse/pull/100523) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلح خلل heap-buffer-overflow في usearch `sorted_buffer_gt::insert()` كان يمكن أن يسبب تعطلًا أو إفسادًا صامتًا للذاكرة أثناء vector similarity search. [#100537](https://github.com/ClickHouse/ClickHouse/pull/100537) ([Dustin Healy](https://github.com/dustinhealy)).
* أُصلح تجاهل `EXECUTE AS` لعبارتي `FORMAT` و `INTO OUTFILE` المحددتين في الاستعلام. [#100538](https://github.com/ClickHouse/ClickHouse/pull/100538) ([pufit](https://github.com/pufit)).
* أُصلح عدم اتساق تنسيق AST لـ SAMPLE مع OFFSET على مستوى الاستعلام. يُغلق [#100576](https://github.com/ClickHouse/ClickHouse/issues/100576). [#100579](https://github.com/ClickHouse/ClickHouse/pull/100579) ([Pavel Kruglov](https://github.com/Avogar)).
* أُصلح Polaris catalog مع azure. فمنذ الإصدار 25.12، بدأ هذا الكتالوج مع azure بإضافة bucket في بداية المسار. على سبيل المثال: `abfss://polaris-polaris@<some_url>.windows.net/polaris-polaris/<other-path>` بدلًا من `abfss://polaris-polaris@<some_url>.windows.net/<other-path>`. يزيل طلب السحب هذا الـ bucket من المسار. [#100583](https://github.com/ClickHouse/ClickHouse/pull/100583) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أُصلح استثناء عدم تطابق النوع في التحويل عندما يكون العمود `default` ثابتًا في بعض blocks. يُغلق [#100574](https://github.com/ClickHouse/ClickHouse/issues/100574). [#100616](https://github.com/ClickHouse/ClickHouse/pull/100616) ([Pavel Kruglov](https://github.com/Avogar)).
* يُصلح حالات NOT\_FOUND\_COLUMN\_IN\_BLOCK التي يحتوي فيها جزء projection SELECT على أعمدة غير موجودة في جزء SELECT الأصلي من الاستعلام. يُغلق [#100194](https://github.com/ClickHouse/ClickHouse/issues/100194). [#100623](https://github.com/ClickHouse/ClickHouse/pull/100623) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* يتحقق من أبعاد shape لتنسيق Npy مقارنةً بحجم الملف وحدود overflow لمنع حجب الخدمة الناتج عن ملفات `.npy` مُصمَّمة بأبعاد كبيرة على نحو غير معقول. ويرفض أيضًا الأشكال الفارغة، ويضع حدًا أقصى للذاكرة لكل صف يبلغ 2 GiB. [#100625](https://github.com/ClickHouse/ClickHouse/pull/100625) ([Raúl Marín](https://github.com/Algunenano)).
* يُصلح تجاهل `session_timezone` عند parsing قيم `DateTime` أثناء async inserts ‏(TCP) وجميع عمليات insert عبر HTTP. [#100647](https://github.com/ClickHouse/ClickHouse/pull/100647) ([Sema Checherinda](https://github.com/CheSema)).
* يتيح تمرير sharding key إلى table functions ‏`cluster()` و`clusterAllReplicas()` عند استخدام table function كمصدر (مثل `cluster('name', view(...), sharding_key)`). [#100665](https://github.com/ClickHouse/ClickHouse/pull/100665) ([Sergey Veletskiy](https://github.com/velom)).
* يُصلح crash في server ‏(فشل assertion) عند استخدام Parametric aggregate functions مع combinator ‏Array وargument من نوع NULL، مثل `quantileIfArrayArray(0.5)([[NULL]], [[1]])`. [#100679](https://github.com/ClickHouse/ClickHouse/pull/100679) ([nerve-bot](https://github.com/nerve-bot)).
* يُصلح Exception عند حساب common supertype لـ tuples الفارغة وغير الفارغة عند تفعيل `use_variant_as_common_type`. [#100699](https://github.com/ClickHouse/ClickHouse/pull/100699) ([Antonio Andelic](https://github.com/antonio2368)).
* لم يعد server يفشل في بدء التشغيل عندما يكون قرص Azure blob storage مُعدًّا لكن endpoint غير متاح مؤقتًا (مثل فشل DNS). [#100701](https://github.com/ClickHouse/ClickHouse/pull/100701) ([Raúl Marín](https://github.com/Algunenano)).
* يُصلح سلوكًا غير معرّف في `positiveModulo` عندما لا يتسع divisor غير الموقّع داخل نوع النتيجة الموقّع. [#100705](https://github.com/ClickHouse/ClickHouse/pull/100705) ([Raúl Marín](https://github.com/Algunenano)).
* يُصلح crash في server ‏(logical error "Unexpected return type from \_\_topKFilter") عند تفعيل `use_top_k_dynamic_filtering` وكان عمود `ORDER BY` من النوع `Dynamic` أو `Variant`. [#100742](https://github.com/ClickHouse/ClickHouse/pull/100742) ([Groene AI](https://github.com/groeneai)).
* يُصلح crash في server عند استخدام الدالة `has()` مع PREWHERE/WHERE على مفتاح Tuple يحتوي على عناصر LowCardinality. [#100760](https://github.com/ClickHouse/ClickHouse/pull/100760) ([Groene AI](https://github.com/groeneai)).
* يُصلح فشل assertion ‏`file_offset_of_buffer_end <= getFileSize()` ‏(Exception في إصدارات debug) عند القراءة من جداول `Log` أو `StripeLog` على S3 object storage مع عمليات كتابة concurrent. [#100763](https://github.com/ClickHouse/ClickHouse/pull/100763) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يُصلح Exception في مُقدِّر selectivity للإحصاءات عندما تحتوي WHERE clause على function expression (مثل `toDecimal64(col, 3)`) في table مع تفعيل statistics. ويتجاوز المُقدِّر الآن مثل هذه predicates بدلًا من محاولة إجراء type cast غير صالح. [#100764](https://github.com/ClickHouse/ClickHouse/pull/100764) ([Han Fei](https://github.com/hanfei1991)).
* يُصلح حالة نادرة قد ينتج فيها join مع إعادة الترتيب نتيجة غير صحيحة. [#100790](https://github.com/ClickHouse/ClickHouse/pull/100790) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح أنواع الوسائط غير الصحيحة في `AggregateFunction` ضمن العدّ البسيط المُحسَّن، والتي كانت تتسبب في ظهور الاستثناء `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` عند الاستعلام عن تعبيرات مثل `count(v0 + v1)` على الجداول الموزعة. [#100794](https://github.com/ClickHouse/ClickHouse/pull/100794) ([YjyJeff](https://github.com/YjyJeff)).
* قد تعرض بعض الكتالوجات بعض البيانات السرية في قسم `SETTINGS` ضمن نتيجة الاستعلام `select * from system.databases`. يمنع هذا التغيير حدوث هذا السلوك. [#100800](https://github.com/ClickHouse/ClickHouse/pull/100800) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح سلوك غير معرّف (تجاوز السعة في الأعداد الصحيحة الموقَّعة) في `toStartOfInterval` عند استخدام الفواصل Week أو Quarter أو Year مع وسيطة origin وقيم فاصلة متطرفة. [#100817](https://github.com/ClickHouse/ClickHouse/pull/100817) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح مشكلة عدم قدرة مُركِّبات الدوال التجميعية `If` و`Distinct` و`DistinctIf` و`IfState ` ذات نوع الإرجاع `Tuple` ووسيطة `Nullable` واحدة أو أكثر على قراءة الحالات المُسلسلة الأقدم بعد إدخال `Nullable(Tuple)`. يغلق [#98917](https://github.com/ClickHouse/ClickHouse/issues/98917). [#100826](https://github.com/ClickHouse/ClickHouse/pull/100826) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح `segfault` في s3Cluster والاستعلامات الموزعة بسبب استخدام تجمع الاتصالات بعد تحريره. [#100837](https://github.com/ClickHouse/ClickHouse/pull/100837) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح `segfault` الناتج عن فكّ إشارة مؤشّر فارغ عند تحميل القواميس أثناء إيقاف تشغيل الخادم. يُستدعى `Context::getUserDefinedSQLObjectsStorage` (الذي يفكّ إشارة `user_defined_sql_objects_storage`) بواسطة خيوط القواميس بالتزامن مع استدعاء الخيط الرئيسي لـ `Context::shutdown` (الذي يضبط `user_defined_sql_objects_storage` على null). نحتاج إلى التأكد من تعطيل التحديثات المستقبلية في مُحمّل القواميس، وإنهاء استعلامات القواميس الجارية حاليًا، والانتظار حتى تنتهي خيوط تحميل القواميس — وكل ذلك قبل تشغيل `Context::shutdown`. وهذا مماثل لما نفعله مع الاستعلامات العادية. [#100839](https://github.com/ClickHouse/ClickHouse/pull/100839) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح تجاوز سعة المخزن المؤقت في `ULIDStringToDateTime` عندما يحتوي الإدخال على بايتات غير ASCII. [#100843](https://github.com/ClickHouse/ClickHouse/pull/100843) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح التعطل (`LOGICAL_ERROR`) عند الاستعلام عن جدول `Merge` (أو دالة الجدول `merge()`) الذي يغلّف عدة جداول، من بينها جدول `Distributed`، مع تفعيل `distributed_group_by_no_merge=1`. [#100859](https://github.com/ClickHouse/ClickHouse/pull/100859) ([Groene AI](https://github.com/groeneai)).
* عند تفعيل Cast\_keep\_nullable، لن يُطلق استثناءً عند التحويل من null ديناميكي إلى Variant. [#100864](https://github.com/ClickHouse/ClickHouse/pull/100864) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح قيام أوامر `get` و`exists` و`ls` في `clickhouse-keeper-client` بطباعة رسائل خطأ `watch_id` المكررة إلى stdout بدلًا من stderr. [#100893](https://github.com/ClickHouse/ClickHouse/pull/100893) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* إصلاح الاستثناء في `intDiv`/`intDivOrZero` عند التعامل مع المصفوفات من tuples قابلة للإسناد إلى null، مثل `SELECT intDiv([divide((1, 2), ... AND NULL)], 2)`. [#100895](https://github.com/ClickHouse/ClickHouse/pull/100895) ([Raúl Marín](https://github.com/Algunenano)).
* تقييم وسائط المحرك لـ `StorageAlias` قبل تخزين التعريف، بحيث تُحوَّل تعبيرات مثل `currentDatabase()` إلى قيم حرفية قبل حفظها في قاعدة البيانات. [#100902](https://github.com/ClickHouse/ClickHouse/pull/100902) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح `processAndOptimizeTextIndexFunctions` عندما يكون `query_plan_merge_expressions = 0`، حيث تكون `ExpressionStep` فوق `ReadFromMergeTree` مباشرةً. يُصلح هذا [#100879](https://github.com/ClickHouse/ClickHouse/issues/100879). [#100909](https://github.com/ClickHouse/ClickHouse/pull/100909) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تحديث replxx ليتضمن إصلاحًا لمشكلة الوصول خارج الحدود في do\_complete\_line. [#100925](https://github.com/ClickHouse/ClickHouse/pull/100925) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح النتائج غير الصحيحة عندما يستخدم JOIN مع تحسين shard-by-PK ذاكرة التخزين المؤقت لشروط الاستعلام، وتُستبعَد بعض الأجزاء بسبب الشروط المخزنة مؤقتًا. [#100926](https://github.com/ClickHouse/ClickHouse/pull/100926) ([Groene AI](https://github.com/groeneai)).
* إصلاح `divide` و`intDiv` اللتين كانتا تُرجعان `ILLEGAL_DIVISION` عند استخدامهما في تعبيرات التصفية أثناء تحليل الفهرس في بعض الحالات. [#100928](https://github.com/ClickHouse/ClickHouse/pull/100928) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح أخطاء "جدول الهدف غير موجود" في materialized views ذات الجداول الداخلية أثناء بدء التشغيل غير المتزامن، وكانت ناتجة عن ترتيب غير صحيح لاعتماديات بدء التشغيل. [#100946](https://github.com/ClickHouse/ClickHouse/pull/100946) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح سلوك غير معرّف (تجاوز سعة الأعداد الصحيحة الموقعة) في parseDateTimeBestEffort عند تحليل سلاسل datetime التي تحتوي على أكثر من 18 رقمًا كسريًا للثانية. [#100948](https://github.com/ClickHouse/ClickHouse/pull/100948) ([Vasily Chekalkin](https://github.com/bacek)).
* إصلاح تعطل عند استخدام فهرس بحث نصي مع clause `IN` تحتوي على subquery من نوع Tuple، مثل `WHERE (id, str) IN (SELECT (id, str) FROM ...)`، أو عندما لا يتطابق عدد columns في الـ subquery مع الـ Tuple على الجانب الأيسر من `IN`. [#100959](https://github.com/ClickHouse/ClickHouse/pull/100959) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح تعطل عند بناء Dictionary من نوع Polygon من جدول `MergeTree` يستخدم serialization للأعمدة sparse. [#100964](https://github.com/ClickHouse/ClickHouse/pull/100964) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح الخطأ المنطقي "Invalid action query tree node" عند استخدام `INTERSECT ALL` / `UNION ALL` مع expressions مطوية إلى ثوابت. [#100977](https://github.com/ClickHouse/ClickHouse/pull/100977) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح aggregate function `sumCountOrDefault` عندما يحتوي argument واحد أو أكثر على `Nullable`، إذ لم تكن قادرة على قراءة الحالات الأقدم التي جرت لها serialize بعد إدخال `Nullable(Tuple)`. يُغلق هذا [#100882](https://github.com/ClickHouse/ClickHouse/issues/100882). [#101021](https://github.com/ClickHouse/ClickHouse/pull/101021) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تعطل (`Logical error: isConst/isSparse/isReplicated assertTypeEquality`) في خوارزميات merge عندما يُنتج النسخ الكسول للأعمدة (`enable_lazy_columns_replication`) أعمدة `ColumnReplicated` تتدفق إلى pipelines الفرز بالدمج مع مدخلات تصل متأخرة. [#101036](https://github.com/ClickHouse/ClickHouse/pull/101036) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ `UNKNOWN_IDENTIFIER` غير الصحيح عندما يُستخدم alias نفسه لعدة expressions في `SELECT`؛ ويُبلَّغ الآن عن الخطأ الصحيح `MULTIPLE_EXPRESSIONS_FOR_ALIAS`. [#101040](https://github.com/ClickHouse/ClickHouse/pull/101040) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح أعمدة ALIAS من النوعين `DateTime`/`DateTime64` التي لم تكن تطبّق تحويل timezone عندما تختلف timezone المُعلنة عن timezone الخاصة بالتعبير. [#101043](https://github.com/ClickHouse/ClickHouse/pull/101043) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم تسجيل سياسات الصفوف في `query_log` للعروض والاستعلامات الفرعية و`INSERT ... SELECT`. رغم تطبيق سياسات الصفوف أثناء تخطيط الاستعلام، لم تكن تُمرَّر من المخططات الفرعية إلى المخطط الأب لأغراض التسجيل. والآن تُحفَظ سياسات الصفوف (للتسجيل فقط) في `QueryAccessInfo` بحيث يمكن لكلٍّ من المخططات والمخططات الفرعية تعبئتها. [#101044](https://github.com/ClickHouse/ClickHouse/pull/101044) ([Narasimha Pakeer](https://github.com/npakeer)).
* إصلاح استثناء في `DirectJoinMergeTreeEntity` عندما تحتوي كتل خط المعالجة على أعمدة `ColumnConst` مدمجة مع أعمدة عادية. [#101046](https://github.com/ClickHouse/ClickHouse/pull/101046) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح المسافة الزائدة في تنسيق الاسم المستعار لأعمدة CTE (`WITH t (a, b)` → `WITH t(a, b)`). [#101049](https://github.com/ClickHouse/ClickHouse/pull/101049) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل table functions ‏`remote`/`cluster` مع table functions المتداخلة مثل `merge` عند تفعيل analyzer. [#101055](https://github.com/ClickHouse/ClickHouse/pull/101055) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تطبيق `OFFSET` مرتين في distributed queries عند `prefer_localhost_replica=1`، ما كان يؤدي إلى إرجاع عدد صفوف أقل من المتوقع. [#101071](https://github.com/ClickHouse/ClickHouse/pull/101071) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح التعطل عند استخدام تنسيق `Regexp` مع regular expression غير صالح في الإعداد `format_regexp`. [#101074](https://github.com/ClickHouse/ClickHouse/pull/101074) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح الخطأ "Illegal type Decimal64 of start parameter" في aggregate functions الخاصة بالسلاسل الزمنية عند استخدام `serialize_query_plan=1` مع parallel replicas. [#101083](https://github.com/ClickHouse/ClickHouse/pull/101083) ([Groene AI](https://github.com/groeneai)).
* إصلاح استثناء في `optimizeLazyMaterialization` عند استخدام projection مع PREWHERE و`ORDER BY ... LIMIT`. [#101115](https://github.com/ClickHouse/ClickHouse/pull/101115) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح تعطل الخادم (SIGABRT) عند استخدام aggregate functions مع combinator الداخلي فقط `Null` (مثل `sumNull` و`avgNull`) مع تفعيل الإعداد `aggregate_functions_null_for_empty = 1`. [#101147](https://github.com/ClickHouse/ClickHouse/pull/101147) ([Groene AI](https://github.com/groeneai)).
* إصلاح حالة use-after-free في مسار الكتابة في filesystem cache، كانت قد تتسبب في القراءة من ذاكرة جرى تحريرها عند تسجيل file segments المكتملة (رصدها MemorySanitizer في BuzzHouse). [#101161](https://github.com/ClickHouse/ClickHouse/pull/101161) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم مع الخطأ "Trying to attach external table to a ready set without explicit elements" عندما يواجه distributed index analysis مسند GLOBAL IN جرى إنشاء مجموعته دون عناصر صريحة. [#101178](https://github.com/ClickHouse/ClickHouse/pull/101178) ([Groene AI](https://github.com/groeneai)).
* إصلاح إرجاع الدالتين التجميعيتين `MAX`/`MIN` على أعمدة `Decimal` نتائج غير صحيحة عند تفعيل ترجمة JIT البرمجية (بعد بلوغ threshold الترجمة). [#101203](https://github.com/ClickHouse/ClickHouse/pull/101203) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطيل تحسينات `minmax_count_projection` وتحسينات `COUNT(*)` البسيطة بشكل دائم بعد lightweight delete، حتى بعد دمج جميع الأجزاء التي تحمل قناع lightweight delete. [#101212](https://github.com/ClickHouse/ClickHouse/pull/101212) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح حالة قد تؤدي إلى ظهور الخطأ المنطقي `Having zero bytes, ...` من `cache` بسبب الكتابة فوق كائن بعيد بين `list` و`read`، ما كان يؤدي سابقًا إلى بيانات وصفية قديمة للكائن. [#101219](https://github.com/ClickHouse/ClickHouse/pull/101219) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح تعطل الخادم (LOGICAL\_ERROR: Bad cast from ColumnVector to ColumnLowCardinality) عند الاستعلام عن جدول MergeTree باستخدام `ORDER BY CAST(lc_column, 'Type')`، حيث يكون `lc_column` من النوع LowCardinality. [#101220](https://github.com/ClickHouse/ClickHouse/pull/101220) ([Groene AI](https://github.com/groeneai)).
* إصلاح تنظيف processing nodes القديمة في `S3Queue`. [#101230](https://github.com/ClickHouse/ClickHouse/pull/101230) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح سلوك غير معرّف في mergeTreeAnalyzeIndexes() في حال كانت وسيطة optimizations غير صالحة. [#101253](https://github.com/ClickHouse/ClickHouse/pull/101253) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الاستثناء `Logical error: 'partitions_count > 0'` عند تنفيذ عمليات `ALTER TABLE UPDATE` متتالية على جدول Iceberg مقسّم إلى partition. [#101278](https://github.com/ClickHouse/ClickHouse/pull/101278) ([Desel72](https://github.com/Desel72)).
* إصلاح نتائج query غير الصحيحة عند استخدام ثابت صحيح كبير (مثل 256 أو 2147483648) كـ predicate منطقية في WHERE clause مع AND على جداول MergeTree. على سبيل المثال، كان `SELECT count() FROM t WHERE (2147483648 > b) AND 2147483648` يُرجع 0 بشكل غير صحيح بدلًا من مطابقة جميع الصفوف. [#101287](https://github.com/ClickHouse/ClickHouse/pull/101287) ([Groene AI](https://github.com/groeneai)).
* إصلاح insert-select من delta lake cluster مع replicated merge tree. [#101299](https://github.com/ClickHouse/ClickHouse/pull/101299) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح التعطل المصحوب بالرسالة "Logical error: Reading from materialized CTE before materialization" عندما يشير scalar subquery إلى سلسلة من materialized CTEs المعتمدة على بعضها بعضًا. [#101305](https://github.com/ClickHouse/ClickHouse/pull/101305) ([Groene AI](https://github.com/groeneai)).
* إصلاح data race على `storage_id` في `IStorage::getDependentViewsByColumn`. [#101385](https://github.com/ClickHouse/ClickHouse/pull/101385) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح تنسيق واستنساخ AST لعبارة BACKUP FROM SNAPSHOT. [#101405](https://github.com/ClickHouse/ClickHouse/pull/101405) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح تعطل LOGICAL\_ERROR مع الرسالة "Current component is empty" عند الاستعلام عن `system.part_moves_between_shards` مع تمكين الإعداد `enforce_keeper_component_tracking`. [#101462](https://github.com/ClickHouse/ClickHouse/pull/101462) ([Groene AI](https://github.com/groeneai)).
* إصلاح خطأ segmentation fault في DataTypeDynamic::create() عندما يولّد `fuzzer` شجرة AST مشوّهة لنوع Dynamic. [#101464](https://github.com/ClickHouse/ClickHouse/pull/101464) ([Groene AI](https://github.com/groeneai)).
* طرح خطأ عند استخدام إعداد `delta_lake_snapshot_version` أو إصدار CDF بدون تمكين DeltaKernel، بدلًا من إرجاع بيانات خاطئة بصمت. [#101489](https://github.com/ClickHouse/ClickHouse/pull/101489) ([Desel72](https://github.com/Desel72)).
* إصلاح الاستثناء `NOT_FOUND_COLUMN_IN_BLOCK` عند استخدام ARRAY JOIN مع JOIN USING وتمكين الإعداد `analyzer_compatibility_join_using_top_level_identifier`. إغلاق [#101240](https://github.com/ClickHouse/ClickHouse/issues/101240). [#101507](https://github.com/ClickHouse/ClickHouse/pull/101507) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح فشل حلقة إعادة محاولة INSERT في Iceberg عندما يكون الجدول قد أُنشئ باستخدام `iceberg_metadata_file_path` وتكون نسخة البيانات الوصفية المستهدفة موجودة بالفعل. [#101548](https://github.com/ClickHouse/ClickHouse/pull/101548) ([Groene AI](https://github.com/groeneai)).
* إزالة Nullable من عمود النتيجة في arrayIntersect والدوال ذات الصلة لتجنّب عدم التطابق بين التسلسل وإلغاء التسلسل. [#101569](https://github.com/ClickHouse/ClickHouse/pull/101569) ([George Larionov](https://github.com/george-larionov)).
* إصلاح تعطل الخادم (LOGICAL\_ERROR) عند تنفيذ SELECT من عرض مادي يستند إلى table engine من نوع IcebergLocal. [#101577](https://github.com/ClickHouse/ClickHouse/pull/101577) ([Groene AI](https://github.com/groeneai)).
* إصلاح رسالة الخطأ غير الصحيحة عند استدعاء `intExp10` بوسيطة NaN — إذ كانت تعرض `intExp2` بدلًا من `intExp10`. [#101582](https://github.com/ClickHouse/ClickHouse/pull/101582) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* إصلاح عدم قيام `allow_statistics=0` بحظر `ALTER TABLE ADD STATISTICS` و`ALTER TABLE DROP STATISTICS` بعد إعادة الهيكلة في [#100288](https://github.com/ClickHouse/ClickHouse/issues/100288). [#101585](https://github.com/ClickHouse/ClickHouse/pull/101585) ([Krishna Chaitanya](https://github.com/Krishnachaitanyakc)).
* إصلاح فشل `KeeperMap` `CREATE TABLE` مع الرسالة "Cannot create metadata for table" عندما تكون عقد ZooKeeper المتبقية من عملية حذف جزئية قبل الإصدار 25.1 تفتقد العقدة `drop_lock_version`. [#101623](https://github.com/ClickHouse/ClickHouse/pull/101623) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح خطأ منطقي محتمل أثناء قراءة subcolumns في Map. يُغلق [#100769](https://github.com/ClickHouse/ClickHouse/issues/100769). يُغلق [#101336](https://github.com/ClickHouse/ClickHouse/issues/101336). [#101641](https://github.com/ClickHouse/ClickHouse/pull/101641) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح أولوية المطابقة التامة للعمود الفرعي مقارنةً بمطابقة البادئة في `getSubcolumnData` لتجنّب تعطل محتمل. يُغلق [#101271](https://github.com/ClickHouse/ClickHouse/issues/101271). [#101645](https://github.com/ClickHouse/ClickHouse/pull/101645) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعطل (LOGICAL\_ERROR: "ColumnUnique can't contain null values") عند مقارنة عمود `LowCardinality` مع ثابت NULL من نوع `Variant` بينما يكون `use_variant_default_implementation_for_comparisons` معطلًا. [#101690](https://github.com/ClickHouse/ClickHouse/pull/101690) ([Groene AI](https://github.com/groeneai)).
* ما الجديد: أُضيفت حماية للتدفق الفارغ إلى Bzip2ReadBuffer بحيث يعيد EOF بدلًا من إطلاق UNEXPECTED\_END\_OF\_FILE عندما يكون التدفق الداخلي فارغًا. [#101691](https://github.com/ClickHouse/ClickHouse/pull/101691) ([ClickGap AI Bot](https://github.com/clickgapai)).
* ما الجديد: تم إصلاح نص الوصف المعكوس للعمود `alterable` في `system.s3_queue_settings` و`system.azure_queue_settings` — إذ جرى تبديل دلالتي `0` و`1` لتتوافقا مع السلوك الفعلي في الشيفرة. [#101703](https://github.com/ClickHouse/ClickHouse/pull/101703) ([ClickGap AI Bot](https://github.com/clickgapai)).
* إصلاح توجيه positiveModulo(tuple, number) بشكل غير صحيح إلى القسمة بدلًا من باقي القسمة. [#101709](https://github.com/ClickHouse/ClickHouse/pull/101709) ([ClickGap AI Bot](https://github.com/clickgapai)).
* إصلاح تعطل يحدث عند تهيئة `thread_pool_size` على disk مغلّف بـ cache. سابقًا، كانت `FileCacheSettings::loadFromConfig()` ترفض `thread_pool_size` باعتباره setting غير معروف، مما كان يمنع الخادم من البدء. هذا setting هو parameter صالح في `IDisk` يتحكم في عدد threads المستخدمة في عمليات النسخ من disk إلى disk أثناء عمليات نقل الأجزاء في الخلفية. [#101712](https://github.com/ClickHouse/ClickHouse/pull/101712) ([Francisco](https://github.com/Milias)).
* إصلاح إنشاء Dictionary ‏`RANGE_HASHED` الذي كان يقبل بصمت سمة النطاق `MAX` غير الموجودة، ويستخدم تهيئة نوع خاطئة عندما كانت سمتا الحد الأدنى والحد الأقصى للنطاق من نوعين مختلفين. كان الخلل ناتجًا عن خطأ نسخ ولصق في `buildRangeConfiguration`، إذ كان يبحث عن `min_attr_name` بدلًا من `max_attr_name` للسمة القصوى. [#101732](https://github.com/ClickHouse/ClickHouse/pull/101732) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح تعطل use-after-free في scheduler الخاص بتأجير CPU عندما يستمر مؤقت الانتظار بعد انتهاء عمر worker thread الذي تشير إليه `ProfileEvents::Counters`. [#101761](https://github.com/ClickHouse/ClickHouse/pull/101761) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح خلل في الدالتين arrayLevenshteinDistanceWeighted و arraySimilarity. يغلق [#101725](https://github.com/ClickHouse/ClickHouse/issues/101725). [#101767](https://github.com/ClickHouse/ClickHouse/pull/101767) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* إصلاح تجاهل Prometheus Query API لهيئات نماذج POST. [#101794](https://github.com/ClickHouse/ClickHouse/pull/101794) ([James Cunningham](https://github.com/JTCunning)).
* إصلاح تسرّب Exception من destructor ‏S3 `Client::~Client` بما يؤدي إلى إنهاء server. [#101798](https://github.com/ClickHouse/ClickHouse/pull/101798) ([Gagan Dhakrey](https://github.com/gagandhakrey)).
* إصلاح use-after-scope في deserialization المتوازي للمسارات الديناميكية من النوع `Object`، وهو ما كان قد يؤدي إلى أعطال عند قراءة جداول تحتوي على عدد كبير من المسارات الديناميكية. [#101823](https://github.com/ClickHouse/ClickHouse/pull/101823) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح مخرجات غير صحيحة في الدالة `formatDateTime` مع Formatter ‏`%W` في بعض إعدادات formatting المعينة (غير `default`). [#101847](https://github.com/ClickHouse/ClickHouse/pull/101847) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح النتيجة السلبية الكاذبة في `shouldPatchFunction` ضمن `SYSTEM INSTRUMENT ADD` عندما يظهر نص البحث لأول مرة داخل argument قالب في اسم الرمز بعد فكّ تشويشه. [#101885](https://github.com/ClickHouse/ClickHouse/pull/101885) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح فقدان UDF registry عند انتهاء session الخاصة بـ ZooKeeper أثناء refresh الدوري — إذ كان من الممكن أن تصبح جميع user-defined functions غير متاحة إلى أن ينجح full refresh. [#101891](https://github.com/ClickHouse/ClickHouse/pull/101891) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح وصف `system.codecs` لـ `AES_256_GCM_SIV` لكي يعرض `AES-256` بدلًا من `AES-128`. [#101917](https://github.com/ClickHouse/ClickHouse/pull/101917) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح استخدام extremes خاطئة في min-max index أُنشئ على JSON column، مما أدى إلى نتيجة query خاطئة. يغلق [#101700](https://github.com/ClickHouse/ClickHouse/issues/101700). [#101918](https://github.com/ClickHouse/ClickHouse/pull/101918) ([Pavel Kruglov](https://github.com/Avogar)).
* أصبحت `splitByString` tokenizer ترفض الآن سلاسل الفاصل الفارغة. [#101928](https://github.com/ClickHouse/ClickHouse/pull/101928) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح مشكلة أن `materialize_skip_indexes_on_merge=false` لا يمنع text indexes (full-text) أثناء merge. سابقًا، لم يكن يتم تعطيل سوى skip indexes غير النصية (minmax و set و bloom\_filter)؛ أما text indexes فكانت تستمر في البناء، مما يهدر CPU وعمليات I/O. [#101932](https://github.com/ClickHouse/ClickHouse/pull/101932) ([Groene AI](https://github.com/groeneai)).
* كانت `sparseGrams` tokenizer تُولّد tokens أطول من الحد الأقصى المحدد للطول (وكان سبب ذلك وجود `+2` مضمّنة في التنفيذ). [#101934](https://github.com/ClickHouse/ClickHouse/pull/101934) ([Elmi Ahmadov](https://github.com/ahmadov)).
* إصلاح SIGSEGV في `MergeTreeDataPartWriterWide::cancel` عند قيام مُنشئ stream برمي استثناء أثناء `addStreams`، مما يترك إدخالًا فارغًا في `column_streams`. [#101936](https://github.com/ClickHouse/ClickHouse/pull/101936) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح استثناء يحدث عند الاستعلام عن جداول Merge أو Distributed مع full-text index وشروط ترشيح مركبة تجمع بين `has*Tokens` وLIKE، عندما يكون `query_plan_direct_read_from_text_index` مُمكّنًا. [#101939](https://github.com/ClickHouse/ClickHouse/pull/101939) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح سلوك غير معرّف عند تحليل حزم query في native protocol التي تحتوي على قيم `QueryProcessingStage` غير صالحة. [#101972](https://github.com/ClickHouse/ClickHouse/pull/101972) ([Raúl Marín](https://github.com/Algunenano)).
* إغلاق TCP connection عند حدوث استثناء أثناء تحليل initial query، لمنع قراءة بيانات غير صالحة من stream فقد التزامن. [#101989](https://github.com/ClickHouse/ClickHouse/pull/101989) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح خلل سباق SLRU في filesystem cache في الإصدار 26.1+، والذي قد يؤدي إلى logical error عند حجز المساحة. وفي build التصحيح قد يؤدي أيضًا إلى فشل assert: `'Previous state is Evicting, but expected state to be Active while setting Evicting flag for 2c1e3484ecdc6b78a8978fa5b17c5097:0:339 (state: Evicting)'.`. [#101991](https://github.com/ClickHouse/ClickHouse/pull/101991) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح استثناء عند تحويل سلسلة نصية تحتوي على بيانات لاحقة إلى النوع الفارغ `Tuple()`. [#102011](https://github.com/ClickHouse/ClickHouse/pull/102011) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الترتيب غير الصحيح للصفوف في queries التي تستخدم ORDER BY مع خوارزمية join ‏grace\_hash. إذ كان يمكن أن تُرجع queries المتأثرة النتائج بترتيب خاطئ، ما يؤدي بصمت إلى مخرجات غير صحيحة. [#102036](https://github.com/ClickHouse/ClickHouse/pull/102036) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح LOGICAL ERROR ‏(Unexpected size of index type) كان يمكن أن يحدث في queries من نوع RIGHT JOIN وFULL JOIN عند ضبط الإعداد `max_bytes_in_join`. [#102042](https://github.com/ClickHouse/ClickHouse/pull/102042) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح حالات كان فيها Time ذي القيم السالبة يُرجع نتيجة غير صحيحة عند المقارنة مع DateTime. يُغلق [#101670](https://github.com/ClickHouse/ClickHouse/issues/101670). [#102056](https://github.com/ClickHouse/ClickHouse/pull/102056) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح تعطل في refresh الخاص بـ UDF سببه أن `ZooKeeperRetriesControl` كان يعيد المحاولة على session قديمة (منتهية الصلاحية) لـ ZooKeeper من دون تجديدها. [#102059](https://github.com/ClickHouse/ClickHouse/pull/102059) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح المسافات المفقودة عند formatting لعبارة unlock snapshot. close [https://github.com/clickhouse/clickhouse/issues/101723](https://github.com/clickhouse/clickhouse/issues/101723). [#102063](https://github.com/ClickHouse/ClickHouse/pull/102063) ([Han Fei](https://github.com/hanfei1991)).
* إصلاح تعطل (SIGSEGV) عند الاستعلام عن view فيها WHERE clause، عندما يُنتج الاستعلام الداخلي columns بأنواع تختلف عن metadata الخاصة بالـ view (مثل Nullable الناتج من LEFT JOIN مع `join_use_nulls`). [#102085](https://github.com/ClickHouse/ClickHouse/pull/102085) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح مشكلة عدم طرد entries الخاصة بـ `VectorSimilarityIndexCache` نهائيًا بعد إزالة part بسبب عدم تطابق مفاتيح cache. [#102152](https://github.com/ClickHouse/ClickHouse/pull/102152) ([Seva Potapov](https://github.com/seva-potapov)).
* إرسال NACK للرسائل المعطوبة عند استخدام rabbitmq storage. [#102157](https://github.com/ClickHouse/ClickHouse/pull/102157) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح خطأ منطقي عند تحليل سلسلة tuple فارغة وغير صحيحة. [#102289](https://github.com/ClickHouse/ClickHouse/pull/102289) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح نتائج التجميع غير الصحيحة (صفوف مكررة) عند استخدام `optimize_aggregation_in_order=1` مع أعمدة GROUP BY المرتبة بشكل مختلف عن مفتاح الفرز الخاص بالجدول. [#102299](https://github.com/ClickHouse/ClickHouse/pull/102299) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل في `IcebergLocal` `ALTER TABLE ... UPDATE` عند استخدام تنسيق Avro، وكان السبب عدم فك تغليف الأنواع `LowCardinality`/`Nullable` قبل التسلسل. [#102337](https://github.com/ClickHouse/ClickHouse/pull/102337) ([Desel72](https://github.com/Desel72)).
* تم إصلاح خطأ segmentation fault في mutations على الأعمدة materialized من دون expression. يغلق [#102185](https://github.com/ClickHouse/ClickHouse/issues/102185). [#102342](https://github.com/ClickHouse/ClickHouse/pull/102342) ([zoomxi](https://github.com/zoomxi)).
* إصلاح في Coalescing merge tree لنوع array. هذا يغلق [#89509](https://github.com/ClickHouse/ClickHouse/issues/89509). [#102384](https://github.com/ClickHouse/ClickHouse/pull/102384) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح segfault (أو LOGICAL\_ERROR في debug builds) عند قراءة Parquet files مع تفعيل bloom filter push down وشروط المساواة/عدم المساواة في WHERE clause. كان التعطل يحدث بسبب وصول إلى الذاكرة خارج الحدود أثناء استرجاع بيانات bloom filter في Parquet prefetcher، وكان يمكن أن يتسبب أيضًا في نتائج استعلام خاطئة وغير deterministic. [#102385](https://github.com/ClickHouse/ClickHouse/pull/102385) ([Groene AI](https://github.com/groeneai)).
* إصلاح abort لـ `LOGICAL_ERROR` أثناء تغيير الحجم الديناميكي لذاكرة filesystem cache من نوع SLRU، وكان السبب مشاركة إحصاءات eviction عبر الطوابير الفرعية ومسار recovery غير الصحيح للمرشحين الذين فشلوا. [#102396](https://github.com/ClickHouse/ClickHouse/pull/102396) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح الفشل في التهيئة على replica جديدة لجداول alias من دون target table في Database Replicated. يغلق [#101320](https://github.com/ClickHouse/ClickHouse/issues/101320). [#102397](https://github.com/ClickHouse/ClickHouse/pull/102397) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح قراءة خارج الحدود في string search functions (`countSubstrings`, `position`, etc.) عند البحث عن needle مكوّنة بالكامل من null bytes. [#102401](https://github.com/ClickHouse/ClickHouse/pull/102401) ([Raúl Marín](https://github.com/Algunenano)).
* لم تعد إعدادات text index الكامل (`enable_full_text_index`, `allow_experimental_full_text_index`, `use_skip_indexes_on_data_read`) معطلة عندما يشير إعداد `compatibility` إلى إصدار أقدم من 26.1. وكان هذا سابقًا قد يمنع `SharedDatabaseCatalog` من إنشاء جداول تحتوي على text indexes. [#102422](https://github.com/ClickHouse/ClickHouse/pull/102422) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح قراءة خارج الحدود في `printf` عند وجود `%` في النهاية. [#102472](https://github.com/ClickHouse/ClickHouse/pull/102472) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح استثناء chassert وهو `ReadBuffer is canceled` في debug builds داخل AsynchronousMetrics، وكان السبب أن rewind لا يعيد ضبط علامة إلغاء buffer. [#102524](https://github.com/ClickHouse/ClickHouse/pull/102524) ([Yuri Fedoseev](https://github.com/yurifedoseev)).
* تم إصلاح `hasToken` / `hasTokenOrNull` مع needles التي تتكون فقط من فواصل (مثل `'()'` و`'!!!'`) على columns التي تحتوي على text index: كان index سابقًا يتخطى جميع granules بصمت بدلًا من إطلاق `BAD_ARGUMENTS` (في `hasToken`) أو إعادة `NULL` (في `hasTokenOrNull`). [#102544](https://github.com/ClickHouse/ClickHouse/pull/102544) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إصلاح حالات نفاد الذاكرة (OOM) في الطلبات المتعددة الضخمة داخل Keeper. بالنسبة إلى تتبّع OpenTelemetry، كنّا نخصّص دائمًا أكثر من 1 KiB لوحدات OpenTelemetry spans في كائنات `ZooKeeperRequest`، ما يعني أنّنا في الطلبات المتعددة الكبيرة جدًا كنّا نحاول تخصيص أكثر من 10 GiB إضافية من الذاكرة. ولإصلاح ذلك، نحتفظ الآن بالبيانات المشتركة في ذاكرة ثابتة ونستخدم `std::unique_ptr` بدلًا من `std::optional` في `ZooKeeperOpentelemetrySpans`. [#102586](https://github.com/ClickHouse/ClickHouse/pull/102586) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح تضخّم CurrentMetric الخاص بـ `NamedCollection` بسبب `CREATE NAMED COLLECTION IF NOT EXISTS` عند وجود مجموعات موجودة مسبقًا، وكذلك عدم تهيئته للمجموعات المُحمّلة من config أو من تخزين SQL عند بدء التشغيل. يُغلق [#102507](https://github.com/ClickHouse/ClickHouse/issues/102507). [#102598](https://github.com/ClickHouse/ClickHouse/pull/102598) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح استثناء في `getStructureOfRemoteTable` عندما يعيد الجزء المحلي أعمدة فارغة بسبب تنفيذ DDL متزامن. [#102604](https://github.com/ClickHouse/ClickHouse/pull/102604) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` عند استهداف عدة استعلامات `CREATE TABLE IF NOT EXISTS` متزامنة للجدول نفسه من نوع `S3Queue` في Shared database. [#102610](https://github.com/ClickHouse/ClickHouse/pull/102610) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح تعطّل `LOGICAL_ERROR` برسالة "Unexpected number of rows in column subchunk" في قارئ Parquet V3 الأصلي عند قراءة nullable columns مع عامل التصفية WHERE. [#102628](https://github.com/ClickHouse/ClickHouse/pull/102628) ([Groene AI](https://github.com/groeneai)).
* إصلاح وصف حدث profile `AzureWriteMicroseconds` الذي كان يذكر "read" بدلًا من "write". [#102639](https://github.com/ClickHouse/ClickHouse/pull/102639) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* خطأ في row policy يؤدي إلى ظهور استثناء 'Not found column in block' في بعض الحالات الخاصة. [#102648](https://github.com/ClickHouse/ClickHouse/pull/102648) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء في server ضمن ClusterDiscovery عندما لا تكون هناك مؤقتًا أي عقدة حيّة في cluster ثابت (مُعرّف في config). [#102661](https://github.com/ClickHouse/ClickHouse/pull/102661) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح الاستدلال الخاطئ على Data type للتاريخ في حالة حدوث overflow بعد ضبط timezone. يُغلق [#102601](https://github.com/ClickHouse/ClickHouse/issues/102601). [#102674](https://github.com/ClickHouse/ClickHouse/pull/102674) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح مشكلة بقاء `SYSTEM WAIT VIEW` معلّقًا إلى الأبد عند حذف refreshable materialized view أثناء الانتظار. [#102681](https://github.com/ClickHouse/ClickHouse/pull/102681) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح حالة `CASE` مع expression من نوع Dynamic كانت تُرجع ELSE لجميع الصفوف. يُغلق [#102511](https://github.com/ClickHouse/ClickHouse/issues/102511). [#102684](https://github.com/ClickHouse/ClickHouse/pull/102684) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح serialization للنوع Dynamic المسطّح مع data types مُرمّزة بصيغة binary. يُغلق [#101911](https://github.com/ClickHouse/ClickHouse/issues/101911). [#102692](https://github.com/ClickHouse/ClickHouse/pull/102692) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `format&#95;schema&#95;source=&#39;query&#39;` الذي كان يتجاهل بصمت النتائج متعددة الصفوف. يُغلق [#101905](https://github.com/ClickHouse/ClickHouse/issues/101905). [#102698](https://github.com/ClickHouse/ClickHouse/pull/102698) ([Pavel Kruglov](https://github.com/Avogar)).
* الإبلاغ عن رمز الخروج الفعلي عبر عميل SSH بدلًا من تعيين جميع الأخطاء إلى `1`. يغلق [#101741](https://github.com/ClickHouse/ClickHouse/issues/101741). [#102700](https://github.com/ClickHouse/ClickHouse/pull/102700) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح فقدان ترويسات HTTP في معالجات الاستعلامات الديناميكية/المعرّفة مسبقًا. يغلق [#101846](https://github.com/ClickHouse/ClickHouse/issues/101846). [#102706](https://github.com/ClickHouse/ClickHouse/pull/102706) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تطبيق تصحيح معاينة Poisson على ملفات تعريف الكومة المطوية الخاصة بـ jemalloc لمطابقة خرج jeprof. سابقًا، كان التنسيق المطوي يقلّل من تقدير أحجام التخصيص الفعلية لأنه لا يأخذ احتمال المعاينة في الحسبان. [#102759](https://github.com/ClickHouse/ClickHouse/pull/102759) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح التعطل في الدالة `hasPhrase` عند استخدام وسيطة `NULL`. [#102802](https://github.com/ClickHouse/ClickHouse/pull/102802) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح تعطل الخادم (SIGSEGV) عند قراءة ملفات Avro ذات المخططات التكرارية التي تحتوي على مراجع دورية للأنواع الرمزية. وأصبح الآن يتم اكتشاف هذه المخططات ورفضها برسالة خطأ واضحة بدلًا من التعطل. [#102853](https://github.com/ClickHouse/ClickHouse/pull/102853) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم (تأكيد LOGICAL\_ERROR) عندما تواجه دالة على عمود `Variant` حدّ الذاكرة أو استثناءً آخر غير متعلق بتحويل النوع أثناء تحويل النتيجة في `FunctionVariantAdaptor`. ويُمرَّر الاستثناء الآن بشكل صحيح بدلًا من تصنيفه خطأً على أنه خطأ داخلي. [#102855](https://github.com/ClickHouse/ClickHouse/pull/102855) ([Groene AI](https://github.com/groeneai)).
* إصلاح تعطل الخادم في بُنى debug/sanitizer عند رمي `std::length_error` أثناء استنتاج المخطط (مثلًا بسبب القيم المتطرفة لـ `input_format_msgpack_number_of_columns` أو بيانات إدخال غير سليمة). [#102859](https://github.com/ClickHouse/ClickHouse/pull/102859) ([Groene AI](https://github.com/groeneai)).
* جعل تمثيل null في تسلسل الأعمدة المكررة والمتناثرة يراعي الإعدادات (مثل `format&#95;tsv&#95;null&#95;representation`). [#102888](https://github.com/ClickHouse/ClickHouse/pull/102888) ([Hechem Selmi](https://github.com/m-selmi)).
* نُقل إلى الإصدارات الأقدم في [#103499](https://github.com/ClickHouse/ClickHouse/issues/103499): إصلاح فشل طلبات S3 مع `ios_base::clear: unspecified iostream_category error` بدلًا من إعادة المحاولة، وكان السبب أن Poco `BufferedStreamBuf::flushBuffer` لا يتعامل مع عمليات الكتابة القصيرة من طبقة socket. [#102894](https://github.com/ClickHouse/ClickHouse/pull/102894) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح بقاء تحسينات `minmax_count_projection` و`COUNT(*)` البسيطة معطّلة بشكل دائم بعد lightweight delete، حتى بعد دمج جميع الأجزاء التي تحمل قناع lightweight delete واختفائها. [#102900](https://github.com/ClickHouse/ClickHouse/pull/102900) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح الأعطال العشوائية في jemalloc بسبب LTO. [#102913](https://github.com/ClickHouse/ClickHouse/pull/102913) ([Azat Khuzhin](https://github.com/azat)).
* تحسين سلاسل OR في سياسة الصفوف إلى IN في المحلّل الجديد. [#102915](https://github.com/ClickHouse/ClickHouse/pull/102915) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تلف البيانات الوصفية في jemalloc الناتج عن تحرير ذاكرة تخزين الصفحات المؤقتة بمحاذاة خاطئة، ما قد يؤدي إلى أعطال. [#102918](https://github.com/ClickHouse/ClickHouse/pull/102918) ([Azat Khuzhin](https://github.com/azat)).
* لم تعد عمليات INSERT العادية من دون العروض المادية تطلب عددًا مفرطًا من فتحات التزامن والخيوط في ConcurrencyControl (`max_threads` بدلًا من `max_insert_threads`)، مما يمنع استنزاف فتحات CC وتضخّم عدد الخيوط في المجموعات ذات معدل INSERT مرتفع. [#102961](https://github.com/ClickHouse/ClickHouse/pull/102961) ([Sema Checherinda](https://github.com/CheSema)).
* إعادة إدخال ArrowMemoryPool للسماح بإطلاق MEMORY\_LIMIT\_EXCEEDED لتفادي OOM على مستوى النواة. [#102999](https://github.com/ClickHouse/ClickHouse/pull/102999) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تجاهل `cast_string_to_date_time_mode` عند استخدام `CAST` إلى `Nullable(DateTime)`. يغلق [#101840](https://github.com/ClickHouse/ClickHouse/issues/101840). [#103035](https://github.com/ClickHouse/ClickHouse/pull/103035) ([Pavel Kruglov](https://github.com/Avogar)).
* إضافة دعم لأعمدة `ALIAS` في تحسين direct read لفهرس النص. [#103037](https://github.com/ClickHouse/ClickHouse/pull/103037) ([Anton Popov](https://github.com/CurtizJ)).
* نُقل إلى الإصدارات الأقدم في [#103454](https://github.com/ClickHouse/ClickHouse/issues/103454): إصلاح مشكلة كان فيها `SELECT DISTINCT` يعيد بصمت نتائج غير مكتملة عندما يطابق aggregate projection الاستعلام، بينما لا تحتوي بعض parts في الجدول على بيانات projection (على سبيل المثال، إذا أُضيف الـ projection إلى جدول يحتوي مسبقاً على بيانات ولم يُشغَّل `MATERIALIZE PROJECTION`). يغلق [#102951](https://github.com/ClickHouse/ClickHouse/issues/102951). [#103052](https://github.com/ClickHouse/ClickHouse/pull/103052) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح النتائج الخاطئة التي كانت تُرجَع بواسطة `WHERE x AND toNullable(N)` على جداول `MergeTree` عندما تكون `N` عدداً صحيحاً أعرض من `UInt8` (مثل `256` أو `65535` أو `2147483648` أو أي عدد صحيح سالب). كان المرشح يستبعد جميع الصفوف بشكل غير صحيح لأن `splitFilterNodeForAllowedInputs` استخدم صفراً من `NULL` عند تحويل remainder من `Nullable` بعد اختزال `AND` إلى قيمة منطقية، مما حوّل المقارنة إلى `NULL` ضمن المنطق ثلاثي القيم. [#103077](https://github.com/ClickHouse/ClickHouse/pull/103077) ([Groene AI](https://github.com/groeneai)).
* إصلاح نوع argument غير الصحيح الذي كان يُبلَّغ عنه في رسائل error الخاصة بـ string search functions (مثل `locate` و`position`) عند تمرير arguments بترتيب معكوس (`locate(needle, haystack)` مع `function_locate_has_mysql_compatible_argument_order = 1`). [#103102](https://github.com/ClickHouse/ClickHouse/pull/103102) ([Alex Kuleshov](https://github.com/0xAX)).
* إصلاح بقاء waitForPause معلّقاً إلى أجل غير مسمى عند استدعاء disableFailPoint بدون وجود أي thread متوقفة عند failpoint. [#103119](https://github.com/ClickHouse/ClickHouse/pull/103119) ([Shaohua Wang](https://github.com/tiandiwonder)).
* قصر سلاسل حزمة TCP Hello قبل المصادقة على 64 كيلوبايت، وإضافة server setting باسم `handshake_timeout_milliseconds` للحد من إجمالي وقت المصافحة، مما يمنع العملاء غير الموثَّقين من استهلاك ذاكرة مفرطة أو إبقاء threads مشغولة إلى أجل غير مسمى. [#103284](https://github.com/ClickHouse/ClickHouse/pull/103284) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح حالة كانت فيها إحصاءات min\_value > max\_value في Parquet ColumnIndex لأعمدة String. [#103334](https://github.com/ClickHouse/ClickHouse/pull/103334) ([Saurabh Kumar Ojha](https://github.com/saurabhojha)).
* التحقق من وجود بيانات Dynamic flattened غير سليمة في Native format. [#103392](https://github.com/ClickHouse/ClickHouse/pull/103392) ([Pavel Kruglov](https://github.com/Avogar)).
* تعبئة العمود `_time` من table function ‏`url`. [#103437](https://github.com/ClickHouse/ClickHouse/pull/103437) ([Nikita Taranov](https://github.com/nickitat)).
* إصلاح اكتشاف SVE الذي كان يستخدم تعليمات SVE حتى عند عدم توفرها. [#103568](https://github.com/ClickHouse/ClickHouse/pull/103568) ([Raúl Marín](https://github.com/Algunenano)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* تستخدم تبعية Libstemmer (Snowball) الآن الإصدار الأحدث v3.0.1. [#99256](https://github.com/ClickHouse/ClickHouse/pull/99256) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* إضفاء طابع عشوائي على الإعدادات في clickhouse-test: `use_skip_indexes_for_top_k`, `use_top_k_dynamic_filtering`, `query_plan_max_limit_for_top_k_optimization`. [#91782](https://github.com/ClickHouse/ClickHouse/pull/91782) ([Nikita Fomichev](https://github.com/fm4v)).
* تنفيذ اختبار stress للدوال للتحقق من سلامة خصائصها المختلفة. [#93543](https://github.com/ClickHouse/ClickHouse/pull/93543) ([Michael Kolupaev](https://github.com/al13n321)).
* توفير إعداد CMake خاص لـ `llvm-project` بدلًا من استيراد الإعداد من upstream. [#97453](https://github.com/ClickHouse/ClickHouse/pull/97453) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إضفاء طابع عشوائي على المزيد من إعدادات `optimize_*` في البنية التحتية للاختبارات لتحسين تغطية passes تحسين الاستعلامات. [#97547](https://github.com/ClickHouse/ClickHouse/pull/97547) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استخدام سلسلة أدوات Rust nightly-2026-03-22. [#98602](https://github.com/ClickHouse/ClickHouse/pull/98602) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `wasmtime` v42.0.1. [#98603](https://github.com/ClickHouse/ClickHouse/pull/98603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `llvm-project` 22.1.1. [#98882](https://github.com/ClickHouse/ClickHouse/pull/98882) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استبدال `SANITIZE_COVERAGE` (callbacks مخصصة لـ sanitizer، ودقة على مستوى الرموز) بتغطية LLVM المعتمدة على المصدر (`WITH_COVERAGE`, `-fprofile-instr-generate -fcoverage-mapping`) ضمن pipeline التغطية الليلية لكل اختبار. يقرأ الخادم الآن تعيين التغطية الخاص به من أقسام ELF عند بدء التشغيل، ويجمع tuples بالشكل `(file, line_start, line_end)` لكل اختبار عبر أمر جديد `SYSTEM SET COVERAGE TEST 'name'`. ويستخدم اختيار الاختبارات في فحوصات CI المستهدفة استعلامات نطاق الأسطر على table جديدة باسم `checks_coverage_lines` في CIDB، مع ترتيب الاختبارات المرشحة بحسب عدد أسطر diff المعدلة التي تغطيها. [#99513](https://github.com/ClickHouse/ClickHouse/pull/99513) ([Nikita Fomichev](https://github.com/fm4v)).
* إصلاح خطأ link في llvm-libc عند build باستخدام -O0. [#100023](https://github.com/ClickHouse/ClickHouse/pull/100023) ([Zheguang Zhao](https://github.com/zheguang)).
* إصلاح رسالتي error عند بدء تشغيل الحاوية إذا لم يتضمن configuration الإعدادين `logger.log` و`logger.errorlog` (على سبيل المثال، عندما يُفترض أن تذهب جميع log messages إلى STDOUT/STDERR). [#100239](https://github.com/ClickHouse/ClickHouse/pull/100239) ([Simon](https://github.com/simonhammes)).
* تفضيل `ld64.lld` على `ld` الخاص بـ Apple (cctools-port ld64) في builds الخاصة بـ MacOS. من شأن ذلك أن يقلل بشكل كبير أزمنة الربط على Darwin، لأن ld64 الخاص بـ cctools-port بطيء جدًا مع `-ffunction-sections` و`-dead_strip`. ويجري الرجوع إلى `ld` إذا لم يكن `ld64.lld` متاحًا. [#100275](https://github.com/ClickHouse/ClickHouse/pull/100275) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* اختبارات لضمان عدم تسجيل الأدلة لأي secrets ‏(REST + Glue). [#100307](https://github.com/ClickHouse/ClickHouse/pull/100307) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تكرار الاختبارات التي عُدّلت مؤخرًا باستخدام إعدادات عشوائية مختلفة. [#100385](https://github.com/ClickHouse/ClickHouse/pull/100385) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تتبّع تبعيات ملفات `#embed` في CMake وتمكين وضع التبعيات في ccache لضمان إعادة بناء صحيحة. [#100411](https://github.com/ClickHouse/ClickHouse/pull/100411) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة اختبارات للتحقق من صحة استعلامات TPC-H. [#100580](https://github.com/ClickHouse/ClickHouse/pull/100580) ([Raufs Dunamalijevs](https://github.com/rienath)).
* استخدام `aws-sdk-cpp` 1.11.771. [#100582](https://github.com/ClickHouse/ClickHouse/pull/100582) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* السماح لملفات XML الخاصة باختبارات الأداء بالإشارة إلى ملفات SQL query خارجية وإعدادات عبر السمة file. [#100747](https://github.com/ClickHouse/ClickHouse/pull/100747) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح التجميع مع `-march=x86-64-v4` بإضافة التضمين المفقود `TargetSpecific.h` في `LowerUpperImpl.h`. [#100932](https://github.com/ClickHouse/ClickHouse/pull/100932) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح البناء على gentoo بإضافة --no-default-config إلى cxxflags. [#100973](https://github.com/ClickHouse/ClickHouse/pull/100973) ([Isak Ellmer](https://github.com/spinojara)).
* تمت إضافة `utils/auto-bisect/` — وهو إطار عمل للتنصيف يعتمد على shell، ينزّل binaries جاهزة البناء من CI ويشغّل سكربت اختبار يوفّره المستخدم للعثور على أول commit تسبب في تراجع، من دون الحاجة إلى بناء محلي. [#100989](https://github.com/ClickHouse/ClickHouse/pull/100989) ([Nikita Fomichev](https://github.com/fm4v)).
* تعطيل ThinLTO افتراضيًا في CMake، بحيث لم تعد builds المطورين المحلية تفعّله ضمنيًا. ولا تتأثر builds الإصدار الخاصة بـ CI لأنها تمرّر `-DENABLE_THINLTO=1` صراحةً. [#101041](https://github.com/ClickHouse/ClickHouse/pull/101041) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة benchmark ‏TPC-DS SF1 إلى اختبارات الأداء. [#101209](https://github.com/ClickHouse/ClickHouse/pull/101209) ([Raufs Dunamalijevs](https://github.com/rienath)).
* تمت إضافة اختبارات stateless لعمليات DELETE الخفيفة في MergeTree، وتغطي: دورة حياة العلامة `has_lightweight_delete`، وصحة `COUNT(*)` مع `optimize_trivial_count_query`، وسلامة الأعمدة `MATERIALIZED`/`DEFAULT`، واستعادة العلامة في `ReplicatedMergeTree`، و`read_in_order` مع الصفوف المحذوفة، ودورات حذف/دمج متعددة، وإخفاء العمود `_row_exists`، وتنوع الشروط، وفرض RBAC على `ALTER DELETE`. [#101792](https://github.com/ClickHouse/ClickHouse/pull/101792) ([Nikita Fomichev](https://github.com/fm4v)).
* يتم الآن نشر Docker image ‏Distroless بمتغيرَي ubuntu وalpine للإصدارات الموسومة. [#101941](https://github.com/ClickHouse/ClickHouse/pull/101941) ([Rahul Nair](https://github.com/motsc)).
* تعرض stack traces الآن مسارات نسبية واضحة ومباشرة (مثل `src/Common/Exception.cpp`) بدلًا من مسارات مشوَّشة بدليل البناء (مثل `./ci/tmp/fast_build/./src/Common/Exception.cpp`). [#102000](https://github.com/ClickHouse/ClickHouse/pull/102000) ([Raúl Marín](https://github.com/Algunenano)).
* إضافة Style check في CI يرفض الملفات الأكبر من 5 ميغابايت التي يتم commit لها إلى repository، مع whitelist لبيانات الاختبار الحالية المشروعة. وإزالة الملف غير المستخدم `zookeeper_log.parquet` بحجم 14 ميغابايت. [#102080](https://github.com/ClickHouse/ClickHouse/pull/102080) ([Raúl Marín](https://github.com/Algunenano)).
* إزالة نحو 400 توجيه `#include` غير مستخدم من headers لتقليل أوقات التجميع. [#102585](https://github.com/ClickHouse/ClickHouse/pull/102585) ([Raúl Marín](https://github.com/Algunenano)).
* استخدام `wasmtime` ‏v43.0.1. [#102603](https://github.com/ClickHouse/ClickHouse/pull/102603) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `openssl` 3.5.6. [#102606](https://github.com/ClickHouse/ClickHouse/pull/102606) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `xz` 5.8.3. [#102607](https://github.com/ClickHouse/ClickHouse/pull/102607) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* ترقية الصورة الأساسية distroless في Docker من Debian 12 ‏(glibc 2.36، OpenSSL 3.0) إلى Debian 13 ‏(glibc 2.41، OpenSSL 3.5)، مما يقلّص نطاق التعرّض لثغرات CVE إلى عدم وجود أي ثغرات قابلة للوصول. [#101678](https://github.com/ClickHouse/ClickHouse/pull/101678) ([Rahul Nair](https://github.com/motsc)).

<div id="263">
  ### إصدار ClickHouse ‏26.3 LTS بتاريخ 2026-03-26. [العرض التقديمي](https://presentations.clickhouse.com/)، [الفيديو](https://www.youtube.com/watch?v=_bY0ucNB1lQ)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* قد يؤدي الرجوع إلى إصدار أقدم بعد الترقية إلى فقدان البيانات. انشر إصدارات التسلسل الخاصة بأنواع البيانات إلى أنواع البيانات المتداخلة. على سبيل المثال، كان إصدار التسلسل String ‏`with_size_stream` يُطبَّق سابقًا فقط على أعمدة String من المستوى الأعلى وعناصر Tuple. أما الآن فأصبح يُطبَّق على أي نوع String داخل أي نوع متداخل مثل `Array`/`Map`/`Variant`/`JSON`/إلخ. يتحكم في هذا السلوك إعداد MergeTree ‏`propagate_types_serialization_versions_to_nested_types`، وهو مفعّل افتراضيًا الآن. بعد هذا التغيير، لن تتمكن الإصدارات الأقدم من قراءة أجزاء البيانات المُنشأة حديثًا، لكن يمكن للإصدار الجديد قراءة الأجزاء القديمة دون أي مشاكل. **الترقية آمنة، لكن الرجوع إلى إصدار أقدم ليس كذلك — إذا احتجت إلى التراجع بعد الترقية إلى 26.3، فستصبح البيانات التي كتبها 26.3 في الأعمدة ذات الأنواع المتداخلة غير قابلة للقراءة!** راجع [#101429](https://github.com/ClickHouse/ClickHouse/issues/101429) للتفاصيل. [#94859](https://github.com/ClickHouse/ClickHouse/pull/94859) ([Pavel Kruglov](https://github.com/Avogar)).
* إزالة نوع skip index ‏`hypothesis`. كانت هذه ميزة غامضة وتجريبية ذات فائدة عملية محدودة. سيؤدي إنشاء الجداول باستخدام `INDEX ... TYPE hypothesis` الآن إلى ظهور خطأ. [#96874](https://github.com/ClickHouse/ClickHouse/pull/96874) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إزالة الدالة التجريبية `detectProgrammingLanguage`. [#99567](https://github.com/ClickHouse/ClickHouse/pull/99567) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح أسبقية العامل `NOT` لتتوافق مع معيار SQL: أصبح `NOT` الآن أقل ارتباطًا من `IS NULL` و`BETWEEN` و`LIKE` والعوامل الحسابية. على سبيل المثال، أصبح `NOT (x) IS NULL` الآن يُفسَّر على أنه `NOT (x IS NULL)` بدلًا من `(NOT x) IS NULL`. قد يغيّر هذا نتائج queries التي كانت تعتمد على السلوك السابق (غير القياسي). [#97680](https://github.com/ClickHouse/ClickHouse/pull/97680) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تصحيح البيانات الوصفية للإسقاطات العادية بحيث يجري التعرّف على الإسقاطات ذات مفاتيح الفرز متعددة الأعمدة بشكل صحيح. يستند هذا إلى [#90429](https://github.com/ClickHouse/ClickHouse/issues/90429). [#91352](https://github.com/ClickHouse/ClickHouse/pull/91352) ([Amos Bird](https://github.com/amosbird)).
* إصلاح مشكلة عدم احترام ملفات skip index للإعداد replace\_long\_file\_name\_to\_hash، مما كان يسبب أخطاء "اسم الملف طويل جدًا" وتعطّل قراءة الفهارس ذات الأسماء الطويلة. أصبحت أسماء ملفات skip index الآن تُحوَّل إلى hash عند تجاوزها max\_file\_name\_length، على غرار ملفات الأعمدة. وهذا متوافق مع الإصدارات السابقة (يمكن للخوادم الجديدة قراءة الأجزاء القديمة)، لكن الرجوع إلى إصدار أقدم (أو استخدام خوادم قديمة أثناء rolling upgrade) قد يؤدي إلى تجاهل الفهارس ذات الأسماء الطويلة. [#97128](https://github.com/ClickHouse/ClickHouse/pull/97128) ([Raúl Marín](https://github.com/Algunenano)).
* تفعيل async insert افتراضيًا. سيقوم ClickHouse الآن بتجميع جميع عمليات insert الصغيرة افتراضيًا. يُضبط هذا الإعداد ضمن compatibility. إذا قمت بتعيين `compatibility=<version less than 26.2>` فستكون القيمة الافتراضية هي السابقة، أي `false`. يمكنك إيقاف/تفعيل async inserts على عدة مستويات: في config ضمن profiles المستخدمين، أو على مستوى session، أو query، أو MergeTree table. [#97590](https://github.com/ClickHouse/ClickHouse/pull/97590) ([Sema Checherinda](https://github.com/CheSema)).
* تغيير القيمة الافتراضية لـ `mysql_datatypes_support_level` من فارغة إلى `decimal,datetime64,date2Date32`، مما يفعّل المواءمة الصحيحة افتراضيًا من MySQL `DATE` إلى `Date32`، ومن `DECIMAL`/`NUMERIC` إلى `Decimal`، ومن `DATETIME`/`TIMESTAMP` مع precision إلى `DateTime64`. سابقًا، كانت أعمدة MySQL `DATE` تُواءَم إلى `Date`، وهو ما لا يمكنه تمثيل التواريخ السابقة لـ 1970-01-01، مما كان يسبب تلف البيانات. [#97716](https://github.com/ClickHouse/ClickHouse/pull/97716) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قبول مصفوفة من أسماء الأجزاء بدلًا من regexp في `mergeTreeAnalyzeIndexes{,UUID}` لأن regexp بطيء (*ميزة تجريبية*). [#98474](https://github.com/ClickHouse/ClickHouse/pull/98474) ([Azat Khuzhin](https://github.com/azat)).
* تغيير القيمة الافتراضية لـ `stderr_reaction` من `throw` إلى `log_last` في UDFs القابلة للتنفيذ. لم تعد UDFs التي تكتب تحذيرات إلى stderr تفشل عندما يكون رمز الخروج 0. وتتضمن الاستثناءات المرتبطة برمز الخروج الآن محتوى stderr. [#99232](https://github.com/ClickHouse/ClickHouse/pull/99232) ([Xu Jia](https://github.com/XuJia0210)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* تمت إضافة Bucketed Serialization لأعمدة Map في MergeTree (`map_serialization_version = 'with_buckets'`). تُقسَّم المفاتيح إلى buckets قائمة على hash، بحيث إن قراءة مفتاح واحد (`m['key']`) لا تتطلب سوى قراءة bucket واحدة بدلًا من العمود بالكامل، ما يوفّر تسريعًا يتراوح بين 2x و49x لعمليات lookup على مفتاح واحد، وذلك بحسب حجم map. ويمكن التحكم في عدد الـ buckets واستراتيجية توزيعها عبر MergeTree settings الجديدة التالية: `map_serialization_version`, `max_buckets_in_map`, `map_buckets_strategy`, `map_buckets_coefficient`، و`map_buckets_min_avg_size`. [#99200](https://github.com/ClickHouse/ClickHouse/pull/99200) ([Pavel Kruglov](https://github.com/Avogar)).
* دعم materialized CTE. يتيح ذلك تقييم CTE مرة واحدة فقط أثناء تنفيذ query وتخزين نتائجه في temporary tables. يغلق [#53449](https://github.com/ClickHouse/ClickHouse/issues/53449). [#94849](https://github.com/ClickHouse/ClickHouse/pull/94849) ([Dmitry Novik](https://github.com/novikd)).
* السماح باستخدام بعض الدوال القياسية في SQL من دون أقواس لأغراض التوافق، مثل `NOW`. يغلق [#52102](https://github.com/ClickHouse/ClickHouse/issues/52102). [#95949](https://github.com/ClickHouse/ClickHouse/pull/95949) ([Aly Kafoury](https://github.com/AlyHKafoury)).
* يمكنك الآن استخدام دالة natural sort key بالشكل `naturalSortKey(s)`. [#90322](https://github.com/ClickHouse/ClickHouse/pull/90322) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* يمكنك الآن استخدام إدخال JSON/Object الأصلي مع دوال JSONExtract. يغلق [#88370](https://github.com/ClickHouse/ClickHouse/issues/88370). [#96711](https://github.com/ClickHouse/ClickHouse/pull/96711) ([Fisnik Kastrati](https://github.com/fkastrati)).
* إذا كان query parameter من النوع `Nullable` ولم يتم تحديده، فسنفترض أن قيمته هي `NULL`. [#93869](https://github.com/ClickHouse/ClickHouse/pull/93869) ([Vikash Kumar](https://github.com/vikashkumar2020)).
* دعم auxiliary ZooKeeper لقاعدة البيانات `Replicated`. [#95590](https://github.com/ClickHouse/ClickHouse/pull/95590) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* دعم الدالة `has` مع JSON type للتحقق من وجود path، على غرار Map. [#96927](https://github.com/ClickHouse/ClickHouse/pull/96927) ([DQ](https://github.com/il9ue)).
* تمت إضافة table function ‏`mergeTreeTextIndex(database, table, index)`، التي تتيح قراءة البيانات مباشرةً من text index. ويمكن استخدام هذه الدالة لأغراض introspection أو لإجراء aggregations فوق بيانات text index. [#97003](https://github.com/ClickHouse/ClickHouse/pull/97003) ([Anton Popov](https://github.com/CurtizJ)).
* إضافة MergeTree setting ‏`table_readonly` لتمييز الجداول بأنها read-only، مما يمنع inserts والتعديلات. [#97652](https://github.com/ClickHouse/ClickHouse/pull/97652) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة setting جديدة `use_partition_pruning` والاسم البديل alias ‏`use_partition_key`. اضبطها على `false` لتعطيل partition pruning استنادًا إلى partition key. [#97888](https://github.com/ClickHouse/ClickHouse/pull/97888) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تنفيذ `ALTER TABLE ... EXECUTE expire_snapshots('<timestamp>')` لجداول Iceberg. [#97904](https://github.com/ClickHouse/ClickHouse/pull/97904) ([murphy-4o](https://github.com/murphy-4o)). [#99130](https://github.com/ClickHouse/ClickHouse/pull/99130)
* السماح لكل entry من النوع `type=http` داخل `<protocols>` بتحديد مفتاح `<handlers>` مخصص يشير إلى قسم config منفصل `<http_handlers_*>`، ما يتيح قواعد توجيه HTTP مختلفة لكل منفذ. [#98414](https://github.com/ClickHouse/ClickHouse/pull/98414) ([Amos Bird](https://github.com/amosbird)).
* إضافة الخيار `pretty=1` إلى `EXPLAIN` للحصول على مخرجات شجرية ذات مسافات بادئة، وإضافة `compact=1` لطيّ خطوات `Expression`، مما يجعل خطط الاستعلام أكثر قابلية للقراءة. [#98500](https://github.com/ClickHouse/ClickHouse/pull/98500) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إضافة إعداد الخادم `restore_access_entities_with_current_grants`. عند تمكينه، تقتصر امتيازات المستخدمين/الأدوار المستعادة من النسخ الاحتياطية على ما يُسمح للمستخدم الذي يجري الاستعادة بمنحه (بنفس دلالات `GRANT CURRENT GRANTS`)، بدلًا من الفشل مع `ACCESS_DENIED`. [#98795](https://github.com/ClickHouse/ClickHouse/pull/98795) ([pufit](https://github.com/pufit)).
* إضافة الدالتين `caseFoldUTF8` و`removeDiacriticsUTF8` لطيّ حالة Unicode وإزالة العلامات التشكيلية. [#98973](https://github.com/ClickHouse/ClickHouse/pull/98973) ([George Larionov](https://github.com/george-larionov)).
* إضافة دالة السلاسل النصية `normalizeUTF8NFKCCasefold` لتطبيع Unicode من نوع NFKC\_Casefold، والذي يجمع بين تطبيع NFKC وطيّ الحالة. [#99276](https://github.com/ClickHouse/ClickHouse/pull/99276) ([George Larionov](https://github.com/george-larionov)).
* إضافة المُجزِّئ `unicode_word` إلى فهارس النص الكامل وإلى الدالة `tokens`. وهو يقسم النص باستخدام قواعد حدود الكلمات في Unicode: تتكوّن كلمات ASCII باستخدام محارف الربط (الشرطة السفلية، النقطتان، النقطة، وعلامة الاقتباس المفردة)، بينما تتحول محارف Unicode غير التابعة لـ ASCII إلى tokens أحادية المحرف. ملاحظة: يقبل الإصدار 26.3 هذا المُجزِّئ بالاسم `unicode_word` فقط؛ وقد أُعيدت تسميته إلى `asciiCJK` في الإصدار 26.4. [#99357](https://github.com/ClickHouse/ClickHouse/pull/99357) ([Amos Bird](https://github.com/amosbird)).
* تمت إضافة الإعدادين `max_skip_unavailable_shards_num` و`max_skip_unavailable_shards_ratio` لتقييد عدد shards التي يمكن تخطيها بصمت عند تمكين `skip_unavailable_shards`. إذا تجاوز عدد shards غير المتاحة أو نسبتها العتبة المُعدّة، يُطرَح استثناء بدلًا من إرجاع نتائج غير مكتملة بصمت. [#99369](https://github.com/ClickHouse/ClickHouse/pull/99369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمكن للمستخدمين الآن استخدام الكلمة المفتاحية `SOME` في تعبيرات الاستعلامات الفرعية. وهي تتصرف بصورة مطابقة تمامًا لـ `ANY`. [#99842](https://github.com/ClickHouse/ClickHouse/pull/99842) ([Artem Kytkin](https://github.com/Vinceent)).
* إضافة الإعداد `output_format_trim_fixed_string` لإزالة null bytes اللاحقة من قيم `FixedString` في تنسيقات الإخراج النصية. [#97558](https://github.com/ClickHouse/ClickHouse/pull/97558) ([NeedmeFordev](https://github.com/spider-yamet)).
* دعم تعبيرات ربط الجداول الموضوعة بين قوسين في عبارة `FROM`، مثل `SELECT * FROM (t1 CROSS JOIN t2)`. [#97650](https://github.com/ClickHouse/ClickHouse/pull/97650) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تنفيذ الدالة `toDaysInMonth`: تُرجع عدد الأيام في شهر التاريخ المحدد. [#99227](https://github.com/ClickHouse/ClickHouse/pull/99227) ([Vitaly Baranov](https://github.com/vitlibar)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* إضافة دعم تجريبي لـ UDFs المستندة إلى WebAssembly، ما يتيح تنفيذ منطق دوال مخصصة باستخدام WebAssembly وتشغيلها داخل ClickHouse. شكر خاص لـ [Alexey Smirnov](https://github.com/lioshik) لمساهمته في دعم backend الخاص بـ Wasmtime. [#88747](https://github.com/ClickHouse/ClickHouse/pull/88747) ([Vladimir Cherkasov](https://github.com/vdimir)). تحسينات إضافية تدريجية على دعم WASM UDF. [#99373](https://github.com/ClickHouse/ClickHouse/pull/99373) ([Vasily Chekalkin](https://github.com/bacek)).
* إضافة دعم لهجات SQL خارجية باستخدام مكتبة `polyglot`. [#99496](https://github.com/ClickHouse/ClickHouse/pull/99496) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة compression codec للأعداد ذات الفاصلة العائمة `ALP` (من دون fallback إلى ALP\_rd للقيم المزدوجة غير القابلة للضغط). [#91362](https://github.com/ClickHouse/ClickHouse/pull/91362) ([Nazarii Piontko](https://github.com/nazarii-piontko)).
* إضافة Lazy Type Hints تجريبية لأعمدة `JSON`. عند تفعيلها عبر `allow_experimental_json_lazy_type_hints`، فإن `ALTER TABLE ... MODIFY COLUMN json JSON(path TypeName)` الذي يضيف type hints أو يعدّلها فقط يكتمل فورًا كعملية تقتصر على metadata، من دون إعادة كتابة البيانات التاريخية. تُطبَّق type hints عند query time على parts القديمة، ويجري materialize لها أثناء عمليات INSERT وbackground merges. [#97412](https://github.com/ClickHouse/ClickHouse/pull/97412) ([tanner-bruce](https://github.com/tanner-bruce)).
* تمكين reads المتوازية من YTsaurus table engine. [#97343](https://github.com/ClickHouse/ClickHouse/pull/97343) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* تحسين أداء بحيرات البيانات. في الإصدارات السابقة، لم تكن القراءة من تخزين الكائنات تعيد تكييف pipeline مع عدد خيوط المعالجة. يوفّر هذا تحسينات هائلة في الأداء (\~40x) على الأجهزة متعددة الأنوية. [#99548](https://github.com/ClickHouse/ClickHouse/pull/99548) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت العلاقة بين `enable_parallel_replicas` و `automatic_parallel_replicas_mode` كما يلي: لا يمكن لأي استعلام استخدام النسخ المتماثلة المتوازية إلا إذا كانت قيمة `enable_parallel_replicas > 0`. بالإضافة إلى ذلك، إذا كانت `automatic_parallel_replicas_mode=1`، فيُتخذ قرار استخدام النسخ المتماثلة المتوازية أثناء التخطيط استنادًا إلى الإحصاءات المجمّعة مسبقًا. أما إذا كانت `automatic_parallel_replicas_mode=0`، فستُستخدم النسخ المتماثلة المتوازية في جميع الاستعلامات المدعومة بغضّ النظر عن أي إحصاءات. وهناك استثناء مهم، وهو distributed insert-select مع النسخ المتماثلة المتوازية: في هذه الحالة، ستُنفّذ الاستعلامات دائمًا كما لو كانت `automatic_parallel_replicas_mode=0`. [#97517](https://github.com/ClickHouse/ClickHouse/pull/97517) ([Nikita Taranov](https://github.com/nickitat)).
* إتاحة partition pruning عندما يحتوي predicate على أي عامل مقارنة (`=`, `<`, `>`, `!=`) ويكون partition key ملفوفًا ضمن سلسلة دوال حتمية؛ فعلى سبيل المثال، في `PARTITION BY x`، ستستخدم predicates مثل `cityHash64(x) % 5 > 2` و `toYYYYMM(x) < 2026` و `toYYYYMM(x) = 2026` أو `toYYYYMM(x) != 2026` جميعها partition key لأغراض pruning. يُغلق [#28800](https://github.com/ClickHouse/ClickHouse/issues/28800). [#98432](https://github.com/ClickHouse/ClickHouse/pull/98432) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إتاحة تحسين read-in-order وprimary-key pruning عندما يكون النوع الهدف في `CAST` هو `Nullable` ويكون التحويل رتيبًا؛ فعلى سبيل المثال، مع `PRIMARY KEY x`، يمكن لـ ClickHouse استخدام تحسين read-in-order مع `ORDER BY x::Nullable(UInt64)`، كما يمكنه تطبيق primary-key pruning على predicates مثل `WHERE x::Nullable(UInt64) > 500000`. [#98482](https://github.com/ClickHouse/ClickHouse/pull/98482) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إتاحة index pruning وfilter pushdown عندما تجري مقارنة column صحيحة بقيمة Float حرفية؛ فعلى سبيل المثال، يمكن الآن لـ predicates مثل `WHERE x < 10.5` استخدام primary key لأغراض pruning، كما أصبحت filters مثل `prime < 1e9` أو `number < 1e5` تُدفع إلى `primes()` و `numbers()` table functions بدلًا من التسبّب في تنفيذ غير محدود. يُغلق [#85167](https://github.com/ClickHouse/ClickHouse/issues/85167). [#98516](https://github.com/ClickHouse/ClickHouse/pull/98516) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة cache جديدة من نوع SLRU لبيانات Parquet الوصفية لتحسين أداء القراءة، عبر إزالة الحاجة إلى إعادة تنزيل الملفات لمجرد قراءة metadata. [#98140](https://github.com/ClickHouse/ClickHouse/pull/98140) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* دعم تبديل طرفَي ANTI وSEMI وFULL joins استنادًا إلى إحصاءات المُحسِّن. [#97498](https://github.com/ClickHouse/ClickHouse/pull/97498) ([Hechem Selmi](https://github.com/m-selmi)).
* تحسين تخطي granules في `pointInPolygon` عند التعامل مع polygons كبيرة، وإصلاح مشكلة تسبّب `pointInPolygon` في طرح خطأ أثناء index analysis خلال primary key pruning. [#91633](https://github.com/ClickHouse/ClickHouse/pull/91633) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تحسين أداء الدالة `levenshteinDistance`. [#94543](https://github.com/ClickHouse/ClickHouse/pull/94543) ([Joanna Hulboj](https://github.com/jh0x)).
* تحسين تحويلات نوع Decimal على مستوى Batch عبر تجنّب استدعاء الدوال لكل عنصر. [#95923](https://github.com/ClickHouse/ClickHouse/pull/95923) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تدعم جداول Iceberg الآن الجلب المسبق غير المتزامن للبيانات الوصفية عبر إعداد الجدول `iceberg_metadata_async_prefetch_period_ms`، الذي يعبّئ ذاكرة التخزين المؤقت للبيانات الوصفية مسبقًا بشكل دوري. بالإضافة إلى ذلك، يتيح إعداد الاستعلام `iceberg_metadata_staleness_ms` لاستعلامات SELECT استخدام البيانات الوصفية المخزنة مؤقتًا إذا كانت أحدث من مدة التقادم المحددة، مما يلغي استدعاءات Iceberg catalog أثناء معالجة الطلبات. [#96191](https://github.com/ClickHouse/ClickHouse/pull/96191) ([Arsen Muk](https://github.com/arsenmuk)).
* يستخدم وضع `S3Queue` المرتب الخاصية S3 ListObjectsV2 StartAfter لتجنب إعادة إدراج السجل الكامل للبادئة، مما يقلل استدعاءات ListObjects. [#96370](https://github.com/ClickHouse/ClickHouse/pull/96370) ([Venkata  Vineel ](https://github.com/vyalamar)).
* خفض استخدام الذاكرة لعمليات insert مع إزالة التكرار. عمومًا، تكون الكتلة الأصلية مطلوبة لإزالة التكرار، لكن في insert المتزامن يمكن الاستغناء عنها وتوفير الذاكرة. [#96661](https://github.com/ClickHouse/ClickHouse/pull/96661) ([Sema Checherinda](https://github.com/CheSema)).
* استخدام قيمة خاصة بالمعمارية لحجم سطر cache بدلًا من قيمة ثابتة مقدارها 64. [#97357](https://github.com/ClickHouse/ClickHouse/pull/97357) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين طفيف في القراءة من قاموس text index، مما يحسّن الأداء العام لتحليل text index. [#97519](https://github.com/ClickHouse/ClickHouse/pull/97519) ([Anton Popov](https://github.com/CurtizJ)).
* تسريع فك ضغط `LZ4` للكتل بحجم 16 بايت على ARM. [#97774](https://github.com/ClickHouse/ClickHouse/pull/97774) ([Raúl Marín](https://github.com/Algunenano)).
* إعادة هيكلة tokenization إلى interface جديدة عالية الأداء، مع استبدال واجهة API القديمة ذات نمط iterator لدعم SIMD وtokenizers ذات الحالة. جزء من [#90268](https://github.com/ClickHouse/ClickHouse/issues/90268). [#97871](https://github.com/ClickHouse/ClickHouse/pull/97871) ([Amos Bird](https://github.com/amosbird)).
* تحسين أداء تحليل text index للاستعلامات التي تحتوي على conditions مركبة تشمل أعمدة مفهرسة وأخرى غير مفهرسة. في السابق، كان تحسين الإنهاء المبكر أثناء index analysis يُعطَّل بشكل غير صحيح في مثل هذه الحالات. [#98096](https://github.com/ClickHouse/ClickHouse/pull/98096) ([Anton Popov](https://github.com/CurtizJ)).
* تحسين أداء الاستعلامات التي تحتوي على expressions ثابتة تُنشئ Arrays أو خرائط طويلة جدًا. [#98287](https://github.com/ClickHouse/ClickHouse/pull/98287) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تحليل شرط المفتاح لمفاتيح primary من النوع `DateTime64` عند مقارنتها بثوابت صحيحة، وهو ما كان يؤدي سابقًا إلى عدم تطبيق Granule pruning. [#98410](https://github.com/ClickHouse/ClickHouse/pull/98410) ([Amos Bird](https://github.com/amosbird)).
* أصبح الإعداد `optimize_syntax_fuse_functions` مفعّلًا افتراضيًا. [#98424](https://github.com/ClickHouse/ClickHouse/pull/98424) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين الدالة التجميعية `avgWeighted` باستخدام مجمّعات محلية بدلًا من التمرير والتخزين لكل صف عبر aggregate state، مما يحسّن الأداء بنسبة تصل إلى 27% لمدخلات Nullable. [#98793](https://github.com/ClickHouse/ClickHouse/pull/98793) ([Antonio Andelic](https://github.com/antonio2368)).
* يحسّن الأداء ويقلل استخدام الذاكرة لدوال window المتوازية في بعض السيناريوهات، وكذلك لأحمال عمل `arrayFold` التي تتضمن Arrays كبيرة. ويمكن أن يقلل هذا أيضًا من ضغط أخطاء الصفحات ويحسّن الاستقرار عند حدود الذاكرة الضيقة بالنسبة إلى الاستعلامات المتأثرة. [#98892](https://github.com/ClickHouse/ClickHouse/pull/98892) ([filimonov](https://github.com/filimonov)).
* تحسين أداء sorted merges. [#99013](https://github.com/ClickHouse/ClickHouse/pull/99013) ([Artem Zuikov](https://github.com/4ertus2)).
* تحسين `INTERSECT ALL` و`EXCEPT ALL`. [#99097](https://github.com/ClickHouse/ClickHouse/pull/99097) ([Raufs Dunamalijevs](https://github.com/rienath)).
* دعم تحسين `read_in_order_use_virtual_row` لعمليات القراءة بالترتيب العكسي. [#99198](https://github.com/ClickHouse/ClickHouse/pull/99198) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تقليل التنافس على الذاكرة المخبئية في عمليتَي `RIGHT` و`FULL` `JOIN` من خلال التحقق من تعيين JoinUsedFlags قبل الكتابة. [#99274](https://github.com/ClickHouse/ClickHouse/pull/99274) ([Hechem Selmi](https://github.com/m-selmi)).
* تحسين `PrefetchingHelper::calcPrefetchLookAhead` باستبدال حسابات الفاصلة العائمة بحسابات صحيحة بالكامل، ما يحسّن تنظيم ذاكرة التعليمات المخبئية ويقلّل كلفة الدورات أثناء حلقات التجميع. [#99327](https://github.com/ClickHouse/ClickHouse/pull/99327) ([Riyane El Qoqui](https://github.com/riyaneel)).
* تقليل استهلاك Keeper للذاكرة باستبدال `absl::flat_hash_set` بـ `CompactChildrenSet` لتخزين العقد التابعة. وتخزّن الحاوية الجديدة من 0 إلى 1 من العقد التابعة ضمنيًا من دون تخصيص على heap، وهو ما يغطي غالبية عقد Keeper. ويؤدي ذلك إلى تقليل حجم `KeeperMemNode` من 144 إلى 128 بايت. [#99860](https://github.com/ClickHouse/ClickHouse/pull/99860) ([Antonio Andelic](https://github.com/antonio2368)).
* أصبحت الإسقاطات التجميعية مدعومة الآن بشكل صحيح في العروض. يُصلح هذا [#32753](https://github.com/ClickHouse/ClickHouse/issues/32753). [#88798](https://github.com/ClickHouse/ClickHouse/pull/88798) ([Amos Bird](https://github.com/amosbird)).
* دعم تحسين تحويل الربط من OUTER إلى INNER مع `join_use_nulls`. يُغلق هذا [#90978](https://github.com/ClickHouse/ClickHouse/issues/90978). [#95968](https://github.com/ClickHouse/ClickHouse/pull/95968) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تحسين قراءة الأعمدة الفرعية عبر احتساب الأحجام بشكل صحيح قبل القراءة. وهذا يقلّل استخدام الذاكرة ويُسرّع قراءة الأعمدة الفرعية. [#96251](https://github.com/ClickHouse/ClickHouse/pull/96251) ([Pavel Kruglov](https://github.com/Avogar)).
* جعل الذاكرات المخبئية mark وuncompressed وpage تستخدم ساحة jemalloc منفصلة لتجنّب تجزؤ الذاكرة عند خلط التخصيصات قصيرة العمر، مثل الاستعلامات والطلبات، مع التخصيصات الأطول عمرًا الخاصة بالذواكر المخبئية. [#96812](https://github.com/ClickHouse/ClickHouse/pull/96812) ([Seva Potapov](https://github.com/seva-potapov)). [#98812](https://github.com/ClickHouse/ClickHouse/pull/98812). [#99021](https://github.com/ClickHouse/ClickHouse/pull/99021)
* يمكن للجداول التي تحتوي على قواعد `DELETE TTL` الآن استخدام خوارزمية الدمج العمودي. [#97332](https://github.com/ClickHouse/ClickHouse/pull/97332) ([murphy-4o](https://github.com/murphy-4o)).
* تطبيق فهارس تخطي البيانات أثناء تحليل الفهرس الموزع. [#97767](https://github.com/ClickHouse/ClickHouse/pull/97767) ([Azat Khuzhin](https://github.com/azat)).
* تُحمَّى علامات الفهارس الثانوية مسبقًا الآن عند تمكين الإعداد `prewarm_mark_cache` (إذ تُحمَّل إلى الذاكرة المخبئية لعلامات الفهرس أثناء جلب أجزاء البيانات وعند بدء تشغيل الجدول). [#97772](https://github.com/ClickHouse/ClickHouse/pull/97772) ([Anton Popov](https://github.com/CurtizJ)).
* تقليل عمليات القفل أثناء التحكم في الوصول. [#97894](https://github.com/ClickHouse/ClickHouse/pull/97894) ([Nikita Taranov](https://github.com/nickitat)).
* عند تمكين apply\_row\_policy\_after\_final أو apply\_prewhere\_after\_final، أصبحت شروط AND المركبة في سياسات الصفوف وPREWHERE تُفكَّك الآن لاستخراج عناصر مفتاح الفرز لتحليل فهرس المفتاح الأساسي. سابقًا، إذا كان عامل التصفية المؤجل يحتوي على مزيج من predicates خاصة بمفتاح الفرز وأخرى لا تخص مفتاح الفرز (مثل x > 1 AND y != 'foo')، كان التعبير بالكامل يُستبعَد من تحليل الفهرس. أما الآن، فتُستخرَج عناصر مفتاح الفرز (مثل x > 1) وتُستخدم في تقليم الحبيبات، حتى من تعبيرات AND المتداخلة. [#98513](https://github.com/ClickHouse/ClickHouse/pull/98513) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تقليل التنازع على الأقفال في MergeTreeBackgroundExecutor من خلال جعل تحرير موارد المهمة يتم من دون أخذ القفل. يغلق [#93620](https://github.com/ClickHouse/ClickHouse/issues/93620). [#98604](https://github.com/ClickHouse/ClickHouse/pull/98604) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح الاستهلاك المفرط للذاكرة (\~514 MiB) أثناء الاكتشاف التلقائي لـ format عند قراءة بيانات غير Arrow (مثل JSON من `url` أو `file` من دون تحديد format صراحةً)، وكان السبب أن قارئ ArrowStream يفسّر البايتات الأولى خطأً على أنها طول هائل لـ metadata. [#98893](https://github.com/ClickHouse/ClickHouse/pull/98893) ([Konstantin Bogdanov](https://github.com/thevar1able)).

<div id="267-improvement">
  #### تحسينات
</div>

* يتيح تحليل ملفات GeoParquet التي تحتوي على أنواع Geo مختلفة ضمن العمود نفسه. [#97851](https://github.com/ClickHouse/ClickHouse/pull/97851) ([Mark Needham](https://github.com/mneedham)).
* تقديم دالة SQL ‏`tokensForLikePattern` التي تُقسِّم أنماط LIKE إلى tokens مع مراعاة دلالات أحرف البدل: يُعامَل `%` و `_` كأحرف بدل، وتُعامَل أحرف البدل المُهربة (`\%`, `\_`) كقيم حرفية، وتُستبعَد الـ tokens المجاورة لأحرف البدل غير المُهربة. [#97872](https://github.com/ClickHouse/ClickHouse/pull/97872) ([Amos Bird](https://github.com/amosbird)).
* إضافة العنصر النائب `{_schema_hash}` إلى S3 table engine لإدراج hash لتعريفات أعمدة الجدول في مسار S3. [#98265](https://github.com/ClickHouse/ClickHouse/pull/98265) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* أصبحت `SymbolIndex` و `addressToSymbol` و `system.symbols` و `buildId` تعمل الآن على macOS عبر تحليل جداول رموز Mach-O. [#99014](https://github.com/ClickHouse/ClickHouse/pull/99014) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح جدول `system.stack_trace` يعمل الآن على macOS، مما يتيح استبطان stack traces لجميع threads الخاصة بالـ server. [#98982](https://github.com/ClickHouse/ClickHouse/pull/98982) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة خيار config خاص بكل server في LDAP باسم `<follow_referrals>` (القيمة الافتراضية `false`) للتحكم في ما إذا كان LDAP client يتبع الإحالات. يؤدّي تعطيل تتبّع الإحالات إلى تجنّب حالات timeout والتعليق عند البحث انطلاقًا من base DN لجذر نطاق Active Directory. كما نُقلت log messages المرتبطة بالإحالات من `warn` إلى `trace`. [#96765](https://github.com/ClickHouse/ClickHouse/pull/96765) ([paf91](https://github.com/paf91)).
* أصبحنا الآن نتتبّع أي data skipping indices استُخدمت أثناء تنفيذ query في جدول query\_log ضمن عمود جديد باسم `skip_indices`. يُصلح هذا [#78676](https://github.com/ClickHouse/ClickHouse/issues/78676). المؤلف الأصلي @pheepa. [#87862](https://github.com/ClickHouse/ClickHouse/pull/87862) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* لم تعد تلميحات ACCESS\_DENIED تكشف أسماء الأعمدة ما لم يكن المستخدم قادرًا على إظهار جميع الأعمدة المطلوبة؛ بينما تظل أسماء database/table مرئية في التلميح. [#91067](https://github.com/ClickHouse/ClickHouse/pull/91067) ([filimonov](https://github.com/filimonov)).
* إضافة thread تنظيف مخصص لـ MergeTree لمنع تأخّر التنظيف تحت أحمال merge الكثيفة. يحل هذا [#86181](https://github.com/ClickHouse/ClickHouse/issues/86181). [#91574](https://github.com/ClickHouse/ClickHouse/pull/91574) ([Amos Bird](https://github.com/amosbird)).
* إعادة تحميل config الخاصة بالـ cluster إذا تغيّرت عناوين IP الخاصة باسم مضيف الـ server المحلي، بدلًا من عناوين IP لأي host. يُصلح هذا [#81215](https://github.com/ClickHouse/ClickHouse/issues/81215) و[#70156](https://github.com/ClickHouse/ClickHouse/issues/70156) و[#65268](https://github.com/ClickHouse/ClickHouse/issues/65268). [#93726](https://github.com/ClickHouse/ClickHouse/pull/93726) ([Zhigao Hong](https://github.com/zghong)).
* السماح للإعداد optimize\_aggregators\_of\_group\_by\_keys بتحسين aggregate functions بشكل صحيح في استعلامات GROUPING SETS. [#93935](https://github.com/ClickHouse/ClickHouse/pull/93935) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* Keeper-bench: الإبلاغ عن الأخطاء في metrics وإنشاء ملف metrics بصيغة json لوضع --input-request-log. [#95748](https://github.com/ClickHouse/ClickHouse/pull/95748) ([Mohammad Lareb Zafar](https://github.com/zlareb1)).
* إضافة clause جديدة ROLE إلى CREATE USER. [#97074](https://github.com/ClickHouse/ClickHouse/pull/97074) ([Vitaly Baranov](https://github.com/vitlibar)).
* يمكنك الآن تعيين إعدادات `internal_replication` لعنقود تم إنشاؤه بواسطة قاعدة البيانات Replicated. [#97228](https://github.com/ClickHouse/ClickHouse/pull/97228) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* الإعداد الجديد `allow_nullable_tuple_in_extracted_subcolumns` يتحكم في ما إذا كانت الأعمدة الفرعية المستخرجة `Tuple(...)` من `Tuple` و`Variant` و`Dynamic` و`JSON` ستُعاد بصيغة `Nullable(Tuple(...))` (مع `NULL` للصفوف المفقودة) أو بصيغة `Tuple(...)` (مع قيم tuple الافتراضية للصفوف المفقودة). هذا الإعداد معطّل افتراضيًا، ولا يمكن تغييره إلا بإعادة تشغيل الخادم. [#97299](https://github.com/ClickHouse/ClickHouse/pull/97299) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة معلومات عن المرشحات المؤجلة كعنصر منفصل في مخرجات استعلام EXPLAIN (عند استخدام Row Policies/PREWHERE مع FINAL). ذو صلة: [#91065](https://github.com/ClickHouse/ClickHouse/pull/91065). [#97374](https://github.com/ClickHouse/ClickHouse/pull/97374) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تفعيل `type_json_allow_duplicated_key_with_literal_and_nested_object` افتراضيًا. يتيح ذلك تجنب الأخطاء المتعلقة بالمفاتيح المكررة أثناء تحليل JSONات مثل `{"a" : 42, "a" : {"b" : 42}}`، والتي يمكن أن يصوغها ClickHouse انطلاقًا من بيانات JSON الأصلية `{"a" : 42, "a.b" : 42}`. [#97423](https://github.com/ClickHouse/ClickHouse/pull/97423) ([Pavel Kruglov](https://github.com/Avogar)).
* تحسين في Keeper: الأمر `find_super_nodes` مفيد جدًا لأغراض تصحيح الأخطاء عند حدوث زيادة غير متوقعة في عدد العقد في Keeper. لكن إذا وُجدت عدة super nodes، يصبح من شبه المستحيل العثور على أكثر من واحدة، لأن الأمر يعلق إلى الأبد أثناء اجتياز الأبناء لأول super node يعثر عليها. يمنع هذا PR اجتياز أبناء super nodes. [#97819](https://github.com/ClickHouse/ClickHouse/pull/97819) ([pufit](https://github.com/pufit)).
* دعم أولي للإكمال التلقائي في `clickhouse-keeper-client`. [#97828](https://github.com/ClickHouse/ClickHouse/pull/97828) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تفريغ مخازن التسجيل المؤقتة غير المتزامنة في حال حدوث تعطل. [#97836](https://github.com/ClickHouse/ClickHouse/pull/97836) ([Azat Khuzhin](https://github.com/azat)).
* تفعيل ميزة impersonate افتراضيًا (راجع [EXECUTE AS target\_user](https://clickhouse.com/docs/sql-reference/statements/execute_as)). [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)).
* تحسين إلغاء الاستعلامات مع table engine الخاص بـ SQLite باستخدام KILL QUERY وإلغاء الاستعلام (Ctrl+C) في clickhouse-client. [#97944](https://github.com/ClickHouse/ClickHouse/pull/97944) ([Roman Vasin](https://github.com/rvasin)).
* إضافة server setting باسم `jemalloc_profiler_sampling_rate` للتحكم في `lg_prof_sample` الخاص بـ jemalloc، وإظهاره بوصفه مقياسًا غير متزامن باسم `jemalloc.prof.lg_sample`. [#97945](https://github.com/ClickHouse/ClickHouse/pull/97945) ([Antonio Andelic](https://github.com/antonio2368)).
* دعم weights في تنفيذ الطابور المحدود المتزامن. [#97962](https://github.com/ClickHouse/ClickHouse/pull/97962) ([Daniil Ivanik](https://github.com/divanik)).
* إضافة sslmode إلى المفاتيح المسموح بها لمصادر dictionary في PostgreSQL. سابقًا، لم يكن sslmode موجودًا في قائمة السماح `dictionary_allowed_keys` في PostgreSQLDictionarySource.cpp، مما جعل من المستحيل تهيئة وضع SSL لاتصالات dictionary في PostgreSQL. وقد منع ذلك Dictionaries من الاتصال بخوادم PostgreSQL التي تتطلب SSL (مثل AWS RDS، الذي يفرض SSL افتراضيًا)، إذ كان الاتصال يفشل في تفاوض TLS ويرفض الخادم الرجوع الاحتياطي غير المشفر. [#98014](https://github.com/ClickHouse/ClickHouse/pull/98014) ([mcalfin](https://github.com/mcalfin)).
* اعرض خطأً واضحًا من نوع "no such file" عند تمرير مسار ملف غير موجود إلى `clickhouse` أو `clickhouse-local`، بدلًا من رسالة عامة مربكة. [#98048](https://github.com/ClickHouse/ClickHouse/pull/98048) ([Raúl Marín](https://github.com/Algunenano)).
* يمكن الآن إنشاء Text indexes على الأعمدة `Nullable([Fixed]String)` و`Array(Nullable([Fixed]String))`. [#98118](https://github.com/ClickHouse/ClickHouse/pull/98118) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تجنّب حذف named collections التي تُعد تبعيات لـ dictionary sources. [#98127](https://github.com/ClickHouse/ClickHouse/pull/98127) ([Pablo Marcos](https://github.com/pamarcos)).
* تمكين join algorithm `grace_hash` للاستعلامات التي تحتوي على totals. [#98144](https://github.com/ClickHouse/ClickHouse/pull/98144) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* ألغِ background merges مبكرًا في DROP DATABASE لـ ordinary shared merge tree. [#98161](https://github.com/ClickHouse/ClickHouse/pull/98161) ([Shaohua Wang](https://github.com/tiandiwonder)).
* حسِّن إلغاء queries مع MongoDB وMySQL باستخدام KILL QUERY وcancel query ‏(Ctrl+C) في clickhouse-client. [#98187](https://github.com/ClickHouse/ClickHouse/pull/98187) ([Roman Vasin](https://github.com/rvasin)).
* أزل NetlinkMetricsProvider واستخدم procfs حصريًا لجمع metric الخاصة بـ taskstats لكل thread. فالجمع المستند إلى Netlink يسبب مشكلات في البيئات المعتمدة على الحاويات، كما أن tail latency فيه أسوأ عند وجود contention. [#98229](https://github.com/ClickHouse/ClickHouse/pull/98229) ([Amos Bird](https://github.com/amosbird)).
* أعد هيكلة معالجة Iceberg manifest file لإصلاح المشكلات المتعلقة بـ manifest file caching. [#98231](https://github.com/ClickHouse/ClickHouse/pull/98231) ([Daniil Ivanik](https://github.com/divanik)).
* نأخذ الآن في الحسبان الحالات التي يكون فيها sorting key للـ table عبارة عن expression مثل `toDate(time)`، ويمكننا اتخاذ قرارات بشأن عدم تأجيل expressions من هذا النوع إذا كانت جزءًا من filters. [#98237](https://github.com/ClickHouse/ClickHouse/pull/98237) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* أضف metric جديدة باسم `MaxAllocatedEphemeralLockSequentialNumber` للحد الأقصى للرقم sequential المخصّص لعُقد القفل ephemeral من نوع znode في ZooKeeper. [#98243](https://github.com/ClickHouse/ClickHouse/pull/98243) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* حدّث ClickStack إلى version 2.20.0. [#98252](https://github.com/ClickHouse/ClickHouse/pull/98252) ([Aaron Knudtson](https://github.com/knudtty)).
* أُضيف حدث profile جديد `KeeperRequestTotalWithSubrequests` يحتسب كل subrequest داخل multi-request على حدة، مما يوفّر رؤية أفضل لعبء العمل الفعلي في Keeper. ويستمر الحدث الحالي `KeeperRequestTotal` في احتساب كل multi-request باعتباره request واحدة. [#98348](https://github.com/ClickHouse/ClickHouse/pull/98348) ([Antonio Andelic](https://github.com/antonio2368)).
* يقوم `SYSTEM RELOAD DICTIONARIES` الآن بإعادة تحميل Dictionaries بترتيب طوبولوجي، بحيث ترى Dictionaries التي تستخدم Dictionaries أخرى كمصدر بياناتٍ مُحدَّثة بعد إعادة التحميل. [#98356](https://github.com/ClickHouse/ClickHouse/pull/98356) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أعد تشغيل ذاكرة التخزين المؤقت للإحصاءات بعد تغيير MergeTree setting. [#98520](https://github.com/ClickHouse/ClickHouse/pull/98520) ([Han Fei](https://github.com/hanfei1991)).
* لا تشارك في distributed index analysis إلا replicas "الحية" (القابلة للاتصال). [#98521](https://github.com/ClickHouse/ClickHouse/pull/98521) ([Azat Khuzhin](https://github.com/azat)).
* أضِف الإعداد `access_control_improvements.disallow_config_defined_profiles_for_sql_defined_users` (معطّل/مسموح به افتراضيًا) لمنع استخدام ملفات تعريف الإعدادات المعرّفة في config (باستثناء ملف التعريف `default`) مع المستخدمين المعرّفين عبر SQL. [#98662](https://github.com/ClickHouse/ClickHouse/pull/98662) ([Alexander Tokmakov](https://github.com/tavplubix)).
* ضع حدًا لعدد العقد المستخدمة في الاستدلال التلقائي للنسخ المتماثلة المتوازية بحيث يطابق العدد الفعلي للعقد في المجموعة، بدلًا من الاعتماد فقط على الإعداد `max_parallel_replicas`. [#98668](https://github.com/ClickHouse/ClickHouse/pull/98668) ([Nikita Taranov](https://github.com/nickitat)).
* نفّذ الطلبات التحوطية والقراءة غير المتزامنة لتحليل الفهرس الموزّع. [#98724](https://github.com/ClickHouse/ClickHouse/pull/98724) ([Azat Khuzhin](https://github.com/azat)).
* أصبحت إزالة التسلسل لحالات `AggregateFunction` الثنائية تتطلب الآن استهلاك الإدخال بالكامل. وإذا وُجدت بايتات زائدة غير ضرورية في النهاية، فإن ClickHouse يطرح استثناءً بدلًا من قبول بيانات حالة غير سليمة البنية. [#98786](https://github.com/ClickHouse/ClickHouse/pull/98786) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* اجعل `TRUNCATE DATABASE` يستجيب لإلغاء الاستعلام. [#98828](https://github.com/ClickHouse/ClickHouse/pull/98828) ([Shaohua Wang](https://github.com/tiandiwonder)).
* حسِّن `keeper-bench` عبر استخدام pipelining للطلبات، وفترة إحماء، وإحصاءات لكل عملية، وبذور قابلة لإعادة الإنتاج، ومعالجة أفضل للأخطاء. [#98906](https://github.com/ClickHouse/ClickHouse/pull/98906) ([Antonio Andelic](https://github.com/antonio2368)).
* ادعم `SAMPLE clause` في تحليل الفهرس الموزّع. [#98931](https://github.com/ClickHouse/ClickHouse/pull/98931) ([Azat Khuzhin](https://github.com/azat)).
* اعرض عنوان المخطط في لوحة المعلومات حتى عندما يُرجع الاستعلام نتيجة فارغة أو يواجه خطأً. [#98975](https://github.com/ClickHouse/ClickHouse/pull/98975) ([Yash ](https://github.com/Onyx2406)).
* لم تعد رسائل أخطاء المحلّل تسرد جميع أعمدة الجدول (ما كان قد ينتج عنه استثناءات بحجم يتجاوز 150KB). وأصبحت قوائم الأعمدة الآن مقيّدة بحد أقصى قدره 10 عناصر. [#99002](https://github.com/ClickHouse/ClickHouse/pull/99002) ([Yash ](https://github.com/Onyx2406)).
* أرجِع إحصاءات الأعمدة بشكل صحيح من الاستعلامات الفرعية التي تتضمن joins لكي يتمكن الاستعلام الأب من استخدامها في إعادة ترتيب join. [#99096](https://github.com/ClickHouse/ClickHouse/pull/99096) ([Alexander Gololobov](https://github.com/davenger)).
* علِّم جلسة ZooKeeper على أنها منتهية الصلاحية فور بدء الإنهاء، بدلًا من انتظار انتهاء خيط الإرسال. يتيح ذلك للخيوط الأخرى إنشاء جلسة جديدة دون تأخير. [#99102](https://github.com/ClickHouse/ClickHouse/pull/99102) ([Raúl Marín](https://github.com/Algunenano)).
* استخدم المزيد من الدوال الرياضية من LLVM-libc: `exp`, `exp2`, `expm1`, `fabs`, `fabsl`, `floor`, `fmodl`, `log`, `log2`, `logf`, `pow`, `scalbn`, `scalbnl`, `copysignl`, `nan`, `nanf`, `nanl`، وثوابت `explogxf` المشتركة. [#99118](https://github.com/ClickHouse/ClickHouse/pull/99118) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* قلّل استهلاك الذاكرة وأصلِح احتمال تكرار المخرجات في التنسيق المطوي لـ `system.jemalloc_profile_text`. [#99121](https://github.com/ClickHouse/ClickHouse/pull/99121) ([Antonio Andelic](https://github.com/antonio2368)).
* أضِف العمود `is_subrequest` إلى `system.aggregated_zookeeper_log` للفصل بين الطلبات المستقلة والطلبات الفرعية داخل طلبات Multi/MultiRead. سابقًا، كانت الطلبات الفرعية تُجمَّع في نفس الحاويات الخاصة بالطلبات المستقلة، وبما أن كل عملية فرعية كانت تُسجَّل مع المدة الإجمالية للطلب المتعدد، فقد أصبح متوسط زمن الاستجابة مضللًا. أما الآن فأصبح زمن استجابة الطلبات الفرعية صفرًا. [#99169](https://github.com/ClickHouse/ClickHouse/pull/99169) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* السماح باستخدام الأمر `ALTER TABLE MODIFY COLUMN x TTL ...` دون تحديد نوع العمود. [#99208](https://github.com/ClickHouse/ClickHouse/pull/99208) ([Nikolay Degterinsky](https://github.com/evillique)).
* تخطي طلبات Keeper المتقادمة للجلسات التي انقطعت بالفعل، لتجنب جولات Raft غير الضرورية. ويُحدَّد الحد الأقصى لعدد الجلسات المنتهية التي يجري تتبعها بواسطة إعداد coordination `max_finished_sessions_cache_size`. [#99246](https://github.com/ClickHouse/ClickHouse/pull/99246) ([Antonio Andelic](https://github.com/antonio2368)).
* دعم الفهرس النصي المبني على `mapValues(map)` مع المعامل `IN`. [#99286](https://github.com/ClickHouse/ClickHouse/pull/99286) ([Anton Popov](https://github.com/CurtizJ)).
* دعم الإكمال الشبيه بالـ shell في clickhouse keeper-client (معالجة إكمال الوسائط داخل علامات الاقتباس، مثل `'foo ba'`، ومعالجة الوسائط المُفلَّتة، مثل `foo\ ba`، وجعل `ls` يطبع العقد بين علامتَي اقتباس إذا كانت تحتوي على مسافات بيضاء). [#99312](https://github.com/ClickHouse/ClickHouse/pull/99312) ([Azat Khuzhin](https://github.com/azat)).
* منع توقّف أمر Keeper `mntr` بسبب التنافس على الأقفال. [#99472](https://github.com/ClickHouse/ClickHouse/pull/99472) ([Antonio Andelic](https://github.com/antonio2368)).
* تقليل التنافس على الأقفال في dispatcher الخاص بـ Keeper عبر استدعاء دوال `callbacks` وتمرير طلبات القراءة خارج نطاق `mutex`، وإضافة حراس أقفال مُوصَّفة لأغراض الرصد. [#99751](https://github.com/ClickHouse/ClickHouse/pull/99751) ([Antonio Andelic](https://github.com/antonio2368)).
* التساهل مع غياب الحشو في نهاية آخر كتلة من ملفات Parquet. [#99857](https://github.com/ClickHouse/ClickHouse/pull/99857) ([Seva Potapov](https://github.com/seva-potapov)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* يُصلح كيفية حفظ هدف جدول Alias كتبعية DDL عندما لا يكون مؤهلًا بالكامل: إذ يُحفَظ الآن مع قاعدة بيانات جدول Alias بدلًا من قاعدة بيانات الجلسة. [#95175](https://github.com/ClickHouse/ClickHouse/pull/95175) ([Enric Calabuig](https://github.com/eclbg)).
* إصلاح النتيجة الخاطئة أو حدوث استثناء أثناء قراءة الأعمدة الفرعية لأعمدة ALIAS. [#95408](https://github.com/ClickHouse/ClickHouse/pull/95408) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح مشكلة العمود المفقود عند استخدام alias لمعرّف غير قياسي في JOIN مع analyzer القديم. يُصلح [#25594](https://github.com/ClickHouse/ClickHouse/issues/25594) و[#47288](https://github.com/ClickHouse/ClickHouse/issues/47288) و[#53263](https://github.com/ClickHouse/ClickHouse/issues/53263). [#95679](https://github.com/ClickHouse/ClickHouse/pull/95679) ([Zhigao Hong](https://github.com/zghong)).
* يُصلح تعطلًا في دوال لهجة Kusto `bin()` و`bin_at()` و`extract()` و`indexof()` عند تمرير وسيطات فارغة. [#95736](https://github.com/ClickHouse/ClickHouse/pull/95736) ([NeedmeFordev](https://github.com/spider-yamet)).
* يمنع تركيب local\_object\_storage (المستخدم في بحيرات البيانات فوق نظام الملفات المحلي وربما بواسطة LocalDisk) في أي مكان خارج user\_files\_path في clickhouse-client. [#96201](https://github.com/ClickHouse/ClickHouse/pull/96201) ([Daniil Ivanik](https://github.com/divanik)).
* في table engine ‏`DeltaLake`، أُصلح سباق منطقي عند تغيير إصدار اللقطة، وأزيلت عمليات إعادة تحميل اللقطة الثقيلة الزائدة عن الحاجة. [#96226](https://github.com/ClickHouse/ClickHouse/pull/96226) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح خطأ منطقي عند إرفاق part في MergeTree إذا وُجدت عدة عمليات إعادة تسمية متسلسلة بين الفصل والإرفاق. [#96351](https://github.com/ClickHouse/ClickHouse/pull/96351) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خلل كان يؤدي إلى تجاهل الإعدادات الصريحة المرسلة إلى جانب `compatibility` في الطلب نفسه بصمت إذا كانت قيمتها تطابق القيمة الافتراضية في الخادم. [#97078](https://github.com/ClickHouse/ClickHouse/pull/97078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح قيام العميل بالإبلاغ عن `NETWORK_ERROR` بدلًا من خطأ التحليل الفعلي (مع رقم الصف الصحيح) عندما تواجه عملية INSERT مع التحليل المتوازي بيانات غير صالحة. [#97339](https://github.com/ClickHouse/ClickHouse/pull/97339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم قدرة الدالة التجميعية `sumCount` على قراءة الحالات المُسلسلة الأقدم بعد إدخال `Nullable(Tuple)`. يُغلق [#97370](https://github.com/ClickHouse/ClickHouse/issues/97370). [#97502](https://github.com/ClickHouse/ClickHouse/pull/97502) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح استثناء في مقارنة tuple تتضمن عناصر من النوع `Nothing` (مثل المقارنة مع عناصر tuple من `NULL`) عند استخدامها مع `GROUPING SETS` و`ORDER BY`. [#97509](https://github.com/ClickHouse/ClickHouse/pull/97509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتساب `uncompressed_hash` غير الحتمي لأجزاء Compact في MergeTree عند استخدام عدة codecs للضغط، مما قد يتسبب في سلوك غير صحيح لإزالة التكرار. [#97522](https://github.com/ClickHouse/ClickHouse/pull/97522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي يتعلق بتيار مفقود أثناء INSERT SELECT مع JSON وbuckets في البيانات المشتركة. يُغلق [#97331](https://github.com/ClickHouse/ClickHouse/issues/97331). [#97523](https://github.com/ClickHouse/ClickHouse/pull/97523) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الإبلاغ الخاطئ عن استثناءات `MEMORY_LIMIT_EXCEEDED` على أنها `CORRUPTED_DATA` أثناء عمليات الدمج في SummingMergeTree وCoalescingMergeTree. [#97537](https://github.com/ClickHouse/ClickHouse/pull/97537) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح استثناء "Context has expired" في الاستعلامات الفرعية المترابطة التي تحتوي على دوال جداول مثل `url()`. [#97544](https://github.com/ClickHouse/ClickHouse/pull/97544) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناءات والسلوك غير الصحيح في `optimize_syntax_fuse_functions` مع الإسقاطات التجميعية، وأنواع Date، والحفاظ على أسماء الأعمدة. [#97545](https://github.com/ClickHouse/ClickHouse/pull/97545) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إزالة query rewrite غير الصحيح من `replaceRegexpOne` إلى `extract`، والذي كان يؤدي إلى نتائج خاطئة عندما لا يتطابق regexp؛ وكذلك إصلاح الاستثناء عند استخدام `replaceRegexpOne` مع `GROUP BY ... WITH CUBE` و`group_by_use_nulls=1`. [#97546](https://github.com/ClickHouse/ClickHouse/pull/97546) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعليق `DROP DATABASE` إلى أجل غير مسمى مع `database_atomic_wait_for_drop_and_detach_synchronously` عند إنهاء الاستعلام. [#97586](https://github.com/ClickHouse/ClickHouse/pull/97586) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم قدرة `KILL QUERY` على إنهاء الاستعلامات العالقة أثناء توليد `WITH FILL`، أو تحميل Dictionary عبر `dictGet`، أو `ALTER DELETE` مع `mutations_sync=1` على `ReplicatedMergeTree`. [#97589](https://github.com/ClickHouse/ClickHouse/pull/97589) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* كانت دالة الجدول `loop` تستدعي `inner_storage->read()` مباشرةً، متجاوزةً طبقة المفسّر التي تُطبَّق فيها row policies وامتيازات column-level وغيرها من فحوصات الأمان. وقد أتاح ذلك لمستخدم مقيَّد بواسطة row policies قراءة جميع الصفوف عبر `loop(table)` حتى عندما كان تنفيذ SELECT مباشر يُرجع صفوفًا معدومة. [#97682](https://github.com/ClickHouse/ClickHouse/pull/97682) ([pufit](https://github.com/pufit)).
* إصلاح partition pruning غير الصحيح في حالات استخدام DateTime64 الأسبق من حقبة يونكس مع الدالة `toDate()`. [#97746](https://github.com/ClickHouse/ClickHouse/pull/97746) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* بعد هذا التصحيح، ستُرجع `hasPartitionId` القيمة false إذا وُجد partition آخر ذو معرّف partition أعلى ضمن مجموعة data part. [#97748](https://github.com/ClickHouse/ClickHouse/pull/97748) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح الأعطال المحتملة أثناء قراءة granules الفارغة في shared data المتقدمة ضمن JSON. يُغلق [#97563](https://github.com/ClickHouse/ClickHouse/issues/97563). [#97778](https://github.com/ClickHouse/ClickHouse/pull/97778) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الخطأ `Cannot schedule a file` `LOGICAL_ERROR` عند تنفيذ `INSERT` على `Distributed` بسبب حالة تسابق بين `DROP` و`INSERT`. [#97822](https://github.com/ClickHouse/ClickHouse/pull/97822) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح crash/assert في ClickHouse server عند استدعاء `mapContainsKey/mapContainsKeyLike` مع skip index من النوع `tokenbf_v1`. [#97826](https://github.com/ClickHouse/ClickHouse/pull/97826) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إصلاح استثناءات LOGICAL\_ERROR الناتجة عن `LowCardinality` داخل الأنواع المركبة (`Variant` و`Dynamic` و`Tuple`) في `concatWithSeparator` و`format` والاستعلامات الفرعية في `IN` و`GLOBAL IN` وعمليات الربط مع runtime filters. [#97831](https://github.com/ClickHouse/ClickHouse/pull/97831) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح استثناء `LOGICAL_ERROR`، ‏`Chunk info was not set for chunk in MergingAggregatedTransform`، عند استخدام `ARRAY JOIN` مع دالة الجدول `merge()` عبر عدة جداول Distributed مع `GROUP BY`. [#97838](https://github.com/ClickHouse/ClickHouse/pull/97838) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطل الخادم (`std::terminate`) الناتج عن استثناء غير مُلتقط في destructor الخاص بـ HTTP connection pool عند بلوغ الحد الصارم لمجموعة الاتصالات في ظل Concurrency مرتفع. إذ كان الاستثناء `HTTP_CONNECTION_LIMIT_REACHED` قد يتسرب من `~PooledConnection` عند إعادة connection إلى الـ pool، مما يؤدي إلى `SIGABRT`. [#97850](https://github.com/ClickHouse/ClickHouse/pull/97850) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح نتيجة غير صحيحة عند استخدام الخوارزمية `grace_hash` مع عمليات join غير المتساوية، عندما يتعذر معالجة الكتلة اليسرى بالكامل بسبب قيود الحجم على ناتج join. [#97866](https://github.com/ClickHouse/ClickHouse/pull/97866) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح تراجع في كفاءة الأداء عند فحص metadata الخاصة بـ DeltaLake، أُدخل في [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686). [#97880](https://github.com/ClickHouse/ClickHouse/pull/97880) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح data race في عميل ZooKeeper بين sendThread وreceiveThread. [#97887](https://github.com/ClickHouse/ClickHouse/pull/97887) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح خلل كان يمنع استخدام CTE مع distributed insert selects. استكمال لـ [https://github.com/ClickHouse/ClickHouse/pull/87789](https://github.com/ClickHouse/ClickHouse/pull/87789). إغلاق [#95837](https://github.com/ClickHouse/ClickHouse/issues/95837). [#97889](https://github.com/ClickHouse/ClickHouse/pull/97889) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء صادر من `CachedOnDiskReadBufferFromFile::readBigAt`. إغلاق [#97325](https://github.com/ClickHouse/ClickHouse/issues/97325). [#97890](https://github.com/ClickHouse/ClickHouse/pull/97890) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح استثناء `LOGICAL_ERROR` في المحرك `Alias` مع materialized columns بسبب عدم تطابق الأعمدة. إغلاق [#97907](https://github.com/ClickHouse/ClickHouse/issues/97907). [#97921](https://github.com/ClickHouse/ClickHouse/pull/97921) ([Kai Zhu](https://github.com/nauu)).
* إصلاح فقدان بيانات Keeper بعد إعادة التشغيل عند استخدام Azure Blob Storage مع metadata من نوع `s3_plain` لتخزين السجل. [#97987](https://github.com/ClickHouse/ClickHouse/pull/97987) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح الترجمة البرمجية الخاطئة من JIT للدالة `sign` لأنواع الأعداد الصحيحة الأوسع من `Int8` — إذ كانت القيم خارج النطاق -128..127 قد تنتج إشارة غير صحيحة. [#98012](https://github.com/ClickHouse/ClickHouse/pull/98012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `DUPLICATE_COLUMN` وظهور قيم NULL صامتة عند قراءة جداول Delta Lake التي تستخدم وضع تعيين الأعمدة "name" مع حقول struct التي تحتوي أسماؤها على نقاط (مثل ``STRUCT<`a.foo`: STRING, `b.foo`: STRING>``). [#98013](https://github.com/ClickHouse/ClickHouse/pull/98013) ([Caio Ishizaka Costa](https://github.com/ch-caioishizaka)).
* إصلاح mutation بعد lightweight update وsecondary indices. [#98044](https://github.com/ClickHouse/ClickHouse/pull/98044) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح نتيجة غير صحيحة لاستعلامات FINAL عند الجمع بين skip indexes الخاصة بالمفتاح الأساسي وتلك غير المرتبطة به. [#98097](https://github.com/ClickHouse/ClickHouse/pull/98097) ([Raúl Marín](https://github.com/Algunenano)).
* فرض التحقق من READ ON FILE على file() scalar وDESCRIBE TABLE file(). [#98115](https://github.com/ClickHouse/ClickHouse/pull/98115) ([Nikolay Degterinsky](https://github.com/evillique)).
* إصلاح تعطل كان يحدث عند الاستعلام عن الملفات باستخدام نمط glob (مثل `file('dir/**', 'LineAsString')`)، إذ كان يُطلق استثناءً غير معالَج من نظام الملفات (`STD_EXCEPTION`) إذا كان الدليل يحتوي على رابط رمزي غير صالح. وأصبحت هذه الروابط الرمزية غير الصالحة الآن تُتخطى بصمت، ويُرجع الاستعلام نتائج جميع الملفات الصالحة. [#98143](https://github.com/ClickHouse/ClickHouse/pull/98143) ([Mark Andreev](https://github.com/mrk-andreev)).
* إصلاح خطأ segfault في تحسين خطة الاستعلام عند تحويل outer join إلى inner join باستخدام `arrayJoin` في تعبير التصفية. [#98147](https://github.com/ClickHouse/ClickHouse/pull/98147) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم عمل تنسيق `ProtobufList` مع Kafka engine بسبب عدم إعادة ضبط حالة القراءة بين الرسائل. [#98151](https://github.com/ClickHouse/ClickHouse/pull/98151) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي في analyzer\_compatibility\_join\_using\_top\_level\_identifier و ARRAY JOIN، مع إغلاق [#98164](https://github.com/ClickHouse/ClickHouse/issues/98164). [#98179](https://github.com/ClickHouse/ClickHouse/pull/98179) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تعيين المكوّن `Watch` لاستجابات watch في `aggregated_zookeeper_log` بدلًا من تركه فارغًا. [#98202](https://github.com/ClickHouse/ClickHouse/pull/98202) ([Antonio Andelic](https://github.com/antonio2368)).
* إذا لم تكن أعمدة مفتاح التقسيم مشمولة ضمن مفتاح الفرز، فقد يؤدي partition pruning، بشكل غير صحيح، إلى تخطي partitions تحتوي على rows كان ينبغي أن "تفوز" أثناء إزالة التكرار في FINAL. [#98242](https://github.com/ClickHouse/ClickHouse/pull/98242) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح الخطأ المنطقي "Bad cast from type DB::ColumnConst to DB::ColumnArray" في `kql_array_sort_asc`/`kql_array_sort_desc` عند استدعائهما باستخدام معاملات Array ثابتة. [#98251](https://github.com/ClickHouse/ClickHouse/pull/98251) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح وصول خارج الحدود في `ColumnConst::getExtremes` كان قد يتسبب في تعطل عند تفعيل `extremes = 1`. [#98263](https://github.com/ClickHouse/ClickHouse/pull/98263) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال حدوث حالة توقف تام عندما تعمل عمليتا `MOVE PARTITION` متزامنتان على الزوج نفسه من الجداول ولكن في اتجاهين متعاكسين. [#98264](https://github.com/ClickHouse/ClickHouse/pull/98264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يُرجع خادم HTTP الآن رسالة خطأ في body الاستجابة لردود 400 Bad Request الناتجة عن headers غير سليمة، بدلًا من body فارغ. [#98268](https://github.com/ClickHouse/ClickHouse/pull/98268) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح نتائج غير صحيحة مع distributed index analysis (ميزة تجريبية) وquery condition cache. [#98269](https://github.com/ClickHouse/ClickHouse/pull/98269) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح استثناء LOGICAL\_ERROR "Invalid binary search result in `MergeTreeSetIndex`" الناتج عن تحويل `toDate` على أعمدة المفتاح عندما تتجاوز البيانات الحد 65535. [#98276](https://github.com/ClickHouse/ClickHouse/pull/98276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` عندما يُستبدل RIGHT JOIN مغلف داخل CROSS JOIN بواسطة تحسين `query_plan_join_swap_table` في مسار الشيفرة القديم لخطوة join. [#98279](https://github.com/ClickHouse/ClickHouse/pull/98279) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* التحقق من صحة البيانات التالفة أثناء إلغاء التسلسل لـ `DDSketch` لمنع حالات `segfault` والاستثناءات والحلقات اللانهائية ونفاد الذاكرة عند قراءة حالات دوال التجميع `quantilesDD` التالفة. [#98284](https://github.com/ClickHouse/ClickHouse/pull/98284) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح LOGICAL\_ERROR "Trying to execute PLACEHOLDER action" عند الرجوع إلى الأعمدة المترابطة من الاستعلامات الخارجية داخل دوال lambda مثل `arrayMap`. [#98285](https://github.com/ClickHouse/ClickHouse/pull/98285) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء الخطأ المنطقي في `caseWithExpression` عندما يتضمن تعبير `CASE` ‎`materialize(NULL)` أو argumentات أخرى من النوع `Nullable(Nothing)`. [#98290](https://github.com/ClickHouse/ClickHouse/pull/98290) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء التحويل غير الصحيح عند التصفية على العمود الافتراضي `_table` في table function ‏`merge`. [#98291](https://github.com/ClickHouse/ClickHouse/pull/98291) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل متقطع في إزالة التكرار، إذ كانت عمليات الإدراج المعاد تُزال تكراراتها بشكل غير صحيح بسبب عدم اتساق ترتيب التنظيف بين دليلي ZooKeeper ‏`blocks/` و`deduplication_hashes/`. [#98293](https://github.com/ClickHouse/ClickHouse/pull/98293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء عند استخدام `ORDER BY ... WITH FILL` مع `LIMIT BY` في الوقت نفسه. [#98361](https://github.com/ClickHouse/ClickHouse/pull/98361) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تلف صامت للبيانات عند إدراج عمود `Date` من Parquet/Arrow في عمود `Enum` — إذ يرفض الآن تحويل النوع غير المتوافق على نحو صحيح بدلًا من تخزين قيم enum غير صالحة. [#98364](https://github.com/ClickHouse/ClickHouse/pull/98364) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء عند قراءة ملف Arrow يحتوي على عمود `Array` إلى جدول يحتوي على عمود `Nested`. [#98365](https://github.com/ClickHouse/ClickHouse/pull/98365) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعلّق mutations الخاصة بـ `MATERIALIZE INDEX` و`MATERIALIZE PROJECTION` عندما يُحذف الفهرس أو الإسقاط قبل اكتمال mutation. [#98369](https://github.com/ClickHouse/ClickHouse/pull/98369) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء عند القراءة من `Nullable(Tuple(...))` عندما يتعارض اسم أحد عناصر `Tuple` مع العمود الفرعي `null` الخاص بـ `Nullable`. [#98372](https://github.com/ClickHouse/ClickHouse/pull/98372) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء "Column ... query tree node does not have valid source node" عند تنفيذ joining لجدول `Merge` (يلف جدول `Distributed`) مع جدول آخر. [#98376](https://github.com/ClickHouse/ClickHouse/pull/98376) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح التحويل غير الصحيح من Parquet ‏`Bool` إلى `FixedString` في القارئ native ‏V3، والذي كان ينتج raw bytes بدلًا من التمثيل النصي. [#98378](https://github.com/ClickHouse/ClickHouse/pull/98378) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `tryGetColumnDescription` لتصفية الأعمدة الفرعية بحسب نوع العمود الأصل، بما يتسق مع أساليب lookup الأخرى للأعمدة. [#98391](https://github.com/ClickHouse/ClickHouse/pull/98391) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قبول credentials المشفرة بـ base64 من دون padding في HTTP Basic Auth. بعض عملاء HTTP يحذفون padding اللاحق `=` في ترويسة `Authorization: Basic`، وكان هذا يتسبب سابقًا في فشل authentication. [#98392](https://github.com/ClickHouse/ClickHouse/pull/98392) ([Amos Bird](https://github.com/amosbird)).
* إصلاح نتائج **partition pruning** غير الصحيحة بعد **دمج** الأجزاء التي تحتوي على أعمدة **partition key** من النوع `Nullable`، وكان السبب حدود **min-max index** الخاطئة. [#98405](https://github.com/ClickHouse/ClickHouse/pull/98405) ([Amos Bird](https://github.com/amosbird)).
* إصلاح **exception** نادر في **executor** الخاص بـ **pipeline**، قد يظهر على شكل `Received signal 6` (في **builds** الخاصة بـ **debug** فقط)، عندما يتزامن توسيع **pipeline** مع إلغاء **query**. [#98428](https://github.com/ClickHouse/ClickHouse/pull/98428) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** ‏"Column identifier is already registered" عند استخدام `count_distinct_optimization` مع **clause** ‏`QUALIFY`. [#98433](https://github.com/ClickHouse/ClickHouse/pull/98433) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** ‏"cannot be inside Nullable type" عند استخدام `IN`/`NOT IN` مع **arguments** لأعمدة من النوع `LowCardinality` (مثل `a NOT IN (b)` حيث تكون `a` من النوع `LowCardinality(String)`). [#98443](https://github.com/ClickHouse/ClickHouse/pull/98443) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** ‏"Pipeline stuck" في **joins** ‏`full_sorting_merge` الناتج عن حالة **deadlock** في `PingPongProcessor` عندما أنشأ تحسين `FilterBySetOnTheFly` تبعية دائرية مع `MergeJoinTransform`. [#98454](https://github.com/ClickHouse/ClickHouse/pull/98454) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** ‏`LOGICAL_ERROR` ‏"Projection cannot increase the number of rows in a block" عند **دمج** الأجزاء التي تحتوي على TTL يحذف جميع **rows** و**projection** تجميعي مع مفتاح `GROUP BY` ثابت. [#98458](https://github.com/ClickHouse/ClickHouse/pull/98458) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** من نوع **logical error** عند استخدام `CROSS JOIN` مع `INNER JOIN USING` معًا. [#98459](https://github.com/ClickHouse/ClickHouse/pull/98459) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إلغاء مرجعية مؤشر **null** في `dictGetOrDefault` عندما تكون **argument** الخاصة بالمفتاح من النوع `Nullable`. [#98460](https://github.com/ClickHouse/ClickHouse/pull/98460) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** في **queries** ‏`DISTINCT` عند استخدام **projections** تجميعية، وعندما يتسبب `materialize` في اختلافات في النوع `LowCardinality` بين **query** و**projection**. [#98462](https://github.com/ClickHouse/ClickHouse/pull/98462) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** ‏LOGICAL\_ERROR عند استخدام `arrayJoin` داخل **filter expression** مع `OUTER JOIN` مع تفعيل `join_use_nulls`. [#98464](https://github.com/ClickHouse/ClickHouse/pull/98464) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح **exception** من نوع **logical error** ‏"Replica decided to read in WithOrder mode, not in ReverseOrder" عند استخدام **parallel replicas** مع `optimize_aggregation_in_order`. [#98467](https://github.com/ClickHouse/ClickHouse/pull/98467) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح مشكلة قيام ClickHouse Keeper بقطع اتصال عملاء Java ZooKeeper بعد طلب `addWatch`. يتوقع **Java client** وجود **body** من `ErrorResponse` بحجم 4 بايت في استجابة `addWatch`، لكن Keeper كان يرسل **body** فارغًا، مما تسبب في `EOFException` وقطع **session**. وقد أدى ذلك إلى تعطيل `CuratorCache` في Apache Curator وأي تطبيق Java يستخدم **watches** دائمة. يُصلح هذا [#98079](https://github.com/ClickHouse/ClickHouse/issues/98079). [#98499](https://github.com/ClickHouse/ClickHouse/pull/98499) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح عدم انخفاض مقاييس Keeper `zk_followers` و`zk_synced_followers` عند تعطل follower. وإضافة المقاييس الجديدة `zk_learners` و`zk_synced_non_voting_followers` إلى الأمر `mntr` ذي الأحرف الأربعة. يصلح [#54173](https://github.com/ClickHouse/ClickHouse/issues/54173). [#98504](https://github.com/ClickHouse/ClickHouse/pull/98504) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح استثناء LOGICAL\_ERROR في `renameAndCommitEmptyParts`، والذي كان يمكن أن يحدث عند تشغيل `TRUNCATE TABLE` بالتزامن مع `OPTIMIZE TABLE` باستخدام معاملات MergeTree. [#98508](https://github.com/ClickHouse/ClickHouse/pull/98508) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تجاهل منفذ raft الآمن في Keeper للقيمتَين `cipherList` و`dhParamsFile` من إعدادات `openSSL`، إذ كان يستخدم القيم الافتراضية دائمًا بدلًا من القيم التي يحددها المستخدم. يغلق [#51188](https://github.com/ClickHouse/ClickHouse/issues/51188). [#98509](https://github.com/ClickHouse/ClickHouse/pull/98509) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح رسائل السجل المضللة في Keeper مثل "Receiving request for session X took 9963 ms"، حيث كان الوقت المُبلّغ عنه يُقضى فعليًا في انتظار خامل داخل `poll()` بين نبضات القلب، لا في تنفيذ العملية نفسها. يصلح [#79026](https://github.com/ClickHouse/ClickHouse/issues/79026). [#98510](https://github.com/ClickHouse/ClickHouse/pull/98510) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح نتيجة غير متوقعة مع read\_in\_order\_use\_virtual\_row والدوال الرتيبة. يغلق [#97837](https://github.com/ClickHouse/ClickHouse/issues/97837). [#98514](https://github.com/ClickHouse/ClickHouse/pull/98514) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح `LOGICAL_ERROR: Not-ready Set is passed as the second argument for function 'in'` عند استخدام `PREWHERE` مع subquery لـ `IN` على جداول MergeTree. [#98522](https://github.com/ClickHouse/ClickHouse/pull/98522) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح اتصالات Keeper عبر TCP التي كانت تمنع إيقاف server بسلاسة بسبب عدم الاستجابة لإشارة الإيقاف. [#98525](https://github.com/ClickHouse/ClickHouse/pull/98525) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء "Sorting column wasn't found in the ActionsDAG's outputs" عند تمكين `query_plan_convert_join_to_in` مع `query_plan_merge_expressions = 0`. [#98526](https://github.com/ClickHouse/ClickHouse/pull/98526) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل MongoDB dictionary source عند استخدام named collections. يغلق [#97840](https://github.com/ClickHouse/ClickHouse/issues/97840). [#98528](https://github.com/ClickHouse/ClickHouse/pull/98528) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح LOGICAL\_ERROR عندما يكون Identifier فارغًا بعد substitution للمعلمات. [#98530](https://github.com/ClickHouse/ClickHouse/pull/98530) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
* إصلاح حالة deadlock في pipeline عند استخدام `sort_overflow_mode = 'break'` مع window functions. [#98543](https://github.com/ClickHouse/ClickHouse/pull/98543) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح rollback للعمود في محرك Buffer أثناء التعامل مع استثناء عند append لكتلة جديدة. كان المنطق السابق قد يؤدي إلى تلف in-memory state للأعمدة. [#98551](https://github.com/ClickHouse/ClickHouse/pull/98551) ([Pavel Kruglov](https://github.com/Avogar)).
* تم إصلاح الاستثناء `Bad cast from type ColumnConst to ColumnDynamic` في المقارنة المتوافقة مع NULL (`<=>` / `IS NOT DISTINCT FROM`) عند استخدام أعمدة `Dynamic` أو `Variant` الثابتة مع `NULL`. كما تم إصلاح `IS DISTINCT FROM` عند مقارنة `Dynamic`/`Variant` مع `NULL`، إذ كانت تُرجع 0 دائمًا بشكل غير صحيح. [#98553](https://github.com/ClickHouse/ClickHouse/pull/98553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح استخدام text index مع skip indexes الأخرى. سابقًا، كان يمكن أن تظهر أخطاء منطقية مثل "Trying to get non-existing mark" عندما يستخدم filter الاستعلام text index مع skip indexes عادية أخرى في الوقت نفسه. [#98555](https://github.com/ClickHouse/ClickHouse/pull/98555) ([Anton Popov](https://github.com/CurtizJ)).
* تم إصلاح الخطأ المنطقي "TABLE\_FUNCTION is not allowed in expression context" عندما تظهر table function ذات alias عدة مرات ضمن نطاق query نفسه (على سبيل المثال، في كلٍّ من clauses `PREWHERE` و`QUALIFY`). [#98557](https://github.com/ClickHouse/ClickHouse/pull/98557) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح distributed index analysis مع expressions (وليس الأعمدة فقط) في PK، وهو ما كان يؤدي إلى انعدام Filtering للحبيبات الزائدة على replicas البعيدة. [#98561](https://github.com/ClickHouse/ClickHouse/pull/98561) ([Azat Khuzhin](https://github.com/azat)).
* تم منع dropping العمود عندما تكون subcolumns التابعة له مستخدمة في expressions من نوع default/alias لأعمدة أخرى، مع استخدام analyzer لتعبيرات default عند alter drop column. [#98569](https://github.com/ClickHouse/ClickHouse/pull/98569) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تم إصلاح إعادة محاولة طلبات S3 بشكل غير صحيح عند حدوث أخطاء غير قابلة لإعادة المحاولة (بما في ذلك `HTTP_CONNECTION_LIMIT_REACHED`) في HTTP client. [#98598](https://github.com/ClickHouse/ClickHouse/pull/98598) ([Sema Checherinda](https://github.com/CheSema)).
* تم إصلاح overflow عشري عند partition pruning مع DateTime64. [#98628](https://github.com/ClickHouse/ClickHouse/pull/98628) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تم إصلاح خطأين في ترجمة expression باستخدام JIT: خطأ نسخ ولصق في type checking لـ `nativeCast` جعل فروع cast من عدد صحيح إلى عدد صحيح ومن float إلى float غير قابلة للوصول، وتمرير `nullptr` TargetMachine غير صحيح إلى LLVM `PassBuilder`، مما منع تسجيل passes التحسين الخاصة بالهدف. [#98660](https://github.com/ClickHouse/ClickHouse/pull/98660) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح تجاوز RBAC كان يسمح للمستخدمين بتنفيذ DESCRIBE لأي table عبر `remote()` أو `remoteSecure()` أو `cluster()` أو `clusterAllReplicas()` عند توجيهها إلى localhost، من دون الحاجة إلى privilege ‏`SHOW_COLUMNS`. [#98669](https://github.com/ClickHouse/ClickHouse/pull/98669) ([pufit](https://github.com/pufit)).
* تم إصلاح الاستثناء `BAD_GET` ونتائج query غير الصحيحة عندما يُستخدم expression غير Boolean (على سبيل المثال `sin(col)`) في كلٍّ من WHERE وSELECT مع JOIN، بسبب إفساد تحسين دفع filter إلى الأسفل لعُقد DAG المشتركة. [#98681](https://github.com/ClickHouse/ClickHouse/pull/98681) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح LOGICAL\_ERROR ‏"Replica decided to read in Default mode, not in WithOrder" عند استخدام `read_in_order_through_join` مع parallel replicas. [#98685](https://github.com/ClickHouse/ClickHouse/pull/98685) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح الاستثناء "Bad cast from type `DB::TableFunctionNode` to `DB::QueryNode`" عند استخدام table function ‏`input` كـ argument لـ `remote`. [#98694](https://github.com/ClickHouse/ClickHouse/pull/98694) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح إعادة إحياء Outdated data parts الناتجة عن تنظيف empty covering parts بشكل غير صحيح. [#98698](https://github.com/ClickHouse/ClickHouse/pull/98698) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح استثناء في `LogicalExpressionOptimizerPass` عندما تُرجع دالة منطقية ضمن مقارنة `equals` نوع `Variant`. [#98712](https://github.com/ClickHouse/ClickHouse/pull/98712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح قيام `parseDateTimeBestEffort` بتحليل الكلمات التي تبدأ ببادئات الأشهر أو أيام الأسبوع بشكل غير صحيح. يُغلق [#97965](https://github.com/ClickHouse/ClickHouse/issues/97965). [#98742](https://github.com/ClickHouse/ClickHouse/pull/98742) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح استثناء `UNKNOWN_IDENTIFIER` عند الاستعلام عن table function ‏`merge()` أو محرك `Merge` على جداول تحتوي على JSON columns ذات parameters مختلفة (مثل حقول `SKIP` مختلفة) وأعمدة ALIAS تشير إلى مسارات JSON فرعية، مع تمكين analyzer الجديد. يُغلق [#97812](https://github.com/ClickHouse/ClickHouse/issues/97812). [#98753](https://github.com/ClickHouse/ClickHouse/pull/98753) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تحسين `optimize_skip_unused_shards` مع analyzer في حال استخدام تخزين `Distributed` داخل `View`. [#98754](https://github.com/ClickHouse/ClickHouse/pull/98754) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح الوصول إلى subcolumn في Tuple بالاسم (مثل `SELECT x.a` لـ `Tuple(a UUID, b Int32)`) في external tables المُمرَّرة عبر `--external` في `clickhouse-client`. يُغلق [#96925](https://github.com/ClickHouse/ClickHouse/issues/96925). [#98755](https://github.com/ClickHouse/ClickHouse/pull/98755) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح استثناء `reverseUTF8` عند إدخال UTF-8 غير صالح (مبتور). [#98770](https://github.com/ClickHouse/ClickHouse/pull/98770) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح اكتشاف مدى فائدة skip index من نوع Set مع OR مع false (أي or(x, 0)) بوصفه predicate. [#98776](https://github.com/ClickHouse/ClickHouse/pull/98776) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح استثناء `LOGICAL_ERROR` (عدم تطابق بنية block في `removeUnusedColumns`) الذي قد يحدث مع `FINAL` + `PREWHERE` + expression ثابتة في `WHERE` + aggregateات لا تعتمد على الأعمدة مثل `count()`. [#98778](https://github.com/ClickHouse/ClickHouse/pull/98778) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جعل entries ‏`system.trace_log` الخاصة بإعادة التحميل التلقائي لـ Dictionaries في ClickHouse تحتوي على Query id غير فارغ. [#98784](https://github.com/ClickHouse/ClickHouse/pull/98784) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح عطل كان قد يؤدي إلى إلغاء مرجع مؤشر null في system tables التي أُنشئت بين لحظة أخذ snapshot للجداول في استدعاء `IDatabaseTablesIterator::table()` وبين تغيّر الجداول في thread أخرى أثناء التكرار اللاحق. [#98792](https://github.com/ClickHouse/ClickHouse/pull/98792) ([Grant Holly](https://github.com/grantholly-clickhouse)).
* إصلاح عدم قيام `SYSTEM START REPLICATED VIEW` بإيقاظ مهمة refresh. [#98797](https://github.com/ClickHouse/ClickHouse/pull/98797) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح الاستثناء "Inconsistent table names" عند استخدام table function ‏`view()` التي تحتوي على JOINs داخل JOIN آخر (فقط مع analyzer القديم). [#98809](https://github.com/ClickHouse/ClickHouse/pull/98809) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح ضبط RLIMIT\_SIGPENDING (عبر pending\_signals). [#98829](https://github.com/ClickHouse/ClickHouse/pull/98829) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الاستثناء عند تركيب `loop` مع cluster table functions. [#98860](https://github.com/ClickHouse/ClickHouse/pull/98860) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* كانت `LEFT ANTI JOIN` التي تتضمن عدة أعمدة لمفاتيح الربط تُرجع نتائج غير صحيحة عندما يكون `enable_join_runtime_filters=1` (وهو الإعداد الافتراضي). [#98871](https://github.com/ClickHouse/ClickHouse/pull/98871) ([Alexander Gololobov](https://github.com/davenger)).
* إصلاح `WITH FILL STALENESS` الذي كان يُنتج صفوفًا إضافية مُعبأة عند قراءة البيانات على عدة chunks (على سبيل المثال، مع قيمة صغيرة لـ `index_granularity`). [#98895](https://github.com/ClickHouse/ClickHouse/pull/98895) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الخطأ `LOGICAL_ERROR` التالي: "RPNBuilderFunctionTreeNode has A arguments, attempted to get argument at index B". [#98900](https://github.com/ClickHouse/ClickHouse/pull/98900) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح انحراف تتبّع الذاكرة الناتج عن عدم التراجع عن allocations الفاشلة، والسلوك غير المعرّف لـ `nallocx(0)`، وخطأ زيادة بمقدار واحد في تتبّع الذروة العامة. كما جرى توسيع التتبّع ليشمل ring buffers الخاصة بـ `io_uring`. [#98915](https://github.com/ClickHouse/ClickHouse/pull/98915) ([Antonio Andelic](https://github.com/antonio2368)).
* منع Attach إلى جداول data lake المحلية خارج مسارات المستخدم، وليس فقط منع إنشائها. [#98936](https://github.com/ClickHouse/ClickHouse/pull/98936) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح race condition كان يمكن أن يتسبب في ظهور الاستثناء "ReadBuffer is canceled" في queries التي تستخدم `urlCluster` أو cluster table functions مشابهة. [#98955](https://github.com/ClickHouse/ClickHouse/pull/98955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` في Financial functions (`financialNetPresentValue`, `financialInternalRateOfReturn`، وغيرها) عند تمرير arguments من النوع `BFloat16`. [#98958](https://github.com/ClickHouse/ClickHouse/pull/98958) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم تطبيق skip indexes (وشروط primary key) على أعمدة ALIAS عند تعطيل دمج expression في query plan (`query_plan_merge_expressions = 0` أو `query_plan_enable_optimizations = 0`). [#98960](https://github.com/ClickHouse/ClickHouse/pull/98960) ([Peng](https://github.com/fastio)).
* زيادة `InsertQuery` ProfileEvent من أجل async inserts. يغلق [#98626](https://github.com/ClickHouse/ClickHouse/issues/98626). [#98962](https://github.com/ClickHouse/ClickHouse/pull/98962) ([Narasimha Pakeer](https://github.com/npakeer)).
* إصلاح الاستثناء "Inconsistent KeyCondition behavior" في builds التصحيح عندما يحتوي primary key على قيم float من نوع NaN، وذلك بجعل `accurateLess` و`accurateEquals` يتعاملان مع NaN بصورة متسقة مع ترتيب الفرز في ClickHouse. يغلق [#98075](https://github.com/ClickHouse/ClickHouse/issues/98075). [#98964](https://github.com/ClickHouse/ClickHouse/pull/98964) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لم يعد `SummingMergeTree` يجمع أعمدة Bool (وأنواع domain الأخرى). وتُحفظ قيم Bool كما هي بدلًا من جمعها حسابيًا. [#98976](https://github.com/ClickHouse/ClickHouse/pull/98976) ([Yash ](https://github.com/Onyx2406)).
* إصلاح الاستثناء Scalar doesn't exist الذي كان يحدث عند الاستعلام عن shard بعيد مع ضبط `optimize_const_name_size` وتعيين `enable_scalar_subquery_optimization` = 0. إذ لم تكن الثوابت الكبيرة المستبدلة بمراجع `__getScalar` في query البعيد تُرسَل إلى الـ shard، مما كان يؤدي إلى فشل query. [#98979](https://github.com/ClickHouse/ClickHouse/pull/98979) ([andriibeee](https://github.com/andriibeee)).
* إصلاح `NOT_FOUND_COLUMN_IN_BLOCK` في بعض الاستعلامات التي تستخدم `GROUP BY` وتعبيرات تتضمن بحثًا عكسيًا في Dictionary، ومقارنات لتحويل `Date/DateTime`، ومقارنات tuple. يغلق [#98888](https://github.com/ClickHouse/ClickHouse/issues/98888). [#98980](https://github.com/ClickHouse/ClickHouse/pull/98980) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح سلوك غير معرّف (إلغاء إشارة مرجع لمؤشر فارغ) عند تعديل عمود version/sign/is\_deleted إلى `EPHEMERAL` أو `ALIAS` في محركات MergeTree. وأصبحت هذه التعديلات تُرفَض الآن على نحو صحيح. [#98985](https://github.com/ClickHouse/ClickHouse/pull/98985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم إصلاح مشكلة كانت تتسبب في أن `system.grants` لا تُدرج معلمات regular expression الخاصة بامتيازات `URL` و`S3` في العمود `access_object`. [#98987](https://github.com/ClickHouse/ClickHouse/pull/98987) ([DQ](https://github.com/il9ue)).
* تم إصلاح قراءات Iceberg BigLake: أصبحت بيانات اعتماد ADC تُمرَّر الآن إلى عميل GCS S3 (ما يعالج أخطاء 403)، وتُشفَّر بيانات اعتماد OAuth2 بترميز URL قبل إرسالها (ما يعالج حالات فشل المصادقة للرموز المميزة التي تحتوي على محارف خاصة)، ولم يعد اجتياز مساحة الأسماء يتوقف عند استجابات BigLake HTTP 400. [#98998](https://github.com/ClickHouse/ClickHouse/pull/98998) ([Nikita Fomichev](https://github.com/fm4v)).
* تم إصلاح فشل `clickhouse-client` في تبديل timezone عندما يستخدم متغير البيئة `TZ` صيغة file path الخاصة بـ POSIX (مثل `TZ=:/etc/localtime`). [#99000](https://github.com/ClickHouse/ClickHouse/pull/99000) ([Yash ](https://github.com/Onyx2406)).
* إصلاح تقليم غير صحيح أو أقل فاعلية عند استخدام `startsWith` أو `LIKE` أو `NOT LIKE` مع عمود `FixedString`. بالإضافة إلى ذلك، يمكن الآن لدالة التحويل من `FixedString` إلى `String` تقليم granules عند تطبيقها على Key column. يغلق [#98940](https://github.com/ClickHouse/ClickHouse/issues/98940). [#99001](https://github.com/ClickHouse/ClickHouse/pull/99001) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تم إصلاح `windowFunnel` مع `strict_deduplication`، إذ كان يعيد مستوى غير صحيح عند مصادفة حدث مكرر. [#99003](https://github.com/ClickHouse/ClickHouse/pull/99003) ([Yash ](https://github.com/Onyx2406)).
* إصلاح خطأ كان يتسبب في تجاهل EXISTS لعبارتي `LIMIT` و`OFFSET` في الاستعلامات الفرعية، ما يؤدي إلى نتائج غير صحيحة عندما لا يُرجع الاستعلام الفرعي أي صفوف بسبب offset أو limit صفري. يغلق [#88722](https://github.com/ClickHouse/ClickHouse/issues/88722). [#99005](https://github.com/ClickHouse/ClickHouse/pull/99005) ([andriibeee](https://github.com/andriibeee)).
* إصلاح استثناء "Block structure mismatch" عندما تواجه عملية تحسين دفع التصفية إلى الأسفل تعبير AND يُختصر إلى قيمة ثابتة مع `GROUPING SETS`. [#99010](https://github.com/ClickHouse/ClickHouse/pull/99010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء عند قراءة patch parts (التحديثات الخفيفة) من دون العمود `_part_offset` في query plan. [#99023](https://github.com/ClickHouse/ClickHouse/pull/99023) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استعلام مثل `SELECT * FROM table WHERE pk_id = ''` حيث يكون `pk_id` هو primary key ومن النوع `String` سيستخدم الآن فهرس primary key على نحو صحيح لتصفية granules. [#99027](https://github.com/ClickHouse/ClickHouse/pull/99027) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إصلاح استثناء `DEPENDENCIES_NOT_FOUND` في Kafka engine عندما تكون materialized view في حالة detached بينما يقوم background thread ببث streaming data. [#99028](https://github.com/ClickHouse/ClickHouse/pull/99028) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء الذي يحدث عند إنشاء جدول يحتوي على عمود `EPHEMERAL` يحمل الاسم نفسه لعمود افتراضي (مثل `_part_offset`). [#99031](https://github.com/ClickHouse/ClickHouse/pull/99031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الرسالة المضللة "inflate failed: buffer error" عند قراءة ملفات مضغوطة غير موجودة عبر دالة الجدول `url()` باستخدام أنماط glob. تُرجع الآن نتيجة فارغة كما هو متوقع عند تمكين `http_skip_not_found_url_for_globs`. [#99034](https://github.com/ClickHouse/ClickHouse/pull/99034) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل الخادم (std::terminate) عند تنفيذ `ALTER TABLE ... DROP PART` على `patch part` بعد تغيير في المخطط (مثل ADD COLUMN). كان التعطل ناتجًا عن غياب أعمدة النظام (`_part`) من البيانات الوصفية لـ `coverage part` الفارغ، مما أدى إلى استثناء غير ملتقط داخل `NOEXCEPT_SCOPE`. [#99036](https://github.com/ClickHouse/ClickHouse/pull/99036) ([Peng](https://github.com/fastio)).
* كان من الممكن أن تتعطل عملية خادم ClickHouse إذا طُرح استثناء لتجاوز حد الذاكرة أثناء *قراءة من قرص مخزنة مؤقتًا*. وقد أُصلح ذلك الآن. [#99042](https://github.com/ClickHouse/ClickHouse/pull/99042) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إصلاح `LOGICAL_ERROR` عند الاستعلام عن جدول يحتوي على كلٍّ من ROW POLICY وعمود ALIAS باستخدام `dictGet`. كانت المشكلة ناتجة عن الوصول المبكر إلى تعبير الجدول أثناء تحليل عمود ALIAS في المحلل الجديد. [#99065](https://github.com/ClickHouse/ClickHouse/pull/99065) ([Peng](https://github.com/fastio)).
* إصلاح خطأ تجاوز الحدود عند محاولة المستخدم الاستعلام عن الأعمدة الافتراضية فقط من جدول Iceberg مع Avro format للبيانات. هذه حالة نادرة جدًا، لذا لا نعدّها حرجة. يُصلح [#88238](https://github.com/ClickHouse/ClickHouse/issues/88238). [#99080](https://github.com/ClickHouse/ClickHouse/pull/99080) ([alesapin](https://github.com/alesapin)).
* إصلاح segfault في CTE递归 مع `remote()` + `view()`. [#99081](https://github.com/ClickHouse/ClickHouse/pull/99081) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تخطي تحليل الفهرس الإضافي غير الضروري عند تطبيق تحسين read-in-order. [#99084](https://github.com/ClickHouse/ClickHouse/pull/99084) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح تعطل ناتج عن استثناء تجاوز حد الذاكرة طُرح أثناء تطبيق `patch part`. [#99086](https://github.com/ClickHouse/ClickHouse/pull/99086) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح تأكيد debug في `DDLWorker` كان سببه تقادم `first_failed_task_name` بعد حذف إدخال ZooKeeper أثناء استعادة إعادة التهيئة. [#99099](https://github.com/ClickHouse/ClickHouse/pull/99099) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح إعادة بناء الفهارس النصية أثناء عمليات الدمج مع TTL. [#99107](https://github.com/ClickHouse/ClickHouse/pull/99107) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح تعطل في استعلام `ALTER TABLE ... REMOVE SETTINGS` لمحرك جدول Iceberg. يُصلح [#86330](https://github.com/ClickHouse/ClickHouse/issues/86330). [#99108](https://github.com/ClickHouse/ClickHouse/pull/99108) ([alesapin](https://github.com/alesapin)).
* إصلاح خلل في تحسين `query_plan_convert_any_join_to_semi_or_anti_join` كان يُرجع نتيجة غير صحيحة للصفوف غير المتطابقة. ذو صلة: [https://github.com/ClickHouse/ClickHouse/pull/95995](https://github.com/ClickHouse/ClickHouse/pull/95995). [#99112](https://github.com/ClickHouse/ClickHouse/pull/99112) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح استثناء `LOGICAL_ERROR` في `ASTColumnsExceptTransformer::transform`. [#99119](https://github.com/ClickHouse/ClickHouse/pull/99119) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح تجاوز RBAC الذي كان يتيح للمستخدمين الحصول على بنية الجدول عبر `DESCRIBE TABLE` أو `CREATE TABLE AS` على دوال الجداول (`mysql()`, `postgresql()`, `sqlite()`, `arrowFlight()`, `jdbc()`, `odbc()` وغيرها) من دون امتيازات الوصول المطلوبة إلى المصدر. وبالنسبة إلى الدوال التي تستنتج المخطط من خوادم بعيدة، كان ذلك يتيح أيضًا تشغيل اتصالات صادرة (SSRF) من دون تخويل. [#99122](https://github.com/ClickHouse/ClickHouse/pull/99122) ([pufit](https://github.com/pufit)).
* إصلاح تعطل Keeper (segfault في NuRaft) أثناء إعادة التهيئة الديناميكية ونقل القيادة. [#99133](https://github.com/ClickHouse/ClickHouse/pull/99133) ([JIaQi Tang](https://github.com/JiaQiTang98)).
* إصلاح التعطل عند استخدام جدول Buffer مع SAMPLE عندما لا تدعمه الوجهة. [#99141](https://github.com/ClickHouse/ClickHouse/pull/99141) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح LOGICAL\_ERROR الناتج عن عدم تطابق ترتيب الأعمدة في patch parts. [#99164](https://github.com/ClickHouse/ClickHouse/pull/99164) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح تعطل نادر جدًا عند احتواء جدول Iceberg على ملفات بتنسيقات مختلطة (ORC وParquet). يُصلح [#88126](https://github.com/ClickHouse/ClickHouse/issues/88126). [#99168](https://github.com/ClickHouse/ClickHouse/pull/99168) ([alesapin](https://github.com/alesapin)).
* إصلاح عدم تطبيق max\_execution\_time على backup/restore. [#99205](https://github.com/ClickHouse/ClickHouse/pull/99205) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح تجاهل `insert_deduplication_token` بصمت في استعلامات `INSERT SELECT` من دون `ORDER BY ALL`. سابقًا، كان يتم تعطيل deduplication بالكامل لعمليات `INSERT SELECT` غير المرتبة، حتى عند تقديم token صريح من المستخدم. الآن، يكفي تقديم `insert_deduplication_token` لتمكين deduplication بغض النظر عن `ORDER BY ALL`. [#99206](https://github.com/ClickHouse/ClickHouse/pull/99206) ([Desel72](https://github.com/Desel72)).
* إصلاح الإفراط في التحقق من الوصول أثناء تحسين `InverseDictionaryLookupPass`، وذلك عبر التحقق من grant `CREATE_TEMPORARY_TABLE` مرة واحدة قبل المرور بدلًا من التحقق منه لكل عقدة تمت زيارتها. [#99210](https://github.com/ClickHouse/ClickHouse/pull/99210) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح قيام `clickhouse format --obfuscate` بإنتاج SQL غير صالح بسبب إخفاء أنواع skip index، وأسماء compression codec، وأسماء database engine، وتعريفات dictionary layout/source. [#99260](https://github.com/ClickHouse/ClickHouse/pull/99260) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح خلل كان يجعل المقارنة بين النوعين Time\[64] وDateTime\[64] مربكة في بعض الحالات؛ والآن، في مثل هذه الحالات، تتم ترقية قيم Time\[64] إلى DateTime\[64] بإضافة `1970-01-01` كجزء التاريخ. [#99267](https://github.com/ClickHouse/ClickHouse/pull/99267) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تقييد constraints الخاصة بالإعدادات في عامل DDL لاستعلامات DDL الموزعة. [#99317](https://github.com/ClickHouse/ClickHouse/pull/99317) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح مشكلات طفيفة في authentication باستخدام TOTP: خيار CLI `--one-time-password` مع كلمة مرور فارغة، والتحقق من قيم الإعداد `<digits>` و`<period>`. [#99322](https://github.com/ClickHouse/ClickHouse/pull/99322) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح الخطأ المنطقي `unordered_map::at: key not found` في Avro output format عند تسلسل أعمدة `Enum8`/`Enum16` التي تحتوي على values غير موجودة في تعريف enum. [#99332](https://github.com/ClickHouse/ClickHouse/pull/99332) ([Desel72](https://github.com/Desel72)).
* إصلاح CHECK TABLE عند استخدام التسلسل المتناثر داخل Tuple مع Dynamic. يغلق [#96588](https://github.com/ClickHouse/ClickHouse/issues/96588). [#99351](https://github.com/ClickHouse/ClickHouse/pull/99351) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح التحقق المتشدّد أكثر من اللازم من المعالجة المسبقة للفهرس النصي. [#99359](https://github.com/ClickHouse/ClickHouse/pull/99359) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح التوافق عند ترقية الجداول المُكررة ذات فهارس minmax الضمنية من الإصدار 25.10 إلى الإصدارات الأحدث. [#99392](https://github.com/ClickHouse/ClickHouse/pull/99392) ([Raúl Marín](https://github.com/Algunenano)).
* أُزيل دعم الدوال المنفية (`notEquals`, `notLike`, `notIn`) من تحليل الفهرس النصي. لم يكن بالإمكان لهذه الدوال تخطي أي حبيبات مطلقًا، لذا فإن تحليل الفهرس لها لم يكن يضيف سوى عبء إضافي من دون أي فائدة. [#99393](https://github.com/ClickHouse/ClickHouse/pull/99393) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح `optimize_skip_unused_shards` مع المحلّل الجديد في الحالة التي يُستخدم فيها جدول `Distributed` داخل استعلام IN فرعي. [#99436](https://github.com/ClickHouse/ClickHouse/pull/99436) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح heap-use-after-free في `INTERSECT`/`EXCEPT` عندما يُنتج الاستعلام أسماء أعمدة مكررة. [#99471](https://github.com/ClickHouse/ClickHouse/pull/99471) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ منطقي في `ALTER TABLE ... DROP PART` عند استخدام معلمة استعلام محددة النوع لاسم الجزء. [#99489](https://github.com/ClickHouse/ClickHouse/pull/99489) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `NOT_FOUND_COLUMN_IN_BLOCK` عندما يُشار إلى شرط فهرس نصي (مثل `hasAllTokens`) في كلٍّ من عبارتي `SELECT` و`WHERE` عبر اسم مستعار. [#99504](https://github.com/ClickHouse/ClickHouse/pull/99504) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح النتائج غير الصحيحة عند استخدام `hasAllTokens` مع OR بين أعمدة لها فهارس نصية منفصلة. [#99505](https://github.com/ClickHouse/ClickHouse/pull/99505) ([Anton Popov](https://github.com/CurtizJ)).
* تهيئة ذاكرة تخزين الصفحات المؤقتة في `clickhouse-local` حتى يصبح الإعداد `page_cache_max_size` فعّالًا. [#99510](https://github.com/ClickHouse/ClickHouse/pull/99510) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة نادرة يُوسم فيها جزء بيانات على نحو غير صحيح بأنه تالف ويُفصل بعد استعلام `DETACH/ATTACH TABLE`. [#99529](https://github.com/ClickHouse/ClickHouse/pull/99529) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح استثناء `std::length_error` عند الاستعلام عن جداول النظام الفارغة باستخدام تنسيق Pretty عبر واجهة HTTP. [#99541](https://github.com/ClickHouse/ClickHouse/pull/99541) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح `LOGICAL_ERROR` عند استخدام `ALTER TABLE ADD COLUMN` لإنشاء عمود `EPHEMERAL` بالاسم نفسه لعمود افتراضي (مثل `_part_offset`). [#99549](https://github.com/ClickHouse/ClickHouse/pull/99549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلة عدم طرد إدخالات `VectorSimilarityIndexCache` مطلقًا بعد إزالة الجزء بسبب عدم تطابق مفاتيح ذاكرة التخزين المؤقت. [#99575](https://github.com/ClickHouse/ClickHouse/pull/99575) ([Seva Potapov](https://github.com/seva-potapov)).
* منع قراءة بيانات اعتماد Google من ملف محلي. هذا الإعداد غير آمن لأنه يتيح قراءة بيانات اعتماد أخرى إذا كان مسار الملف معروفًا. [#99584](https://github.com/ClickHouse/ClickHouse/pull/99584) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح تراجع الأداء في analyzer، واستبعاد الأعمدة غير المستخدمة من `ARRAY JOIN`. [#99587](https://github.com/ClickHouse/ClickHouse/pull/99587) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح قراءة الفهرس النصي في جدول يحتوي على lightweight deletes وسياسات صفوف. [#99661](https://github.com/ClickHouse/ClickHouse/pull/99661) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح إلغاء الإشارة إلى nullptr في قارئ Parquet عندما يواجه مسار filter-in-decoder صفحات مستبعَدة بالتصفية. يُغلق [#99676](https://github.com/ClickHouse/ClickHouse/issues/99676). [#99677](https://github.com/ClickHouse/ClickHouse/pull/99677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عملية seek غير الصحيحة في AsynchronousReadBufferFromFileDescriptor مع O\_DIRECT. يُغلق [#99358](https://github.com/ClickHouse/ClickHouse/issues/99358). [#99678](https://github.com/ClickHouse/ClickHouse/pull/99678) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح heap-buffer-overflow في `CompressionCodecT64` وإنهاء العملية في `CompressionCodecMultiple` عند فك ضغط بيانات مضغوطة تالفة. وقد اكتُشفت كلتا المشكلتين بواسطة أهداف libFuzzer الجديدة. وأصبحت codecs الآن تطلق استثناءً بدلًا من التعطل. [#99680](https://github.com/ClickHouse/ClickHouse/pull/99680) ([Rahul](https://github.com/motsc)).
* تأخير المعالجة إلى أن ينتهي server من تحميل جميع الجداول. [#99700](https://github.com/ClickHouse/ClickHouse/pull/99700) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح تجاوز مصدر قاموس MySQL لـ `RemoteHostFilter` في معاملات DDL المضمّنة. [#99720](https://github.com/ClickHouse/ClickHouse/pull/99720) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح خطأ منطقي عند التكرار عبر جداول data lake في `system.tables`. [#99739](https://github.com/ClickHouse/ClickHouse/pull/99739) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح تحليل predicates باستخدام الدالة `IN` عبر الفهرس النصي مع preprocessor. كما أُصلح تصادم tokens التي يجري البحث عنها في الفهرس النصي، وهو ما كان قد يؤدي إلى نتائج غير صحيحة. [#99755](https://github.com/ClickHouse/ClickHouse/pull/99755) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح حلقة لا نهائية عند قراءة ملفات التنسيق `Npy` ذات أبعاد shape السالبة. [#99812](https://github.com/ClickHouse/ClickHouse/pull/99812) ([Desel72](https://github.com/Desel72)).
* إصلاح global-buffer-overflow في الدالة `CRC32` على arguments من نوع `FixedString` عند تقييمها مع صفر صفوف أثناء حساب ترويسة query plan. [#99835](https://github.com/ClickHouse/ClickHouse/pull/99835) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح التعطل (إلغاء الإشارة إلى مؤشر فارغ) عند تنفيذ `ALTER TABLE ... MODIFY COLUMN ... COMMENT` على جداول Iceberg. [#99838](https://github.com/ClickHouse/ClickHouse/pull/99838) ([Desel72](https://github.com/Desel72)).
* إصلاح الإعداد `aggregate_functions_null_for_empty` ليعمل مع aggregate functions التي تُرجع أنواعًا غير `Nullable` مثل `Array` أو `Map` (مثل `groupArray` و`sumMap`). [#99839](https://github.com/ClickHouse/ClickHouse/pull/99839) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء LOGICAL\_ERROR في الدالة `midpoint` عند استدعائها بأنواع أعداد صحيحة مختلطة موقعة/غير موقعة. [#99867](https://github.com/ClickHouse/ClickHouse/pull/99867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء "عدم تطابق بنية الكتلة" في queries التي تحتوي على HAVING clause، حيث يتضمن filter expression كِلَا من تجميع ملفوف داخل دالة تُنتج NULL و`materialize(0)`. [#99915](https://github.com/ClickHouse/ClickHouse/pull/99915) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل `assertion` في `sipHash128Keyed` (ودوال `hash` ذات المفاتيح المشابهة) عندما تكون وسيطة البيانات من نوع Map بمفاتيح Array أو بأنواع Array متداخلة أخرى. [#99921](https://github.com/ClickHouse/ClickHouse/pull/99921) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء `LOGICAL_ERROR` "Set غير جاهز" في الدالة `IN` أثناء تحسين خطة الاستعلام باستخدام `convertAnyJoinToSemiOrAntiJoin`. [#99939](https://github.com/ClickHouse/ClickHouse/pull/99939) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* تقليل وقت الترجمة بإزالة تضمينات ملفات الترويسة الثقيلة ونقل إنشاءات القوالب المكلفة خارج ملفات الترويسة. [#97893](https://github.com/ClickHouse/ClickHouse/pull/97893) ([Raúl Marín](https://github.com/Algunenano)).
* تقليل وقت ترجمة الدوال الحسابية وملفات الترويسة المرتبطة بها عبر تصغير مصفوفات توزيع القوالب وإزالة التضمينات الثقيلة. [#98204](https://github.com/ClickHouse/ClickHouse/pull/98204) ([Raúl Marín](https://github.com/Algunenano)).
* استخدام `mongo-c-driver` 2.2.2. [#98304](https://github.com/ClickHouse/ClickHouse/pull/98304) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `postgres` REL\_18\_3. [#98306](https://github.com/ClickHouse/ClickHouse/pull/98306) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تمكين jemalloc allocator في builds الخاصة بـ UBSan لتجنب تراكم RSS الناتج عن ضعف سلوك `glibc malloc` في استعادة الذاكرة. [#98444](https://github.com/ClickHouse/ClickHouse/pull/98444) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استخدام Rust v0 symbol mangling وإزالة الرموز الداخلية من مكتبة PRQL لتقليل تضخم أسماء الرموز الناتج عن مكتبات parser combinator. [#98446](https://github.com/ClickHouse/ClickHouse/pull/98446) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة مجموعة benchmark ‏TPC-H وملف README الخاص بـ TPC-DS إلى `tests/benchmarks`. [#98495](https://github.com/ClickHouse/ClickHouse/pull/98495) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إضافة اختبارات صحة لجميع استعلامات TPC-DS البالغ عددها 99. [#99204](https://github.com/ClickHouse/ClickHouse/pull/99204) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إضافة اختبار تكامل يعيد إنتاج الخلل المتعلق بـ DDL CREATE TABLE + ALTER مع نسخة متماثلة غير متصلة ([#44070](https://github.com/ClickHouse/ClickHouse/issues/44070))، مع تمييزه كإخفاق متوقع. [#99259](https://github.com/ClickHouse/ClickHouse/pull/99259) ([Raufs Dunamalijevs](https://github.com/rienath)).
* دمج jemalloc مع البادئة `je_` وإزالة استخدام `--wrap` الخاص بالمُرابط. [#99342](https://github.com/ClickHouse/ClickHouse/pull/99342) ([Azat Khuzhin](https://github.com/azat)).

<div id="262">
  ### إصدار ClickHouse 26.2 بتاريخ 2026-02-26. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.2/)، [الفيديو](https://www.youtube.com/watch?v=7qHba08vNfo)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* أصبحت إزالة التكرار مفعّلة افتراضيًا لجميع عمليات insert. في السابق، كانت غير مفعّلة لعمليات async inserts ولـ MVs، لكنها كانت مفعّلة لعمليات insert المتزامنة. الهدف هو توحيد القيم الافتراضية في كلتا طريقتَي insert. إذا كانت إزالة التكرار معطّلة صراحةً على الـ cluster لديك، فعليك ضبط `deduplicate_insert='backward_compatible_choice'` صراحةً للحفاظ على السلوك السابق. وينطبق الأمر نفسه على `deduplicate_blocks_in_dependent_materialized_views`. [#95970](https://github.com/ClickHouse/ClickHouse/pull/95970) ([Sema Checherinda](https://github.com/CheSema)).
* تم تحسين تنسيق تخزين الإحصاءات. أصبحت جميع الإحصاءات الآن تُخزَّن في ملف واحد. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)). إذا لم تكن قد فعّلت إحصاءات الجدول صراحةً، فيمكنك تجاهل هذا البند.
* تقييد البيانات الوصفية داخل الذاكرة لـ S3(Azure)Queue. أُعيدت تسمية جداول النظام من `azure_queue` إلى `azure_queue_metadata_cache` ومن `system.s3queue` إلى `s3queue_metadata_cache`. [#95809](https://github.com/ClickHouse/ClickHouse/pull/95809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* في السابق، كان تطبيق دالة على عمود `Variant` يعيد قيم NULL بصمت عندما يكون النوع الفرعي للـ variant غير متوافق مع الدالة؛ أما الآن، فإنه يطرح استثناءً، ما قد يؤدي إلى تعطّل الاستعلامات التي كانت تعتمد على سلوك NULL الصامت. [#95811](https://github.com/ClickHouse/ClickHouse/pull/95811) ([Bharat Nallan](https://github.com/bharatnc)).
* أصبحت أعمدة `DATE` من PostgreSQL تُستنتج الآن على أنها `Date32` في ClickHouse (في الإصدارات السابقة، كانت تُستنتج على أنها `Date`، ما كان يؤدي إلى overflow للقيم الواقعة خارج نطاق ضيق). كما أصبح مسموحًا بإدراج قيم `Date32` مرة أخرى إلى PostgreSQL. يغلق هذا [#73084](https://github.com/ClickHouse/ClickHouse/issues/73084). [#95999](https://github.com/ClickHouse/ClickHouse/pull/95999) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت دلالات الإعداد `do_not_merge_across_partitions_select_final` أوضح. في السابق، كان يمكن تفعيل هذه الميزة تلقائيًا عندما لا يكون الإعداد مضبوطًا صراحةً في ملفات config. وقد تسبب ذلك مرارًا في حدوث التباس، وللأسف أدى إلى بعض المشكلات في بيئات production. أما الآن، فأصبحت القواعد أبسط: يفعّل `do_not_merge_across_partitions_select_final=1` هذه الوظيفة دون أي شرط. وإذا كان `do_not_merge_across_partitions_select_final=0`، فسيُستخدم الوضع التلقائي فقط إذا كان الإعداد الجديد `enable_automatic_decision_for_merging_across_partitions_for_final=1`، ولن يُستخدم في غير ذلك. وللحفاظ على السلوك السابق قدر الإمكان، ضُبطت القيم الافتراضية على `do_not_merge_across_partitions_select_final=0` و `enable_automatic_decision_for_merging_across_partitions_for_final=1`. [#96110](https://github.com/ClickHouse/ClickHouse/pull/96110) ([Nikita Taranov](https://github.com/nickitat)).
* عند إنشاء جدول S3 مع تحديد الأعمدة صراحةً، يتحقق ClickHouse الآن من أن أسماء تلك الأعمدة موجودة فعلًا في schema الخاصة بالملف البعيد. الاستعلامات التي كانت تعمل سابقًا رغم عدم تطابق أسماء الأعمدة ستفشل الآن عند إنشاء الجدول. يغلق هذا [#96089](https://github.com/ClickHouse/ClickHouse/issues/96089). [#96194](https://github.com/ClickHouse/ClickHouse/pull/96194) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* يُحظر استخدام الاستعلامات الفرعية في ORDER BY وفي تعبيرات مفاتيح الجداول الأخرى. [#96847](https://github.com/ClickHouse/ClickHouse/pull/96847) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `apply_row_policy_after_final` مفعّلًا افتراضيًا. في البداية، عندما كانت قيمة `optimize_move_to_prewhere_if_final=0`، كان كلٌّ من ROW POLICY وPREWHERE يراعيان FINAL ويُطبَّقان بعد FINAL. لكن هذا السلوك تعطّل بسبب [#87303](https://github.com/ClickHouse/ClickHouse/issues/87303)، الذي تجاهل `optimize_move_to_prewhere_if_final` لمرشّح ROW POLICY. ولإصلاح ذلك، يفعّل طلب السحب هذا الإعداد `apply_row_policy_after_final` الذي قُدِّم في [#91065](https://github.com/ClickHouse/ClickHouse/issues/91065). ومع تفعيل `apply_row_policy_after_final`، سيواصل ROW POLICY مراعاة FINAL افتراضيًا كما كان سابقًا. ويُعد طلب السحب هذا تغييرًا غير متوافق لأنه يغيّر السلوك عند `optimize_move_to_prewhere_if_final=1`. والآن، لجعل ROW POLICY يُطبَّق قبل FINAL، ينبغي استخدام `apply_row_policy_after_final` بدلًا من `optimize_move_to_prewhere_if_final`. [#97279](https://github.com/ClickHouse/ClickHouse/pull/97279) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* أصبح النوع `Date` الآن يُسلسَل باعتباره النوع الأصلي `date32` في Arrow ضمن تنسيقات Arrow/ArrowStream، بدلًا من `uint16`. وستتعرّف أدوات مثل PyArrow الآن على العمود بشكل صحيح باعتباره نوع تاريخ. ويمكن استعادة السلوك القديم باستخدام الإعداد `output_format_arrow_date_as_uint16`. ولا يزال دعم قراءة ملفات Arrow القديمة التي كانت تستخدم `uint16` لأعمدة `Date` متاحًا. [#96860](https://github.com/ClickHouse/ClickHouse/pull/96860) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* يمكن للمستخدمين الآن استخدام ClickStack (واجهة observability) مباشرةً من ClickHouse، وهو ما يفيد في debugging والتطوير المحلي. [#96597](https://github.com/ClickHouse/ClickHouse/pull/96597) ([Aaron Knudtson](https://github.com/knudtty)).
* دعم كلمات المرور لمرة واحدة المستندة إلى الوقت (TOTP) بوصفها طريقة authentication. [#71273](https://github.com/ClickHouse/ClickHouse/pull/71273) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إضافة إعداد قاعدة البيانات `lazy_load_tables`. عند تمكينه، لا تُحمَّل الجداول أثناء بدء تشغيل قاعدة البيانات — وبدلًا من ذلك، يُنشأ `StorageTableProxy` خفيف الوزن، ثم يُنشأ table engine الفعلي عند أول وصول. [#96283](https://github.com/ClickHouse/ClickHouse/pull/96283) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* تمت إضافة الإعداد `input_format_max_block_wait_ms` لإخراج data blocks عند انتهاء المهلة، مع السماح بمعالجة البيانات المتبقية عند إغلاق HTTP connection بشكل غير متوقع. [#94509](https://github.com/ClickHouse/ClickHouse/pull/94509) ([Mostafa Mohamed Salah](https://github.com/Sasao4o)).
* تكامل catalog لـ Google BigLake. هذا يُغلق [#95339](https://github.com/ClickHouse/ClickHouse/issues/95339). [#97104](https://github.com/ClickHouse/ClickHouse/pull/97104) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تمت إضافة system table ‏`system.tokenizers` التي تعرض جميع أدوات tokenizer المتاحة. [#96753](https://github.com/ClickHouse/ClickHouse/pull/96753) ([Robert Schulze](https://github.com/rschu1ze)).
* إضافة system table جديدة `system.user_defined_functions` لمراقبة loading status وconfiguration الخاصة بـ UDF. [#90340](https://github.com/ClickHouse/ClickHouse/pull/90340) ([Xu Jia](https://github.com/XuJia0210)).
* إضافة table ‏`system.jemalloc_stats` التي تعرض إحصاءات allocator الذاكرة jemalloc (عبر `malloc_stats_print`) لتشخيص memory usage على الخوادم المبنية باستخدام jemalloc. كما تمت إضافة endpoint ‏HTTP باسم `/jemalloc.html` على ClickHouse HTTP interface من أجل تصور تفاعلي لهذه الإحصاءات. [#97077](https://github.com/ClickHouse/ClickHouse/pull/97077) ([Antonio Andelic](https://github.com/antonio2368)).
* تمت إضافة table ‏`system.jemalloc_profile_text` لقراءة heap profiles الخاصة بـ jemalloc وتحليلها. ويتحكم الإعداد `jemalloc_profile_text_output_format` في output format ‏(raw أو symbolized أو collapsed؛ والقيمة default هي collapsed). ويتحكم `jemalloc_profile_text_symbolize_with_inline` في resolution الخاصة بـ inline frame ‏(عند تمكينه، تُدرج inline frames على حساب بطء symbolization؛ وعند تعطيله، يتم تخطيها للحصول على مخرجات أسرع). وبالنسبة إلى الصيغة collapsed، يتحكم `jemalloc_profile_text_collapsed_use_count` في ما إذا كانت stacks تُوزن بحسب عدد التخصيصات الحية (true) أو البايتات الحية (false، وهي القيمة default). يسهّل ذلك profiling الذاكرة وتصور flame graph لملفات jemalloc heap profile. ويُصلح [#93248](https://github.com/ClickHouse/ClickHouse/issues/93248). [#97218](https://github.com/ClickHouse/ClickHouse/pull/97218) ([Antonio Andelic](https://github.com/antonio2368)).
* إضافة الإعداد `default_dictionary_database`، الذي يتيح لـ ClickHouse تحليل external dictionaries المشار إليها من دون محدد قاعدة بيانات ضمن قاعدة بيانات default محددة. وهذا يبسّط migration من القواميس العامة المعرّفة عبر XML إلى Dictionaries معرّفة عبر SQL لكل قاعدة بيانات، بما يسمح لاستعلامات القواميس الحالية (مثل dictGet('name', …)) بالاستمرار في العمل من دون تعديل. [#91412](https://github.com/ClickHouse/ClickHouse/pull/91412) ([Dmitrii Plotnikov](https://github.com/dimbo4ka)).
* دعم auxiliary ZooKeeper لـ `DatabaseReplicated`. [#91683](https://github.com/ClickHouse/ClickHouse/pull/91683) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* تنفيذ table function جديدة باسم `primes` وsystem table جديدة `system.primes` تحتوي على الأعداد الأولية بترتيب تصاعدي. يُغلق [#90839](https://github.com/ClickHouse/ClickHouse/issues/90839). [#92776](https://github.com/ClickHouse/ClickHouse/pull/92776) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تدعم `async inserts` النصاب المتوازي (parallel quorum). وتتم مطابقة البيانات المُدرجة عبر النصاب. وإذا عُثر على بيانات مكررة، ينتظر الاستعلام حتى تتم أيضًا مطابقة البيانات المُدرجة سابقًا. [#93356](https://github.com/ClickHouse/ClickHouse/pull/93356) ([Sema Checherinda](https://github.com/CheSema)).
* أُضيفت الدالتان `colorOKLABToSRGB` و`colorSRGBToOKLAB` لتحويل القيمة من sRGB إلى OKLAB والعكس. [#93361](https://github.com/ClickHouse/ClickHouse/pull/93361) ([Pranav Tiwari](https://github.com/pranavt84)).
* أُضيف إعداد جديد هو `deduplicate_insert` يتجاوز `insert_deduplicate` و`async_insert_deduplicate`. [#94413](https://github.com/ClickHouse/ClickHouse/pull/94413) ([Sema Checherinda](https://github.com/CheSema)).
* يتيح إعداد الخادم `insert_deduplication_version` الترحيل إلى قيمة hash موحّدة لإزالة التكرار. [#95409](https://github.com/ClickHouse/ClickHouse/pull/95409) ([Sema Checherinda](https://github.com/CheSema)).
* أُضيفت دالة hash باسم `xxh3_128`. [#96055](https://github.com/ClickHouse/ClickHouse/pull/96055) ([Raúl Marín](https://github.com/Algunenano)).
* أُضيف الاستعلام `OPTIMIZE <table> DRY RUN PARTS <part names>` لمحاكاة عمليات الدمج دون اعتماد الجزء الناتج. وقد يكون ذلك مفيدًا لأغراض الاختبار: التحقق من صحة الدمج في الإصدار الجديد، وإعادة إنتاج الأخطاء المرتبطة بالدمج بصورة حتمية، وقياس أداء الدمج بشكل موثوق. [#96122](https://github.com/ClickHouse/ClickHouse/pull/96122) ([Anton Popov](https://github.com/CurtizJ)).
* أُضيف فحص جديد مفعّل افتراضيًا عبر الإعداد `check_named_collection_dependencies` لتجنّب حذف المجموعات المسمّاة المستخدمة بواسطة الجداول. [#96181](https://github.com/ClickHouse/ClickHouse/pull/96181) ([Pablo Marcos](https://github.com/pamarcos)).
* أُضيفت `system.fail_points` لفحص نقاط الإخفاق الموجودة في الخادم وما إذا كانت مفعّلة أم لا. وسيساعد ذلك على أتمتة الاختبارات. [#96762](https://github.com/ClickHouse/ClickHouse/pull/96762) ([Pedro Ferreira](https://github.com/PedroTadim)).
* أُضيف التحكم في الوصول المستند إلى الأدوار إلى Glue catalog. استخدم الإعداد `aws_role_arn`، ويمكن استخدام `aws_role_session_name` اختياريًا. [#90825](https://github.com/ClickHouse/ClickHouse/pull/90825) ([Antonio Andelic](https://github.com/antonio2368)).
* أُضيف إعداد `add_minmax_index_for_temporal_columns` الذي ينشئ، عند تفعيله، MinMax indexes تلقائيًا لجميع الأعمدة `Date` و`Date32` و`Time` و`Time64` و`DateTime` و`DateTime64`. [#93355](https://github.com/ClickHouse/ClickHouse/pull/93355) ([Michael Jarrett](https://github.com/EmeraldShift)).
* أُضيف دعم الأسماء المستعارة الموسّعة للجداول في JOINs (استعلامات مثل `SELECT * FROM (SELECT 1) AS t(a) JOIN (SELECT 1) AS u(b) ON a = b`). ويغلق [#95131](https://github.com/ClickHouse/ClickHouse/issues/95131). [#95331](https://github.com/ClickHouse/ClickHouse/pull/95331) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* أُضيف دعم `ALTER TABLE RENAME COLUMN` لجداول Iceberg. في السابق، كان الدعم يقتصر على `ADD COLUMN, DROP COLUMN, and MODIFY COLUMN` فقط. [#97455](https://github.com/ClickHouse/ClickHouse/pull/97455) ([murphy-4o](https://github.com/murphy-4o)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* أصبح الفهرس النصي الآن متاحًا للاستخدام العام (GA). [#96794](https://github.com/ClickHouse/ClickHouse/pull/96794) ([Robert Schulze](https://github.com/rschu1ze)).
* أصبح نوع البيانات `QBit` لتخزين المتجهات المكمّمة والمعبأة على مستوى البت (المستخدم في البحث التقريبي عن أقرب الجيران) متاحًا للاستخدام العام، ولم يعد يتطلب تفعيل إعداد تجريبي. [#95358](https://github.com/ClickHouse/ClickHouse/pull/95358) ([Raufs Dunamalijevs](https://github.com/rienath)).
* يمكن الآن لميزة vector search في ClickHouse استخدام النسخ المتماثلة في العنقود *لتوزيع* الحمل وعمليات البحث عبر أجزاء الفهرس المتجهي. ويتيح ذلك لـ ClickHouse دعم فهارس متجهية كبيرة تتجاوز سعة ذاكرة جهاز افتراضي واحد. [#95876](https://github.com/ClickHouse/ClickHouse/pull/95876) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إضافة server-side AST fuzzer، مع التحكم فيه عبر الإعدادين `ast_fuzzer_runs` و`ast_fuzzer_any_query`. وعند تفعيله، يُجري الخادم تحويرات عشوائية على كل استعلام بعد تنفيذه المعتاد، مع تجاهل النتائج. [#97568](https://github.com/ClickHouse/ClickHouse/pull/97568) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة الدالة `iif` إلى لهجة KQL التجريبية. [#94790](https://github.com/ClickHouse/ClickHouse/pull/94790) ([happyso](https://github.com/sunyeongchoi)).
* يراعي استنتاج المخطط الآن `allow_experimental_nullable_tuple_type`. وعند تفعيله، فإنه يسمح بأن تكون أنواع `Tuple` المستنتجة من النوع `Nullable(Tuple(...))`، بحيث يمكن أن تصبح الكائنات المتداخلة المفقودة `NULL` بدلًا من `Tuple` مكوَّن من عناصر `NULL`. [#95525](https://github.com/ClickHouse/ClickHouse/pull/95525) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* أصبح الإعداد `use_statistics_cache` مفعّلًا افتراضيًا الآن، بحيث تُخزَّن إحصاءات الأعمدة مؤقتًا في الذاكرة لتسريع تحسين الاستعلامات دون الحاجة إلى إعادة تحميلها من كل جزء بيانات. [#95950](https://github.com/ClickHouse/ClickHouse/pull/95950) ([Han Fei](https://github.com/hanfei1991)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* السماح باستخدام أي expression حتمي في المفتاح الأساسي لتخطي البيانات (مثل `ORDER BY cityHash64(user_id)` / `ORDER BY length(user_id)`). بالنسبة إلى التعبيرات الحتمية، يمكن لـ ClickHouse تطبيق expression على ثوابت query واستخدام النتيجة في index المفتاح الأساسي مع predicates مثل `=` و `IN` و `has`. وإذا كان expression أيضًا تقابليًا (injective) (مثل `ORDER BY hex(p)` أو `ORDER BY reverse(tuple(reverse(p), hex(p)))`)، فيمكن استخدام index بفعالية مع الصيغ المنفية: `!=` و `NOT IN` و `NOT has`. يُغلق [#10685](https://github.com/ClickHouse/ClickHouse/issues/10685). يُغلق [#82161](https://github.com/ClickHouse/ClickHouse/issues/82161). [#92952](https://github.com/ClickHouse/ClickHouse/pull/92952) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تحسين format تخزين الإحصاءات. أصبحت جميع الإحصاءات الآن مخزنة في ملف واحد. [#93414](https://github.com/ClickHouse/ClickHouse/pull/93414) ([Anton Popov](https://github.com/CurtizJ)).
* السماح بالقراءة المتوازية لمحركات/دوال الجداول البعيدة في filesystem cache. [#71781](https://github.com/ClickHouse/ClickHouse/pull/71781) ([Kseniia Sumarokova](https://github.com/kssenii)).
* السماح باستخدام userspace page cache مع الملفات المحلية ودوال الجداول الخاصة بـ object storage. [#77874](https://github.com/ClickHouse/ClickHouse/pull/77874) ([Michael Kolupaev](https://github.com/al13n321)).
* تجنّب عمليات `memcpy` غير الضرورية في userspace page cache. [#77884](https://github.com/ClickHouse/ClickHouse/pull/77884) ([Michael Kolupaev](https://github.com/al13n321)).
* أصبحت القيمة الافتراضية لـ `concurrent_threads_scheduler` الآن `max_min_fair` بدلًا من `fair_round_robin`. يحسّن ذلك العدالة تحت الأحمال العالية عبر إعطاء الأولوية للاستعلامات ذات الخانات المخصّصة الأقل، بحيث لا تتأثر الاستعلامات القصيرة سلبًا بالاستعلامات طويلة التشغيل. [#95300](https://github.com/ClickHouse/ClickHouse/pull/95300) ([Sergei Trifonov](https://github.com/serxa)).
* إذا كان استعلام `FINAL` يستخدم شرط المفتاح الأساسي للتصفية ثم تتبعه skip indexes لشروط أخرى، فستتحقق خطوة المعالجة `PrimaryKeyExpand` الآن فقط من تقاطع نطاقات المفتاح الأساسي التي جرى اختيارها مبدئيًا. [#94903](https://github.com/ClickHouse/ClickHouse/pull/94903) ([Shankar Iyer](https://github.com/shankar-iyer)).
* عند استخدام parallel replicas مع table functions مثل `s3(...)`، أصبحت الاستعلامات التي تحتوي على subquery واحد يغلّف table function تُوزَّع الآن تلقائيًا بالتوازي عبر replicas، بينما كان التوزيع المتوازي سابقًا يقتصر على المراجع المباشرة إلى table functions فقط. يُغلق [#92264](https://github.com/ClickHouse/ClickHouse/issues/92264). [#96332](https://github.com/ClickHouse/ClickHouse/pull/96332) ([phulv94](https://github.com/phulv94)).
* تمكين تقسيم ملفات البيانات وملفات النظام داخل cache إلى segments منفصلة. [#87834](https://github.com/ClickHouse/ClickHouse/pull/87834) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* تسريع بعض عمليات hash join من خلال تنفيذ التوجيه الديناميكي لـ `ColumnVector::replicate`. [#79573](https://github.com/ClickHouse/ClickHouse/pull/79573) ([Raúl Marín](https://github.com/Algunenano)).
* تحسين الأداء لـ parallel hash join في حالات predicates المعقدة. سابقًا، كانت الصفوف غير المنضمّة تُعالَج في thread واحد، وهو ما لم يكن مثاليًا؛ وفكرة هذا التحسين هي موازاة معالجة الصفوف غير المنضمّة عبر عدة threads. يمكن التحكم به عبر الإعداد `parallel_non_joined_rows_processing`. وهو مُمكَّن افتراضيًا. [#92068](https://github.com/ClickHouse/ClickHouse/pull/92068) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* تحسين طفيف في parsing الخاص بـ JSON type. [#93614](https://github.com/ClickHouse/ClickHouse/pull/93614) ([Pavel Kruglov](https://github.com/Avogar)).
* تحسين البصمة الذاكرية لـ AST. يكون هذا التحسين مفيدًا لأن الحقول لا تُستخدم عند عدم استخدام التمييز البصري، وعند عدم وجود parsing لعبارات VALUES. [#93974](https://github.com/ClickHouse/ClickHouse/pull/93974) ([Ilya Yatsishin](https://github.com/qoega)).
* تحسين استهلاك الذاكرة لكائنات AST من النوع Tuple المسمّاة. توضع أسماء الأعمدة كسلاسل نصية داخل كائن tuple بدلًا من الاحتفاظ بها في عقد AST حرفية عامة. [#94704](https://github.com/ClickHouse/ClickHouse/pull/94704) ([Ilya Yatsishin](https://github.com/qoega)).
* جرى تحسين إزالة الافتراضية بإضافة خيارات ربط إضافية. [#94737](https://github.com/ClickHouse/ClickHouse/pull/94737) ([Nikita Taranov](https://github.com/nickitat)).
* تحسين أداء استنساخ replica لجداول ReplicatedMergeTree التي تحتوي على parts كثيرة من خلال batching لطلبات ZooKeeper. [#94847](https://github.com/ClickHouse/ClickHouse/pull/94847) ([c-end](https://github.com/c-end)).
* عندما كانت خطوة القراءة تحتوي مسبقًا على مرشحات PREWHERE، لم يكن من الممكن إضافة مرشح جديد. يؤخر هذا التغيير تحسين PREWHERE إلى ما بعد تحسين runtime filter في JOIN، بحيث يمكن أيضًا دفع runtime filters إلى PREWHERE. [#95838](https://github.com/ClickHouse/ClickHouse/pull/95838) ([Alexander Gololobov](https://github.com/davenger)).
* تسريع ضغط codec ‏`T64` باستخدام الإرسال الديناميكي على x86. [#95881](https://github.com/ClickHouse/ClickHouse/pull/95881) ([Raúl Marín](https://github.com/Algunenano)).
* تسريع `uniq` على الأنواع الرقمية عبر batching لعمليات insert عند الإمكان (Not null، وليس ‎-If، وبدون GROUP BY، وبدون IPv6 أو String). [#95904](https://github.com/ClickHouse/ClickHouse/pull/95904) ([Raúl Marín](https://github.com/Algunenano)).
* تحسينات منخفضة المستوى في Keeper: تبيّن أن `ZooKeeper::observeOperations` يستحوذ على أكثر من 20% من استهلاك CPU لخيط الاستقبال في ZooKeeper. ويعالج هذا التغيير ذلك عبر: 1. استخدام `CityHash64` بدلًا من `SipHash` في `AggregatedZooKeeperLog::stats` لأنه أسرع بأكثر من 10 مرات. 2. استخدام `std::array<std::atomic<UInt32>, N>` بدلًا من `std::unordered_map` و`std::mutex` في `Coordination::ErrorCounter`. [#95962](https://github.com/ClickHouse/ClickHouse/pull/95962) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إزالة المحاذاة إلى 64 بايت لـ `ProfileEvents::Counter` لتوفير الذاكرة. [#96097](https://github.com/ClickHouse/ClickHouse/pull/96097) ([Azat Khuzhin](https://github.com/azat)).
* تحسين الذاكرة: تقليص حجم البنية `CachedOnDiskReadBufferFromFile` بمقدار 50 مرة. [#96098](https://github.com/ClickHouse/ClickHouse/pull/96098) ([Azat Khuzhin](https://github.com/azat)).
* عدم نسخ البيانات القديمة عند تغيير حجم hash table إذا كانت فارغة. [#96180](https://github.com/ClickHouse/ClickHouse/pull/96180) ([Raúl Marín](https://github.com/Algunenano)).
* دعم JOIN runtime filters لعمليات `RIGHT OUTER` JOIN. [#96183](https://github.com/ClickHouse/ClickHouse/pull/96183) ([Hechem Selmi](https://github.com/m-selmi)).
* أصبح التحسين `enable_join_runtime_filters` مفعّلًا افتراضيًا الآن. [#89314](https://github.com/ClickHouse/ClickHouse/pull/89314) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* سابقًا، كان تحسين direct read للفهرس النصي يُطبَّق فقط عندما كانت جميع parts تحتوي على text index من نوع materialized. يضيف هذا PR دعمًا جزئيًا: إذا كانت بعض parts تحتوي على text index من نوع materialized، فستستخدمها تلك parts، بينما ستعود parts التي لا تحتوي على text index من نوع materialized إلى تنفيذ filter expression الأصلية. [#96411](https://github.com/ClickHouse/ClickHouse/pull/96411) ([Anton Popov](https://github.com/CurtizJ)).
* أُضيفت indexes ثانوية من نوع `minmax` على أعمدة الوقت، وindexes من نوع `bloom_filter` على عمودَي `query_id` و`initial_query_id` في log tables الخاصة بالنظام لتسريع التصفية. [#96712](https://github.com/ClickHouse/ClickHouse/pull/96712) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يُطبَّق الآن تحسين `lazy materialization` على جميع فروع استعلام `UNION ALL`، وليس على الفرع الأول فقط. وستستفيد الاستعلامات التي تجمع بين قراءات متعددة مرتبة ومقيّدة من جداول `MergeTree` مختلفة عبر `UNION ALL` من تأجيل قراءة الأعمدة في كل فرع، مما يقلّل من عمليات I/O. [#96832](https://github.com/ClickHouse/ClickHouse/pull/96832) ([Federico Ginosa](https://github.com/menxit)).
* تحسين حساب `minmax skip index` أثناء INSERT من خلال إزالة نسخة بيانات غير ضرورية وتفعيل الحساب المتجهي لقيم min/max للأعمدة الرقمية. [#97392](https://github.com/ClickHouse/ClickHouse/pull/97392) ([Raúl Marín](https://github.com/Algunenano)).
* أصبح `DeltaLake` في Storage يأخذ نتيجة `count()` من البيانات الوصفية لـ delta lake ويعرض إحصاءات الجدول الصحيحة في system.tables (إجمالي البايتات/الصفوف). [#96190](https://github.com/ClickHouse/ClickHouse/pull/96190) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تُزال الأعمدة غير المستخدمة أيضًا من خطوة القراءة عند القراءة من MergeTree. ويكون ذلك مفيدًا بشكل خاص عندما يُدفَع عامل التصفية إلى `PREWHERE`. [#89982](https://github.com/ClickHouse/ClickHouse/pull/89982) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* تحسين معالجة استعلام `SHOW TABLES` من خلال جلب أسماء الجداول فقط، وتحسين getLightweightTablesIterator ليُرجع بنية تحتوي على أسماء الجداول فقط. يحلّ [#93835](https://github.com/ClickHouse/ClickHouse/issues/93835). [#94467](https://github.com/ClickHouse/ClickHouse/pull/94467) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* تحسين `assumeNotNull` و`coalesce` و`ifNull` لتمكين تقليم المفتاح الأساسي وskip index لشرطيات النطاق عندما تكون أعمدة المفتاح مغلّفة بهذه الدوال. يغلق [#94689](https://github.com/ClickHouse/ClickHouse/issues/94689). [#94754](https://github.com/ClickHouse/ClickHouse/pull/94754) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة الامتدادين with\_data وwith\_stat إلى طلب getChildren في Keeper. يتيح ذلك جلب ليس فقط قائمة العناصر الأبناء، بل أيضًا `stat` و/أو `data` الخاصة بها في عملية واحدة. [#94826](https://github.com/ClickHouse/ClickHouse/pull/94826) ([Nikolay Degterinsky](https://github.com/evillique)).
* يُجرى تحليل الفهرس مرة واحدة فقط (في معظم الحالات)، بغض النظر عمّا إذا كان التنفيذ سينتهي إلى خطة محلية أو خطة تستخدم parallel replicas. [#94854](https://github.com/ClickHouse/ClickHouse/pull/94854) ([Nikita Taranov](https://github.com/nickitat)).
* السماح بتمكين distributed index analysis استنادًا إلى عدد الأجزاء (`distributed_index_analysis_min_parts_to_activate`) وحجم الفهارس (`distributed_index_analysis_min_indexes_size_to_activate`). [#95216](https://github.com/ClickHouse/ClickHouse/pull/95216) ([Azat Khuzhin](https://github.com/azat)).
* تمكين تحسين PREWHERE لجداول Iceberg. [#95476](https://github.com/ClickHouse/ClickHouse/pull/95476) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تقليل استهلاك الذاكرة لبعض أصناف AST. [#95514](https://github.com/ClickHouse/ClickHouse/pull/95514) ([Raúl Marín](https://github.com/Algunenano)).
* تقييد عدد تدفقات pipeline المُولَّدة عند تمكين `split_intersecting_parts_ranges_into_layers`. يساعد ذلك على تجنب الاستهلاك المفرط للذاكرة. [#96478](https://github.com/ClickHouse/ClickHouse/pull/96478) ([Nikita Taranov](https://github.com/nickitat)).
* تنفيذ تحسين المجموعات المتكافئة لعمليات joins المتعددة. تستفيد الاستعلامات التي تتضمن عدة عمليات `INNER JOIN` متتالية الآن من تحسين أفضل لـ filter pushdown. وعندما تُربط الجداول باستخدام أعمدة متكافئة (مثلًا، `t1 JOIN t2 ON t1.id = t2.id JOIN t3 ON t2.id = t3.id WHERE t1.id > 10`)، تُدفَع عوامل التصفية المطبقة على أي جدول في السلسلة تلقائيًا إلى جميع الجداول. يغلق [#96550](https://github.com/ClickHouse/ClickHouse/issues/96550). [#96596](https://github.com/ClickHouse/ClickHouse/pull/96596) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تحسين فحص البيانات الوصفية لـ delta lake. يستخدم تغييرات من طلب السحب PR في delta-kernel [https://github.com/delta-io/delta-kernel-rs/pull/1827](https://github.com/delta-io/delta-kernel-rs/pull/1827). [#96686](https://github.com/ClickHouse/ClickHouse/pull/96686) ([Kseniia Sumarokova](https://github.com/kssenii)).
* في قاعدة البيانات Replicated، لا تُحدِّث العنقود المخزَّن مؤقتًا مع كل استعلام صوري. [#96897](https://github.com/ClickHouse/ClickHouse/pull/96897) ([Tuan Pham Anh](https://github.com/tuanpach)).
* استخدم فهرس المفتاح الأساسي عند التصفية باستخدام `startsWithUTF8` إذا كانت البادئة تحتوي فقط على محارف ASCII. [#97055](https://github.com/ClickHouse/ClickHouse/pull/97055) ([vkcku](https://github.com/vkcku)).

<div id="267-improvement">
  #### تحسينات
</div>

* إضافة تتبّع OpenTelemetry لطلبات Keeper. [#91332](https://github.com/ClickHouse/ClickHouse/pull/91332) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* خيارات configuration جديدة: `logger.startup_console_level` و `logger.shutdown_console_level` للسماح بتجاوز مستوى السجل الخاص بالـ console أثناء بدء تشغيل ClickHouse وإيقافه، على التوالي. [#95919](https://github.com/ClickHouse/ClickHouse/pull/95919) ([Garrett Thomas](https://github.com/garrettthomaskth)).
* مراعاة التجاوزات عبر سطر الأوامر عند إعادة تحميل configuration. يُغلق [#80294](https://github.com/ClickHouse/ClickHouse/issues/80294). [#80295](https://github.com/ClickHouse/ClickHouse/pull/80295) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* السماح بتجاوزات key-value لـ parameters الخاصة بـ named collection في table function ‏`mongodb`. [#89616](https://github.com/ClickHouse/ClickHouse/pull/89616) ([vanchaklar](https://github.com/vanchaklar)).
* يعمل الآن تحسين read-in-order لجداول Iceberg مع دوال فرز معقّدة مثل `icebergBucket` و `icebergTruncate`، وليس فقط مع مراجع column البسيطة. [#90256](https://github.com/ClickHouse/ClickHouse/pull/90256) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إضافة column جديد باسم parts\_postpone\_reasons في system.mutations لتحسين التشخيص، ويعرض أسباب تأجيل parts. [#92206](https://github.com/ClickHouse/ClickHouse/pull/92206) ([Shaohua Wang](https://github.com/tiandiwonder)).
* تتبّع التغييرات في عدد الصفوف المطلوب قراءتها (بسبب inserts/deletes أو استخدام query condition cache) في `DataflowStatisticsCache`. [#93636](https://github.com/ClickHouse/ClickHouse/pull/93636) ([Nikita Taranov](https://github.com/nickitat)).
* دعم query ‏SYSTEM RESET DDL WORKER \[ON CLUSTER]. يطلب هذا إعادة تعيين state الخاص بـ DDLWorker في thread الرئيسي له. ويفيد ذلك في refresh حالة replica النشط عند تحديث معرّفات المضيفين. [#93780](https://github.com/ClickHouse/ClickHouse/pull/93780) ([Tuan Pham Anh](https://github.com/tuanpach)).
* دعم `mutation_ids` في `system.part_log` لنوعي الحدث `MUTATE_PART` و `MUTATE_PART_START`. [#93811](https://github.com/ClickHouse/ClickHouse/pull/93811) ([Shaohua Wang](https://github.com/tiandiwonder)).
* يمكن الآن إعداد عمليات Background ‏(Mutate و Merge) بشكل مستقل عبر profile ‏'background'. سابقًا، كانت هذه العمليات تشترك في Settings مع queries العادية عبر profile ‏'default'. [#93905](https://github.com/ClickHouse/ClickHouse/pull/93905) ([Arsen Muk](https://github.com/arsenmuk)).
* إضافة مزيد من المعلومات إلى `system.crash_log`. [#94112](https://github.com/ClickHouse/ClickHouse/pull/94112) [#95857](https://github.com/ClickHouse/ClickHouse/pull/95857) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تمت إضافة metric جديد باسم `QueryNonInternal` لتتبّع عدد queries غير الداخلية الجاري تنفيذها. يُعرَض هذا metric باسم `ClickHouseMetrics_QueryNonInternal` ويساعد operators على مراقبة Concurrency الخاصة بالـ query مقارنةً بالحد `max_concurrent_queries`، الذي ينطبق فقط على queries غير الداخلية. [#94284](https://github.com/ClickHouse/ClickHouse/pull/94284) ([Ashwath Singh](https://github.com/ashwath)).
* دعم جمع إحصاءات بايتات الإدخال لـ columns من compact parts في `RuntimeDataflowStatisticsCacheUpdater`. [#94626](https://github.com/ClickHouse/ClickHouse/pull/94626) ([Nikita Taranov](https://github.com/nickitat)).
* إضافة check لاكتشاف سوء إعداد Keeper الذي يؤدي إلى فشل تجميع cluster. يُغلق [#60932](https://github.com/ClickHouse/ClickHouse/issues/60932). [#94682](https://github.com/ClickHouse/ClickHouse/pull/94682) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحسين deserialization لبادئات JSON أثناء loading الخاص بالـ part. [#94848](https://github.com/ClickHouse/ClickHouse/pull/94848) ([Pavel Kruglov](https://github.com/Avogar)).
* إعادة تنظيم مسار الكتابة باستخدام مسار INSERT الكامل، مما يؤدي إلى تشغيل العروض المادية على الجدول الهدف. [#94890](https://github.com/ClickHouse/ClickHouse/pull/94890) ([Kai Zhu](https://github.com/nauu)).
* استخدام تحسينات خطة البحث عن التشابه المتجهي فقط إذا كان الفهرس موجودًا لعمود البحث. [#94998](https://github.com/ClickHouse/ClickHouse/pull/94998) ([Eduard Karacharov](https://github.com/korowa)).
* التحقق من حد الذاكرة الإجمالي قبل مصادقة المستخدم، وإصدار `(total) memory limit exceeded` إذا كان الحد الإجمالي أكبر من المسموح به. [#95003](https://github.com/ClickHouse/ClickHouse/pull/95003) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إضافة خيار الضبط `throw_on_unmatched_row_policies` الذي، عند تمكينه، يطلق استثناءً إذا نفّذ مستخدم استعلامًا على جدول لديه سياسات صفوف ولكن لا تنطبق أيٌّ منها على ذلك المستخدم — مما يمنع السلوك الملتبس المتمثل في إرجاع جميع الصفوف بسبب سوء ضبط التحكم في الوصول. [#95014](https://github.com/ClickHouse/ClickHouse/pull/95014) ([Vitaly Baranov](https://github.com/vitlibar)).
* تحديث رموز وصول S3 ديناميكيًا في الاستعلامات الطويلة مع Unity Catalog. ويغلق هذا [#93981](https://github.com/ClickHouse/ClickHouse/issues/93981). [#95069](https://github.com/ClickHouse/ClickHouse/pull/95069) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تعطيل اضمحلال الصفحات المتسخة في jemalloc إذا كان ClickHouse تحت ضغط ذاكرة مستمر لمدة `memory_worker_decay_adjustment_period_ms` ميلي ثانية. وإعادة تمكين اضمحلال الصفحات المتسخة في jemalloc إذا كان ClickHouse يعمل في ظروف طبيعية للمدة الزمنية نفسها. [#95145](https://github.com/ClickHouse/ClickHouse/pull/95145) ([Antonio Andelic](https://github.com/antonio2368)).
* دعم ZooKeeper الإضافي في S3Queue باستخدام الإعداد `keeper_path` من s3Queue. [#95203](https://github.com/ClickHouse/ClickHouse/pull/95203) ([Diego Nieto](https://github.com/lesandie)).
* مراعاة `max_parts_to_merge_at_once` في عمليات دمج الأجزاء الخاصة بحذف TTL. [#95315](https://github.com/ClickHouse/ClickHouse/pull/95315) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إضافة `connection_address` و`connection_port` إلى query\_log لعكس الاتصال الفعلي (`address` و`port` يُستبدلان عند الاتصال عبر proxy وauth\_use\_forwarded\_address=1). [#95471](https://github.com/ClickHouse/ClickHouse/pull/95471) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح احتساب الذاكرة غير الصحيح لذاكرة التخزين المؤقت لشروط الاستعلام. وكانت المشكلة الأساسية أنه لم يأخذ في الحسبان مفتاح ذاكرة التخزين المؤقت المكوَّن من عدة سلاسل نصية (مثل part\_name ومعرّف الجدول وشرط SQL بالكامل). [#95478](https://github.com/ClickHouse/ClickHouse/pull/95478) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* سيتيح الخادم الذي يبدأ باستخدام التهيئة المضمنة التعامل مع المستخدمين والمنح، مع حفظها في الدليل `access`، كما في التهيئة العادية. وهذا يحسّن الاختبار. كما جرى تمكين جميع access\_control\_improvements في التهيئة المضمنة وفي clickhouse-local. [#95481](https://github.com/ClickHouse/ClickHouse/pull/95481) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين رسائل خطأ المصادقة الخاصة بـ S3 لتتضمن تلميحًا للتحقق من بيانات الاعتماد عند رفض الوصول. [#95648](https://github.com/ClickHouse/ClickHouse/pull/95648) ([Gerald Latkovic](https://github.com/batkovic75)).
* تمكين ذاكرة التخزين المؤقت للإحصاءات وضبط فترة تحديثها على 300 ثانية. [#95841](https://github.com/ClickHouse/ClickHouse/pull/95841) ([Han Fei](https://github.com/hanfei1991)).
* إضافة اسم المكوّن إلى `system.aggregated_zookeeper_log`. [#95882](https://github.com/ClickHouse/ClickHouse/pull/95882) ([Antonio Andelic](https://github.com/antonio2368)).
* تخطّي القراءات من object storage عند الاستعلام عن جداول `DeltaLake` من `system.tables`. [#95899](https://github.com/ClickHouse/ClickHouse/pull/95899) ([Antonio Andelic](https://github.com/antonio2368)).
* تفعيل `enable_max_bytes_limit_for_min_age_to_force_merge` افتراضيًا إذا كانت قيمة الإعداد `compatibility` هي `26.2` أو أعلى. [#95917](https://github.com/ClickHouse/ClickHouse/pull/95917) ([Christoph Wurm](https://github.com/cwurm)).
* أصبح Delta Lake متاحًا الآن على MacOS. إغلاق #95979. [#95985](https://github.com/ClickHouse/ClickHouse/pull/95985) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في الإصدارات السابقة، عند دمج تعبيرات ALTER المتعارضة مع UPDATE وRENAME COLUMN، كان يُطرَح خطأ منطقي بدلًا من استثناء مناسب. إغلاق [#70678](https://github.com/ClickHouse/ClickHouse/issues/70678). [#96022](https://github.com/ClickHouse/ClickHouse/pull/96022) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين مخرجات المساعدة لجميع تطبيقات ClickHouse وإضافة الخيار `--no-sudo` مع بعض الإصلاحات. وهذا استكمال لـ [#58244](https://github.com/ClickHouse/ClickHouse/issues/58244) من [Ilya Yatsishin](https://github.com/qoega). [#96025](https://github.com/ClickHouse/ClickHouse/pull/96025) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة alias ‏`distanceCosine` لـ `cosineDistance` لأن جميع دوال المسافة الأخرى لديها بالفعل alias بهذا الشكل. [#96065](https://github.com/ClickHouse/ClickHouse/pull/96065) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إضافة دعم لامتداد `with_data` في Keeper لتحسين جلب الجداول في Database Replicated. [#96090](https://github.com/ClickHouse/ClickHouse/pull/96090) ([Nikolay Degterinsky](https://github.com/evillique)).
* تحديث chdig إلى [v26.2.1](https://github.com/azat/chdig/releases/tag/v26.2.1) (ميزات جديدة ودعم MacOS). [#96113](https://github.com/ClickHouse/ClickHouse/pull/96113) ([Azat Khuzhin](https://github.com/azat)).
* تحسين filter pushdown لـ `numbers` و`primes`. يمكن لـ ClickHouse الآن اشتقاق حدود قيم متحفظة من شروط `WHERE` عندما يتعذر اشتقاق حدود دقيقة، وتقييد توليد التسلسل بناءً على ذلك (على سبيل المثال، بالنسبة إلى `WHERE number % 5 < 2 AND number > 100 AND number < 300`، لن يولّد ClickHouse إلا الأرقام بين 100 و300، ثم يطبّق predicate)، ما يتجنب عمليات المسح غير المحدودة. إغلاق [#84853](https://github.com/ClickHouse/ClickHouse/issues/84853). إغلاق [#93913](https://github.com/ClickHouse/ClickHouse/issues/93913). [#96115](https://github.com/ClickHouse/ClickHouse/pull/96115) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* كان Formatter يضع SELECT سابقًا بين قوسين عند وجود clause ‏`COMMENT` لإزالة اللبس في parsing. وبدلًا من ذلك، يُخرِج `COMMENT` قبل `AS SELECT`، مما يزيل هذا اللبس من دون أقواس. [#96293](https://github.com/ClickHouse/ClickHouse/pull/96293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح إعداد `allow_impersonate_user` في `config` موجودًا الآن ضمن القسم `access_control_improvements` بدلًا من كونه server setting مستقلًا. [#96451](https://github.com/ClickHouse/ClickHouse/pull/96451) ([Vitaly Baranov](https://github.com/vitlibar)).
* جعل إعداد `core_dump.size_limit` في configuration قابلًا لإعادة التحميل الفوري، لتجنب الحاجة إلى إعادة تشغيل server حتى تدخل تغييرات configuration حيّز التنفيذ. [#96524](https://github.com/ClickHouse/ClickHouse/pull/96524) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تحسين قابلية التشغيل البيني بين Profiler المعالج وProfiler الزمن الحقيقي مع مهلات socket. [#96601](https://github.com/ClickHouse/ClickHouse/pull/96601) ([Sergei Trifonov](https://github.com/serxa)).
* منع عودة البيانات المحذوفة للظهور إذا جرى تشغيل ADD COLUMN بسرعة بعد تنفيذ mutation ‏DROP COLUMN. [#96713](https://github.com/ClickHouse/ClickHouse/pull/96713) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تغيير نوع `function_id` في `system.instrumentation` من LowCardinality(Int32) إلى Int32. [#96726](https://github.com/ClickHouse/ClickHouse/pull/96726) (Copilot).
* سيحترم الانتظار المتزامن لعمليات mutation إلغاء الاستعلام والمهل الزمنية. [#96756](https://github.com/ClickHouse/ClickHouse/pull/96756) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة أمر النظام `SYSTEM RELOAD DELTA KERNEL TRACING <level>` لإتاحة تغيير مستوى logging الخاص بـ delta-kernel، وهو ما قد يكون مفيدًا في استكشاف الأخطاء وإصلاحها. [#96763](https://github.com/ClickHouse/ClickHouse/pull/96763) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تُطبَّق التصفية حسب عائلة عناوين IP، أي إعدادات `dns_allow_resolve_names_to_ipv4/ipv6`، حتى إذا كانت DNS cache معطلة. [#96810](https://github.com/ClickHouse/ClickHouse/pull/96810) ([c-end](https://github.com/c-end)).
* تحسين إمكانيات introspection في jemalloc. [#96840](https://github.com/ClickHouse/ClickHouse/pull/96840) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح تسبُّب واجهة الويب `/play` في ظهور الخطأ `QUERY_CACHE_USED_WITH_SYSTEM_TABLE` عند الاستعلام عن جداول النظام. [#96869](https://github.com/ClickHouse/ClickHouse/pull/96869) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين واجهة الويب: تغيير favicon للإشارة إلى حالة الاستعلام قيد التنفيذ؛ وعرض الأخطاء من الاستعلامات المساعدة (تحميل قواعد البيانات والجداول) بدلًا من تجاهلها بصمت. يُغلق [#85055](https://github.com/ClickHouse/ClickHouse/issues/85055). [#96883](https://github.com/ClickHouse/ClickHouse/pull/96883) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جعل اللوحة اليسرى في واجهة `/play` قابلة للنقر لإظهار قائمة قواعد البيانات أو إخفائها. [#96884](https://github.com/ClickHouse/ClickHouse/pull/96884) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح `DROP DATABASE` الآن يحذف الجداول بترتيب عكسي للتبعيات، مما يحسّن السلامة عند التعطل عندما تحتوي قاعدة البيانات على جداول لها تبعيات تحميل (مثل جداول `Distributed` التي تستخدم `joinGet`). [#97057](https://github.com/ClickHouse/ClickHouse/pull/97057) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* ترقية yaml-cpp لمنع تجاوز YAML غير الصالح. [#97333](https://github.com/ClickHouse/ClickHouse/pull/97333) ([Azat Khuzhin](https://github.com/azat)).
* إظهار مؤشر تحميل في الشريط الجانبي لـ `play.html` أثناء جلب الجداول. [#97531](https://github.com/ClickHouse/ClickHouse/pull/97531) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة زر للنسخ إلى الحافظة لنتائج الاستعلام الخام في واجهة الويب المضمنة (play.html). [#97532](https://github.com/ClickHouse/ClickHouse/pull/97532) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مُموِّه الاستعلامات (`clickhouse-format --obfuscate`) لإنتاج SQL قابلة للتحليل في مزيد من الحالات. [#97584](https://github.com/ClickHouse/ClickHouse/pull/97584) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* بعد عمليات ALTER الخاصة بالبيانات الوصفية فقط، مثل توسيع عناصر Enums، قد يؤدي تحسين التجميع باستخدام projection إلى حدوث استثناء. [#84143](https://github.com/ClickHouse/ClickHouse/pull/84143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تستخدم materialized views الآن قاعدة البيانات التي أُنشئت فيها كسياق تنفيذ، ما يعني الآتي: - يمكن الاستغناء عن تحديد قاعدة البيانات صراحةً في الأسماء المشار إليها في استعلام select الخاص بالعرض - إذا لم يُحدَّد اسم قاعدة البيانات صراحةً، فسيُفترض استخدام قاعدة البيانات نفسها التي أُنشئ فيها materialized view. [#88193](https://github.com/ClickHouse/ClickHouse/pull/88193) ([Dmitry Kovalev](https://github.com/dk-github)).
* إصلاح استبدال query parameter في authentication methods الخاصة بـ CREATE USER عند استخدام ON CLUSTER. إذ لم تكن query parameters في authentication methods (مثل password) تُستبدل، مما كان يتسبب في ظهور أخطاء UNKNOWN\_QUERY\_PARAMETER على العقد البعيدة. [#92777](https://github.com/ClickHouse/ClickHouse/pull/92777) ([xiaohuanlin](https://github.com/xiaohuanlin)).
* إصلاح حالات عدم الاتساق في index analysis الخاص بـ text index للدوال `has` و`mapContainsKey` و`mapContainsValue`. في السابق، كان يمكن أن تُرجع queries التي تستخدم هذه الدوال نتائج مختلفة بحسب ما إذا كان expression قد قُيِّم باستخدام text index أو بدونه. [#93578](https://github.com/ClickHouse/ClickHouse/pull/93578) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح crash عند Attach table إلى قاعدة بيانات `MaterializedPostgreSQL` إذا كانت `dropReplicationSlot` throws أثناء فك تكدس الاستدعاءات. [#96871](https://github.com/ClickHouse/ClickHouse/pull/96871) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* كان من الممكن أن تتسبب backups في crash للخادم عند إجراء عدد كبير من backups concurrent تتعارض على الملفات نفسها. [#93659](https://github.com/ClickHouse/ClickHouse/pull/93659) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح queries التي تستخدم parallel replicas وJOIN مع table غير MT. يغلق [#92056](https://github.com/ClickHouse/ClickHouse/issues/92056). [#93902](https://github.com/ClickHouse/ClickHouse/pull/93902) ([Igor Nikonov](https://github.com/devcrafter)).
* إصلاح مشكلة كانت تؤدي إلى أن columns في Iceberg التي تحتوي أسماؤها على نقطة تُرجع NULL باعتبارها values. [#94335](https://github.com/ClickHouse/ClickHouse/pull/94335) ([Mikhail Koviazin](https://github.com/mkmkme)).
* إصلاح التعامل مع strings بترميز UTF8 في `stringJaccardIndexUTF8` وتحسين الأداء. [#94613](https://github.com/ClickHouse/ClickHouse/pull/94613) ([Joanna Hulboj](https://github.com/jh0x)).
* إصلاح حالات overflow المحتملة في `WITH FILL STALENESS` (التي قد تؤدي إلى UB و/أو حلقات لا نهائية). وإصلاح احتمال حدوث حلقة لا نهائية بسبب القفزات الكبيرة. وإضافة دعم analyzer القديم (غالبًا لاختبارات stress). [#94663](https://github.com/ClickHouse/ClickHouse/pull/94663) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح احتمال تعليق distributed queries عندما تُحل hostnames إلى عدة عناوين ويتجمد replica بعيد. [#94726](https://github.com/ClickHouse/ClickHouse/pull/94726) ([c-end](https://github.com/c-end)).
* إصلاح نتيجة غير صحيحة عند joining عدة table expressions، عندما يكون leftmost table expression عبارة عن table function من نوع `-Cluster`. يحل [#89996](https://github.com/ClickHouse/ClickHouse/issues/89996). [#94748](https://github.com/ClickHouse/ClickHouse/pull/94748) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* إصلاح pruning غير الصحيح لكل من primary key وskip index بالنسبة إلى predicates التي تتضمن `toWeek` و`toYearWeek` و`toStartOfWeek` و`toLastDayOfWeek` و`toDayOfWeek`، مع إصلاح الاستثناءات في بعض هذه الدوال للاستعلامات الصحيحة التي تستخدم `LowCardinality(String)`. [#94816](https://github.com/ClickHouse/ClickHouse/pull/94816) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إزالة تجاوز التحقق من الأذونات دون داعٍ في استعلامات `ATTACH` الخاصة بعرض يستخدم SQL Security. يمنع هذا احتمال تصعيد الامتيازات عندما يقوم مستخدم بإرفاق عرض مع `definer` من دون التحقق من صلاحيات الوصول المطلوبة. [#94865](https://github.com/ClickHouse/ClickHouse/pull/94865) ([pufit](https://github.com/pufit)).
* إصلاح تعطل أثناء بدء تشغيل `ReplicatedMergeTree` ناتج عن إزالة متزامنة لأدلة `delete_tmp_*`. [#94892](https://github.com/ClickHouse/ClickHouse/pull/94892) ([myeongjun](https://github.com/myeongjjun)).
* إصلاح فقدان معلومات deduplication عند تنفيذ `INSERT` في جداول Iceberg مع materialized views، مما كان يتسبب في حدوث استثناء. [#94938](https://github.com/ClickHouse/ClickHouse/pull/94938) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح خلل كان يؤدي إلى أن `SYSTEM DROP QUERY CACHE TAG 'TAGNAME' ON CLUSTER <CLUSTERNAME>` يحذف cache بالكامل على مستوى cluster. [#94978](https://github.com/ClickHouse/ClickHouse/pull/94978) ([Rory Crispin](https://github.com/RoryCrispin)).
* الحفاظ على index granularity الثابتة (use\_const\_adaptive\_granularity) بعد عمليات Vertical merge (الإصدار v2 مع إصلاح لـ Nested، وبشكل عام). [#95013](https://github.com/ClickHouse/ClickHouse/pull/95013) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح race في filesystem cache في الإصدار 26.1 بعد \[ClickHouse/ClickHouse[#82764](https://github.com/ClickHouse/ClickHouse/issues/82764)]\([https://github.com/ClickHouse/ClickHouse/pull/82764](https://github.com/ClickHouse/ClickHouse/pull/82764)). [#95042](https://github.com/ClickHouse/ClickHouse/pull/95042) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح إلغاء table function ‏postgresql() عبر KILL QUERY واستعلام الإلغاء (Ctrl+C) في clickhouse-client. [#95136](https://github.com/ClickHouse/ClickHouse/pull/95136) ([Roman Vasin](https://github.com/rvasin)).
* إصلاح استنتاج الأنواع للأعمدة المؤهلة من source tables عند استخدام عدة joins مع عبارة `USING`. سابقًا، كانت الـ joins اللاحقة تحدّث types الخاصة بأعمدة المصدر الأساسية بشكل غير صحيح إلى common supertype حتى عندما لا يكون column مشاركًا في ذلك join (على سبيل المثال، في `SELECT t2.a FROM t1 LEFT JOIN t2 USING (a) LEFT JOIN t3 USING (a)`، فإن column ‏`t2.a` يُستخدم فقط في join الأول، لذلك يجب أن يكون نوعه هو supertype لـ `t1.a` و`t2.a` مع استبعاد `t3.a`). وقد يؤدي ذلك إلى أخطاء منطقية أو أعطال عندما تتوقع الدوال column types تختلف عما يظهر فعليًا في Execution Plan. [#95157](https://github.com/ClickHouse/ClickHouse/pull/95157) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تنفيذ تحويل الأعمدة مرة واحدة فقط أثناء جلب محتوى قائمة manifest ‏.avro والملفات. [#95164](https://github.com/ClickHouse/ClickHouse/pull/95164) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح الحساب غير الصحيح لأحجام JSON column، والذي قد يؤدي إلى استخدام مفرط للذاكرة أو column statistics غير صحيحة. [#95207](https://github.com/ClickHouse/ClickHouse/pull/95207) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح احتساب الذاكرة غير الدقيق عند تطبيق patch parts كبيرة بعد lightweight updates. سابقًا، كان تطبيق الرقع الكبيرة قد يتسبب في استخدام مفرط للذاكرة، وينتج عنه إنهاء server process بواسطة OOM killer. [#95231](https://github.com/ClickHouse/ClickHouse/pull/95231) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح سلوك غير معرّف كان قد يتسبب في نتائج غير صحيحة أو استثناء عند رجوع distributed query مع `max_parallel_replicas` إلى replica محلية أثناء index analysis. [#95263](https://github.com/ClickHouse/ClickHouse/pull/95263) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح aggregation للأعمدة المتناثرة مع `sum` وtimeseries عندما يكون `group_by_overflow_mode` مضبوطًا على `any`. [#95301](https://github.com/ClickHouse/ClickHouse/pull/95301) ([Mikhail Koviazin](https://github.com/mkmkme)).
* إصلاح مشكلة موثوقية في سياسة القرص `plain_rewritable`، إذ كان من الممكن أن يؤدي خطأ في الشبكة أثناء فك ارتباط ملف بيانات وصفية إلى ترك وحدة التخزين في حالة غير متسقة. [#95302](https://github.com/ClickHouse/ClickHouse/pull/95302) ([Mikhail Artemenko](https://github.com/Michicosun)).
* استبدال Date بـ Date32 في Iceberg. [#95322](https://github.com/ClickHouse/ClickHouse/pull/95322) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* سيُخفى الآن وسيط password في table function‏ `redis` ضمن السجلات وجداول النظام (مثل: `query_log`). [#95325](https://github.com/ClickHouse/ClickHouse/pull/95325) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح خطأ كان يسمح بحذف الجداول أو تعديلها بينما كان distributed query لا يزال قيد التنفيذ عليها، مما قد يؤدي إلى استثناءات أو نتائج غير صحيحة. [#95356](https://github.com/ClickHouse/ClickHouse/pull/95356) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح خطأ منطقي في بعض الحالات عند استخدام `LIMIT/OFFSET` بقيم سالبة في distributed queries. [#95357](https://github.com/ClickHouse/ClickHouse/pull/95357) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح خطأ كان يتسبب في أن يطلب clickhouse-client كلمة المرور مرتين عند الاتصال باستخدام ssh. [#95372](https://github.com/ClickHouse/ClickHouse/pull/95372) ([Isak Ellmer](https://github.com/spinojara)).
* إصلاح حالة data race في وحدة التخزين S3(Azure)Queue. [#95385](https://github.com/ClickHouse/ClickHouse/pull/95385) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح خطأ في مرشح prewhere تسببت فيه تعبيرات lambda داخل prewhere. [#95395](https://github.com/ClickHouse/ClickHouse/pull/95395) ([Xiaozhe Yu](https://github.com/wudidapaopao)).
* إصلاح `optimize_syntax_fuse_functions` بحيث لا يعيد Rewrite‏ `sum/count/avg` إلى `sumCount()` عندما يكون وسيط aggregate من النوع `Nullable`. يغلق [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#95441](https://github.com/ClickHouse/ClickHouse/pull/95441) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تجنب احتمال حدوث crash في distributed queries عند الإلغاء. [#95466](https://github.com/ClickHouse/ClickHouse/pull/95466) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* إصلاح deduplication للبث من محرك S3(Azure)Queue. [#95467](https://github.com/ClickHouse/ClickHouse/pull/95467) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح تحديث row policies المعيّنة للمستخدم الأولي في distributed queries. [#95469](https://github.com/ClickHouse/ClickHouse/pull/95469) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح التحقق من الأقراص المشفرة فوق plain\_rewritable (يُصلح احتمال ظهور `It is not possible to register multiple plain-rewritable disks with the same object storage prefix`). [#95470](https://github.com/ClickHouse/ClickHouse/pull/95470) ([Azat Khuzhin](https://github.com/azat)).
* كانت table function‏ `mergeTreeProjection` تفتقر إلى تحقق من الوصول، مما أتاح للمستخدمين الذين لا يملكون إذن SELECT على جدول (لكن لديهم أذونات table functions) قراءة البيانات من projections الخاصة به. يضيف هذا الإصلاح تحقق الوصول نفسه الموجود بالفعل في `mergeTreeIndex` و`mergeTreeAnalyzeIndexes`. [#95480](https://github.com/ClickHouse/ClickHouse/pull/95480) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال حدوث خطأ منطقي أثناء قراءة subcolumn الحجم من dynamic subcolumns لأنواع Dynamic/JSON. [#95573](https://github.com/ClickHouse/ClickHouse/pull/95573) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تراجع في النسخ المتماثل بدون نسخ (التجريبي) أُدخل في [#94262](https://github.com/ClickHouse/ClickHouse/issues/94262)، حيث كان يمكن حذف الأجزاء المشتركة قبل أن تنتهي النسخ المتماثلة الأخرى من جلبها. [#95597](https://github.com/ClickHouse/ClickHouse/pull/95597) ([filimonov](https://github.com/filimonov)).
* إصلاح تعطل أثناء تطبيق `tupleElement` على Arrays من JSON. يُغلق [#95581](https://github.com/ClickHouse/ClickHouse/issues/95581). [#95647](https://github.com/ClickHouse/ClickHouse/pull/95647) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح استثناء خطأ منطقي عند استخدام مُطابِق (`*`) داخل دالة لامبدا ضمن عبارة VALUES في JOIN مع USING. يُغلق [#93675](https://github.com/ClickHouse/ClickHouse/issues/93675). [#95661](https://github.com/ClickHouse/ClickHouse/pull/95661) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح الخطأ المنطقي `There was an error: Cannot obtain error message` عند انتظار distributed DDL وحذف قاعدة بيانات Replicated بالتزامن مع ذلك. يُصلح [#95539](https://github.com/ClickHouse/ClickHouse/issues/95539). [#95664](https://github.com/ClickHouse/ClickHouse/pull/95664) ([Alexander Tokmakov](https://github.com/tavplubix)).
* إصلاح إرجاع الدالة `IN` نتائج غير صحيحة مع قيم `NULL` عندما يكون `transform_null_in` مُمكّنًا. يُغلق [#65776](https://github.com/ClickHouse/ClickHouse/issues/65776). [#95674](https://github.com/ClickHouse/ClickHouse/pull/95674) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* التعامل بشكل صحيح مع الأنواع LowCardinality Nullable في `CAST` عندما يكون الإعداد `cast_keep_nullable` مُمكّنًا. يُغلق [#95670](https://github.com/ClickHouse/ClickHouse/issues/95670). [#95747](https://github.com/ClickHouse/ClickHouse/pull/95747) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح squashing لبيانات delta lake المُقسّمة إلى partitions. [#95773](https://github.com/ClickHouse/ClickHouse/pull/95773) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح حالة تسابق لعمود join من نوع Nullable في مرشحات وقت التشغيل. [#95775](https://github.com/ClickHouse/ClickHouse/pull/95775) ([Hechem Selmi](https://github.com/m-selmi)).
* إصلاح خطأ منطقي محتمل في استعلام يحتوي على مُطابِق (`*`, `table.*`) و`analyzer_compatibility_join_using_top_level_identifier` عندما يكون لعمود `USING` أنواع مختلفة في الجداول وفي قائمة SELECT. يُغلق [#90477](https://github.com/ClickHouse/ClickHouse/issues/90477). [#95808](https://github.com/ClickHouse/ClickHouse/pull/95808) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح مشكلات سلامة الذاكرة في عمليات thread pool المتوازية (backups وaggregation وdistributed queries) التي كان يمكن أن تتسبب في استثناءات عند حدوث خطأ أثناء scheduling المهام. [#95818](https://github.com/ClickHouse/ClickHouse/pull/95818) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطل عند تنفيذ DROP WORKLOAD بالتزامن مع استعلامات تستخدم workload الجاري حذفه. [#95856](https://github.com/ClickHouse/ClickHouse/pull/95856) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح بطء الأداء عند الاستعلام عن جداول النظام باستخدام مستخدم لديه أذونات محدودة على عدد كبير من قواعد البيانات. يُغلق [#89371](https://github.com/ClickHouse/ClickHouse/issues/89371). [#95874](https://github.com/ClickHouse/ClickHouse/pull/95874) ([pufit](https://github.com/pufit)).
* إصلاح تنفيذ `tupleElement` على JSON مع مسارات متداخلة، إذ كان يمكن أن يؤدي سابقًا إلى نتيجة استعلام خاطئة. [#95907](https://github.com/ClickHouse/ClickHouse/pull/95907) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح خطأ `NOT_SUPPORTED` كان يمكن أن يحدث عند استخدام خوارزمية join `direct` مع جدول MergeTree فارغ. [#95935](https://github.com/ClickHouse/ClickHouse/pull/95935) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح مشكلة عدم اقتراح العميل للأسماء المستعارة للإعدادات وعدم إكمالها تلقائيًا، يُغلق [#92190](https://github.com/ClickHouse/ClickHouse/issues/92190). [#95945](https://github.com/ClickHouse/ClickHouse/pull/95945) ([phulv94](https://github.com/phulv94)).
* إصلاح event\_date في system.asynchronous\_metric\_log. [#95947](https://github.com/ClickHouse/ClickHouse/pull/95947) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح skipping paths في نوع البيانات JSON. سابقًا، مع `JSON(SKIP path)` كان يتم تخطي جميع مفاتيح JSON التي تبدأ بالبادئة `path`، بما في ذلك مفاتيح مثل `"pathpath"`، ما كان قد يؤدي إلى فقدان البيانات لهذه المسارات أثناء insert. الآن أُصلحت هذه المشكلة، ولم يعد يتم تخطي سوى المفتاح `"path"`. [#95948](https://github.com/ClickHouse/ClickHouse/pull/95948) ([Pavel Kruglov](https://github.com/Avogar)).
* يجب ألا يتم اعتبار part الذي يحتوي على projections غير معروفة مفقودًا إلى الأبد. [#95952](https://github.com/ClickHouse/ClickHouse/pull/95952) ([Mikhail Artemenko](https://github.com/Michicosun)).
* إصلاح تحوّل السلسلة الفارغة إلى `NULL` في جدول `Join` مع مفتاح `Nullable(String)`. يُغلق [#71414](https://github.com/ClickHouse/ClickHouse/issues/71414). [#96002](https://github.com/ClickHouse/ClickHouse/pull/96002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح بإمكان engine PostgreSQL الآن قراءة `BOOLEAN[]` بشكل صحيح. يُغلق [#72754](https://github.com/ClickHouse/ClickHouse/issues/72754). [#96006](https://github.com/ClickHouse/ClickHouse/pull/96006) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح format ‏`ProtobufList` عند القراءة من ملف فارغ. يُغلق [#70059](https://github.com/ClickHouse/ClickHouse/issues/70059). [#96007](https://github.com/ClickHouse/ClickHouse/pull/96007) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلة إنتاج format ‏`ProtobufList` سجلًا وهميًا للجداول الفارغة. يُغلق [#72596](https://github.com/ClickHouse/ClickHouse/issues/72596). [#96010](https://github.com/ClickHouse/ClickHouse/pull/96010) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم تطابق الأنواع في الدالة `if` بين `UInt64` و `Int32` في حالة غير معتادة من distributed queries و PREWHERE، مع type inference. يُغلق [#70017](https://github.com/ClickHouse/ClickHouse/issues/70017). [#96012](https://github.com/ClickHouse/ClickHouse/pull/96012) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح queries المترجمة بواسطة `JIT` التي تتضمن أنواع `Bool`. [#96013](https://github.com/ClickHouse/ClickHouse/pull/96013) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح logical error عند قراءة UUID column من عمود TEXT في SQLite. يُغلق [#71263](https://github.com/ClickHouse/ClickHouse/issues/71263). [#96016](https://github.com/ClickHouse/ClickHouse/pull/96016) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تحويل الأنواع في engine SQLite لكل من `DateTime` و `Date` و `UUID` وأنواع أخرى. يُغلق [#73481](https://github.com/ClickHouse/ClickHouse/issues/73481). [#96017](https://github.com/ClickHouse/ClickHouse/pull/96017) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* كان يتم تهريب قيم `FixedString` بشكل غير صحيح في queries المرسلة إلى قواعد البيانات الخارجية، SQLite و PostgreSQL. يُغلق [#73519](https://github.com/ClickHouse/ClickHouse/issues/73519). بمشاركة @jh0x في التأليف. [#96019](https://github.com/ClickHouse/ClickHouse/pull/96019) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل assertion في WindowTransform عند استخدام إزاحة PRECEDING كبيرة. يغلق [#75852](https://github.com/ClickHouse/ClickHouse/issues/75852). [#96026](https://github.com/ClickHouse/ClickHouse/pull/96026) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خلل قد يؤدي إلى تلف البيانات عند استخدام async inserts متزامنة بأسماء المعلمات نفسها ولكن بقيم مختلفة. [#96035](https://github.com/ClickHouse/ClickHouse/pull/96035) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح الفترة الزمنية لأدوات التحليل العامة (ويتحكم فيها `global_profiler_real_time_period_ns` و `global_profiler_cpu_time_period_ns`). فبدلًا من القيمة المضبوطة، كانت تُستخدم قيمة مقصوصة، مما يؤدي إلى إيقاظ أداة التحليل أكثر من المقصود. [#96048](https://github.com/ClickHouse/ClickHouse/pull/96048) ([Antonio Andelic](https://github.com/antonio2368)).
* سابقًا، إذا كان ملف البيانات المرجعي داخل ملف manifest في Iceberg الخاص بـ position delete موجودًا في entry لكنه كان null، فلم نكن نحصل على الحدود الصحيحة لملفات البيانات المقابلة. يُصلح هذا الـ PR هذا الخلل. [#96061](https://github.com/ClickHouse/ClickHouse/pull/96061) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح سحب الأدوار الافتراضية. [#96103](https://github.com/ClickHouse/ClickHouse/pull/96103) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح use-after-free في تحليل الفهرس في حالة نادرة تجمع بين تعطيل `use_primary_key` ووجود عدد كبير جدًا من حالات الفصل بين الشروط التي تستخدم الفهرس. [#96112](https://github.com/ClickHouse/ClickHouse/pull/96112) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تراجع في codec ‏`Gorilla` عندما لا يتطابق الحجم المحدد صراحةً مع حجم نوع البيانات، ويكون حجم buffer صغيرًا جدًا. في الإصدارات السابقة، كان هذا يؤدي إلى استثناء عند فك الضغط. يغلق [#78253](https://github.com/ClickHouse/ClickHouse/issues/78253). [#96118](https://github.com/ClickHouse/ClickHouse/pull/96118) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تجنب حدوث deadlock في القواميس المحمّلة عندما يشير أحد القواميس إلى جدول Merge يشير إليه بشكل递عي. يغلق [#78360](https://github.com/ClickHouse/ClickHouse/issues/78360). [#96120](https://github.com/ClickHouse/ClickHouse/pull/96120) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح use-of-uninitialized-value في `formatDateTime` مع Formatterات غير ثابتة العرض، مثل نمط MySQL ونمط JODA. [#96133](https://github.com/ClickHouse/ClickHouse/pull/96133) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أدى الجمع بين الإعدادين `use_const_adaptive_granularity` و `index_granularity_bytes` (والذي يعني "granularity غير تكيفية") إلى سوء حساب عدد الصفوف المطلوب قراءتها وحدوث استثناء. [#96143](https://github.com/ClickHouse/ClickHouse/pull/96143) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* قد يؤدي تنفيذ mutation غير صالحة من ALTER UPDATE على الجداول الشبيهة بالملفات في object storage، مثل S3 وAzure، إلى إلغاء مرجعية nullptr. يغلق [#92994](https://github.com/ClickHouse/ClickHouse/issues/92994). [#96162](https://github.com/ClickHouse/ClickHouse/pull/96162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إرجاع `AccessRights::contains` نتائج غير صحيحة مع عمليات revoke الجزئية. [#96170](https://github.com/ClickHouse/ClickHouse/pull/96170) ([pufit](https://github.com/pufit)).
* إصلاح تصادم hash في query condition cache للثوابت المطوية في CTE، ما قد يؤدي إلى نتيجة query خاطئة. يغلق [#96060](https://github.com/ClickHouse/ClickHouse/issues/96060). [#96172](https://github.com/ClickHouse/ClickHouse/pull/96172) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال حدوث توقّف تام في ProcessList. وقد يحدث ذلك بسبب احتمال انعكاس ترتيب الأقفال إذا جرى تفعيل متتبّع memory overcommit أثناء إضافة مهمة إلى مدقّق الإلغاء. [#96182](https://github.com/ClickHouse/ClickHouse/pull/96182) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح خلل كان قد يؤدي إلى إرجاع نتائج غير صحيحة في الاستعلامات التي تتضمن عمليات ربط خارجية (LEFT أو RIGHT أو FULL) مع عدة عمليات INNER JOIN، وذلك بسبب إعادة ترتيب غير قانونية لعمليات الربط. فعندما كان شرط ON لعملية الربط الخارجية يشير إلى أعمدة من عدة جداول تم ربطها مسبقًا، كان المُحسِّن لا يراعي جميع تبعيات الجداول، ما قد يؤدي إلى إعادة ترتيب عمليات الربط بشكل غير صحيح والتسبب في فقدان بعض الصفوف. إغلاق [#95972](https://github.com/ClickHouse/ClickHouse/issues/95972). [#96193](https://github.com/ClickHouse/ClickHouse/pull/96193) ([Vladimir Cherkasov](https://github.com/vdimir)).
* عندما لا تكون هناك إحصاءات معرّفة لجدول ما، ينبغي ألّا يحاول ClickHouse تحميلها. وهذا يتجنّب بعض العبء الإضافي (أكثر من 100 مللي ثانية) الناتج عن التحقق من وجود ملفات الإحصاءات. (issue [#96068](https://github.com/ClickHouse/ClickHouse/issues/96068)). [#96233](https://github.com/ClickHouse/ClickHouse/pull/96233) ([Han Fei](https://github.com/hanfei1991)).
* إصلاح `optimize_syntax_fuse_functions` بحيث لا يعيد كتابة `sum/count/avg` إلى `sumCount()` عندما تكون وسيطة التجميع من النوع `LowCardinality(Nullable)`. إغلاق [#95390](https://github.com/ClickHouse/ClickHouse/issues/95390). [#96239](https://github.com/ClickHouse/ClickHouse/pull/96239) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تقليم الأقسام غير الصحيح للدالتين `not IN` و`not has` في بعض الحالات. [#96241](https://github.com/ClickHouse/ClickHouse/pull/96241) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح `stack-use-after-scope` في فهرس تشابه المتجهات. [#96259](https://github.com/ClickHouse/ClickHouse/pull/96259) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلة عدم تعرّف مشغّل الاختبارات على تعليقات تلميحات الأخطاء عندما يسبق الاستعلامَ تعليقُ SQL. [#96336](https://github.com/ClickHouse/ClickHouse/pull/96336) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* إصلاح خطأ منطقي في KeyCondition عندما يكون للجدول مفتاح أساسي قابل للقيم الفارغة، ويستخدم الاستعلام الدالة `coalesce` بحيث تكون وسيطتها الأولى ثابتة. [#96340](https://github.com/ClickHouse/ClickHouse/pull/96340) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* كان التفاعل بين `GROUPING SETS` و`group_by_use_nulls` ونوع البيانات `Tuple` مع وجود `LowCardinality` بداخله قد ينتج بنية block غير متوقعة في query pipeline، مما يؤدي إلى خطأ منطقي. وقد ظهر ذلك بعد إدخال `Tuple` من النوع `Nullable`. [#96358](https://github.com/ClickHouse/ClickHouse/pull/96358) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* كان من الممكن إنشاء جدول باستخدام تعبير فارغ `()` بوصفه index، مما أدى إلى وصول غير صالح إلى الذاكرة. [#96363](https://github.com/ClickHouse/ClickHouse/pull/96363) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل في المحلّل القديم عند وجود JOIN وأسماء مستعارة مكررة. [#96405](https://github.com/ClickHouse/ClickHouse/pull/96405) ([Ilya Golshtein](https://github.com/ilejn)).
* إصلاح الخطأ `Nested columns sizes are inconsistent with local_discriminators` الناتج عن تحسين خاطئ للتصفية الموضعية لأعمدة Variant. [#96410](https://github.com/ClickHouse/ClickHouse/pull/96410) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلة تجاهل `CREATE TABLE ... CLONE AS ...` للمؤهِّل الكامل للجدول المصدر. [#96415](https://github.com/ClickHouse/ClickHouse/pull/96415) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* إصلاح إلغاء table function ‏`mysql` باستخدام KILL QUERY وإلغاء الاستعلام (Ctrl+C) في clickhouse-client. [#96437](https://github.com/ClickHouse/ClickHouse/pull/96437) ([Roman Vasin](https://github.com/rvasin)).
* إصلاح حالة livelock في خيط التحقق من الإلغاء للاستعلامات ذات القيم المرتفعة لـ `max_execution_time`. [#96450](https://github.com/ClickHouse/ClickHouse/pull/96450) ([Sergei Trifonov](https://github.com/serxa)).
* إصلاح خطأ منطقي في بعض الحالات عند استخدام `LIMIT/OFFSET` بقيم كسرية في الاستعلامات الموزعة. [#96475](https://github.com/ClickHouse/ClickHouse/pull/96475) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح إلغاء مرجعية مؤشر فارغ في بعض التعبيرات التي تتضمن lambda functions. [#96479](https://github.com/ClickHouse/ClickHouse/pull/96479) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح نتائج غير صحيحة عند تحويل الأعمدة `LowCardinality` إلى `Nullable`. [#96483](https://github.com/ClickHouse/ClickHouse/pull/96483) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تعطل عند إنشاء Iceberg table مع عبارة `ORDER BY` تشير إلى عمود غير موجود أو تستخدم argument موضعيًا. يغلق [#93280](https://github.com/ClickHouse/ClickHouse/issues/93280). [#96484](https://github.com/ClickHouse/ClickHouse/pull/96484) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح استثناء runtime filter لأعمدة Tuple ذات الحقول الفرعية Nullable. [#96509](https://github.com/ClickHouse/ClickHouse/pull/96509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` في القارئ native لـ Parquet V3 عندما يحتوي عمود عامل التصفية `PREWHERE` على قيم UInt8 غير Boolean. [#96594](https://github.com/ClickHouse/ClickHouse/pull/96594) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إعادة توليد الفهرس الضمنية في replicated tables أثناء تغييرات metadata. [#96600](https://github.com/ClickHouse/ClickHouse/pull/96600) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح حالة datarace عند DROP WORKLOAD. [#96614](https://github.com/ClickHouse/ClickHouse/pull/96614) ([Sergei Trifonov](https://github.com/serxa)).
* إصلاح خطأ في عمليات الكتابة إلى Iceberg table، حيث قد تؤدي عمليات insert المقسمة إلى partition إلى توزيع غير صحيح للبيانات عبر ملفات partition. [#96620](https://github.com/ClickHouse/ClickHouse/pull/96620) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح `heap-use-after-free` في `CREATE TABLE` مع القيود. [#96669](https://github.com/ClickHouse/ClickHouse/pull/96669) ([Nikita Taranov](https://github.com/nickitat)).
* التحقق من witness version في bech32 لتجنب تجاوز سعة buffer. [#96671](https://github.com/ClickHouse/ClickHouse/pull/96671) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح إرجاع `system.tables` لأخطاء عند إنشاء Data Lake REST catalog بإعداد `auth_header` غير صالح. [#96680](https://github.com/ClickHouse/ClickHouse/pull/96680) ([Han Fei](https://github.com/hanfei1991)).
* إصلاح إرجاع `min(timestamp)` لبداية الحقبة (`1970-01-01`) عبر `_minmax_count_projection` بعد دمج TTL عندما تُصفّى جميع الصفوف في block. [#96703](https://github.com/ClickHouse/ClickHouse/pull/96703) ([Raquel Barbadillo](https://github.com/rbarbadillo)).
* تحسين التحقق من إعداد `iceberg_metadata_file_path` لمنع path traversal وضمان وجود ملف metadata المحدد داخل directory الجدول. [#96754](https://github.com/ClickHouse/ClickHouse/pull/96754) ([Daniil Ivanik](https://github.com/divanik)).
* إصلاح تعطل في `ifNull` مع argument من نوع `Variant` مستخدم في `GROUP BY`. [#96790](https://github.com/ClickHouse/ClickHouse/pull/96790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِحت تصادمات مفاتيح الذاكرة المؤقتة بين الجداول التي تستخدم الإعداد `table_disk=1`. [#96818](https://github.com/ClickHouse/ClickHouse/pull/96818) ([Raufs Dunamalijevs](https://github.com/rienath)).
* أُصلِح تعلّق خيط التنظيف الخاص بـ MemoryWorker بسبب حالة تسابق. [#96819](https://github.com/ClickHouse/ClickHouse/pull/96819) ([Antonio Andelic](https://github.com/antonio2368)).
* لم يَعُد يجري تسجيل البيانات التي تحتوي على بيانات اعتماد في كتالوجات Iceberg. [#96831](https://github.com/ClickHouse/ClickHouse/pull/96831) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أُصلِحت حالة الخروج الخاصة بـ clickhouse-client بعد حدوث خطأ في الخادم. [#96841](https://github.com/ClickHouse/ClickHouse/pull/96841) ([Vitaly Baranov](https://github.com/vitlibar)).
* قد تُرجِع الاستعلامات التي تتضمن `CROSS JOIN` مع تفعيل النسخ المتماثلة المتوازية نتائج غير صحيحة. يُصلح هذا [#74337](https://github.com/ClickHouse/ClickHouse/issues/74337). [#96848](https://github.com/ClickHouse/ClickHouse/pull/96848) ([Igor Nikonov](https://github.com/devcrafter)).
* أُصلِحت مشكلة فشل استعلامات `ALTER TABLE DROP COLUMN` بعد تنفيذ تحديث خفيف سابقًا على العمود نفسه. [#96861](https://github.com/ClickHouse/ClickHouse/pull/96861) ([Anton Popov](https://github.com/CurtizJ)).
* أُصلِح تجاوز المكدس (انهيار) عند إنشاء نسخ احتياطية أرشيفية (`.zip`, `.tzst`) على قرص تخزين كائنات `plain_rewritable`. [#96872](https://github.com/ClickHouse/ClickHouse/pull/96872) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح انهيار الخادم عند فشل النسخ الاحتياطي بسبب امتلاء القرص أو أخطاء إدخال/إخراج أخرى في نظام ملفات الوجهة. [#96873](https://github.com/ClickHouse/ClickHouse/pull/96873) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح تجاهل `EXCEPT ALL` و`INTERSECT ALL` لتكرارات الصفوف وتعاملُهما كما لو كانا النظيرين `DISTINCT`. [#96876](https://github.com/ClickHouse/ClickHouse/pull/96876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح استثناء `std::terminate` في `indexOfAssumeSorted` عند استدعائه بأنواع غير متوافقة (مثل مصفوفة `IPv4` مع قيمة بحث صحيحة). [#96877](https://github.com/ClickHouse/ClickHouse/pull/96877) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح الاستثناء `Bad cast from type DB::ColumnNullable to DB::ColumnString` عند استخدام window functions مع `group_by_use_nulls = 1` وCUBE/ROLLUP/GROUPING SETS. [#96878](https://github.com/ClickHouse/ClickHouse/pull/96878) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِحت النتائج غير الصحيحة عندما تحوّل compiled expressions المترجمة بـ JIT `DateTime` إلى `DateTime64` (مثلًا في `CASE`/`if`/`multiIf` مع أنواع DateTime مختلطة). فقد أُعيد تفسير القيمة بدلًا من تحجيمها بشكل صحيح، مما أدى إلى timestamps خاطئة بعد تفعيل ترجمة التعبير. [#96879](https://github.com/ClickHouse/ClickHouse/pull/96879) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح استثناء الخطأ المنطقي في `CoalescingMergeTree` عندما يُنتج تعبير skip index عمودًا ثابتًا (مثل `bloom_filter` على `ifNotFinite(1, c0)` لعمود صحيح). [#96880](https://github.com/ClickHouse/ClickHouse/pull/96880) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح رقم المنفذ الخاطئ في رسالة الخطأ عند الاتصال عبر HTTP بالخطأ بمنفذ native protocol المفعَّل بـ TLS. [#96881](https://github.com/ClickHouse/ClickHouse/pull/96881) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلِح عدم تطبيق `SETTINGS` الخاصة بكل subquery على Table functions مثل `file` في CTEs والاستعلامات الفرعية. [#96882](https://github.com/ClickHouse/ClickHouse/pull/96882) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تسرّب الذاكرة في كائنات BIO عند قراءة شهادات X509. [#96885](https://github.com/ClickHouse/ClickHouse/pull/96885) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` في محلّل الاستعلامات عند تمرير تعبير lambda في موضع يُتوقَّع فيه وجود قيمة فعلية (على سبيل المثال، كوسيط للمُراكِم في `arrayFold`). [#96892](https://github.com/ClickHouse/ClickHouse/pull/96892) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `ColumnNullable is not compatible with original` عند إجراء CAST للأنواع المتداخلة المعقّدة (Array من Nullable Tuple يحتوي على Map بقيم Nullable Enum). [#96924](https://github.com/ClickHouse/ClickHouse/pull/96924) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة race condition في التحميل المتوازي لـ Dictionary المجزّأ `HASHED`، والتي كان يمكن أن تتسبب أحيانًا في عدم تحميل بعض الصفوف. [#96953](https://github.com/ClickHouse/ClickHouse/pull/96953) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح حالة race condition بين `REPLACE PARTITION` وmutations الخلفية، والتي كان يمكن أن تؤدي إلى ظهور كلٍّ من البيانات القديمة والجديدة بعد الاستبدال. [#96955](https://github.com/ClickHouse/ClickHouse/pull/96955) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح دالة `arrayJoin` التي كانت تُنتج صفوفًا مكررة عند استخدامها مع INNER JOIN وWHERE clause، وكان السبب في ذلك أن تحسين الدفع الجزئي للمسندات كان يدفع عوامل التصفية التي تحتوي على `arrayJoin` بشكل غير صحيح إلى ما دون JOIN. [#96989](https://github.com/ClickHouse/ClickHouse/pull/96989) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الانهيار (SEGFAULT) في `clearCaches` الناتج عن أن `BlockIO::operator=` لم يكن ينقل `query_metadata_cache`، مما أدى إلى التدمير المبكر لـ snapshotات التخزين المخزنة مؤقتًا وحدوث use-after-free لتخزين `MergeTreeData`. [#96995](https://github.com/ClickHouse/ClickHouse/pull/96995) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فشل assertion في `IfTransformStringsToEnumPass` عندما تُرجع الدالة `if` أو `transform` القيمة `Nullable(String)` (على سبيل المثال مع `GROUP BY ... WITH CUBE` و`group_by_use_nulls = true`). [#97002](https://github.com/ClickHouse/ClickHouse/pull/97002) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح كتابة بيانات غير صحيحة أثناء `INSERT ... SELECT` مع `UNION ALL` و`JOIN`، حيث كان يمكن أن تتلقى أعمدة السلاسل النصية الثابتة قيمًا خاطئة بعد squashing الكتل. [#97019](https://github.com/ClickHouse/ClickHouse/pull/97019) ([Hasyimi Bahrudin](https://github.com/hasyimibhar)).
* إصلاح استثناء `assert_cast` (أو تلف البيانات الصامت في إصدارات release) عند إنشاء column statistics بعد أن يغيّر `ALTER TABLE MODIFY COLUMN` نوع العمود. [#97027](https://github.com/ClickHouse/ClickHouse/pull/97027) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح قراءات من ذاكرة غير مهيّأة في Azure Blob Storage، وSSH protocol، وواجهات Arrow Flight. [#97053](https://github.com/ClickHouse/ClickHouse/pull/97053) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الحالات التي كانت فيها indexes تؤثر في نتائج queries التي تستخدم row policy/PREWHERE وFINAL. [#97076](https://github.com/ClickHouse/ClickHouse/pull/97076) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح ما تبقى من حالة race condition بين `REPLACE PARTITION` وmutations الخلفية في جداول `MergeTree`، والتي كان يمكن أن تتسبب في ظهور البيانات القديمة من جديد. [#97105](https://github.com/ClickHouse/ClickHouse/pull/97105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الفهارس الضمنية مع الأعمدة المستعارة، وإجراء تحقق كامل قبل إنشائها. [#97115](https://github.com/ClickHouse/ClickHouse/pull/97115) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح خطأ منطقي في `FunctionVariantAdaptor` مع الدوال التي تتطلب arguments ثابتة مثل `arrayROCAUC`. [#97116](https://github.com/ClickHouse/ClickHouse/pull/97116) ([Bharat Nallan](https://github.com/bharatnc)).
* إصلاح تعثر mutations عند قيام `PartCheckThread` بإعادة إدراج `GET_PART` لجزء طُبِّق عليه mutation بالفعل، مما يترك entries وهمية في `parts_to_do`. [#97162](https://github.com/ClickHouse/ClickHouse/pull/97162) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تقدير عدد rows في query plan للاستعلامات الفرعية التي تحتوي على `ORDER BY ... LIMIT`، وهو ما كان قد يدفع المُحسِّن إلى اختيار join order غير مثالي. [#97193](https://github.com/ClickHouse/ClickHouse/pull/97193) ([Alexander Gololobov](https://github.com/davenger)).
* إصلاح استثناء `LOGICAL_ERROR` في `FunctionVariantAdaptor` عندما تُرجِع دالة تعمل على Variant columns النوع `Nothing`، وهو ما قد يحدث مع Arrays الفارغة في queries `UNION ALL`. [#97213](https://github.com/ClickHouse/ClickHouse/pull/97213) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح data race أثناء عمليات النسخ متعدد الأجزاء في S3 (مثل أثناء `BACKUP`/`RESTORE` إلى S3)، والتي كان يمكن أن تتسبب في استثناءات عند الوصول المتزامن. [#97227](https://github.com/ClickHouse/ClickHouse/pull/97227) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح استثناء `LOGICAL_ERROR` عندما يُشير `arrayJoin` في clause `WHERE` إلى columns من جانبي `JOIN`. [#97239](https://github.com/ClickHouse/ClickHouse/pull/97239) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` عند قراءة subcolumn `.size` لـ `Nullable(String)` sparse داخل Tuple مع PREWHERE. [#97264](https://github.com/ClickHouse/ClickHouse/pull/97264) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الاستثناء "Number of rows in lazy chunk does not match number of offsets" في `LazyMaterializingTransform` عند القراءة من tables ذات index granularity غير تكيفية (`index_granularity_bytes = 0`) باستخدام `ORDER BY ... LIMIT`. [#97270](https://github.com/ClickHouse/ClickHouse/pull/97270) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فقدان `SYSTEM RESTART REPLICA` للجدول من database عند فشل إعادة إنشاء الجدول بسبب استثناء غير متعلق بـ ZooKeeper (مثل memory limit)، مما يؤدي إلى عدم تطابق في ملخصات metadata في `DatabaseReplicated`. [#97276](https://github.com/ClickHouse/ClickHouse/pull/97276) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبح الحقل `readonly` في `system.merge_tree_settings` يعكس الآن بشكل صحيح أن بعض إعدادات merge tree (مثل `index_granularity`) تكون readonly دون قيد. [#97277](https://github.com/ClickHouse/ClickHouse/pull/97277) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح crash أثناء تحسين `count()` على جداول `MergeTree` عندما كان snapshot التخزين قد أُنشئ من دون data. [#97281](https://github.com/ClickHouse/ClickHouse/pull/97281) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح crash محتمل عند تحليل أسماء الدوال من معلومات التصحيح لأجل stack traces. [#97294](https://github.com/ClickHouse/ClickHouse/pull/97294) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح خطأ منطقي في analyzer\_compatibility\_join\_using\_top\_level\_identifier ومع أعمدة ALIAS. إغلاق [#96228](https://github.com/ClickHouse/ClickHouse/issues/96228). [#97297](https://github.com/ClickHouse/ClickHouse/pull/97297) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح استثناء `LOGICAL_ERROR` في `applyOrder` عند استخدام columns مفهرسة نصيًا مع clause `QUALIFY`. [#97313](https://github.com/ClickHouse/ClickHouse/pull/97313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يعرض جدول النظام `system.functions` الآن للدوال الداخلية القيمة `categories = 'Internal'` بدلًا من `categories = ''`. [#97315](https://github.com/ClickHouse/ClickHouse/pull/97315) ([Robert Schulze](https://github.com/rschu1ze)).
* قد يُنتج الاستعلام الذي يتضمن سلسلة RIGHT JOIN مع تمكين parallel replicas نتيجة غير صحيحة. يُصلح [#74341](https://github.com/ClickHouse/ClickHouse/issues/74341). [#97316](https://github.com/ClickHouse/ClickHouse/pull/97316) ([Igor Nikonov](https://github.com/devcrafter)).
* إصلاح أخطاء `TABLE_UUID_MISMATCH` الزائفة التي قد تحدث مع العروض المادية القابلة للتحديث وفي سيناريوهات أخرى يُعاد فيها تسمية الجداول. [#97323](https://github.com/ClickHouse/ClickHouse/pull/97323) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح segfault في النسخ الاحتياطي لـ `StorageKeeperMap` بسبب استخدام مؤشر تخزين متدلٍّ بعد تحريره في دفعة النسخ الاحتياطي lazy. [#97336](https://github.com/ClickHouse/ClickHouse/pull/97336) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الدالة `exists` مع scalar subquery داخل `ALTER UPDATE/DELETE` عند تمكين `mutations_execute_subqueries_on_initiator`. جرى تقييم scalar subquery بشكل غير صحيح، ما قد يؤدي إلى خطأ أو إلى أمر mutation تالف يجعل الجدول غير قابل للتحميل عند إعادة تشغيل الخادم التالية. [#97347](https://github.com/ClickHouse/ClickHouse/pull/97347) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إصلاح الاستثناء المنطقي `Unexpected return type from equals. Expected Nullable(UInt8). Got Const(LowCardinality(Nullable(UInt8)))` عند مقارنة NULL بعمود Variant يحتوي على أنواع LowCardinality. [#97379](https://github.com/ClickHouse/ClickHouse/pull/97379) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح race condition محتملة عند تنفيذ `EXCHANGE TABLES` بالتوازي مع تمكين query cache المُجزّأ. [#97411](https://github.com/ClickHouse/ClickHouse/pull/97411) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح الاستثناء `LOGICAL_ERROR` في التحويل من Array إلى `QBit` عندما يستبدل `nullable_source` من غلاف `Tuple` خارجي عمود Array المُحوَّل بنوع عمود غير متطابق. يُغلق [#97389](https://github.com/ClickHouse/ClickHouse/issues/97389). [#97413](https://github.com/ClickHouse/ClickHouse/pull/97413) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم اتساق التنسيق ذهابًا وإيابًا لـ AST في القيم الحرفية tuple ذات alias داخل الأقواس، فمثلًا أُعيدت تهيئة `(('a', 'b') AS x)` بشكل غير صحيح إلى `tuple(('a', 'b') AS x)`. [#97418](https://github.com/ClickHouse/ClickHouse/pull/97418) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء أثناء asynchronous inserts مع deduplication عندما أدى فشل parsing إلى إنشاء block فارغ بلا rows. [#97460](https://github.com/ClickHouse/ClickHouse/pull/97460) ([Sema Checherinda](https://github.com/CheSema)).
* إصلاح الاستثناء "Number of rows in lazy chunk does not match number of offsets" في `LazyMaterializingTransform` عند القراءة من الجداول ذات index granularity غير التكيفية (`index_granularity_bytes = 0`) باستخدام `ORDER BY ... LIMIT`. [#97482](https://github.com/ClickHouse/ClickHouse/pull/97482) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إعدادات insert في Iceberg. إضافة alias للإعداد `allow_experimental_insert_into_iceberg`. [#97483](https://github.com/ClickHouse/ClickHouse/pull/97483) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح `ACCESS_DENIED` للمستخدمين الذين لا يملكون permission ‏`CREATE TEMPORARY TABLE` عندما تعيد optimization ‏`optimize_inverse_dictionary_lookup` كتابة predicates الخاصة بـ `dictGet(...)`. يتخطّى ClickHouse الآن إعادة الكتابة وينفّذ expression الأصلي. يُغلق [#97269](https://github.com/ClickHouse/ClickHouse/issues/97269). [#97484](https://github.com/ClickHouse/ClickHouse/pull/97484) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح فشل assertion (استثناء في إصدارات debug/sanitizer) في `Set` و`MergeTreeIndexSet` عند معالجة الأعمدة التي تحتوي على أعمدة فرعية داخلية sparse (مثل أعمدة `Tuple` من أجزاء MergeTree ذات ملفات تعريف serialization sparse مختلفة). [#97493](https://github.com/ClickHouse/ClickHouse/pull/97493) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال استخدام الذاكرة بعد تحريرها في StorageKafka2. [#97520](https://github.com/ClickHouse/ClickHouse/pull/97520) ([Bharat Nallan](https://github.com/bharatnc)).
* إصلاح `INTO OUTFILE` مع `TRUNCATE` والإعداد `into_outfile_create_parent_directories` عندما يحتوي مسار الإخراج على مجلدات. [#97549](https://github.com/ClickHouse/ClickHouse/pull/97549) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الخطأ `BAD_ARGUMENTS` عند الاستعلام عن الجداول التي تحتوي على تعبيرات lambda داخل أعمدة ALIAS عبر table function ‏`merge()` مع تمكين analyzer. [#97551](https://github.com/ClickHouse/ClickHouse/pull/97551) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `system.zookeeper_info` عندما تكون قيمة zxid في Keeper مساوية لـ 0. [#97553](https://github.com/ClickHouse/ClickHouse/pull/97553) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح احتمال حدوث logical error في Dictionary ‏`ip_trie` عندما لا يكون نوع المفتاح String. [#97555](https://github.com/ClickHouse/ClickHouse/pull/97555) ([Bharat Nallan](https://github.com/bharatnc)).
* إصلاح عدم عمل OAuth authentication في REST catalog الأساسي `RestCatalog` (إذ كانت تعمل فقط مع catalogs المشتقة مثل `OneLakeCatalog`). وقد أدى ذلك إلى تعطيل REST catalog الافتراضي بعد تقديم BigLake catalog. [#97561](https://github.com/ClickHouse/ClickHouse/pull/97561) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* تقبل دوال Geometry (`perimeterSpherical`, `areaSpherical`، إلخ) الآن الأنواع الفرعية الهندسية الفردية (`Polygon` و`Ring` و`Point` وغيرها) بالإضافة إلى النوع `Geometry` من نوع Variant. [#97571](https://github.com/ClickHouse/ClickHouse/pull/97571) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `LOGICAL_ERROR` عند استخدام `isNull`/`isNotNull` على subcolumns للأنواع `Nullable(Tuple(... Nullable(T) ...))`. يغلق [#97224](https://github.com/ClickHouse/ClickHouse/issues/97224). [#97582](https://github.com/ClickHouse/ClickHouse/pull/97582) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إلغاء مرجعية مؤشر فارغ عند تطبيق patch parts أثناء lightweight updates. [#97583](https://github.com/ClickHouse/ClickHouse/pull/97583) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* يمرر `BaseSettings::readBinary` الفهرس من `accessor.find` إلى `field_infos[]` من دون التحقق من قيمة عدم العثور الخاصة (أي `-1`)، ما قد يؤدي إلى وصول خارج حدود `std::vector`. وقد اكتُشفت المشكلة بفضل تقوية libcxx. وعلى الأرجح كان هذا يحدث أثناء deserialization لخطة query عندما يرسل server أحدث إعدادًا غير معروف إلى server أقدم. تتعامل طريقة القراءة المعتمدة على السلاسل النصية مع هذا بشكل صحيح بالفعل، لكن `readBinary` كان يفتقد إلى التحقق نفسه. [#97585](https://github.com/ClickHouse/ClickHouse/pull/97585) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح نتائج query غير صحيحة لاستعلامات `UNION ALL` عندما كان أحد الفروع يحتوي على predicate ثابتة القيمة false، إذ كان الفرع يقرأ data بشكل غير صحيح بدلًا من ألا يعيد شيئًا. [#97620](https://github.com/ClickHouse/ClickHouse/pull/97620) ([Bharat Nallan](https://github.com/bharatnc)).
* إصلاح فشل `IN (col)` عند استخدام مرجع column واحد مع الخطأ `UNSUPPORTED_METHOD`. [#97646](https://github.com/ClickHouse/ClickHouse/pull/97646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء الخطأ المنطقي عند استخدام `GROUP BY ... WITH ROLLUP/CUBE` عندما تتضمن المفاتيح `LowCardinality(Nullable(...))` داخل `Nullable(Tuple(...))`. [#97647](https://github.com/ClickHouse/ClickHouse/pull/97647) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم اتساق تنسيق AST في `NOT (1, 1, 1)`، والذي كان قد يتسبب في `LOGICAL_ERROR` في بُنى التصحيح. [#97653](https://github.com/ClickHouse/ClickHouse/pull/97653) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح استثناء `keeper-converter` عند مصادفة ملفات سجل معاملات ZooKeeper فارغة. [#97673](https://github.com/ClickHouse/ClickHouse/pull/97673) ([Alexey Milovidov](https://github.com/alexey-milovidov)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* يمكن بناء ClickHouse باستخدام clang-23 ‏(master). [#95578](https://github.com/ClickHouse/ClickHouse/pull/95578) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح فرض القيمة `false` على `is_local` عند تهيئة `bind_host`، مع استبداله باختبار تكامل. متابعة لـ [#74741](https://github.com/ClickHouse/ClickHouse/pull/74741). [#93109](https://github.com/ClickHouse/ClickHouse/pull/93109) [#96018](https://github.com/ClickHouse/ClickHouse/pull/96018) ([Zhigao Hong](https://github.com/zghong)).
* اختبارات الإجهاد: إصلاح اختبارات الإجهاد والترقية في CI، وتجاهل الوسوم `no-{build}`، وإضافة عشوائية للتوافق. [#94693](https://github.com/ClickHouse/ClickHouse/pull/94693) ([Nikita Fomichev](https://github.com/fm4v)).
* نشر الملف التنفيذي parser\_memory\_profiler من نواتج build. ويمكن استخدام الأداة لتحليل استهلاك ذاكرة AST. [#95826](https://github.com/ClickHouse/ClickHouse/pull/95826) ([Ilya Yatsishin](https://github.com/qoega)).
* إضافة الراية `--symbolize` إلى أداة `parser_memory_profiler`، بحيث تُنتج ملفات `.heap.sym` تحتوي على رموز محلولة في النتائج. [#96477](https://github.com/ClickHouse/ClickHouse/pull/96477) ([Ilya Yatsishin](https://github.com/qoega)).
* تثبيت Docker images التابعة لجهات خارجية في اختبارات التكامل على إصدارات محددة. [#96500](https://github.com/ClickHouse/ClickHouse/pull/96500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استعادة إمكانية الربط الديناميكي مع `OpenSSL`. لا يُنصح بهذا، ولا يُستخدم في أي builds خاصة ببيئات production، لكن الخيار لا يزال متاحًا للهواة على الإنترنت. [#96506](https://github.com/ClickHouse/ClickHouse/pull/96506) ([Govind R Nair](https://github.com/Revertionist)).
* تقليل نطاق `magic_enum` من \[-100, 1000] إلى النطاق default ‏\[-128, 127] باستخدام تخصيص لكل نوع لـ `Coordination::OpNum`، مما يحسن زمن build. [#96632](https://github.com/ClickHouse/ClickHouse/pull/96632) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إزالة قوالب C++ غير الضرورية من فئات Function لتقليل أزمنة build. [#96646](https://github.com/ClickHouse/ClickHouse/pull/96646) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* نقل generation الخاصة بـ `StorageSystemLicenses` إلى وقت التهيئة لتحسين التوازي في build. [#96697](https://github.com/ClickHouse/ClickHouse/pull/96697) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جعل فحص التراخيص متوازيًا. [#96727](https://github.com/ClickHouse/ClickHouse/pull/96727) ([Raúl Marín](https://github.com/Algunenano)).
* إضافة اختبار functional عديم الحالة لدعم بروتوكول SSH. [#96996](https://github.com/ClickHouse/ClickHouse/pull/96996) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة Kafka 3.9.0 إلى البنية التحتية لاختبارات functional العديمة الحالة، مما يتيح اختبارًا مباشرًا لمحركي الجدول Kafka وKafka2 باستخدام ClickHouse Keeper بوصفه ZooKeeper. وتغطي ستة اختبارات عديمة الحالة جديدة أساسيات الإنتاج/الاستهلاك، والأعمدة الافتراضية، وINSERT، وتنسيقات متعددة، والتعامل مع الرسائل التالفة، وتخزين الإزاحات المستند إلى Keeper. [#96997](https://github.com/ClickHouse/ClickHouse/pull/96997) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إضافة سير عمل في CI لبناء سلسلة أدوات clang محسّنة باستخدام PGO+BOLT. [#96991](https://github.com/ClickHouse/ClickHouse/pull/96991) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استخدام build محسّنة من LLVM/Clang باستخدام PGO في CI، ما يفترض أن يحقق تحسنًا في سرعة build بنسبة 20..30%. [#97031](https://github.com/ClickHouse/ClickHouse/pull/97031) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* استبدال الدوال الرياضية من glibc بتنفيذات llvm-libc. [#90151](https://github.com/ClickHouse/ClickHouse/pull/90151) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* تحديث Boost من 1.83 إلى 1.90، مما يُصلح فشل تأكيد `devector` في إصدارات Debug. [#97037](https://github.com/ClickHouse/ClickHouse/pull/97037) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحديث `postgres` إلى REL\_18\_1. [#95189](https://github.com/ClickHouse/ClickHouse/pull/95189) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `libexpat` 2.7.3. [#95218](https://github.com/ClickHouse/ClickHouse/pull/95218) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `OpenSSL` 3.5.5. [#95345](https://github.com/ClickHouse/ClickHouse/pull/95345) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `simdjson` v4.2.4. [#97129](https://github.com/ClickHouse/ClickHouse/pull/97129) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `libarchive` 3.8.5. [#97131](https://github.com/ClickHouse/ClickHouse/pull/97131) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `fast_float` v8.2.3. [#97133](https://github.com/ClickHouse/ClickHouse/pull/97133) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* استخدام `abseil-cpp` 20260107.1، وترقية `s2geometry` إلى v0.13.1. [#97134](https://github.com/ClickHouse/ClickHouse/pull/97134) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* رفع `libxml2` إلى 2.15.1. [#95574](https://github.com/ClickHouse/ClickHouse/pull/95574) ([Robert Schulze](https://github.com/rschu1ze)).
* ترقية 7 صور Docker لاختبارات التكامل من Tier-3 من صور أساسية منتهية الدعم أو مُزالة إلى إصدارات مدعومة حاليًا. [#97314](https://github.com/ClickHouse/ClickHouse/pull/97314) ([Rahul](https://github.com/motsc)).
* إضافة استعلامات benchmark لـ TPC-DS. [#97349](https://github.com/ClickHouse/ClickHouse/pull/97349) ([Raufs Dunamalijevs](https://github.com/rienath)).
* استبدال خيارات cmake الفردية لمجموعات تعليمات x86 (`ENABLE_SSSE3`, `ENABLE_AVX2`, `NO_SSE3_OR_HIGHER`, `ARCH_NATIVE`، إلخ) بخيار رقمي واحد هو `X86_ARCH_LEVEL` (`1`/`2`/`3`/`4`)، بما يتوافق مع مستويات البنية الدقيقة القياسية لـ x86-64 المستخدمة بالفعل في نظام التوجيه وقت التشغيل. [#97354](https://github.com/ClickHouse/ClickHouse/pull/97354) ([Raúl Marín](https://github.com/Algunenano)).
* تجنب إنشاء متغيرات القوالب لـ `division_by_nullable=true` لعمليات غير القسمة في `FunctionBinaryArithmetic`، مما يقلل وقت الترجمة وحجم الملف الثنائي. [#97496](https://github.com/ClickHouse/ClickHouse/pull/97496) ([Raúl Marín](https://github.com/Algunenano)).
* تقليل أثر التضمين لـ `Exception.h` عبر إزالته من ملفات الترويسة واسعة الاستخدام مثل `typeid_cast.h` و`assert_cast.h` و`Context_fwd.h` و`IDataType.h` ومختلف ملفات ترويسة Column. [#97497](https://github.com/ClickHouse/ClickHouse/pull/97497) ([Raúl Marín](https://github.com/Algunenano)).
* استخدام ترويسات `compiler-rt` المضمّنة دائمًا (واجهات sanitizer وXRay) بدلًا من ترويسات مترجم المضيف، وبناء مكتبات `compiler-rt` من المصدر افتراضيًا. [#97499](https://github.com/ClickHouse/ClickHouse/pull/97499) ([Raúl Marín](https://github.com/Algunenano)).
* تجنّب تضمين ترويسات boost/multiprecision في `wide_integer_impl.h` على المنصات التي يتوفر فيها `long double` بالمستوى الكافي، مما يحسّن وقت البناء. [#96633](https://github.com/ClickHouse/ClickHouse/pull/96633) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تنفيذ مهمة LLVM Code Coverage وتفعيلها مبدئيًا لفرع master. [#90952](https://github.com/ClickHouse/ClickHouse/pull/90952) ([Alexey Bakharew](https://github.com/alexbakharew)).
* تفعيل التحصين السريع لـ libcxx في بنيات الإصدار. وهذا مطلوب في الغالب لعمليات التحقق من تجاوز الحدود. واستنادًا إلى نتائج اختبارات الأداء، لا يُتوقع أي تأثير ملحوظ على الأداء. [#94757](https://github.com/ClickHouse/ClickHouse/pull/94757) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).

<div id="261">
  ### إصدار ClickHouse 26.1، 2026-01-29. [العرض التقديمي](https://presentations.clickhouse.com/2026-release-26.1/)، [الفيديو](https://www.youtube.com/watch?v=fWuYt4M0xE4)
</div>

<div id="267-backward-incompatible-change">
  #### تغيير غير متوافق مع الإصدارات السابقة
</div>

* أصلِح التنسيق غير المتسق الناتج عن الاستبدال غير الصحيح للأسماء المستعارة في المُنسِّق. يُغلق هذا [#82833](https://github.com/ClickHouse/ClickHouse/issues/82833). يُغلق هذا [#82832](https://github.com/ClickHouse/ClickHouse/issues/82832). يُغلق هذا [#68296](https://github.com/ClickHouse/ClickHouse/issues/68296). قد يكون هذا التغيير غير متوافق مع الإصدارات السابقة: عند تعطيل المحلّل، يتعذر معالجة بعض استعلامات CREATE VIEW التي تستخدم IN وتشير إلى اسم مستعار. ولتجنب عدم التوافق، فعِّل المحلّل (وهو مفعّل افتراضيًا منذ الإصدار 24.3). [#82838](https://github.com/ClickHouse/ClickHouse/pull/82838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُزيل المرمِّزان `DEFLATE_QPL` و`ZSTD_QAT`. ويُنصح المستخدمون بتحويل البيانات الحالية المضغوطة باستخدام `DEFLATE_QPL` أو `ZSTD_QAT` إلى codec آخر قبل الترقية. لاحظ أنه لاستخدام هذين الـ codecs كان يجب تفعيل الإعدادين `enable_deflate_qpl_codec` و`enable_zstd_qat_codec`. [#92150](https://github.com/ClickHouse/ClickHouse/pull/92150) ([Robert Schulze](https://github.com/rschu1ze)).
* تحسين تصحيح أخطاء UDF عبر تمكين التقاط stderr في `system.query_log.exception`. في السابق، كان stderr الخاص بـ UDF يُسجَّل في الملفات فقط ولا يظهر في سجلات الاستعلامات، مما جعل تصحيح الأخطاء مستحيلًا. الآن، يؤدي stderr افتراضيًا إلى إطلاق استثناءات، كما يُجمَّع بالكامل (حتى 1MB) قبل الإطلاق، بحيث تظهر آثار التتبّع الكاملة لبايثون ورسائل الخطأ في `system.query_log.exception` بما يسهّل استكشاف الأخطاء وإصلاحها بفعالية. [#92209](https://github.com/ClickHouse/ClickHouse/pull/92209) ([Xu Jia](https://github.com/XuJia0210)).
* تُعدّ قائمة الأعمدة الفارغة في clause `JOIN USING ()` الآن خطأً نحويًا. في السابق، كان من المفترض أن تكون `INVALID_JOIN_ON_EXPRESSION` أثناء تنفيذ الاستعلام. وفي بعض الحالات، مثل الربط مع تخزين `Join`، كان ذلك يؤدي إلى `LOGICAL_ERROR`، ويغلق [#82502](https://github.com/ClickHouse/ClickHouse/issues/82502). [#92371](https://github.com/ClickHouse/ClickHouse/pull/92371) ([Vladimir Cherkasov](https://github.com/vdimir)).
* استخدام المطابقة الجزئية لـ SKIP REGEXP في JSON type افتراضيًا. يُغلق [#79250](https://github.com/ClickHouse/ClickHouse/issues/79250). [#92847](https://github.com/ClickHouse/ClickHouse/pull/92847) ([Pavel Kruglov](https://github.com/Avogar)).
* التراجع عن "السماح بـ INSERT إلى أعمدة ALIAS البسيطة" (تراجع عن ClickHouse/ClickHouse[#84154](https://github.com/ClickHouse/ClickHouse/issues/84154)). فهذا لا يعمل مع formats مخصصة، ولا يخضع لأي setting. [#92849](https://github.com/ClickHouse/ClickHouse/pull/92849) ([Azat Khuzhin](https://github.com/azat)).
* إضافة إعداد لإطلاق خطأ إذا لم يكن لدى Data Lake Catalog إمكانية وصول إلى object storage. [#93606](https://github.com/ClickHouse/ClickHouse/pull/93606) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* أُزيل database engine ‏`Lazy` ولم يعد متاحًا. يُغلق [#91231](https://github.com/ClickHouse/ClickHouse/issues/91231). [#93627](https://github.com/ClickHouse/ClickHouse/pull/93627) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إزالة الوضع `transposed_with_wide_view` من `metric_log` لأنه غير قابل للاستخدام بسبب خلل برمجي. ولم يعد ممكنًا تعريف `system.metric_log` بهذا الوضع. ويتراجع هذا التغيير جزئيًا عن [#78412](https://github.com/ClickHouse/ClickHouse/issues/78412). [#93867](https://github.com/ClickHouse/ClickHouse/pull/93867) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أصبحت جدولة CPU لأعباء العمل استباقية افتراضيًا. راجع server setting ‏`cpu_slot_preemption`. [#94060](https://github.com/ClickHouse/ClickHouse/pull/94060) ([Sergei Trifonov](https://github.com/serxa)).
* استخدم محارف الهروب في أسماء ملفات الفهارس لمنع تلف الأجزاء. مع هذا التغيير، سيفشل ClickHouse في تحميل الفهارس التي تحتوي أسماؤها على محارف غير ASCII والمُنشأة في الإصدارات السابقة. للتعامل مع ذلك، يمكنك استخدام إعداد MergeTree ‏`escape_index_filenames`. [#94079](https://github.com/ClickHouse/ClickHouse/pull/94079) ([Raúl Marín](https://github.com/Algunenano)).
* تغيّرت الإعدادات `exact_rows_before_limit` و`rows_before_aggregation` و`cross_to_inner_join_rewrite` و`regexp_dict_allow_hyperscan` و`regexp_dict_flag_case_insensitive` و`regexp_dict_flag_dotall` و`dictionary_use_async_executor` لتصبح الآن إعدادات عادية (وليست إعدادات format). هذا تغيير داخلي بحت من دون آثار جانبية مرئية للمستخدم، إلا في الحالة (غير المرجحة) التي تكون فيها قد حدّدت أيًا من هذه الإعدادات في تعريفات محرك الجدول Iceberg أو DeltaLake أو Kafka أو S3 أو S3Queue أو Azure أو Hive أو RabbitMQ أو Set أو FileLog أو NATS. في هذه الحالات، كانت هذه الإعدادات تُتجاهل سابقًا، أما الآن فستؤدي هذه التعريفات إلى ظهور خطأ. [#94106](https://github.com/ClickHouse/ClickHouse/pull/94106) ([Robert Schulze](https://github.com/rschu1ze)).
* تفرض الدالتان `joinGet/joinGetOrNull` الآن امتيازات `SELECT` على جدول Join الأساسي. بعد هذا التغيير، يتطلب تنفيذ `joinGet('db.table', 'column', key)` أن يمتلك المستخدم امتياز `SELECT` لكلٍّ من أعمدة المفتاح المعرّفة في جدول Join وعمود السمة الجاري استرجاعه. ستفشل الاستعلامات التي تفتقر إلى هذه الامتيازات مع `ACCESS_DENIED`. للترحيل، امنح الأذونات اللازمة باستخدام `GRANT SELECT ON db.join_table TO user` للوصول الكامل إلى الجدول، أو `GRANT SELECT(key_col, attr_col) ON db.join_table TO user` للوصول على مستوى العمود. يؤثر هذا التغيير في جميع المستخدمين والتطبيقات التي تعتمد على `joinGet`/`joinGetOrNull` حيث لم تكن امتيازات `SELECT` الصريحة مُعدّة مسبقًا. [#94307](https://github.com/ClickHouse/ClickHouse/pull/94307) ([Vladimir Cherkasov](https://github.com/vdimir)).
* تحقّق من `SHOW COLUMNS` في استعلامات `CREATE TABLE ... AS ...`. سابقًا، كان التحقق يتم عبر `SHOW TABLES`، وهو grant غير صحيح لهذا النوع من فحوصات الأذونات. [#94556](https://github.com/ClickHouse/ClickHouse/pull/94556) ([pufit](https://github.com/pufit)).
* اجعل output format ‏`Hash` مستقلًا عن أحجام block. [#94503](https://github.com/ClickHouse/ClickHouse/pull/94503) ([Alexey Milovidov](https://github.com/alexey-milovidov)). لاحظ أن هذا يغيّر قيم hash الناتجة مقارنة بالإصدارات السابقة.

<div id="267-new-feature">
  #### ميزة جديدة
</div>

* واجهة برمجة تطبيقات HTTP وواجهة ويب مدمجة لـ ClickHouse Keeper. [#78181](https://github.com/ClickHouse/ClickHouse/pull/78181) ([pufit](https://github.com/pufit) و[speeedmaster](https://github.com/speeedmaster)).
* تعمل الآن آلية إزالة التكرار في async insert مع العروض المادية التابعة. عند حدوث تعارض بسبب block\_id، تُرشَّح الكتلة الأصلية لإزالة الصفوف المرتبطة بـ block\_id، ثم تُحوَّل الصفوف المتبقية باستخدام جميع استعلامات select ذات الصلة في العروض المادية، ما يعيد بناء الكتلة الأصلية من دون الصفوف المتعارضة. [#89140](https://github.com/ClickHouse/ClickHouse/pull/89140) ([Sema Checherinda](https://github.com/CheSema)). كما أصبح استخدام إزالة التكرار مع async inserts مسموحًا عند وجود عروض مادية. [#93957](https://github.com/ClickHouse/ClickHouse/pull/93957) ([Sema Checherinda](https://github.com/CheSema)).
* تقديم صياغة جديدة وإطار عمل جديد لتبسيط ميزة فهرس projection وتوسيعها. ويأتي هذا استكمالًا لـ [https://github.com/ClickHouse/ClickHouse/pull/81021](https://github.com/ClickHouse/ClickHouse/pull/81021). [#91844](https://github.com/ClickHouse/ClickHouse/pull/91844) ([Amos Bird](https://github.com/amosbird)).
* إضافة دعم الفهرس النصي لأعمدة `Array`. [#89895](https://github.com/ClickHouse/ClickHouse/pull/89895) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* تفعيل `use_variant_as_common_type` افتراضيًا، ما يتيح استخدام أنواع غير متوافقة داخل `Array`، وفي استعلامات `UNION`، وفي فروع `if`/`multiIf`/`case`. [#90677](https://github.com/ClickHouse/ClickHouse/pull/90677) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* جدول نظام جديد `zookeeper_info`. ينفّذ [#88014](https://github.com/ClickHouse/ClickHouse/issues/88014). [#90809](https://github.com/ClickHouse/ClickHouse/pull/90809) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* دعم النوع `Variant` في جميع الدوال. [#90900](https://github.com/ClickHouse/ClickHouse/pull/90900) ([Bharat Nallan](https://github.com/bharatnc)).
* إضافة مقياس `ClickHouse_Info` إلى نقطة النهاية `/metrics` في Prometheus، ويحتوي أساسًا على معلومات الإصدار، ما يتيح إنشاء مخططات تتتبّع معلومات الإصدار التفصيلية بمرور الوقت. [#91125](https://github.com/ClickHouse/ClickHouse/pull/91125) ([Christoph Wurm](https://github.com/cwurm)).
* تقديم أمر جديد مكوّن من أربعة أحرف هو `rcfg` لـ Keeper، يتيح تغيير تهيئة العنقود. ويوفّر هذا الأمر إمكانات أوسع لتغييرات التهيئة مقارنة بطلب `reconfigure` القياسي. ويأخذ الأمر سلسلة `json` بوصفها وسيطة. يجب أن تبدو المجموعة الكاملة من البايتات المُرسلة إلى واجهة TCP كما يلي: `rcfg{json_string_length_big_endian}{json_string}`. وقد تبدو بعض أمثلة الأمر كما يلي: `{"preconditions": {"leaders": [1, 2], "members": [1, 2, 3, 4, 5]}, "actions": [{"transfer_leadership": [3]}, {"remove_members": [1, 2]}, {"set_priority": [{"id": 4, "priority": 100}, {"id": 5, "priority": 100}]}, {"transfer_leadership": [4, 5]}, {"set_priority": [{"id": 3, "priority": 0}]}]}`. [#91354](https://github.com/ClickHouse/ClickHouse/pull/91354) ([alesapin](https://github.com/alesapin)).
* إضافة الدالة `reverseBySeparator` التي تعكس ترتيب substrings في سلسلة نصية مفصولة بفاصل محدد. ويغلق هذا [#91463](https://github.com/ClickHouse/ClickHouse/issues/91463). [#91780](https://github.com/ClickHouse/ClickHouse/pull/91780) ([Xuewei Wang](https://github.com/Sallery-X)).
* إضافة الإعداد الجديد `max_insert_block_size_bytes` الذي يتيح تحكمًا أدق في تكوين الكتل المُدخلة. [#92833](https://github.com/ClickHouse/ClickHouse/pull/92833) ([Kirill Kopnev](https://github.com/Fgrtue)).
* يمكن تنفيذ استعلامات DDL مع العبارة `ON CLUSTER` لقاعدة بيانات Replicated إذا كان الإعداد `ignore_on_cluster_for_replicated_database` مفعّلًا. في هذه الحالة، سيتم تجاهل اسم العنقود. [#92872](https://github.com/ClickHouse/ClickHouse/pull/92872) ([Kirill](https://github.com/kirillgarbar)).
* تنفيذ الدالة `mergeTreeAnalyzeIndexes`. [#92954](https://github.com/ClickHouse/ClickHouse/pull/92954) ([Azat Khuzhin](https://github.com/azat)).
* إضافة الإعداد الجديد `use_primary_key`. اضبطه على `false` لتعطيل استبعاد الحبيبات استنادًا إلى المفتاح الأساسي. [#93319](https://github.com/ClickHouse/ClickHouse/pull/93319) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة دالة الجدول `icebergLocalCluster`. [#93323](https://github.com/ClickHouse/ClickHouse/pull/93323) ([Anton Ivashkin](https://github.com/ianton-ru)).
* إضافة الدالة `cosineDistanceTransposed` التي تُقدّر [مسافة جيب التمام](https://en.wikipedia.org/wiki/Cosine_similarity#Cosine_distance) بين نقطتين. [#93621](https://github.com/ClickHouse/ClickHouse/pull/93621) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إضافة العمود `files` إلى جدول system.parts، لعرض عدد الملفات في كل جزء بيانات. [#94337](https://github.com/ClickHouse/ClickHouse/pull/94337) ([Match](https://github.com/gayanMatch)).
* إضافة مُجدول عدالة من نوع max-min للتحكم في التزامن. يوفّر عدالة أفضل في حالات فرط الاشتراك الشديد، حيث تتنافس استعلامات كثيرة على خانات CPU محدودة. ولا تتضرر الاستعلامات قصيرة المدة بسبب الاستعلامات طويلة المدة التي راكمت خانات أكثر بمرور الوقت. ويُفعَّل ذلك عبر القيمة `max_min_fair` في إعداد الخادم `concurrent_threads_scheduler`. [#94732](https://github.com/ClickHouse/ClickHouse/pull/94732) ([Sergei Trifonov](https://github.com/serxa)).
* إضافة إمكانية لعميل ClickHouse لتجاوز قيمة TLS SNI عند الاتصال بالخادم. [#89761](https://github.com/ClickHouse/ClickHouse/pull/89761) ([Matt Klein](https://github.com/mattklein123)).
* دعم الجداول المؤقتة في استدعاءات الدالة `joinGet`. [#92973](https://github.com/ClickHouse/ClickHouse/pull/92973) ([Eduard Karacharov](https://github.com/korowa)).
* دعم متجهات الحذف في محرك الجدول `DeltaLake`. [#93852](https://github.com/ClickHouse/ClickHouse/pull/93852) ([Kseniia Sumarokova](https://github.com/kssenii)).
* دعم متجهات الحذف في `deltaLakeCluster`. [#94365](https://github.com/ClickHouse/ClickHouse/pull/94365) ([Kseniia Sumarokova](https://github.com/kssenii)).
* دعم Google Cloud Storage لبحيرات البيانات. [#93866](https://github.com/ClickHouse/ClickHouse/pull/93866) ([Konstantin Vedernikov](https://github.com/scanhex12)).

<div id="267-experimental-feature">
  #### ميزة تجريبية
</div>

* ترقية `QBit` من Experimental إلى Beta. [#93816](https://github.com/ClickHouse/ClickHouse/pull/93816) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إضافة دعم لـ `Nullable(Tuple)`. اضبط `allow_experimental_nullable_tuple_type = 1` لتمكينه. [#89643](https://github.com/ClickHouse/ClickHouse/pull/89643) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إضافة دعم لـ Paimon REST catalog، استكمالًا للعمل في [https://github.com/ClickHouse/ClickHouse/pull/84423](https://github.com/ClickHouse/ClickHouse/pull/84423). [#92011](https://github.com/ClickHouse/ClickHouse/pull/92011) ([JIaQi Tang](https://github.com/JiaQiTang98)).

<div id="267-performance-improvement">
  #### تحسين الأداء
</div>

* أصبح الإعداد `use_skip_indexes_on_data_read` مفعّلاً افتراضياً. يتيح هذا الإعداد إجراء التصفية بأسلوب streaming بالتزامن مع القراءة، مما يحسّن أداء الاستعلام ووقت بدء التشغيل. [#93407](https://github.com/ClickHouse/ClickHouse/pull/93407) ([Shankar Iyer](https://github.com/shankar-iyer)).
* تحسين أداء `DISTINCT` على الأعمدة `LowCardinality`. يُغلق [#5917](https://github.com/ClickHouse/ClickHouse/issues/5917). [#91639](https://github.com/ClickHouse/ClickHouse/pull/91639) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* تحسين aggregate function ‏`distinctJSONPaths` بحيث يقرأ مسارات JSON فقط من أجزاء البيانات، لا عمود JSON بالكامل. [#92196](https://github.com/ClickHouse/ClickHouse/pull/92196) ([Pavel Kruglov](https://github.com/Avogar)).
* دفع المزيد من عوامل التصفية إلى عمليات JOIN. [#85556](https://github.com/ClickHouse/ClickHouse/pull/85556) ([Nikita Taranov](https://github.com/nickitat)).
* دعم المزيد من حالات push down انطلاقاً من شرط ON في join عندما يستخدم عامل التصفية مدخلات من جانب واحد فقط. ودعم joins من النوع `ANY` و`SEMI` و`ANTI`. [#92584](https://github.com/ClickHouse/ClickHouse/pull/92584) ([Dmitry Novik](https://github.com/novikd)).
* السماح باستخدام sets مكافئة لدفع عوامل التصفية في `SEMI JOIN`. يُغلق [#85239](https://github.com/ClickHouse/ClickHouse/issues/85239). [#92837](https://github.com/ClickHouse/ClickHouse/pull/92837) ([Dmitry Novik](https://github.com/novikd)).
* تخطي قراءة الجانب الأيسر من hash join عندما يكون الجانب الأيمن فارغاً. سابقاً، كانت قراءة الجانب الأيسر تستمر حتى أول block غير فارغ، ما قد يسبب قدراً كبيراً من العمل عند وجود تصفية مكثفة أو aggregation. [#94062](https://github.com/ClickHouse/ClickHouse/pull/94062) ([Alexander Gololobov](https://github.com/davenger)).
* استخدام طريقة "fastrange" ‏(Daniel Lemire) لتقسيم البيانات داخل query pipeline. قد يحسّن ذلك الفرز المتوازي وعمليات JOIN. [#93080](https://github.com/ClickHouse/ClickHouse/pull/93080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تحسين أداء window functions عندما يطابق PARTITION BY مفتاح الفرز أو يكون prefix له. [#87299](https://github.com/ClickHouse/ClickHouse/pull/87299) ([Nikita Taranov](https://github.com/nickitat)).
* يُدفع عامل التصفية الخارجي إلى views، مما يتيح تطبيق PREWHERE على العُقد المحلية والبعيدة. يعالج [#88189](https://github.com/ClickHouse/ClickHouse/issues/88189). [#88316](https://github.com/ClickHouse/ClickHouse/pull/88316) ([Igor Nikonov](https://github.com/devcrafter)).
* تنفيذ ترجمات JIT البرمجية لمزيد من الدوال. يُغلق [#73509](https://github.com/ClickHouse/ClickHouse/issues/73509). [#88770](https://github.com/ClickHouse/ClickHouse/pull/88770) ([Alexey Milovidov](https://github.com/alexey-milovidov) with [Taiyang Li](https://github.com/taiyang-li)).
* إذا كان skip index المستخدم في استعلام `FINAL` على عمود يُعد جزءاً من المفتاح الأساسي، فإن الخطوة الإضافية للتحقق من تقاطع المفتاح الأساسي في الأجزاء الأخرى تكون غير ضرورية، ولذلك لم تعد تُنفَّذ. يعالج [#85897](https://github.com/ClickHouse/ClickHouse/issues/85897). [#93899](https://github.com/ClickHouse/ClickHouse/pull/93899) ([Shankar Iyer](https://github.com/shankar-iyer)).
* تحسين الأداء واستخدام الذاكرة لكل من `LIMIT` و`OFFSET` الكسريين. [#91167](https://github.com/ClickHouse/ClickHouse/pull/91167) ([Ahmed Gouda](https://github.com/0xgouda)).
* إصلاح استخدام منطق القراءة العشوائية الأسرع في أداة الجلب المسبق لـ Parquet Reader V3. يُغلق [#90890](https://github.com/ClickHouse/ClickHouse/issues/90890). [#91435](https://github.com/ClickHouse/ClickHouse/pull/91435) ([Arsen Muk](https://github.com/arsenmuk)).
* تحسين أداء `icebergCluster`. يُغلق [#91462](https://github.com/ClickHouse/ClickHouse/issues/91462). [#91537](https://github.com/ClickHouse/ClickHouse/pull/91537) ([Yang Jiang](https://github.com/Ted-Jiang)).
* عدم التصفية حسب الأعمدة الافتراضية عند استخدام عوامل تصفية ثابتة. [#91588](https://github.com/ClickHouse/ClickHouse/pull/91588) ([c-end](https://github.com/c-end)).
* تقليل استخدام الذاكرة في INSERT/merges مع wide parts للجداول شديدة الاتساع من خلال تمكين مخازن الكتابة المؤقتة التكيفية. وإضافة دعم لمخازن الكتابة المؤقتة التكيفية للأقراص المشفرة. [#92250](https://github.com/ClickHouse/ClickHouse/pull/92250) ([Azat Khuzhin](https://github.com/azat)).
* تحسين أداء full text search باستخدام text index وtokenizer ‏`sparseGrams` عبر تقليل عدد الرموز المميزة التي يُبحث عنها في الفهرس. [#93078](https://github.com/ClickHouse/ClickHouse/pull/93078) ([Anton Popov](https://github.com/CurtizJ)).
* جرى تحسين الدالة `isValidASCII` للحالات الإيجابية، أي عندما تكون جميع قيم الإدخال من ASCII. [#93347](https://github.com/ClickHouse/ClickHouse/pull/93347) ([Robert Schulze](https://github.com/rschu1ze)).
* أصبح تحسين القراءة حسب الترتيب يتعرف على الحالات التي تكون فيها أعمدة ORDER BY ثابتة بسبب شروط WHERE، مما يتيح قراءات فعّالة بالترتيب العكسي. ويفيد ذلك الاستعلامات متعددة المستأجرين مثل `WHERE tenant='42' ORDER BY tenant, event_time DESC`، إذ يمكنها الآن استخدام InReverseOrder بدلًا من الحاجة إلى sort كامل. [#94103](https://github.com/ClickHouse/ClickHouse/pull/94103) ([matanper](https://github.com/matanper)).
* استحداث صنف Enum AST متخصص لتخزين معاملات القيم في أزواج (string, integer) بدلًا من العناصر الفرعية ASTLiteral، بهدف تحسين استهلاك الذاكرة. [#94178](https://github.com/ClickHouse/ClickHouse/pull/94178) ([Ilya Yatsishin](https://github.com/qoega)).
* تحليل الفهرس الموزع عبر replicas متعددة. وهو مفيد للتخزين المشترك وللكميات الضخمة من البيانات في cluster. وينطبق ذلك على SharedMergeTree ‏(ClickHouse Cloud)، وقد ينطبق أيضًا على أنواع أخرى من جداول MergeTree على تخزين مشترك. [#86786](https://github.com/ClickHouse/ClickHouse/pull/86786) ([Azat Khuzhin](https://github.com/azat)).
* تقليل overhead الخاص بمرشحات runtime في join عبر تعطيلها في الحالات التالية: - عند تعيين عدد كبير جدًا من البتات في bloom filter - عند تصفية عدد قليل جدًا من الصفوف أثناء runtime. [#91578](https://github.com/ClickHouse/ClickHouse/pull/91578) ([Alexander Gololobov](https://github.com/davenger)).
* استخدام مخزن مؤقت داخل الذاكرة لمدخلات الاستعلامات الفرعية المترابطة لتجنب تقييمها عدة مرات. جزء من [#79890](https://github.com/ClickHouse/ClickHouse/issues/79890). [#91205](https://github.com/ClickHouse/ClickHouse/pull/91205) ([Dmitry Novik](https://github.com/novikd)).
* السماح لجميع replicas بسرقة النطاقات اليتيمة في القراءة باستخدام parallel replicas. وهذا يحسّن موازنة الحمل ويقلل tail latency. [#91374](https://github.com/ClickHouse/ClickHouse/pull/91374) ([zoomxi](https://github.com/zoomxi)).
* أصبح external aggregation/sorting/join يراعي الآن إعداد الاستعلام `temporary_files_codec` في جميع السياقات. كما أُصلحت profile events المفقودة لخوارزمية grace hash join. [#92388](https://github.com/ClickHouse/ClickHouse/pull/92388) ([Vladimir Cherkasov](https://github.com/vdimir)).
* جعل اكتشاف استخدام ذاكرة الاستعلام عند spilling to disk أثناء aggregation/sorting أكثر متانة. [#92500](https://github.com/ClickHouse/ClickHouse/pull/92500) ([Azat Khuzhin](https://github.com/azat)).
* تقدير العدد الإجمالي للصفوف وإحصاءات NDV ‏(عدد القيم المميزة) لأعمدة مفاتيح aggregation. [#92812](https://github.com/ClickHouse/ClickHouse/pull/92812) ([Alexander Gololobov](https://github.com/davenger)).
* تحسين Compression لقائمة postings باستخدام simdcomp. [#92871](https://github.com/ClickHouse/ClickHouse/pull/92871) ([Peng Jian](https://github.com/fastio)).
* إعادة هيكلة معالجة الوضع ordered في S3Queue باستخدام buckets. من شأن ذلك أيضًا تحسين الأداء وتقليل عدد طلبات Keeper. [#92889](https://github.com/ClickHouse/ClickHouse/pull/92889) ([Kseniia Sumarokova](https://github.com/kssenii)).
* يمكن الآن للدالتين `mapContainsKeyLike` و`mapContainsValueLike` الاستفادة من text index على `mapKeys()` أو `mapValues()` على الترتيب. [#93049](https://github.com/ClickHouse/ClickHouse/pull/93049) ([Michael Jarrett](https://github.com/EmeraldShift)).
* تقليل استهلاك الذاكرة على الأنظمة غير التابعة لـ Linux (تمكين purge الفوري لـ dirty pages الخاصة بـ jemalloc). [#93360](https://github.com/ClickHouse/ClickHouse/pull/93360) ([Eduard Karacharov](https://github.com/korowa)).
* فرض purge لـ arenas الخاصة بـ jemalloc إذا تجاوزت نسبة حجم dirty pages إلى `max_server_memory_usage` القيمة `memory_worker_purge_dirty_pages_threshold_ratio`. [#93500](https://github.com/ClickHouse/ClickHouse/pull/93500) ([Eduard Karacharov](https://github.com/korowa)).
* تقليل استهلاك الذاكرة في AST. [#93601](https://github.com/ClickHouse/ClickHouse/pull/93601) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* في بعض الحالات، لاحظنا أن ClickHouse لا يلتزم بـ memory limit عند القراءة من table. تم إصلاح هذا السلوك. [#93715](https://github.com/ClickHouse/ClickHouse/pull/93715) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تفعيل extension الخاص بـ Keeper لكل من `CHECK_STAT` و`TRY_REMOVE` افتراضيًا. [#93886](https://github.com/ClickHouse/ClickHouse/pull/93886) ([Mikhail Artemenko](https://github.com/Michicosun)).
* تحليل الحدين الأدنى والأعلى لأسماء الملفات المقابلة لعمليات حذف المواضع من entries في manifest file الخاص بـ Iceberg، لتحسين اختيار data files المقابلة. [#93980](https://github.com/ClickHouse/ClickHouse/pull/93980) ([Daniil Ivanik](https://github.com/divanik)).
* إضافة إعدادين آخرين للتحكم في الحد الأقصى لعدد subcolumns الديناميكية في JSON column. الأول هو MergeTree setting `merge_max_dynamic_subcolumns_in_compact_part` (مماثل للإعداد المضاف سابقًا `merge_max_dynamic_subcolumns_in_wide_part`) ويحدّ من عدد subcolumns الديناميكية التي تُنشأ أثناء merge إلى compact part. والثاني هو إعداد على مستوى query باسم `max_dynamic_subcolumns_in_json_type_parsing` يحدّ من عدد subcolumns الديناميكية التي تُنشأ أثناء parsing لبيانات JSON، ما يتيح تحديد الحد عند insert. [#94184](https://github.com/ClickHouse/ClickHouse/pull/94184) ([Pavel Kruglov](https://github.com/Avogar)).
* تحسين طفيف لعملية squashing الخاصة بـ JSON columns في بعض الحالات. [#94247](https://github.com/ClickHouse/ClickHouse/pull/94247) ([Pavel Kruglov](https://github.com/Avogar)).
* خفض أحجام queue الخاصة بـ thread pool استنادًا إلى الخبرة في بيئات production. وإضافة فحص صريح لاستهلاك الذاكرة قبل قراءة أي بيانات من MergeTree. [#94692](https://github.com/ClickHouse/ClickHouse/pull/94692) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* التأكد من أن scheduler يفضّل thread الخاص بـ MemoryWorker عند شحّ موارد CPU، لأنه يحمي عملية ClickHouse من تهديد وجودي. [#94864](https://github.com/ClickHouse/ClickHouse/pull/94864) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* تشغيل purge لـ dirty pages الخاصة بـ jemalloc في thread مختلف عن thread الرئيسي لـ MemoryWorker. وإذا كانت عملية purge بطيئة، فقد تؤخر تحديثات استخدام RSS، ما قد يؤدي إلى إنهاء العملية بسبب نفاد الذاكرة. وإضافة config جديد باسم `memory_worker_purge_total_memory_threshold_ratio` لبدء purge لـ dirty pages استنادًا إلى نسبة إجمالي استخدام الذاكرة. [#94902](https://github.com/ClickHouse/ClickHouse/pull/94902) ([Antonio Andelic](https://github.com/antonio2368)).

<div id="267-improvement">
  #### تحسينات
</div>

* أصبح `system.blob_storage_log` متاحًا الآن لـ Azure Blob Storage. [#93105](https://github.com/ClickHouse/ClickHouse/pull/93105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تمت إضافة `blob_storage_log` لكلٍّ من Local وHDFS. كما أُصلح خطأ كان يحدث عندما يستخدم `S3Queue` قيمة غير اسم القرص للتسجيل في `blob_storage_log`. وأُضيف العمود `error_code` إلى `blob_storage_log`. كذلك جرى تقسيم ملف التهيئة الخاص بالاختبارات لتبسيط الاختبار المحلي. [#93106](https://github.com/ClickHouse/ClickHouse/pull/93106) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* سيقوم `clickhouse-client` و`clickhouse-local` الآن بإبراز مجموعات الأرقام (الآلاف والملايين وما إلى ذلك) داخل القيم الرقمية الحرفية أثناء الكتابة. هذا يُغلق [#93100](https://github.com/ClickHouse/ClickHouse/issues/93100). [#93108](https://github.com/ClickHouse/ClickHouse/pull/93108) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف دعم في `clickhouse-client` لوسائط سطر الأوامر التي تحتوي على مسافات حول علامة التساوي. يُغلق هذا [#93077](https://github.com/ClickHouse/ClickHouse/issues/93077). [#93174](https://github.com/ClickHouse/ClickHouse/pull/93174) ([Cole Smith](https://github.com/colesmith54)).
* مع `<interactive_history_legacy_keymap>true</interactive_history_legacy_keymap>`، يمكن لعميل CLI الآن الرجوع تلقائيًا إلى Ctrl-R للبحث العادي كما كان سابقًا، بينما يُستخدم Ctrl-T للبحث الضبابي. [#87785](https://github.com/ClickHouse/ClickHouse/pull/87785) ([Larry Snizek](https://github.com/larry-cdn77)).
* كانت العبارة المستخدمة لمسح الذاكرات المؤقتة `SYSTEM DROP [...] CACHE` تعطي انطباعًا خاطئًا بأنها تعطل الذاكرة المؤقتة. يدعم ClickHouse الآن العبارة `SYSTEM CLEAR [...] CACHE` لأنها أوضح. وتظل الصياغة القديمة متاحة. [#93727](https://github.com/ClickHouse/ClickHouse/pull/93727) ([Pranav Tiwari](https://github.com/pranavt84)).
* دعم استخدام عدة أعمدة كمفتاح أساسي في `EmbeddedRocksDB`. يُغلق هذا [#32819](https://github.com/ClickHouse/ClickHouse/issues/32819). [#33917](https://github.com/ClickHouse/ClickHouse/pull/33917) ([usurai](https://github.com/usurai)).
* أصبح من الممكن الآن استخدام IN غير ثابتة مع القيم scalar (استعلامات مثل `val1 NOT IN if(cond, val2, val3)`). [#93495](https://github.com/ClickHouse/ClickHouse/pull/93495) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* منع تمرير الترويسات `x-amz-server-side-encryption` إلى طلبات S3 من نوع `HeadObject` و`UploadPart` و`CompleteMultipartUpload` لأنها غير مدعومة. [#64577](https://github.com/ClickHouse/ClickHouse/pull/64577) ([Francisco J. Jurado Moreno](https://github.com/Beetelbrox)).
* تتبّع partitioning الخاص بـ hive في الوضع ordered ضمن S3Queue. يحل هذا [#71161](https://github.com/ClickHouse/ClickHouse/issues/71161). [#81040](https://github.com/ClickHouse/ClickHouse/pull/81040) ([Anton Ivashkin](https://github.com/ianton-ru)).
* تحسين حجز المساحة في filesystem cache. سيُنفَّذ `FileCache::collectCandidatesForEviction` من دون قفل حصري. [#82764](https://github.com/ClickHouse/ClickHouse/pull/82764) ([Kseniia Sumarokova](https://github.com/kssenii)).
* دعم استراتيجية rotation مركبة (الحجم + الوقت) لـ server log. [#87620](https://github.com/ClickHouse/ClickHouse/pull/87620) ([Jianmei Zhang](https://github.com/zhangjmruc)).
* يمكن لعميل CLI الآن تحديد `<warnings>false</warnings>` بدلًا من وسيطة سطر الأوامر `--no-warnings`. [#87783](https://github.com/ClickHouse/ClickHouse/pull/87783) ([Larry Snizek](https://github.com/larry-cdn77)).
* إضافة دعم للدالة التجميعية `avg` مع قيم Date وDateTime وTime كوسائط. يُغلق [#82267](https://github.com/ClickHouse/ClickHouse/issues/82267). [#87845](https://github.com/ClickHouse/ClickHouse/pull/87845) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* أصبح التحسين `use_join_disjunctions_push_down` مفعّلًا افتراضيًا. [#89313](https://github.com/ClickHouse/ClickHouse/pull/89313) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم المزيد من محركات الجداول وأنواع مصادر البيانات في الاستعلامات الفرعية المترابطة. يُغلق [#80775](https://github.com/ClickHouse/ClickHouse/issues/80775). [#90175](https://github.com/ClickHouse/ClickHouse/pull/90175) ([Dmitry Novik](https://github.com/novikd)).
* إذا تم تحديد مخطط العرض ذي المعلمات صراحةً، فسيُعرض. يُغلق [#88875](https://github.com/ClickHouse/ClickHouse/issues/88875)، [#81385](https://github.com/ClickHouse/ClickHouse/issues/81385). [#90220](https://github.com/ClickHouse/ClickHouse/pull/90220) ([Grigorii Sokolik](https://github.com/GSokol)).
* التعامل بشكل صحيح مع الفجوة في إدخالات سجل Keeper إذا كانت السجلات تسبق آخر فهرس مُعتمد. [#90403](https://github.com/ClickHouse/ClickHouse/pull/90403) ([Antonio Andelic](https://github.com/antonio2368)).
* تحسين الإعداد `min_free_disk_bytes_to_perform_insert` ليعمل بشكل صحيح مع وحدات JBOD. [#90878](https://github.com/ClickHouse/ClickHouse/pull/90878) ([Aleksandr Musorin](https://github.com/AVMusorin)).
* إتاحة تحديد الإعداد `storage_class_name` في المجموعات المسماة لمحرك الجدول `S3` ودالة الجدول `s3`. [#91926](https://github.com/ClickHouse/ClickHouse/pull/91926) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* دعم الإدراج في ZooKeeper إضافي عبر `system.zookeeper`. [#92092](https://github.com/ClickHouse/ClickHouse/pull/92092) ([RinChanNOW](https://github.com/RinChanNOWWW)).
* إضافة مقاييس جديدة إلى Keeper: أحداث profile ‏`KeeperChangelogWrittenBytes` و`KeeperChangelogFileSyncMicroseconds` و`KeeperSnapshotWrittenBytes` و`KeeperSnapshotFileSyncMicroseconds`، بالإضافة إلى مقاييس المدرج التكراري `KeeperBatchSizeElements` و`KeeperBatchSizeBytes`. [#92149](https://github.com/ClickHouse/ClickHouse/pull/92149) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إضافة إعداد جديد، `trace_profile_events_list`، يقيّد التتبّع باستخدام `trace_profile_event` بقائمة أسماء الأحداث المحددة. يتيح ذلك جمع بيانات أدق في أحمال العمل الكبيرة. [#92298](https://github.com/ClickHouse/ClickHouse/pull/92298) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* دعم SYSTEM NOTIFY FAILPOINT لنقاط الفشل القابلة للإيقاف المؤقت. - دعم SYSTEM WAIT FAILPOINT fp PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إضافة العمود `creation` ‏(implicit/explicit) إلى `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)).
* السماح بتمرير وصف الأعمدة لجداول YTsaurus الديناميكية إلى مصدر القاموس. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* في [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985)، أصبح بالإمكان تحديد جميع المعلمات اللازمة لإعداد TLS لكل منفذ على حدة (راجع [البروتوكولات القابلة للتركيب](https://clickhouse.com/docs/operations/settings/composable-protocols))، بحيث لا نعود بحاجة إلى الاعتماد على إعداد TLS عام. ومع ذلك، لا يزال التنفيذ يتطلب ضمنيًا وجود قسم إعداد عام `openSSL.server`، وهو ما يتعارض مع البيئات التي تحتاج إلى إعدادات TLS مختلفة لمنافذ مختلفة. على سبيل المثال، في عمليات نشر keeper-in-server، نحتاج إلى إعدادات TLS منفصلة للاتصال بين Keeper واتصالات عميل ClickHouse. [#92457](https://github.com/ClickHouse/ClickHouse/pull/92457) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* تقديم إعداد جديد `input_format_binary_max_type_complexity` يقيّد العدد الإجمالي لعُقد الأنواع التي يمكن فك ترميزها بالتنسيق الثنائي، وذلك لمنع حمولات البيانات الضارة. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إظهار المهام قيد التشغيل في `system.background_schedule_pool{,_log}`. وإضافة التوثيق. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)).
* تنفيذ الاستعلام الحالي في بحث Ctrl+R داخل العميل إذا لم يتم العثور على أي تطابق في السجل. [#92749](https://github.com/ClickHouse/ClickHouse/pull/92749) ([Azat Khuzhin](https://github.com/azat)).
* دعم `EXPLAIN indices = 1` كاسم بديل لـ `EXPLAIN indexes = 1`. يغلق [#92483](https://github.com/ClickHouse/ClickHouse/issues/92483). [#92774](https://github.com/ClickHouse/ClickHouse/pull/92774) ([Pranav Tiwari](https://github.com/pranavt84)).
* يتيح قارئ Parquet الآن قراءة أعمدة Tuple أو Map بصيغة JSON: يعمل `select x from file(f.parquet, auto, 'x JSON')` حتى إذا كان نوع العمود `x` في `f.parquet` هو tuple أو map. [#92864](https://github.com/ClickHouse/ClickHouse/pull/92864) ([Michael Kolupaev](https://github.com/al13n321)).
* دعم tuple الفارغة في قارئ Parquet. [#92868](https://github.com/ClickHouse/ClickHouse/pull/92868) ([Michael Kolupaev](https://github.com/al13n321)).
* التراجع إلى النسخ بأسلوب القراءة والكتابة في Azure Blob Storage عندما تفشل عملية النسخ الأصلية مع BadRequest (على سبيل المثال، عند وجود قائمة block غير صالحة). سابقًا، كان هذا يُنفَّذ فقط عند حدوث الخطأ Unauthorized، والذي كان يظهر عند نسخ blob إلى storage accounts مختلفة. لكننا نرى أيضًا أحيانًا الخطأ "The specified block list is invalid". لذلك تم الآن تحديث الشرط للتراجع إلى القراءة والكتابة عند فشل أي عملية نسخ أصلية. [#92888](https://github.com/ClickHouse/ClickHouse/pull/92888) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
* إصلاح تقييد EC2 metadata endpoint عند تشغيل عدد كبير من استعلامات S3 المتزامنة باستخدام بيانات اعتماد ملف تعريف مثيل EC2. سابقًا، كان كل استعلام ينشئ `AWSInstanceProfileCredentialsProvider` خاصًا به، مما كان يؤدي إلى طلبات متزامنة إلى خدمة بيانات EC2 الوصفية، وقد يتسبب في حالات timeout وأخطاء `HTTP response code: 403`. الآن أصبح موفر بيانات الاعتماد يُخزَّن مؤقتًا ويُشارَك بين جميع الاستعلامات. [#92891](https://github.com/ClickHouse/ClickHouse/pull/92891) ([Sav](https://github.com/sberss)).
* إعادة العمل على الإعداد `insert_select_deduplicate` لإتاحة الحفاظ على التوافق مع الإصدارات السابقة. [#92951](https://github.com/ClickHouse/ClickHouse/pull/92951) ([Sema Checherinda](https://github.com/CheSema)).
* تسجيل المهام الخلفية الأبطأ من المتوسط (`background_schedule_pool_log.duration_threshold_milliseconds=30`) لتجنّب الإفراط في تسجيل المهام. [#92965](https://github.com/ClickHouse/ClickHouse/pull/92965) ([Azat Khuzhin](https://github.com/azat)).
* في الإصدارات السابقة، كانت بعض أسماء دوال C++ تُعرض بشكل غير صحيح ("mangled") في `system.trace_log` و`system.symbols`، ولم تكن الدالة `demangle` تتعامل معها جيدًا. يُغلق [#93074](https://github.com/ClickHouse/ClickHouse/issues/93074). [#93075](https://github.com/ClickHouse/ClickHouse/pull/93075) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف إعداد النسخ الاحتياطي `backup_data_from_refreshable_materialized_view_targets` لتخطي النسخ الاحتياطي لأهداف الـ refreshable materialized views. أما RMVs التي تستخدم استراتيجية التحديث APPEND، فيتم دائمًا نسخها احتياطيًا. [#93076](https://github.com/ClickHouse/ClickHouse/pull/93076) ([Julia Kartseva](https://github.com/jkartseva)). [#93658](https://github.com/ClickHouse/ClickHouse/pull/93658) ([Julia Kartseva](https://github.com/jkartseva))
* استخدام الحد الأدنى من معلومات Debug بدلًا من عدم تضمين أي معلومات Debug لوحدات الترجمة الثقيلة، مثل الدوال. [#93079](https://github.com/ClickHouse/ClickHouse/pull/93079) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُضيف دعم التوافق مع MinIO إلى AWS S3 C++ SDK من خلال تنفيذ ربط لرموز الأخطاء الخاصة بـ MinIO. يتيح هذا التغيير لـ ClickHouse التعامل بشكل صحيح مع أخطاء خادم MinIO وإعادة المحاولة عند استخدام عمليات نشر MinIO بدلًا من AWS S3، مما يحسّن الاعتمادية للمستخدمين الذين يشغّلون object storage على clusters MinIO self-hosted. [#93082](https://github.com/ClickHouse/ClickHouse/pull/93082) ([XiaoBinMu](https://github.com/Binnn-MX)).
* كتابة ملفات jemalloc profile symbolized، مما يلغي الحاجة إلى binary أثناء generation الخاصة بـ heap profile. [#93099](https://github.com/ClickHouse/ClickHouse/pull/93099) ([Azat Khuzhin](https://github.com/azat)).
* أُعيد إحياء أداة `clickhouse git-import` بعد أن كانت معطلة مع commits الكبيرة وغير الصالحة. راجع [https://presentations.clickhouse.com/2020-matemarketing/](https://presentations.clickhouse.com/2020-matemarketing/). [#93202](https://github.com/ClickHouse/ClickHouse/pull/93202) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* لا تعرض كلمات المرور من URL storage في query log. [#93245](https://github.com/ClickHouse/ClickHouse/pull/93245) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* دعم النوع `Geometry` في `flipCoordinates`. [#93303](https://github.com/ClickHouse/ClickHouse/pull/93303) ([Bharat Nallan](https://github.com/bharatnc)).
* تحسين تجربة المستخدم في SYSTEM INSTRUMENT ADD/REMOVE: استخدام قيم `String` النصية لأسماء الدوال، وتطبيق التصحيح على جميع الدوال المطابقة، والسماح باستخدام function\_name في `REMOVE`. [#93345](https://github.com/ClickHouse/ClickHouse/pull/93345) ([Pablo Marcos](https://github.com/pamarcos)).
* إضافة إعداد جديد `materialize_statistics_on_merge` يفعّل/يعطّل materializing للإحصاءات أثناء merge. القيمة الافتراضية هي `1`. [#93379](https://github.com/ClickHouse/ClickHouse/pull/93379) ([Han Fei](https://github.com/hanfei1991)).
* أصبح ClickHouse الآن قادرًا على parse `SELECT` دون أقواس في استعلامات `DESCRIBE SELECT`. يُغلق [#58382](https://github.com/ClickHouse/ClickHouse/issues/58382). [#93429](https://github.com/ClickHouse/ClickHouse/pull/93429) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إضافة إضفاء الطابع العشوائي على checks الخاصة بصحة cache وفق احتمال محدد. [#93439](https://github.com/ClickHouse/ClickHouse/pull/93439) ([Kseniia Sumarokova](https://github.com/kssenii)).
* أُضيف الإعداد `type_json_allow_duplicated_key_with_literal_and_nested_object` للسماح بالمسارات المكررة في JSON عندما تكون إحداها قيمة حرفية والأخرى كائنًا متداخلًا، مثل `{"a" : 42, "a" : {"b" : 42}}`. ربما تكون بعض البيانات قد أُنشئت قبل إضافة هذا القيد على المسارات المكررة في [https://github.com/ClickHouse/ClickHouse/pull/79317،](https://github.com/ClickHouse/ClickHouse/pull/79317،) وقد يؤدي التعامل معها الآن إلى حدوث أخطاء. وباستخدام هذا الإعداد، يمكن الاستمرار في استخدام هذه البيانات القديمة من دون أخطاء. [#93604](https://github.com/ClickHouse/ClickHouse/pull/93604) ([Pavel Kruglov](https://github.com/Avogar)).
* لا تطبع قيم الأنواع البسيطة في Pretty JSON على أسطر منفصلة. [#93836](https://github.com/ClickHouse/ClickHouse/pull/93836) ([Pavel Kruglov](https://github.com/Avogar)).
* عند وجود عدد كبير من عبارات `alter table ... modify setting ...`، قد يتعذر الحصول على القفل خلال 5 ثوانٍ. من الأفضل إرجاع `timeout` بدلًا من `logical error`. [#93856](https://github.com/ClickHouse/ClickHouse/pull/93856) ([Han Fei](https://github.com/hanfei1991)).
* منع الإخراج المفرط عند حدوث خطأ في الصياغة. قبل هذا التغيير، كان النظام يطبع سكربت SQL بالكامل، وقد يحتوي على عدد كبير من الاستعلامات. [#93876](https://github.com/ClickHouse/ClickHouse/pull/93876) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُصلح حساب حجم البايت لطلب `check` مع الإحصاءات في Keeper بشكل صحيح. [#93907](https://github.com/ClickHouse/ClickHouse/pull/93907) ([Mikhail Artemenko](https://github.com/Michicosun)).
* أُضيف الإعداد `use_hash_table_stats_for_join_reordering` للتحكم في ما إذا كانت إحصاءات حجم hash table وقت التشغيل تُستخدم لإعادة ترتيب join. هذا الإعداد مفعّل افتراضيًا، بما يحافظ على السلوك الحالي لـ `collect_hash_table_stats_during_joins`. [#93912](https://github.com/ClickHouse/ClickHouse/pull/93912) ([Vladimir Cherkasov](https://github.com/vdimir)).
* يمكن للمستخدمين الآن عرض جزء من إعدادات الخادم العامة المتداخلة في الجدول `system.server_settings` (مثل `logger.level`). ويقتصر ذلك على الإعدادات ذات البنية الثابتة فقط (من دون قوائم أو تعدادات أو تكرارات وما إلى ذلك). [#94001](https://github.com/ClickHouse/ClickHouse/pull/94001) ([Hechem Selmi](https://github.com/m-selmi)).
* يمكن الآن مقارنة `QBit` للتحقق من التساوي. [#94078](https://github.com/ClickHouse/ClickHouse/pull/94078) ([Raufs Dunamalijevs](https://github.com/rienath)).
* عندما يكتشف Keeper وجود snapshot تالفة أو سجلات تغييرات غير متسقة، يُطرح استثناء بدلًا من الإنهاء اليدوي أو تنظيف الملفات تلقائيًا. ومن المفترض أن يؤدي ذلك إلى سلوك أكثر أمانًا في Keeper يعتمد على التدخل اليدوي. [#94168](https://github.com/ClickHouse/ClickHouse/pull/94168) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح مشكلة ترك بقايا محتملة في حال فشل `CREATE TABLE`. [#94174](https://github.com/ClickHouse/ClickHouse/pull/94174) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الوصول إلى ذاكرة غير مهيأة (وهو خلل في OpenSSL) عند استخدام مفتاح TLS محمي بكلمة مرور. [#94182](https://github.com/ClickHouse/ClickHouse/pull/94182) ([Konstantin Bogdanov](https://github.com/thevar1able)).
* ترقية chdig إلى [v26.1.1](https://github.com/azat/chdig/releases/tag/v26.1.1). [#94290](https://github.com/ClickHouse/ClickHouse/pull/94290) ([Azat Khuzhin](https://github.com/azat)).
* دعم partitioning أكثر عمومية لوضع S3Queue المرتب. [#94321](https://github.com/ClickHouse/ClickHouse/pull/94321) ([Bharat Nallan](https://github.com/bharatnc)).
* أُضيف alias باسم `use_statistics` للإعداد `allow_statistics_optimize`. وهذا أكثر اتساقًا مع الإعدادات الحالية `use_primary_key` و `use_skip_indexes`. [#94366](https://github.com/ClickHouse/ClickHouse/pull/94366) ([Robert Schulze](https://github.com/rschu1ze)).
* تم تفعيل الإعداد `input_format_numbers_enum_on_conversion_error` للتحويل من Numbers إلى Enums للتحقق من وجود العنصر. [#94384](https://github.com/ClickHouse/ClickHouse/pull/94384) ([Elmi Ahmadov](https://github.com/ahmadov)).
* في وضع ordered لـ S3(Azure)Queue، أصبح تنظيف العُقد الفاشلة يتم عبر تتبّع الحدود (وكان هذا قبل ذلك يُنفَّذ فقط في وضع Unordered لكلٍّ من العُقد الفاشلة والمُعالجة، لذا سيُنفَّذ الآن أيضًا في Ordered ولكن للعُقد الفاشلة فقط). [#94412](https://github.com/ClickHouse/ClickHouse/pull/94412) ([Kseniia Sumarokova](https://github.com/kssenii)).
* تم تمكين إدارة الوصول للمستخدم `default` في clickhouse-local. كان المستخدم default في `clickhouse-local` يفتقد امتياز access\_management، مما كان يتسبب في فشل عمليات مثل `DROP ROW POLICY IF EXISTS` مع الخطأ `ACCESS_DENIED`، رغم أنه يُفترض ألا يكون هذا المستخدم مقيّدًا. [#94501](https://github.com/ClickHouse/ClickHouse/pull/94501) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* تم تمكين named collection لقواميس YTsaurus وجداوله. [#94582](https://github.com/ClickHouse/ClickHouse/pull/94582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
* تمت إضافة دعم named collections المعرّفة عبر SQL في BACKUP/RESTORE لكل من S3 وAzure Blob Storage. يُغلق [#94604](https://github.com/ClickHouse/ClickHouse/issues/94604). [#94605](https://github.com/ClickHouse/ClickHouse/pull/94605) ([Pablo Marcos](https://github.com/pamarcos)).
* دعم التقسيم إلى buckets استنادًا إلى partition key في S3Queue في وضع ordered. [#94698](https://github.com/ClickHouse/ClickHouse/pull/94698) ([Bharat Nallan](https://github.com/bharatnc)).
* تمت إضافة metric غير متزامن يتضمن الزمن المنقضي لأطول عملية merge قيد التشغيل. [#94825](https://github.com/ClickHouse/ClickHouse/pull/94825) ([Raúl Marín](https://github.com/Algunenano)).
* تمت إضافة فحص للملف المرتبط قبل تطبيق position delete باستخدام IcebergBitmapPositionDeleteTransform. [#94897](https://github.com/ClickHouse/ClickHouse/pull/94897) ([Yang Jiang](https://github.com/Ted-Jiang)).
* الآن يعرض `view_duration_ms` المدة التي كانت خلالها المجموعة نشطة، لا مجموع مدة الخيوط داخلها. [#94966](https://github.com/ClickHouse/ClickHouse/pull/94966) ([Sema Checherinda](https://github.com/CheSema)).
* أُزيل الحد الأقصى لعدد tokens البحث في الدالتين `hasAnyTokens` و`hasAllTokens`، والذي كان محددًا بـ 64. مثال: `SELECT count() FROM table WHERE hasAllTokens(text, ['token_1', 'token_2', [...], 'token_65']]);` كان هذا الـ query سيؤدي إلى الخطأ `BAD_ARGUMENTS` لوجود 65 token بحث. مع طلب السحب هذا، أُزيل الحد بالكامل، وأصبح الـ query نفسه يعمل دون خطأ. [#95152](https://github.com/ClickHouse/ClickHouse/pull/95152) ([Elmi Ahmadov](https://github.com/ahmadov)).
* تمت إضافة الإعداد `input_format_numbers_enum_on_conversion_error` للتحويل من Numbers إلى Enums للتحقق من وجود العنصر. يُغلق: [#56144](https://github.com/ClickHouse/ClickHouse/issues/56144). [#56240](https://github.com/ClickHouse/ClickHouse/pull/56240) ([Nikolay Degterinsky](https://github.com/evillique)).
* تمت مشاركة موارد محلل format بين قراءة ملف البيانات وملف position delete في جداول Iceberg لتقليل عمليات تخصيص الذاكرة. [#94701](https://github.com/ClickHouse/ClickHouse/pull/94701) ([Yang Jiang](https://github.com/Ted-Jiang)).

<div id="267-bug-fix-user-visible-misbehavior-in-an-official-stable-release">
  #### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)
</div>

* يُصلح خطأً كانت فيه معالجات الاستعلامات المعرّفة مسبقًا تفسّر المسافات البيضاء اللاحقة على أنها بيانات أثناء عمليات insert. [#83604](https://github.com/ClickHouse/ClickHouse/pull/83604) ([Fabian Ponce](https://github.com/FabianPonce)).
* يُصلح الخطأ INCOMPATIBLE\_TYPE\_OF\_JOIN في Join storage عند تطبيق تحسين تحويل outer join إلى inner join. يحلّ [#80794](https://github.com/ClickHouse/ClickHouse/issues/80794). [#84292](https://github.com/ClickHouse/ClickHouse/pull/84292) ([Vladimir Cherkasov](https://github.com/vdimir)).
* يُصلح الاستثناء "Invalid number of rows in Chunk" عند استخدام hash join مع تفعيل `allow_experimental_join_right_table_sorting`. [#86440](https://github.com/ClickHouse/ClickHouse/pull/86440) ([yanglongwei](https://github.com/ylw510)).
* يستبدل أسماء الملفات دائمًا بقيم hash في MergeTree إذا كان filesystem غير حساس لحالة الأحرف. سابقًا، كان هذا قد يؤدي في الأنظمة ذات filesystem غير الحساس لحالة الأحرف (مثل MacOS) إلى تلف البيانات عندما تختلف عدة أسماء column/subcolumn فقط في حالة الأحرف. [#86559](https://github.com/ClickHouse/ClickHouse/pull/86559) ([Pavel Kruglov](https://github.com/Avogar)).
* يضيف تحققًا كاملًا من permissions في مرحلة CREATE للاستعلام الأساسي داخل materialized view. [#89180](https://github.com/ClickHouse/ClickHouse/pull/89180) ([pufit](https://github.com/pufit)).
* يُصلح crash في الدالة `icebergHash` عند استخدام argument ثابت. [#90335](https://github.com/ClickHouse/ClickHouse/pull/90335) ([Michael Kolupaev](https://github.com/al13n321)).
* يُصلح logical error يحدث عندما تُعدّل mutation من دون transaction أجزاء parts ضمن transaction نشطة ثم يجري التراجع عنها في النهاية. [#90469](https://github.com/ClickHouse/ClickHouse/pull/90469) ([Shaohua Wang](https://github.com/tiandiwonder)).
* يحدّث `system.warnings` بشكل صحيح بعد تحويل database عادية إلى database من نوع atomic. [#90473](https://github.com/ClickHouse/ClickHouse/pull/90473) ([sdk2](https://github.com/sdk2)).
* يُصلح assertion عند القراءة من Parquet file، عندما يُستخدم جزء من تعبير **prewhere** أيضًا في موضع آخر من الاستعلام. [#90635](https://github.com/ClickHouse/ClickHouse/pull/90635) ([Max Kainov](https://github.com/maxknv)).
* يُصلح crash في cluster أحادي العقدة عند القراءة من Iceberg في وضع split-by-buckets. يُغلق هذا [#90913](https://github.com/ClickHouse/ClickHouse/issues/90913#issue-3668583963). [#91553](https://github.com/ClickHouse/ClickHouse/pull/91553) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* يُصلح logical error محتملًا في Log engine أثناء قراءة subcolumns. يُغلق [#91710](https://github.com/ClickHouse/ClickHouse/issues/91710). [#91711](https://github.com/ClickHouse/ClickHouse/pull/91711) ([Pavel Kruglov](https://github.com/Avogar)).
* يُصلح الخطأ Logical error: 'Storage does not support transaction' أثناء ATTACH AS REPLICATED. [#91772](https://github.com/ClickHouse/ClickHouse/pull/91772) ([Shaohua Wang](https://github.com/tiandiwonder)).
* إصلاح لعمل Runtime Filters بشكل غير صحيح عندما يحتوي LEFT ANTI JOIN على post-condition إضافي. [#91824](https://github.com/ClickHouse/ClickHouse/pull/91824) ([Alexander Gololobov](https://github.com/davenger)).
* يُصلح خطأً يحدث عند وجود مقارنة null-safe تتضمن النوع Nothing. يُغلق [#91834](https://github.com/ClickHouse/ClickHouse/issues/91834). يُغلق [#84870](https://github.com/ClickHouse/ClickHouse/issues/84870). يُغلق [#91821](https://github.com/ClickHouse/ClickHouse/issues/91821). [#91884](https://github.com/ClickHouse/ClickHouse/pull/91884) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* يُصلح أخطاء في فك ترميز DELTA\_BYTE\_ARRAY في native Parquet reader تؤثر في بيانات String كثيرة التكرار. [#91929](https://github.com/ClickHouse/ClickHouse/pull/91929) ([Daniel Muino](https://github.com/dmuino)).
* خزّن الـ schema فقط للملف الذي استُنتجت منه ضمن globs بدلًا من جميع الملفات أثناء schema inference. يُغلق [#91745](https://github.com/ClickHouse/ClickHouse/issues/91745). [#92006](https://github.com/ClickHouse/ClickHouse/pull/92006) ([Pavel Kruglov](https://github.com/Avogar)).
* أصلِح الخطأ `Couldn't pack tar archive: Failed to write all bytes` الناتج عن حجم header غير الصحيح لمدخل الأرشيف. يُصلح [#89075](https://github.com/ClickHouse/ClickHouse/issues/89075). [#92122](https://github.com/ClickHouse/ClickHouse/pull/92122) ([Julia Kartseva](https://github.com/jkartseva)).
* حرّر stream الطلب في insert select لمنع إغلاق HTTP connection. [#92175](https://github.com/ClickHouse/ClickHouse/pull/92175) ([Sema Checherinda](https://github.com/CheSema)).
* أصلِح logical error في queries التي تتضمن عدة JOINs مع clause ‏`USING` و`join_use_nulls`. [#92251](https://github.com/ClickHouse/ClickHouse/pull/92251) ([Vladimir Cherkasov](https://github.com/vdimir)).
* أصلِح logical error أثناء إعادة ترتيب join مع join\_use\_nulls، ويُغلق [https://github.com/clickhouse/clickhouse/issues/90795](https://github.com/clickhouse/clickhouse/issues/90795). [#92289](https://github.com/ClickHouse/ClickHouse/pull/92289) ([Vladimir Cherkasov](https://github.com/vdimir)).
* أصلِح عدم اتساق تنسيق AST لـ arrayElement مع negate literal. يُغلق [#92288](https://github.com/ClickHouse/ClickHouse/issues/92288) يُغلق [#92212](https://github.com/ClickHouse/ClickHouse/issues/92212) يُغلق [#91832](https://github.com/ClickHouse/ClickHouse/issues/91832) يُغلق [#91789](https://github.com/ClickHouse/ClickHouse/issues/91789) يُغلق [#91735](https://github.com/ClickHouse/ClickHouse/issues/91735) يُغلق [#88495](https://github.com/ClickHouse/ClickHouse/issues/88495) يُغلق [#92386](https://github.com/ClickHouse/ClickHouse/issues/92386). [#92293](https://github.com/ClickHouse/ClickHouse/pull/92293) ([Pavel Kruglov](https://github.com/Avogar)).
* أصلِح احتمال حدوث crash مع الإعداد `join_on_disk_max_files_to_merge`. [#92335](https://github.com/ClickHouse/ClickHouse/pull/92335) ([Bharat Nallan](https://github.com/bharatnc)).
* issue ذات صلة: #[https://github.com/ClickHouse/support-escalation/issues/6365](https://github.com/ClickHouse/support-escalation/issues/6365). [#92339](https://github.com/ClickHouse/ClickHouse/pull/92339) ([Tuan Pham Anh](https://github.com/tuanpach)).
* أصلِح missing access check في `SYSTEM SYNC FILE CACHE`. يُغلق [#92101](https://github.com/ClickHouse/ClickHouse/issues/92101). [#92372](https://github.com/ClickHouse/ClickHouse/pull/92372) ([Kseniia Sumarokova](https://github.com/kssenii)).
* أصلِح تمرير `count_distinct_optimization` عبر window functions وعبر عدة arguments. [#92376](https://github.com/ClickHouse/ClickHouse/pull/92376) ([Raúl Marín](https://github.com/Algunenano)).
* أصلِح الخطأ "Cannot write to finalized buffer" عند استخدام aggregate functions معينة مع window functions. يُغلق [#91415](https://github.com/ClickHouse/ClickHouse/issues/91415). [#92395](https://github.com/ClickHouse/ClickHouse/pull/92395) ([Jimmy Aguilar Mena](https://github.com/Ergus)).
* أصلِح logical error مع `CREATE TABLE ... AS urlCluster()` وdatabase engine ‏`Replicated`. يُغلق [#92216](https://github.com/ClickHouse/ClickHouse/issues/92216). [#92418](https://github.com/ClickHouse/ClickHouse/pull/92418) ([Kseniia Sumarokova](https://github.com/kssenii)).
* ورّث إعدادات معلومات serialization الخاصة بالـ part المصدر أثناء mutation في MergeTree. وهذا يُصلح احتمال ظهور نتيجة query غير صحيحة على part mutated بعد تغييرات في serialization الخاصة بـ data types. [#92419](https://github.com/ClickHouse/ClickHouse/pull/92419) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعارض محتمل بين عمود وعمود فرعي يحملان الاسم نفسه، ما قد يؤدي إلى استخدام serialization غير صحيح وفشل الاستعلامات. يُغلق [#90219](https://github.com/ClickHouse/ClickHouse/issues/90219). يُغلق [#85161](https://github.com/ClickHouse/ClickHouse/issues/85161). [#92453](https://github.com/ClickHouse/ClickHouse/pull/92453) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح `LOGICAL_ERROR` كان يحدث بسبب تعديل غير مقصود في query plan عند تحويل OUTER JOIN إلى INNER JOIN. كما جرى تخفيف متطلبات هذا التحسين ليصبح قابلاً للتطبيق أيضاً في الحالات التي تُطبَّق فيها الدوال الحقنية على مفاتيح التجميع أثناء joins. [#92503](https://github.com/ClickHouse/ClickHouse/pull/92503) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح الخطأ المحتمل `SIZES_OF_COLUMNS_DOESNT_MATCH` أثناء فرز عمود Tuple فارغ. يُغلق [#92422](https://github.com/ClickHouse/ClickHouse/issues/92422). [#92520](https://github.com/ClickHouse/ClickHouse/pull/92520) ([Pavel Kruglov](https://github.com/Avogar)).
* التحقق من وجود paths غير متوافقة من حيث النوع في JSON type. يُغلق [#91577](https://github.com/ClickHouse/ClickHouse/issues/91577). [#92539](https://github.com/ClickHouse/ClickHouse/pull/92539) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح حالة deadlock في SHOW CREATE DATABASE لقاعدة بيانات Backup. [#92541](https://github.com/ClickHouse/ClickHouse/pull/92541) ([Azat Khuzhin](https://github.com/azat)).
* استخدام رمز الخطأ الصحيح عند التحقق من hypothesis index. [#92559](https://github.com/ClickHouse/ClickHouse/pull/92559) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح resolution للأعمدة الفرعية الديناميكية في aliases الأعمدة داخل analyzer. في السابق، كان العمود الفرعي الديناميكي في alias العمود يُغلَّف داخل `getSubcolumn`، وفي بعض الحالات لم يكن يمكن resolve له إطلاقاً. يُغلق [#91434](https://github.com/ClickHouse/ClickHouse/issues/91434). [#92583](https://github.com/ClickHouse/ClickHouse/pull/92583) ([Pavel Kruglov](https://github.com/Avogar)).
* منع حدوث crash في tokens() عندما تكون الوسيطة الثانية بقيمة NULL. [#92586](https://github.com/ClickHouse/ClickHouse/pull/92586) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح crash محتمل ناتج عن mutation موضعي للأعمدة الثابتة الأساسية في PREWHERE. كان يمكن أن يحدث ذلك عند تقليص العمود (`IColumn::shrinkToFit`) أو تطبيق filter عليه (`IColumn::filter`)، وهو ما كان يمكن أن يُحفَّز بالتزامن من عدة threads. [#92588](https://github.com/ClickHouse/ClickHouse/pull/92588) ([Arsen Muk](https://github.com/arsenmuk)).
* جرى تعطيل إنشاء text indexes وmaterializing لها مؤقتاً على الجداول التي تحتوي على parts كبيرة (أكثر من 4,294,967,295 صفاً). يمنع هذا القيد ظهور نتائج استعلامات غير صحيحة، لأن التطبيق الحالي للفهرس لا يدعم بعد مثل هذه الأجزاء الكبيرة. [#92644](https://github.com/ClickHouse/ClickHouse/pull/92644) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح logical error من نوع `Too large size (A) passed to allocator` أثناء تنفيذ عمليات JOIN. يُغلق [#92043](https://github.com/ClickHouse/ClickHouse/issues/92043). [#92667](https://github.com/ClickHouse/ClickHouse/pull/92667) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إزالة خلل كان يؤدي إلى أن indexes من نوع `ngrambf_v1` ذات طول ngram (المعامل الأول) > 8 كانت تطرح استثناءً. [#92672](https://github.com/ClickHouse/ClickHouse/pull/92672) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح استثناء غير ملتقط أثناء إعادة تحميل named collections في الخلفية عند استخدام تخزين ZooKeeper. يُغلق [https://github.com/ClickHouse/clickhouse-private/issues/44180](https://github.com/ClickHouse/clickhouse-private/issues/44180). [#92717](https://github.com/ClickHouse/ClickHouse/pull/92717) ([Kseniia Sumarokova](https://github.com/kssenii)).
* يُعيد العمل على المنطق غير الصحيح في التحقق من grants الوصول الخاصة بمنح wildcard. كانت المحاولة السابقة [https://github.com/ClickHouse/ClickHouse/pull/90928](https://github.com/ClickHouse/ClickHouse/pull/90928) تعالج ثغرة حرجة، لكنها كانت مقيِّدة أكثر من اللازم، ما أدى إلى فشل بعض عبارات `GRANT` الخاصة بـ wildcard بسبب عمليات `REVOKE` غير مرتبطة. [#92725](https://github.com/ClickHouse/ClickHouse/pull/92725) ([pufit](https://github.com/pufit)).
* إصلاح خطأ في منطق تخطي البيانات عند استخدام `not match(...)` في `WHERE`، ما كان يؤدي إلى نتائج غير صحيحة. يغلق [#92492](https://github.com/ClickHouse/ClickHouse/issues/92492). [#92726](https://github.com/ClickHouse/ClickHouse/pull/92726) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* عدم محاولة حذف الأدلة المؤقتة عند بدء التشغيل إذا أُنشئ جدول MergeTree على قرص للقراءة فقط. [#92748](https://github.com/ClickHouse/ClickHouse/pull/92748) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح الخطأ "Cannot add action to empty ExpressionActionsChain" في ALTER TABLE REWRITE PARTS ‏(v2). [#92754](https://github.com/ClickHouse/ClickHouse/pull/92754) ([Azat Khuzhin](https://github.com/azat)).
* تجنّب التعطل بسبب القراءة من `Connection` منقطعة. [#92807](https://github.com/ClickHouse/ClickHouse/pull/92807) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح الخطأ المنطقي ` Failed to set file processing within 100 retries` في `S3Queue` ضمن وضع `Ordered`. وقد استُبدل الآن بتحذير. كان يمكن أن يحدث هذا الخطأ قبل الإصدار 25.10 إذا انتهت صلاحية جلسة Keeper، لكنه سيظل مجرد تحذير في إصدارات 25.10+ أيضًا، إذ لا يزال من الممكن نظريًا ظهور هذا الخطأ عند ارتفاع تزامن المعالجة في وضع `Ordered`. [#92814](https://github.com/ClickHouse/ClickHouse/pull/92814) ([Kseniia Sumarokova](https://github.com/kssenii)).
* في السابق، كانت بعض queries التي تستخدم sharding بالمفتاح الأساسي PK مع شرط غير صحيح تفشل. الآن لم تعد كذلك. هذا مطلوب من أجل [https://github.com/ClickHouse/ClickHouse/pull/89313](https://github.com/ClickHouse/ClickHouse/pull/89313). [#92815](https://github.com/ClickHouse/ClickHouse/pull/92815) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح حساب الأحجام غير المضغوطة للفهارس النصية في جدول `system.parts`. [#92832](https://github.com/ClickHouse/ClickHouse/pull/92832) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح استخدام الفهرس الأساسي في lightweight updates التي تحتوي على عبارة `IN` مع استعلامات فرعية ضمن predicate لعبارة `WHERE`. [#92838](https://github.com/ClickHouse/ClickHouse/pull/92838) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح إنشاء type hint للمسار 'skip' في JSON. يغلق [#92731](https://github.com/ClickHouse/ClickHouse/issues/92731). [#92842](https://github.com/ClickHouse/ClickHouse/pull/92842) ([Pavel Kruglov](https://github.com/Avogar)).
* في محرك الجدول S3، يجب تجنّب التخزين المؤقت لمفتاح partition إذا كانت هناك دوال غير حتمية. [#92844](https://github.com/ClickHouse/ClickHouse/pull/92844) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح خطأ محتمل `FILE_DOESNT_EXIST` بعد mutation لعمود sparse مع `ratio_of_defaults_for_sparse_serialization=0.0`. يغلق [#92633](https://github.com/ClickHouse/ClickHouse/issues/92633). [#92860](https://github.com/ClickHouse/ClickHouse/pull/92860) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح schema inference في Parquet في قارئ Parquet القديم (غير المستخدم افتراضيًا) عندما يأتي عمود JSON بعد عمود Tuple. وإصلاح فشل قارئ Parquet القديم (غير المستخدم افتراضيًا) مع tuples الفارغة. [#92867](https://github.com/ClickHouse/ClickHouse/pull/92867) ([Michael Kolupaev](https://github.com/al13n321)).
* إصلاح خطأ منطقي عند وجود عدة عمليات join على شرط ثابت ومع `join_use_nulls`. إغلاق [#92640](https://github.com/ClickHouse/ClickHouse/issues/92640). [#92892](https://github.com/ClickHouse/ClickHouse/pull/92892) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح الخطأ المحتمل `NOT_FOUND_COLUMN_IN_BLOCK` أثناء insert إلى جدول يحتوي على عمود فرعي ضمن partition expression. إغلاق [#93210](https://github.com/ClickHouse/ClickHouse/issues/93210). إغلاق [#83406](https://github.com/ClickHouse/ClickHouse/issues/83406). [#92905](https://github.com/ClickHouse/ClickHouse/pull/92905) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الخطأ `NO_SUCH_COLUMN_IN_TABLE` في محرك Merge فوق الجداول التي تحتوي على aliases. إغلاق [#88665](https://github.com/ClickHouse/ClickHouse/issues/88665). [#92910](https://github.com/ClickHouse/ClickHouse/pull/92910) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح حالة `NULL != NULL` في full\_sorting\_join على عمود LowCardinality(Nullable(T)). [#92924](https://github.com/ClickHouse/ClickHouse/pull/92924) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح عدة حالات crash أثناء merges لفهارس نصية في جداول `MergeTree`. [#92925](https://github.com/ClickHouse/ClickHouse/pull/92925) ([Anton Popov](https://github.com/CurtizJ)).
* استعادة wrappers الخاصة بـ LowCardinality في نتائج تعبيرات SET عند الحاجة أثناء aggregation الخاصة بـ TTL، لمنع الاستثناءات أثناء تحسين الجدول. [#92971](https://github.com/ClickHouse/ClickHouse/pull/92971) ([Seva Potapov](https://github.com/seva-potapov)).
* إصلاح خطأ منطقي أثناء index analysis عند استخدام Array فارغة في الدالة `has`. إغلاق [#92906](https://github.com/ClickHouse/ClickHouse/issues/92906). [#92995](https://github.com/ClickHouse/ClickHouse/pull/92995) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح احتمال حدوث تعليق عند إنهاء background schedule pool (وقد يؤدي ذلك إلى تعليق server عند الإغلاق). [#93008](https://github.com/ClickHouse/ClickHouse/pull/93008) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الخطأ المحتمل FILE\_DOESNT\_EXIST بعد mutation على عمود sparse عندما جرى تغيير الإعداد `ratio_of_defaults_for_sparse_serialization` إلى `1.0` عبر alter. [#93016](https://github.com/ClickHouse/ClickHouse/pull/93016) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح خلل في منطق data skipping عند استخدام `not materialize(...)` أو `not CAST(...)` في WHERE، ما يؤدي إلى نتائج غير صحيحة. إغلاق [#88536](https://github.com/ClickHouse/ClickHouse/issues/88536). [#93017](https://github.com/ClickHouse/ClickHouse/pull/93017) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح احتمال استخدام outdated parts بسبب سباق TOCTOU للأجزاء المشتركة. [#93022](https://github.com/ClickHouse/ClickHouse/pull/93022) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح crash عند إلغاء تسلسل aggregate state الخاصة بـ `groupConcat` إذا كانت معطوبة وتحتوي على offsets خارج الحدود. [#93028](https://github.com/ClickHouse/ClickHouse/pull/93028) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح ترك connection في حالة معطوبة بعد الإلغاء المبدئي للاستعلامات الموزعة. [#93029](https://github.com/ClickHouse/ClickHouse/pull/93029) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح نتائج join عندما يكون join key في الطرف الأيمن عمودًا sparse. هذا يُغلق [#92920](https://github.com/ClickHouse/ClickHouse/issues/92920). لم أتمكن من إعادة إنتاج الخلل إلا مع `set compatibility='23.3'`. لست متأكدًا مما إذا كان ينبغي backport له. [#93038](https://github.com/ClickHouse/ClickHouse/pull/93038) ([Amos Bird](https://github.com/amosbird)).
* إصلاح مشكلة محتملة تتمثل في `Cannot finalize buffer after cancellation` في `estimateCompressionRatio()`. إصلاح: [#87380](https://github.com/ClickHouse/ClickHouse/issues/87380). [#93068](https://github.com/ClickHouse/ClickHouse/pull/93068) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح عمليات دمج الفهارس النصية المبنية فوق تعبيرات معقدة (مثل `concat(col1, col2)`). [#93073](https://github.com/ClickHouse/ClickHouse/pull/93073) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح تطبيق projection عندما يحتوي filter على subcolumns. إغلاق [#92882](https://github.com/ClickHouse/ClickHouse/issues/92882). [#93141](https://github.com/ClickHouse/ClickHouse/pull/93141) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح logical error في بعض الحالات التي تحدث عند إضافة join runtime filters إلى query plan. وكان السبب هو إرجاع أعمدة const مكررة بشكل غير صحيح من أحد طرفي join. [#93144](https://github.com/ClickHouse/ClickHouse/pull/93144) ([Alexander Gololobov](https://github.com/davenger)).
* كانت الدالة الخاصة `__applyFilter` المستخدمة من قِبل join runtime filters تُرجع ILLEGAL\_TYPE\_OF\_ARGUMENT في بعض الحالات الصحيحة. [#93187](https://github.com/ClickHouse/ClickHouse/pull/93187) ([Alexander Gololobov](https://github.com/davenger)).
* منع انهيار أعمدة interpolated المختلفة إلى العمود نفسه داخل block عندما تكون أعمدة interpolated في الواقع aliases للعمود نفسه. [#93197](https://github.com/ClickHouse/ClickHouse/pull/93197) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
* عدم إضافة runtime filter عند إجراء join مع right table ممتلئ مسبقًا. [#93211](https://github.com/ClickHouse/ClickHouse/pull/93211) ([Alexander Gololobov](https://github.com/davenger)).
* إصلاح تنظيف watches الدائمة في Keeper بعد انتهاء session. هذا يغلق [#92480](https://github.com/ClickHouse/ClickHouse/issues/92480). [#93213](https://github.com/ClickHouse/ClickHouse/pull/93213) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح ORDER BY بحسب Tuple في Iceberg. هذا يغلق [#92977](https://github.com/ClickHouse/ClickHouse/issues/92977). [#93225](https://github.com/ClickHouse/ClickHouse/pull/93225) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح خلل في إعداد S3Queue `s3queue_migrate_old_metadata_to_buckets`. إغلاق [#93392](https://github.com/ClickHouse/ClickHouse/issues/93392)، [#93196](https://github.com/ClickHouse/ClickHouse/issues/93196)، [#81739](https://github.com/ClickHouse/ClickHouse/issues/81739). [#93232](https://github.com/ClickHouse/ClickHouse/pull/93232) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إزالة الأعمدة غير المستخدمة عند إعادة بناء projection أثناء merge. وهذا يقلل memory usage وينشئ parts مؤقتة أقل. [#93233](https://github.com/ClickHouse/ClickHouse/pull/93233) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح إزالة الأعمدة غير المستخدمة من subqueries في وجود subquery scalar مترابط. قبل هذا الإصلاح، كان يمكن إزالة العمود إذا كان مستخدمًا فقط داخل subquery المترابط، وكان query سيفشل بالخطأ `NOT_FOUND_COLUMN_IN_BLOCK`. [#93273](https://github.com/ClickHouse/ClickHouse/pull/93273) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح احتمال فقدان subcolumn في MV أثناء alter لـ source table. إغلاق [#93231](https://github.com/ClickHouse/ClickHouse/issues/93231). [#93276](https://github.com/ClickHouse/ClickHouse/pull/93276) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تخطيط الاستعلام لمحرك الجداول `Merge` مع analyzer، والذي كان قد يُطلق الخطأ ILLEGAL\_COLUMN مع `hostName()` عند دمج الجداول المحلية والجداول البعيدة/Distributed. يُغلق [#92059](https://github.com/ClickHouse/ClickHouse/issues/92059). [#93286](https://github.com/ClickHouse/ClickHouse/pull/93286) ([Jinlin](https://github.com/withlin)).
* إصلاح حالة كانت فيها NOT IN مع وسائط Array غير الثابتة تُرجع قيمة غير صحيحة، مع إضافة دعم دوال Array غير الثابتة. يُغلق [#14980](https://github.com/ClickHouse/ClickHouse/issues/14980). [#93314](https://github.com/ClickHouse/ClickHouse/pull/93314) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
* إصلاح الخطأ `Not found column` في التحسين `use_top_k_dynamic_filtering`. يُصلح [#93186](https://github.com/ClickHouse/ClickHouse/issues/93186). [#93316](https://github.com/ClickHouse/ClickHouse/pull/93316) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
* إصلاح إعادة بناء text indexes المُنشأة فوق subcolumns. [#93326](https://github.com/ClickHouse/ClickHouse/pull/93326) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح التعامل مع Array فارغة كوسيطة ثانية في الدالتين `hasAllTokens` و`hasAnyTokens`. [#93328](https://github.com/ClickHouse/ClickHouse/pull/93328) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح خطأ منطقي عند استخدام runtime filters في query تحتوي على totals لجدول الجانب الأيمن. [#93330](https://github.com/ClickHouse/ClickHouse/pull/93330) ([Alexander Gololobov](https://github.com/davenger)).
* لم يعد الخادم يتعطل إذا استُدعيت الدالة `tokens` باستخدام معاملات tokenizer غير ثابتة (المعاملات الثاني والثالث والرابع)، مثل `SELECT tokens(NULL, 1, materialize(1))`. [#93383](https://github.com/ClickHouse/ClickHouse/pull/93383) ([Robert Schulze](https://github.com/rschu1ze)).
* إصلاح ثغرة تجاوز صحيح في إلغاء تسلسل state الخاصة بـ `groupConcat`، والتي كان يمكن أن تتسبب في مشكلات سلامة الذاكرة باستخدام aggregate states مُعدّة خصيصًا. [#93426](https://github.com/ClickHouse/ClickHouse/pull/93426) ([Raufs Dunamalijevs](https://github.com/rienath)).
* إصلاح تحليل text index على array columns عندما لا يحتوي الفهرس على أي tokens (إذا كانت جميع المصفوفات فارغة أو كانت جميع tokens يتخطاها tokenizer). [#93457](https://github.com/ClickHouse/ClickHouse/pull/93457) ([Anton Popov](https://github.com/CurtizJ)).
* تجنّب تسجيل الدخول عبر oauth في ClickHouse Client عندما تكون username/password موجودتَين ضمن connection string. [#93459](https://github.com/ClickHouse/ClickHouse/pull/93459) ([Krishna Mannem](https://github.com/kcmannem)).
* إصلاح دعم credentials المورَّدة لـ Azure ADLS Gen2 في DataLakeCatalog - تحليل مفاتيح `adls.sas-token.*` من REST catalogs الخاصة بـ Iceberg وإصلاح parsing لعناوين URL من نوع ABFSS. [#93477](https://github.com/ClickHouse/ClickHouse/pull/93477) ([Karun Anantharaman](https://github.com/karunmotorq)).
* إصلاح دعم GLOBAL IN مع analyzer (إذ كانت المجموعة في السابق تُنشأ مرة أخرى على العقدة البعيدة). [#93507](https://github.com/ClickHouse/ClickHouse/pull/93507) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح استخراج subcolumn أثناء إلغاء التسلسل مباشرةً إلى أعمدة Sparse. [#93512](https://github.com/ClickHouse/ClickHouse/pull/93512) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح direct read من text index مع استعلامات البحث المكررة. [#93516](https://github.com/ClickHouse/ClickHouse/pull/93516) ([Anton Popov](https://github.com/CurtizJ)).
* إصلاح الخطأ NOT\_FOUND\_COLUMN\_IN\_BLOCK عند تمكين runtime filter وكانت الجداول المربوطة تُرجع العمود نفسه عدة مرات (مثل SELECT a, a, a FROM t). [#93526](https://github.com/ClickHouse/ClickHouse/pull/93526) ([Alexander Gololobov](https://github.com/davenger)).
* إصلاح خلل كان يجعل `clickhouse-client` يطلب كلمة المرور مرتين عند الاتصال باستخدام ssh. [#93547](https://github.com/ClickHouse/ClickHouse/pull/93547) ([Isak Ellmer](https://github.com/spinojara)).
* التأكد من إنهاء `zookeeper` بشكل صحيح عند إيقاف التشغيل (مع إصلاح احتمال التعليق أثناء الإيقاف في حالات نادرة جدًا). [#93602](https://github.com/ClickHouse/ClickHouse/pull/93602) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح `LOGICAL_ERROR` عند استعادة `ReplicatedMergeTree` في حال حدوث حالة تسابق في إزالة التكرار. [#93612](https://github.com/ClickHouse/ClickHouse/pull/93612) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح استخدام عمود Sparse لتحديث TTL أثناء فك التسلسل المباشر إلى أعمدة Sparse في بعض تنسيقات الإدخال. ويعالج ذلك احتمال حدوث خطأ منطقي `Unexpected type of result TTL column`. [#93619](https://github.com/ClickHouse/ClickHouse/pull/93619) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح تعطل دوال H3 index أحيانًا أو توقفها عند استدعائها بمدخلات غير صالحة. [#93657](https://github.com/ClickHouse/ClickHouse/pull/93657) ([Michael Kolupaev](https://github.com/al13n321)).
* أدى استخدام الفهرس `ngram_bf` على بيانات غير UTF-8 إلى قراءة ذاكرة غير مهيأة، مع قيم قد تنتهي إلى بنية الفهرس الناتجة. يغلق [#92576](https://github.com/ClickHouse/ClickHouse/issues/92576). [#93663](https://github.com/ClickHouse/ClickHouse/pull/93663) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* التحقق من أن حجم المخزن المؤقت بعد فك الضغط مطابق لما هو متوقع. [#93690](https://github.com/ClickHouse/ClickHouse/pull/93690) ([Raúl Marín](https://github.com/Algunenano)).
* منع المستخدمين من الحصول على قائمة الأعمدة من جدول من دون التحقق من إذن `SHOW COLUMNS` باستخدام محرك الجدول `merge`. [#93695](https://github.com/ClickHouse/ClickHouse/pull/93695) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
* إصلاح materialization لفهارس skip المُنشأة فوق subcolumns. [#93708](https://github.com/ClickHouse/ClickHouse/pull/93708) ([Anton Popov](https://github.com/CurtizJ)).
* نخزن المؤشرات المشتركة الخاصة بوحدات التخزين في `QueryPipeline::resources::storage_holders` للتأكد من أن كائنات `IStorage` لا تُدمَّر ما دام `PipelineExecutor` قيد التشغيل. [#93746](https://github.com/ClickHouse/ClickHouse/pull/93746) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح إرفاق قواعد بيانات Replicated عند تغيّر مضيف interserver بعد إعادة التشغيل. [#93779](https://github.com/ClickHouse/ClickHouse/pull/93779) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح assert `!read_until_position` في `ReadBufferFromS3` الذي كان يحدث عند تفعيل الذاكرة المؤقتة. [#93809](https://github.com/ClickHouse/ClickHouse/pull/93809) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح خطأ منطقي في حالة نادرة عند استخدام Tuple فارغ مع عمود `Map`. يغلق [#93784](https://github.com/ClickHouse/ClickHouse/issues/93784). [#93814](https://github.com/ClickHouse/ClickHouse/pull/93814) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح تلف `_part_offset` عند إعادة بناء projections أثناء merges، وتحسين معالجة projection عبر تجنب القراءات غير الضرورية للعمود `_part_offset` وتخطي الأعمدة غير المطلوبة في حسابات projection. ويواصل ذلك التحسينات التي قُدمت في [#93233](https://github.com/ClickHouse/ClickHouse/issues/93233). [#93827](https://github.com/ClickHouse/ClickHouse/pull/93827) ([Amos Bird](https://github.com/amosbird)).
* إزالة معالجة 'Bad version'. [#93843](https://github.com/ClickHouse/ClickHouse/pull/93843) ([Anton Ivashkin](https://github.com/ianton-ru)).
* إصلاح عدم عمل `optimize_inverse_dictionary_lookup` مع الاستعلام الموزع عندما يكون المفتاح من نوع عددي صحيح موقّع. يغلق [#93259](https://github.com/ClickHouse/ClickHouse/issues/93259). [#93848](https://github.com/ClickHouse/ClickHouse/pull/93848) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح عدم عمل `lag`/`lead` مع استعلام `remote()` الموزع. يغلق [#90014](https://github.com/ClickHouse/ClickHouse/issues/90014). [#93858](https://github.com/ClickHouse/ClickHouse/pull/93858) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح خلل في توزيع system instrument. [#93937](https://github.com/ClickHouse/ClickHouse/pull/93937) ([Pablo Marcos](https://github.com/pamarcos)).
* في [https://github.com/ClickHouse/ClickHouse/pull/89173،](https://github.com/ClickHouse/ClickHouse/pull/89173،) أضفنا حقلاً إضافياً إلى البنية التي يرسلها `TraceSender` عبر قناة داخلية. لكن لم يتم تحديث حجم المخزن المؤقت ([هنا](https://github.com/ClickHouse/ClickHouse/pull/89173/changes#diff-36ecfac5cde34c92c031652d8a77f0d12782cd5d43e68d6ef159e6d46a54224fL44))، ولذلك أصبحنا نكتب إلى المخزن المؤقت بيانات أكثر مما يسمح به `buffer_size`، ما يؤدي إلى عدة عمليات flush. وبما أن `TraceSender::send` يُستدعى من خيوط تنفيذ مختلفة، فقد تتداخل عمليات flush الخاصة بهذه الخيوط، مما يخلّ بالخاصية التي تعتمد عليها جهة الاستقبال (`TraceCollector`). [#93966](https://github.com/ClickHouse/ClickHouse/pull/93966) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح تحويل النوع إلى النوع الأعلى أثناء عملية join في التخزين `Join` مع عبارة `USING`. يصلح [#91672](https://github.com/ClickHouse/ClickHouse/issues/91672). يصلح [#78572](https://github.com/ClickHouse/ClickHouse/issues/78572). [#94000](https://github.com/ClickHouse/ClickHouse/pull/94000) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح عدم إضافة FilterStep بالشكل الصحيح عند تطبيق join runtime filter على Merge table. [#94021](https://github.com/ClickHouse/ClickHouse/pull/94021) ([Alexander Gololobov](https://github.com/davenger)).
* كان من الممكن أن يُرجع استعلام `SELECT` يحتوي على predicate على عدة أعمدة مع bloom filter skip indexes، ومع وجود الشرطين `OR` و`NOT`، نتائج غير متسقة. تم إصلاح ذلك الآن. [#94026](https://github.com/ClickHouse/ClickHouse/pull/94026) ([Shankar Iyer](https://github.com/shankar-iyer)).
* إصلاح CLEAR للعمود مع الفهارس التابعة. [#94057](https://github.com/ClickHouse/ClickHouse/pull/94057) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح استخدام قيمة غير مهيأة في `ReadWriteBufferFromHTTP`. [#94058](https://github.com/ClickHouse/ClickHouse/pull/94058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تحقق غير صحيح من المسارات ذات الأنواع المحددة في JSON. أُضيف هذا التحقق في [https://github.com/ClickHouse/ClickHouse/pull/92842](https://github.com/ClickHouse/ClickHouse/pull/92842) وقد يؤدي إلى حدوث خطأ أثناء بدء تشغيل الجداول الحالية. [#94070](https://github.com/ClickHouse/ClickHouse/pull/94070) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح الانهيار أثناء تحليل المرشح في وجود `OUTER JOIN`. يصلح [#90979](https://github.com/ClickHouse/ClickHouse/issues/90979). [#94080](https://github.com/ClickHouse/ClickHouse/pull/94080) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح دقة `uniqTheta` عند استخدام مفاتيح aggregation من نوع UInt8 بالتوازي (`max_threads` > 1 - الافتراضي). [#94095](https://github.com/ClickHouse/ClickHouse/pull/94095) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح الانهيار الناتج عن استثناء تم طرحه من استدعاء `socket.setBlocking(true)` داخل `SCOPE_EXIT`. [#94100](https://github.com/ClickHouse/ClickHouse/pull/94100) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح فقدان البيانات عندما يزيل `DROP PARTITION` الأجزاء التي أنشأتها إدخالات log لاحقة في ReplicatedMergeTree. [#94123](https://github.com/ClickHouse/ClickHouse/pull/94123) ([Tuan Pham Anh](https://github.com/tuanpach)).
* إصلاح المعالجة غير الصحيحة في parquet reader v3 للمصفوفات التي تتجاوز حدود الصفحة. يحدث ذلك مثلًا في الملفات التي يكتبها Arrow من دون تمكين page statistics أو page index. يؤثر هذا فقط في الأعمدة من نوع البيانات Array. ومن الأعراض المحتملة أن تُقتطع مصفوفة واحدة تقريبًا كل \~1 MB من البيانات. إلى حين تطبيق هذا الإصلاح، استخدم هذا الإعداد كحل بديل: `input_format_parquet_use_native_reader_v3 = 0`. [#94125](https://github.com/ClickHouse/ClickHouse/pull/94125) ([Michael Kolupaev](https://github.com/al13n321)).
* إصلاح العدد الزائد من watches في ReplicatedMergeTree أثناء انتظار log entry. [#94133](https://github.com/ClickHouse/ClickHouse/pull/94133) ([Azat Khuzhin](https://github.com/azat)).
* جعل الدوال `arrayShuffle` و`arrayPartialShuffle` و`arrayRandomSample` تُجسِّد الأعمدة الثابتة بحيث تحصل الصفوف المختلفة على نتائج مختلفة. [#94134](https://github.com/ClickHouse/ClickHouse/pull/94134) ([Joanna Hulboj](https://github.com/jh0x)).
* إصلاح data race عند تقييم table functions داخل materialized views. [#94171](https://github.com/ClickHouse/ClickHouse/pull/94171) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح إلغاء مرجع nullptr في محركات قاعدة البيانات `PostgreSQL` (عندما يكون الاستعلام غير صحيح). يُغلق [#92887](https://github.com/ClickHouse/ClickHouse/issues/92887). [#94180](https://github.com/ClickHouse/ClickHouse/pull/94180) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تسرّب للذاكرة في refreshable materialized views التي تستخدم استعلامات `SELECT` مع عدة subqueries. [#94200](https://github.com/ClickHouse/ClickHouse/pull/94200) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح data race بين `DataPartStorageOnDiskBase::remove` و`system.parts`. يُغلق [#49076](https://github.com/ClickHouse/ClickHouse/issues/49076). [#94262](https://github.com/ClickHouse/ClickHouse/pull/94262) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إزالة محدد `noexcept` الخاطئ في عملية إسناد النسخ لـ HashTable، والذي قد يؤدي إلى crash (`std::terminate`) عند حدوث استثناءات في الذاكرة. [#94275](https://github.com/ClickHouse/ClickHouse/pull/94275) ([Nikita Taranov](https://github.com/nickitat)).
* سابقًا، كان إنشاء projection بأعمدة مكررة في GROUP BY (مثل `GROUP BY c0, c0`) ثم إدراج البيانات يتسبب في `std::length_error` إذا كان `optimize_row_order` مفعّلًا. يُغلق [#94065](https://github.com/ClickHouse/ClickHouse/issues/94065). [#94277](https://github.com/ClickHouse/ClickHouse/pull/94277) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خلل غامض في عميل ZooKeeper عند الاتصال، كان يؤدي إلى حالات تعليق وتعطّل. [#94320](https://github.com/ClickHouse/ClickHouse/pull/94320) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح عدم تطبيق تحسين function to subcolumns على subcolumns. [#94323](https://github.com/ClickHouse/ClickHouse/pull/94323) ([Pavel Kruglov](https://github.com/Avogar)).
* إصلاح نتيجة قد تكون غير صحيحة في عمليات RIGHT JOIN المتداخلة عند تمكين `enable_lazy_columns_replication`. كان الخلل يتسبب في أن تُرجِع جميع الصفوف في الأعمدة replicated القيمة نفسها بشكل غير صحيح بدلًا من قيمها المميزة. يُغلق [#93891](https://github.com/ClickHouse/ClickHouse/issues/93891). [#94339](https://github.com/ClickHouse/ClickHouse/pull/94339) ([Vladimir Cherkasov](https://github.com/vdimir)).
* إصلاح دفع التصفية إلى المصدر في `SEMI JOIN` باستخدام مجموعات التكافؤ. لا تُدفَع التصفية إذا كانت أنواع `argument` قد تغيّرت. يُصلح [#93264](https://github.com/ClickHouse/ClickHouse/issues/93264). [#94340](https://github.com/ClickHouse/ClickHouse/pull/94340) ([Dmitry Novik](https://github.com/novikd)).
* إصلاح استخدام `DeltaLake CDF` مع محرك قاعدة البيانات `DataLake` (تكامل كتالوجات delta lake). يُغلق [#94122](https://github.com/ClickHouse/ClickHouse/issues/94122). [#94342](https://github.com/ClickHouse/ClickHouse/pull/94342) ([Kseniia Sumarokova](https://github.com/kssenii)).
* إصلاح القيمة غير الصحيحة للمقياس الحالي `FilesystemCacheSizeLimit` عند استخدام سياسة التخزين المؤقت `SLRU`. [#94363](https://github.com/ClickHouse/ClickHouse/pull/94363) ([Kseniia Sumarokova](https://github.com/kssenii)).
* أصبح إنشاء محرك قاعدة البيانات `Backup` بأقل من وسيطين يعيد رسالة خطأ أكثر وضوحًا (`Wrong number of arguments` بدلًا من `std::out_of_range: InlinedVector::at(size_type) const failed bounds check.`). [#94374](https://github.com/ClickHouse/ClickHouse/pull/94374) ([Robert Schulze](https://github.com/rschu1ze)).
* يتجاهل عمليات `revoke` غير الممكنة للامتيازات العامة على مستوى قاعدة البيانات بالنسبة إلى امتيازات `grant` التي تتضمن خيار grant. [#94386](https://github.com/ClickHouse/ClickHouse/pull/94386) ([pufit](https://github.com/pufit)).
* إصلاح قراءة `offsets` المتفرقة من الأجزاء المدمجة. يُغلق [#94385](https://github.com/ClickHouse/ClickHouse/issues/94385). [#94399](https://github.com/ClickHouse/ClickHouse/pull/94399) ([Pavel Kruglov](https://github.com/Avogar)).
* لا تمنع `ALTER` للأعمدة التي تستخدم فهارس ضمنية، حتى عند استخدام وضع `throw` الخاص بـ `alter_column_secondary_index_mode`. [#94425](https://github.com/ClickHouse/ClickHouse/pull/94425) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح تعطل في `TCPHandler` عندما تقرأ استدعاءات متعددة لـ `receivePacketsExpectQuery` القيمة `Protocol::Client::IgnoredPartUUIDs`. [#94434](https://github.com/ClickHouse/ClickHouse/pull/94434) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح إخفاء البيانات الحساسة في `system.functions`. [#94436](https://github.com/ClickHouse/ClickHouse/pull/94436) ([Vitaly Baranov](https://github.com/vitlibar)).
* إصلاح إلغاء مرجع nullptr عند تعطيل `send_profile_events`. أُضيفت هذه الميزة مؤخرًا إلى برنامج تشغيل ClickHouse لـ بايثون. يُغلق [#92488](https://github.com/ClickHouse/ClickHouse/issues/92488). [#94466](https://github.com/ClickHouse/ClickHouse/pull/94466) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح عدم توافق `.mrk` في الفهرس النصي أثناء عمليات الدمج. [#94494](https://github.com/ClickHouse/ClickHouse/pull/94494) ([Peng Jian](https://github.com/fastio)).
* عند تمكين `read_in_order_use_virtual_row`، كان الكود يصل إلى أعمدة الفهرس استنادًا إلى الحجم الكامل للمفتاح الأساسي من دون التحقق مما إذا كان الفهرس قد اقتُطع، مما أدى إلى use-after-free / استخدام ذاكرة غير مهيأة. يُغلق [#85596](https://github.com/ClickHouse/ClickHouse/issues/85596). [#94500](https://github.com/ClickHouse/ClickHouse/pull/94500) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح خطأ ناتج عن عدم تطابق الأنواع عند إرسال الجداول الخارجية للاستعلامات الفرعية التي تستخدم `GLOBAL IN` إذا كانت الأنواع `Nullable`. يُغلق [#94097](https://github.com/ClickHouse/ClickHouse/issues/94097). [#94511](https://github.com/ClickHouse/ClickHouse/pull/94511) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* في الإصدارات السابقة، كانت الاستعلامات التي تتضمن عدة شروط فهرس على التعبير نفسه قد تطرح بالخطأ الاستثناء `Not found column`. يُغلق [#60660](https://github.com/ClickHouse/ClickHouse/issues/60660). [#94515](https://github.com/ClickHouse/ClickHouse/pull/94515) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح المعالجة غير الصحيحة لعمود join من النوع Nullable في Runtime Filters. [#94555](https://github.com/ClickHouse/ClickHouse/pull/94555) ([Alexander Gololobov](https://github.com/davenger)).
* لم يعد إنشاء workload داخل workload أخرى قيد الاستخدام يتسبب في حدوث crash. [#94599](https://github.com/ClickHouse/ClickHouse/pull/94599) ([Sergei Trifonov](https://github.com/serxa)).
* إصلاح crash أثناء تحسين ANY LEFT JOIN عند تقييم `isNotNull` على عمود غير موجود. [#94600](https://github.com/ClickHouse/ClickHouse/pull/94600) ([Molly](https://github.com/ggmolly)).
* إصلاح تقييم التعبير default عند الإشارة إلى أعمدة أخرى ذات قيم default محسوبة. [#94615](https://github.com/ClickHouse/ClickHouse/pull/94615) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح مشكلات permission في عمليات BACKUP/RESTORE. [#94617](https://github.com/ClickHouse/ClickHouse/pull/94617) ([Pablo Marcos](https://github.com/pamarcos)).
* إصلاح crash ناتج عن تحويل نوع غير صحيح عندما يكون نوع البيانات `Nullable(DateTime64)`. [#94627](https://github.com/ClickHouse/ClickHouse/pull/94627) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
* إصلاح خلل كان يؤدي إلى أن بعض distributed queries مع `ORDER BY` قد تُرجع أعمدة `ALIAS` بقيم متبدلة (أي إن العمود `a` يعرض بيانات العمود `b` والعكس صحيح). [#94644](https://github.com/ClickHouse/ClickHouse/pull/94644) ([filimonov](https://github.com/filimonov)).
* إصلاح تخزين نتائج keeper-bench في ملف. [#94654](https://github.com/ClickHouse/ClickHouse/pull/94654) ([Antonio Andelic](https://github.com/antonio2368)).
* إصلاح التقديرات غير الدقيقة مع إحصاءات من نوع MinMax عندما يحتوي العمود على قيم floating-point سالبة. [#94665](https://github.com/ClickHouse/ClickHouse/pull/94665) ([zoomxi](https://github.com/zoomxi)).
* إصلاح قراءة ملفات Parquet عندما يكون مفتاح الـ map من نوع struct. [#94670](https://github.com/ClickHouse/ClickHouse/pull/94670) ([Konstantin Vedernikov](https://github.com/scanhex12)).
* إصلاح احتمال ظهور JOIN result غير صحيحة في RIGHT join عند استخدام شروط ON معقدة. Close [#92913](https://github.com/ClickHouse/ClickHouse/issues/92913). [#94680](https://github.com/ClickHouse/ClickHouse/pull/94680) ([Vladimir Cherkasov](https://github.com/vdimir)).
* الحفاظ على index granularity الثابتة (use\_const\_adaptive\_granularity) بعد Vertical merges. [#94725](https://github.com/ClickHouse/ClickHouse/pull/94725) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح خلل في mutation متعلق بـ scalar subqueries واعتماديات الجدول. إذا كانت لدى الجدول اعتماديات (index أو projections) على عمود ما، فقد تُقيَّم scalar subqueries وتُخزَّن مؤقتًا بلا بيانات، مما يؤدي إلى تغييرات غير صحيحة. [#94731](https://github.com/ClickHouse/ClickHouse/pull/94731) ([Raúl Marín](https://github.com/Algunenano)).
* إصلاح fallback الخاص بـ AsynchronousMetrics cpu\_pressure عند حدوث error. [#94827](https://github.com/ClickHouse/ClickHouse/pull/94827) ([Raúl Marín](https://github.com/Algunenano)).
* كانت الدالة `getURLHostRFC` تفتقد إلى فحوصات حدود قبل إلغاء الإشارة إلى المؤشرات. وعند تمرير سلسلة فارغة إلى `domainRFC``،` كانت تقرأ ذاكرة غير مهيأة، مما يؤدي إلى أخطاء MSan. [#94851](https://github.com/ClickHouse/ClickHouse/pull/94851) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح وضع readonly للأقراص المشفرة. [#94852](https://github.com/ClickHouse/ClickHouse/pull/94852) ([Azat Khuzhin](https://github.com/azat)).
* إصلاح logical error في `LIMIT/OFFSET` الكسري عند استخدام analyzer القديم مع Distributed tables. Closes [#94712](https://github.com/ClickHouse/ClickHouse/issues/94712). [#94999](https://github.com/ClickHouse/ClickHouse/pull/94999) ([Ahmed Gouda](https://github.com/0xgouda)).
* إصلاح تعطل يحدث في بعض الحالات عندما تكون مرشحات runtime لعمليات join مفعّلة افتراضيًا. [#95000](https://github.com/ClickHouse/ClickHouse/pull/95000) ([Alexander Gololobov](https://github.com/davenger)).
* تحسين إخفاء كلمات المرور في عناوين url المستخدمة في محرك الجدول `URL()` ودالة الجدول `url()`. [#95006](https://github.com/ClickHouse/ClickHouse/pull/95006) ([Vitaly Baranov](https://github.com/vitlibar)).
* أصبحت الدالة `toStartOfInterval` تعمل الآن بالطريقة نفسها التي تعمل بها `toStartOfX`، حيث تكون `X` إحدى القيم `Day, Week, Month, Quarter, Year` عندما يكون `enable_extended_results_for_datetime_functions` مفعّلًا. [#95011](https://github.com/ClickHouse/ClickHouse/pull/95011) ([Kirill Kopnev](https://github.com/Fgrtue)).
* إصلاح عدم التزام مقارنات السلاسل النصية الثابتة بالإعدادات `cast_string_to_date_time_mode` و`bool_true_representation` و`bool_false_representation` و`input_format_null_as_default`. يُغلق [#91681](https://github.com/ClickHouse/ClickHouse/issues/91681). [#95040](https://github.com/ClickHouse/ClickHouse/pull/95040) ([Nihal Z. Miaji](https://github.com/nihalzp)).
* إصلاح حالة data race في filesystem cache. [#95064](https://github.com/ClickHouse/ClickHouse/pull/95064) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح race condition نادرة في قارئ Parquet. [#95068](https://github.com/ClickHouse/ClickHouse/pull/95068) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* إصلاح تعطل في تحسين top K عندما تكون `LIMIT` صفرًا. يُغلق [#93893](https://github.com/ClickHouse/ClickHouse/issues/93893). [#95072](https://github.com/ClickHouse/ClickHouse/pull/95072) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* عند التحويل من DateTime/الأعداد الصحيحة إلى Time64، يُستخرج مكوّن time-of-day باستخدام `toTime`، وهو غير رتيب. وقد أشار القالب `ToDateTimeMonotonicity` خطأً إلى أن هذا التحويل رتيب، مما تسبب في الاستثناء "Invalid binary search result in MergeTreeSetIndex" في إصدارات Debug. [#95125](https://github.com/ClickHouse/ClickHouse/pull/95125) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* أُعيد إنشاء قائمة entries في manifest file فقط عند الضرورة (إذ كان ذلك يُجرى سابقًا في كل تكرار). [#95162](https://github.com/ClickHouse/ClickHouse/pull/95162) ([Daniil Ivanik](https://github.com/divanik)).

<div id="267-build-testing-packaging-improvement">
  #### تحسينات البناء/الاختبار/التغليف
</div>

* إضافة مجموعة أدوات لتوصيف تخصيصات الذاكرة في محلل ClickHouse SQL باستخدام إمكانات توصيف الكومة في jemalloc. [#94072](https://github.com/ClickHouse/ClickHouse/pull/94072) ([Ilya Yatsishin](https://github.com/qoega)).
* أُضيفت أداة تُسهّل استكشاف تخصيصات الذاكرة وإصلاح مشكلاتها في المحلل. تستخدم هذه الأداة المقياس `stats.allocated` في jemalloc قبل تحليل الاستعلام إلى تمثيل AST وبعده، لعرض ما تم تخصيصه. كما تدعم وضع توصيف الذاكرة الذي يُخرج ملف توصيف قبل العملية وبعدها لبناء تقارير توضّح مواضع حدوث التخصيصات. [#93523](https://github.com/ClickHouse/ClickHouse/pull/93523) ([Ilya Yatsishin](https://github.com/qoega)).
* إزالة تضمينات libc++ العابرة. [#92523](https://github.com/ClickHouse/ClickHouse/pull/92523) ([Raúl Marín](https://github.com/Algunenano)).
* جعل بعض الاختبارات المتسلسلة تعمل بالتوازي: [https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df](https://github.com/ClickHouse/ClickHouse/pull/93030/changes#diff-c3a73510dae653c9bbfa24300b32f5d6ec663fd4e72cc4a3d5daa6e4342915df). [#93030](https://github.com/ClickHouse/ClickHouse/pull/93030) ([Nikita Fomichev](https://github.com/fm4v)).
* تنظيف بعض خيارات البناء. [#93679](https://github.com/ClickHouse/ClickHouse/pull/93679) ([Raúl Marín](https://github.com/Algunenano)).
* ترقية c-ares من v1.34.5 إلى v1.34.6. يعالج هذا الثغرة `CVE-2025-62408` الخاصة بـ c-ares، لكنها غير ذات صلة بـ ClickHouse. [#94129](https://github.com/ClickHouse/ClickHouse/pull/94129) ([Govind R Nair](https://github.com/Revertionist)).
* استخدام `curl` 8.18.0. [#94742](https://github.com/ClickHouse/ClickHouse/pull/94742) ([Konstantin Bogdanov](https://github.com/thevar1able)).
