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

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

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

<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="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 لكل histogram 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="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="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="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="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="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)).

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

* إيقاف استخدام مكتبات `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="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="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="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="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="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)).

#### إصلاح خطأ (خلل يمكن للمستخدم ملاحظته في إصدار مستقر رسمي)

* إصلاح الخطأ `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)).

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

* تستخدم تبعية 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="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="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)).
* إضافة المُجزِّئ `asciiCJK` إلى فهارس النص الكامل وإلى الدالة `tokens`. وهو يقسم النص باستخدام قواعد حدود الكلمات في Unicode: تتكوّن كلمات ASCII باستخدام محارف الربط (الشرطة السفلية، النقطتان، النقطة، وعلامة الاقتباس المفردة)، بينما تتحول محارف Unicode غير التابعة لـ ASCII إلى tokens أحادية المحرف. [#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="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="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="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](/ar/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)).

#### إصلاح خطأ (سلوك غير صحيح يلاحظه المستخدم في إصدار مستقر رسمي)

* يُصلح كيفية حفظ هدف جدول 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="buildtestingpackaging-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="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="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="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="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="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)).

#### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)

* بعد عمليات 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="buildtestingpackaging-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="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="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="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="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="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 لكل منفذ على حدة (راجع [البروتوكولات القابلة للتركيب](/ar/concepts/features/configuration/server-config/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)).

#### إصلاح خطأ (خلل ظاهر للمستخدم في إصدار مستقر رسمي)

* يُصلح خطأً كانت فيه معالجات الاستعلامات المعرّفة مسبقًا تفسّر المسافات البيضاء اللاحقة على أنها بيانات أثناء عمليات 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)).

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

* إضافة مجموعة أدوات لتوصيف تخصيصات الذاكرة في محلل 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)).
