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

# دعم تمرير تغييرات المخطط

> صفحة تصف أنواع تغييرات المخطط التي يمكن لـ ClickPipes اكتشافها في جداول المصدر

يمكن لـ ClickPipes for Postgres اكتشاف تغييرات المخطط في جداول المصدر، وفي بعض الحالات، تمرير هذه التغييرات تلقائيًا إلى جداول الوجهة. يوضّح ما يلي كيفية التعامل مع كل عملية DDL:

[//]: # "TODO وسّع هذه الصفحة لتشمل السلوك عند إعادة التسمية، وتغييرات نوع البيانات، و TRUNCATE، مع إرشادات حول كيفية التعامل مع تغييرات المخطط غير المتوافقة."

| نوع تغيير المخطط                                                          | السلوك                                                                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| إضافة عمود جديد (`ALTER TABLE ADD COLUMN ...`)                            | يُمرَّر تلقائيًا بمجرد أن يتلقى الجدول عملية insert/update/delete. ستُعبَّأ الأعمدة الجديدة لجميع الصفوف التي تمت مزامنتها بعد تغيير المخطط                                                                                                                             |
| إضافة عمود جديد بقيمة افتراضية (`ALTER TABLE ADD COLUMN ... DEFAULT ...`) | يُمرَّر تلقائيًا بمجرد أن يتلقى الجدول عملية insert/update/delete. تُضاف [القيم الافتراضية المدعومة](#default-values-for-added-columns) أيضًا إلى عمود ClickHouse، بحيث تنطبق على الصفوف الموجودة بالفعل في ClickHouse وكذلك الصفوف التي تمت مزامنتها بعد تغيير المخطط. |
| حذف عمود موجود (`ALTER TABLE DROP COLUMN ...`)                            | يُكتشَف، لكن **لا** يُمرَّر. ستُعبَّأ الأعمدة المحذوفة بالقيمة `NULL` لجميع الصفوف التي تمت مزامنتها بعد تغيير المخطط                                                                                                                                                   |

لاحظ أن إضافة العمود تُمرَّر عند نهاية مزامنة الدفعة، وقد يحدث ذلك بعد بلوغ sync interval أو pull batch size. لمزيد من المعلومات حول التحكم في المزامنة، راجع [هنا](/ar/integrations/clickpipes/postgres/controlling-sync)

<div id="default-values-for-added-columns">
  ## القيم الافتراضية للأعمدة المضافة
</div>

بالنسبة إلى العمود المُضاف، يمرّر ClickPipes قيمة افتراضية فقط عندما يتمكن من تحويلها بأمان إلى ClickHouse. وعند تمرير قيمة افتراضية، يستخدمها ClickHouse عند قراءة أجزاء البيانات التي تسبق إضافة العمود الجديد. ونتيجةً لذلك، تعرض الصفوف الموجودة مسبقًا في ClickHouse القيمة نفسها التي يستخدمها PostgreSQL للصفوف التي تسبق `ADD COLUMN`؛ ولا يلزم إجراء تحديث كامل للجدول.

بالنسبة إلى PostgreSQL، يقرأ ClickPipes القيمة التي خزّنها PostgreSQL للصفوف الموجودة مسبقًا، بدلًا من تعبير القيمة الافتراضية الحالي للعمود. ويكتسب ذلك أهمية عندما تكون القيمة الافتراضية تعبيرًا: إذ يقيّم PostgreSQL تعبيرًا غير متقلب مثل `now()` عند إضافة العمود، ويمرّر ClickPipes القيمة الناتجة، لا التعبير نفسه. ولا تؤثر عمليات `SET DEFAULT` أو `DROP DEFAULT` اللاحقة في القيمة الافتراضية المستخدمة للصفوف الموجودة، ولا تُمرَّر إلى ClickHouse.

تُمرَّر القيم التالية:

* القيم المنطقية والقيم الرقمية المنتهية.
* القيم النصية، بما في ذلك `varchar` و`char` والتعدادات وUUIDs وJSON/JSONB و`hstore` وعناوين الشبكة والتواريخ.
* الطوابع الزمنية. وتُطبَّع الطوابع الزمنية ذات المناطق الزمنية إلى UTC.

تُهمَل القيم الافتراضية عندما لا يمكن نقل تمثيلها بأمان إلى ClickHouse، بما في ذلك `NULL` والقيم الرقمية غير المنتهية و`bytea` والمصفوفات والفواصل الزمنية وقيم الوقت من اليوم والأنواع الهندسية. يظل العمود مُضافًا، لكن ClickHouse يستخدم القيمة الافتراضية المعتادة لنوعه لأجزاء البيانات التي تسبق العمود. ويلزم إجراء تحديث كامل للجدول إذا كان يجب أن تحتوي تلك الصفوف الموجودة على القيمة الافتراضية من المصدر.
