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

# إعدادات الجلسة external_table_*

> إعدادات جلسة ClickHouse ضمن المجموعة المُولَّدة external_table_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>النوع</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>القيمة الافتراضية</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          يمكن تغييره دون إعادة التشغيل
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

هذه الإعدادات متاحة في [system.settings](/ar/reference/system-tables/settings)، وهي مُولَّدة تلقائيًا من [ملف المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

## external\_table\_functions\_use\_nulls

<SettingsInfoBlock type="Bool" default_value="1" />

يحدّد كيفية استخدام دوال الجداول [mysql](/ar/reference/functions/table-functions/mysql) و[postgresql](/ar/reference/functions/table-functions/postgresql) و[odbc](/ar/reference/functions/table-functions/odbc) للأعمدة من النوع Nullable.

القيم الممكنة:

* 0 — تستخدم دالة الجدول أعمدة Nullable بشكل صريح.
* 1 — تستخدم دالة الجدول أعمدة Nullable بشكل ضمني.

**الاستخدام**

إذا ضُبط الإعداد على `0`، فلن تُنشئ دالة الجدول أعمدة Nullable، وستُدرج القيم الافتراضية بدلًا من NULL. وينطبق ذلك أيضًا على قيم NULL داخل المصفوفات.

## external\_table\_strict\_query

<SettingsInfoBlock type="Bool" default_value="0" />

إذا تم تعيينه إلى true، فإن أي filter على أعمدة external table (`MySQL`، `PostgreSQL`، `SQLite`، `ODBC`، `JDBC`) لا يمكن دفعه (pushed down) إلى قاعدة البيانات الخارجية يُرفض مع إطلاق Exception بدلاً من تطبيقه محلياً بعد fetch البيانات.

يشمل الفحص predicate الخاص بـ `WHERE` في المستوى الأعلى وكل عامل من عوامل `AND` في المستوى الأعلى. أما `PREWHERE` على أعمدة external table فلا يخضع لهذا الإعداد: فمحركات الجداول هذه لا تدعم `PREWHERE`، ويُرفض مثل هذا الـ query بالخطأ `ILLEGAL_PREWHERE` بغض النظر عن الإعداد. لا يجري الفحص إلا في الحالات التي يمكن فيها دفع filter أصلاً: عندما يكون external table هو الجدول الوحيد في الـ query، أو على أي من طرفي `INNER JOIN`، أو على الطرف المحفوظ من outer join (الطرف الأيسر في `LEFT JOIN`، والطرف الأيمن في `RIGHT JOIN`). أما على الطرف غير المحفوظ من `LEFT`/`RIGHT JOIN` وعلى أي من طرفي `FULL JOIN` فلا يُدفع أي شيء ولا يُفحص أي شيء، ولذلك يُطبَّق filter أعمدة external table محلياً بعد الـ join حتى في الوضع الصارم. وحيث يجري الفحص، فإن أي predicate يشير إلى جداول أخرى مضمومة في الـ query المحيط لا يُدفع ويُستثنى من الفحص، سواء كان يشير إلى الطرف المضموم فقط (مثل `WHERE r.flag`) أو يخلطه مع external table داخل تعبير واحد ليس `AND` (مثل `WHERE l.id = 1 OR r.flag`)؛ ويحتفظ مثل هذا الـ predicate بنقطة تقييمه المعتادة في ClickHouse (`WHERE` بعد الـ join، و`PREWHERE` قبله) ولا يُرفض.
