> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# إعدادات تنسيق output_format_*

> إعدادات التنسيق في ClickHouse ضمن المجموعة المُنشأة output_format_*.

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>;
};

تُنشأ هذه الإعدادات تلقائيًا من [المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<div id="output_format_always_write_decimal_point_in_float_and_decimal">
  ## output\_format\_always\_write\_decimal\_point\_in\_float\_and\_decimal
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد لعرض الفاصلة العشرية دائمًا للأعداد ذات الفاصلة العائمة وأعداد Decimal في التنسيقات النصية، حتى إذا كانت القيمة عددًا صحيحًا."}]}]} />

اعرض الفاصلة العشرية دائمًا للأعداد ذات الفاصلة العائمة وأعداد Decimal في التنسيقات النصية، حتى إذا كانت القيمة عددًا صحيحًا. على سبيل المثال، اعرض `1.` بدلًا من `1`.

مُعطَّل افتراضيًا.

<div id="output_format_arrow_compression_method">
  ## output\_format\_arrow\_compression\_method
</div>

<SettingsInfoBlock type="ArrowCompression" default_value="lz4_frame" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "استخدام ضغط lz4 افتراضيًا في تنسيق إخراج Arrow"}]}]} />

طريقة الضغط لتنسيق إخراج Arrow. خوارزميات الضغط المدعومة: lz4\_frame, zstd, none (غير مضغوط)

<div id="output_format_arrow_date_as_uint16">
  ## output\_format\_arrow\_date\_as\_uint16
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "تُكتب قيم Date افتراضيًا كنوع Arrow DATE32 بدلًا من UInt16 العادي."}]}]} />

اكتب قيم Date كأرقام عادية من 16 بت (تُقرأ لاحقًا كـ UInt16)، بدلًا من تحويلها إلى النوع Arrow DATE32 ذي 32 بت (تُقرأ لاحقًا كـ Date32).

<div id="output_format_arrow_fixed_string_as_fixed_byte_array">
  ## output\_format\_arrow\_fixed\_string\_as\_fixed\_byte\_array
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "استخدام نوع Arrow FIXED_SIZE_BINARY افتراضيًا بدلًا من Binary لأعمدة FixedString"}]}]} />

استخدم نوع Arrow FIXED\_SIZE\_BINARY بدلًا من Binary لأعمدة FixedString.

<div id="output_format_arrow_low_cardinality_as_dictionary">
  ## output\_format\_arrow\_low\_cardinality\_as\_dictionary
</div>

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

تمكين إخراج النوع LowCardinality على أنه النوع Dictionary في Arrow

<div id="output_format_arrow_string_as_string">
  ## output\_format\_arrow\_string\_as\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يسمح ClickHouse بتخزين بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. ولا تدعم Strings في Parquet\/ORC\/Arrow سوى ترميز UTF-8. لذلك، يمكنك اختيار نوع بيانات Arrow الذي تريد استخدامه مع نوع البيانات String في ClickHouse: String أو Binary. ومع أن Binary أكثر دقةً وتوافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع Arrow String بدلًا من Binary لأعمدة String

<div id="output_format_arrow_unsupported_types_as_binary">
  ## output\_format\_arrow\_unsupported\_types\_as\_binary
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "إعداد جديد لتحويل أنواع CH غير المدعومة إلى بيانات Arrow الثنائية بدلًا من استثناء UNKNOWN_TYPE."}]}]} />

يُخرج الأنواع التي لا يتوفر لها تحويل على شكل بيانات ثنائية خام. إذا كانت القيمة false، فستُطلق هذه الأنواع استثناء UNKNOWN\_TYPE.

<div id="output_format_arrow_use_64_bit_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_64\_bit\_indexes\_for\_dictionary
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح باستخدام نوع فهارس 64 بت في قواميس Arrow"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح باستخدام نوع فهارس 64 بت في قواميس Arrow"}]}]} />

استخدم دائمًا أعدادًا صحيحة من 64 بت لفهارس القاموس في تنسيق Arrow

<div id="output_format_arrow_use_native_writer">
  ## output\_format\_arrow\_use\_native\_writer
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "إعداد جديد لاستخدام كاتب ClickHouse الأصلي لتنسيقَي Arrow وArrowStream بدلًا من الكاتب المستند إلى مكتبة Apache Arrow."}]}]} />

استخدم كاتب ClickHouse الأصلي لتنسيقَي Arrow وArrowStream بدلًا من الكاتب المستند إلى مكتبة Apache Arrow.

<div id="output_format_arrow_use_signed_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_signed\_indexes\_for\_dictionary
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "استخدام نوع الفهارس الموقَّعة لقواميس Arrow افتراضيًا لأنه الخيار المُوصى به"}]}]} />

استخدم الأعداد الصحيحة الموقَّعة لفهارس القواميس في تنسيق Arrow

<div id="output_format_avro_codec">
  ## output\_format\_avro\_codec
</div>

برنامج ترميز الضغط المستخدم للإخراج. القيم الممكنة: 'null'، 'deflate'، 'snappy'، 'zstd'.

<div id="output_format_avro_confluent_subject">
  ## output\_format\_avro\_confluent\_subject
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "إعداد جديد لتحديد اسم الـsubject من أجل تسجيل المخطط في Confluent Schema Registry عند كتابة مخرجات AvroConfluent."}]}]} />

بالنسبة إلى تنسيق الإخراج AvroConfluent: اسم الـsubject الذي يُسجَّل المخطط تحته في Confluent Schema Registry. وهو مطلوب عند كتابة مخرجات AvroConfluent.

<div id="output_format_avro_rows_in_file">
  ## output\_format\_avro\_rows\_in\_file
</div>

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

الحد الأقصى لعدد الصفوف في ملف (إذا سمحت وحدة التخزين بذلك)

<div id="output_format_avro_string_column_pattern">
  ## output\_format\_avro\_string\_column\_pattern
</div>

لتنسيق Avro: تعبير نمطي لأعمدة String التي تُحدَّد كسلسلة AVRO.

<div id="output_format_avro_sync_interval">
  ## output\_format\_avro\_sync\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="16384" />

فترة المزامنة بالبايت.

<div id="output_format_binary_encode_types_in_binary_format">
  ## output\_format\_binary\_encode\_types\_in\_binary\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "تمت إضافة إعداد جديد للسماح بكتابة أسماء الأنواع بالتنسيق الثنائي في تنسيق الإخراج RowBinaryWithNamesAndTypes"}]}]} />

كتابة أنواع البيانات بالتنسيق الثنائي بدلًا من أسماء الأنواع في تنسيق الإخراج RowBinaryWithNamesAndTypes

<div id="output_format_binary_write_json_as_string">
  ## output\_format\_binary\_write\_json\_as\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "إضافة إعداد جديد لكتابة قيم نوع JSON كسلاسل JSON نصية في تنسيق الإخراج RowBinary"}]}]} />

يكتب قيم نوع البيانات [JSON](/docs/ar/reference/data-types/newjson) كقيم [String](/docs/ar/reference/data-types/string) بتنسيق JSON في تنسيق الإخراج RowBinary.

<div id="output_format_bson_string_as_string">
  ## output\_format\_bson\_string\_as\_string
</div>

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

استخدم النوع BSON String بدلًا من Binary مع الأعمدة من النوع String.

<div id="output_format_compression_level">
  ## output\_format\_compression\_level
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "3"},{"label": "السماح بتغيير مستوى الضغط في مخرجات الاستعلام"}]}]} />

مستوى الضغط الافتراضي إذا كانت مخرجات الاستعلام مضغوطة. يُطبَّق هذا الإعداد عندما يتضمن استعلام `SELECT` ‎`INTO OUTFILE` أو عند الكتابة إلى دوال الجدول `file` و`url` و`hdfs` و`s3` و`azureBlobStorage`.

القيم الممكنة: من `1` إلى `22`

<div id="output_format_compression_zstd_window_log">
  ## output\_format\_compression\_zstd\_window\_log
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "السماح بتغيير zstd window log في ناتج الاستعلام عند استخدام ضغط zstd"}]}]} />

يمكن استخدامه عندما تكون طريقة ضغط الإخراج هي `zstd`. إذا كانت القيمة أكبر من `0`، فإن هذا الإعداد يحدد صراحةً حجم نافذة الضغط (قوة `2`) ويفعّل وضع المدى الطويل لضغط zstd. وقد يساعد ذلك على تحقيق نسبة ضغط أفضل.

القيم الممكنة: أعداد غير سالبة. لاحظ أنه إذا كانت القيمة صغيرة جدًا أو كبيرة جدًا، فسيؤدي `zstdlib` إلى طرح استثناء. وتتراوح القيم المعتادة من `20` (حجم النافذة = `1MB`) إلى `30` (حجم النافذة = `1GB`).

<div id="output_format_csv_crlf_end_of_line">
  ## output\_format\_csv\_crlf\_end\_of\_line
</div>

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

إذا ضُبطت هذه القيمة على true، فستكون نهاية السطر في تنسيق CSV هي \r\n بدلًا من \n.

<div id="output_format_csv_header_serialize_tuple_into_separate_columns">
  ## output\_format\_csv\_header\_serialize\_tuple\_into\_separate\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "إعداد جديد. عند تمكين output_format_csv_serialize_tuple_into_separate_columns، يُسطِّح ترويس CSVWithNames\/CSVWithNamesAndTypes الآن أعمدة Tuple إلى حقولها الطرفية بحيث يتطابق عدد أعمدة الترويسة مع البيانات. اضبطه على false لاستعادة الترويسة السابقة ذات الاسم الواحد."}]}]} />

عند تمكين [output\_format\_csv\_serialize\_tuple\_into\_separate\_columns](/docs/ar/reference/settings/formats/output-format#output_format_csv_serialize_tuple_into_separate_columns)، تُسطِّح صفوف الترويسة في `CSVWithNames` و`CSVWithNamesAndTypes` كل عمود Tuple إلى حقوله الطرفية (أسماء منقوطة مثل `t.a` و`t.b`، وأسماء الأنواع الطرفية)، بحيث يكون للترويسة العدد نفسه من الأعمدة الموجودة في البيانات. بالنسبة إلى `CustomSeparated*`، لا ينطبق هذا التسطيح إلا عندما تكون `format_custom_escaping_rule = 'CSV'` و`format_custom_field_delimiter` محرفًا واحدًا يساوي `format_csv_delimiter`؛ وإلا (على سبيل المثال، محدِّد علامة الجدولة الافتراضي أو `format_custom_field_delimiter = '|'`) تبقى الترويسة غير مسطحة حتى تظل مطابقةً للبيانات. اضبطه على `0` للإبقاء على السلوك السابق، حيث تحتفظ الترويسة باسم ونوع Tuple المفردين على المستوى الأعلى.

ملاحظة: لا تُعاد قراءة الترويسة المسطحة إلى Tuple بالاسم عندما تكون `input_format_with_names_use_header = 1`. لقراءة هذه البيانات مرة أخرى إلى Tuple، اضبط هذا الإعداد على `0` عند الإخراج، أو اقرأ باستخدام `input_format_with_names_use_header = 0` (وبالنسبة إلى التنسيقات `*WithNamesAndTypes`، أي `CSVWithNamesAndTypes` و`CustomSeparatedWithNamesAndTypes`، اضبط أيضًا `input_format_with_types_use_header = 0`، لأن صف الأنواع المسطح سيُتحقق منه بخلاف ذلك مقابل حقل الإدخال المفرد لـ Tuple على المستوى الأعلى، وسيُرفض)."

<div id="output_format_csv_serialize_tuple_into_separate_columns">
  ## output\_format\_csv\_serialize\_tuple\_into\_separate\_columns
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "أُضيفت طريقة جديدة لتفسير Tuples في تنسيق CSV."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "أُضيفت طريقة جديدة لتفسير Tuples في تنسيق CSV."}]}]} />

إذا ضُبط هذا الإعداد على true، فستُسلسَل Tuples في تنسيق CSV كأعمدة منفصلة (أي يُفقد تداخلها داخل Tuple)

<div id="output_format_decimal_trailing_zeros">
  ## output\_format\_decimal\_trailing\_zeros
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "0"},{"label": "لا تعرض الأصفار اللاحقة في التمثيل النصي لأنواع Decimal افتراضيًا، للحصول على مخرجات أفضل مظهرًا"}]}]} />

يُخرج الأصفار اللاحقة عند طباعة قيم Decimal. مثال: 1.230000 بدلًا من 1.23.

يكون معطّلًا افتراضيًا.

<div id="output_format_float_precision">
  ## output\_format\_float\_precision
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد للتحكم في عدد الخانات العشرية في مخرجات الأعداد ذات الفاصلة العائمة"}]}]} />

عندما تكون القيمة غير صفرية، تُنسَّق مخرجات الأعداد ذات الفاصلة العائمة (`Float32` و`Float64` و`BFloat16`) بحيث لا يزيد عدد الخانات بعد الفاصلة العشرية على هذا العدد (مع إزالة الأصفار اللاحقة).
وعندما تكون القيمة 0 (الافتراضية)، يُستخدم أقصر تمثيل يضمن `round-trip`.

تُخرَج القيم الكبيرة جدًا بالنسبة إلى التدوين الثابت، وكذلك القيم الصغيرة جدًا التي يؤدّي تقريبها إلى الدقة المطلوبة إلى فقدان جميع الخانات الدالة (بحيث تصبح المانتيسا `±0`)، بالتدوين العلمي بدلًا من ذلك. وفي حالات fallback هذه، قد تحتوي المانتيسا على عدد من الخانات الكسرية أكبر من العدد المطلوب.

النطاق الصالح: من 0 إلى 100.

<div id="output_format_image_height">
  ## output\_format\_image\_height
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "إعداد جديد يتحكم في ارتفاع الصورة الناتجة في تنسيقات إخراج الصور مثل PNG."}]}]} />

ارتفاع الصورة الناتجة، بالبكسل، في تنسيقات إخراج الصور مثل `PNG`.

القيمة الافتراضية: 1024.

<div id="output_format_image_terminal_mode">
  ## output\_format\_image\_terminal\_mode
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": ""},{"label": "إعداد جديد يتحكم في ما إذا كانت تنسيقات إخراج الصور مثل PNG تُعرَض مباشرةً في الطرفية باستخدام بروتوكول صور مضمن."}]}]} />

بالنسبة إلى تنسيقات إخراج الصور مثل `PNG`، أخرج الصورة مباشرةً إلى الطرفية باستخدام بروتوكول صور مضمن بدلًا من كتابة بايتات الصورة الخام.

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

* \`\` (فارغ) — اكتب بايتات الصورة الخام (القيمة الافتراضية).
* `iterm` — استخدم بروتوكول الصور المضمّنة في iTerm2.
* `kitty` — استخدم بروتوكول Kitty الرسومي.
* `sixel` — استخدم بروتوكول Sixel.
* `auto` — إذا كان الإخراج موجَّهًا إلى طرفية، فاكتشف إمكاناتها واستخدم `iterm` أو `kitty` أو `sixel` (بهذا الترتيب)؛ وإلا فاكتب بايتات الصورة الخام.

القيمة الافتراضية: \`\` (فارغ).

<div id="output_format_image_width">
  ## output\_format\_image\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="1024" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1024"},{"label": "إعداد جديد يتحكم في عرض صورة الإخراج لتنسيقات إخراج الصور مثل PNG."}]}]} />

عرض صورة الإخراج بالبكسل لتنسيقات إخراج الصور مثل `PNG`.

القيمة الافتراضية: 1024.

<div id="output_format_json_array_of_rows">
  ## output\_format\_json\_array\_of\_rows
</div>

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

يتيح إخراج جميع الصفوف كمصفوفة JSON بتنسيق [JSONEachRow](/docs/ar/reference/formats/JSON/JSONEachRow).

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

* 1 — يُخرج ClickHouse جميع الصفوف كمصفوفة، ويكون كل صف فيها بتنسيق `JSONEachRow`.
* 0 — يُخرج ClickHouse كل صف على حدة بتنسيق `JSONEachRow`.

**مثال على استعلام مع تمكين هذا الإعداد**

الاستعلام:

```sql theme={null}
SET output_format_json_array_of_rows = 1;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

النتيجة:

```text theme={null}
[
{"number":"0"},
{"number":"1"},
{"number":"2"}
]
```

**مثال على استعلام مع تعطيل هذا الإعداد**

الاستعلام:

```sql theme={null}
SET output_format_json_array_of_rows = 0;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

النتيجة:

```text theme={null}
{"number":"0"}
{"number":"1"}
{"number":"2"}
```

<div id="output_format_json_escape_forward_slashes">
  ## output\_format\_json\_escape\_forward\_slashes
</div>

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

يتحكّم في إفلات الشرطات المائلة الأمامية في مخرجات السلاسل النصية ضمن تنسيق إخراج JSON. والغرض من ذلك هو التوافق مع JavaScript. لا تخلطها مع الخطوط المائلة العكسية التي يُجرى لها الإفلات دائمًا.

مفعّل افتراضيًا.

<div id="output_format_json_map_as_array_of_tuples">
  ## output\_format\_json\_map\_as\_array\_of\_tuples
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "إعداد جديد"}]}]} />

تُسلسَل أعمدة Map على شكل مصفوفات JSON من Tuples.

يكون معطّلًا افتراضيًا.

<div id="output_format_json_named_tuples_as_objects">
  ## output\_format\_json\_named\_tuples\_as\_objects
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.6"},{"label": "1"},{"label": "السماح، افتراضيًا، بتسلسل أعمدة named tuple ككائنات JSON في تنسيقات JSON"}]}]} />

تُسلسِل أعمدة named tuple ككائنات JSON.

مفعّل افتراضيًا.

<div id="output_format_json_pretty_print">
  ## output\_format\_json\_pretty\_print
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "طباعة القيم بتنسيق Pretty في تنسيق إخراج JSON افتراضيًا"}]}]} />

يحدد هذا الإعداد كيفية عرض البنى المتداخلة، مثل Tuples وMaps وArrays، داخل المصفوفة `data` عند استخدام تنسيق إخراج JSON.

على سبيل المثال، بدلًا من هذا الإخراج:

```json theme={null}
"data":
[
  {
    "tuple": {"a":1,"b":2,"c":3},
    "array": [1,2,3],
    "map": {"a":1,"b":2,"c":3}
  }
],
```

سيُنسَّق الإخراج على النحو التالي:

```json theme={null}
"data":
[
    {
        "tuple": {
            "a": 1,
            "b": 2,
            "c": 3
        },
        "array": [
            1,
            2,
            3
        ],
        "map": {
            "a": 1,
            "b": 2,
            "c": 3
        }
    }
],
```

مفعّل افتراضيًا.

<div id="output_format_json_quote_64bit_floats">
  ## output\_format\_json\_quote\_64bit\_floats
</div>

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

يتحكم في وضع علامات اقتباس حول [الأعداد ذات الفاصلة العائمة](/docs/ar/reference/data-types/float) ذات 64 بت عند إخراجها بتنسيقات JSON\*.

يكون معطّلًا افتراضيًا.

<div id="output_format_json_quote_64bit_integers">
  ## output\_format\_json\_quote\_64bit\_integers
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "تعطيل إحاطة الأعداد الصحيحة ذات 64 بت في JSON بعلامات اقتباس افتراضيًا"}]}]} />

يتحكم هذا الإعداد في إحاطة [الأعداد الصحيحة](/docs/ar/reference/data-types/int-uint) ذات 64 بت أو الأكبر (مثل `UInt64` أو `Int128`) بعلامات اقتباس عند إخراجها بتنسيق [JSON](/docs/ar/reference/formats/JSON/JSON).
تُحاط هذه الأعداد الصحيحة بعلامات اقتباس افتراضيًا. هذا السلوك متوافق مع معظم تطبيقات JavaScript.

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

* 0 — تُخرَج الأعداد الصحيحة من دون علامات اقتباس.
* 1 — تُحاط الأعداد الصحيحة بعلامات اقتباس.

<div id="output_format_json_quote_decimals">
  ## output\_format\_json\_quote\_decimals
</div>

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

يتحكم في إحاطة القيم العشرية بعلامات اقتباس في تنسيقات إخراج JSON.

يكون معطّلًا افتراضيًا.

<div id="output_format_json_quote_denormals">
  ## output\_format\_json\_quote\_denormals
</div>

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

يُمكّن إخراج القيم `+nan` و`-nan` و`+inf` و`-inf` في [تنسيق الإخراج JSON](/docs/ar/reference/formats/JSON/JSON).

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

* 0 — معطّل.
* 1 — مفعّل.

**مثال**

لننظر إلى الجدول التالي `account_orders`:

```text theme={null}
┌─id─┬─name───┬─duration─┬─period─┬─area─┐
│  1 │ Andrew │       20 │      0 │  400 │
│  2 │ John   │       40 │      0 │    0 │
│  3 │ Bob    │       15 │      0 │ -100 │
└────┴────────┴──────────┴────────┴──────┘
```

عندما تكون القيمة `output_format_json_quote_denormals = 0`، يُرجِع الاستعلام قيم `null` في الإخراج:

```sql theme={null}
SELECT area/period FROM account_orders FORMAT JSON;
```

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.003648093,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

عند ضبط `output_format_json_quote_denormals = 1` على 1، يُرجع الاستعلام:

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": "inf"
                },
                {
                        "divide(area, period)": "-nan"
                },
                {
                        "divide(area, period)": "-inf"
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.000070241,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

<div id="output_format_json_skip_null_value_in_named_tuples">
  ## output\_format\_json\_skip\_null\_value\_in\_named\_tuples
</div>

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

تخطّي أزواج المفتاح والقيمة ذات القيمة NULL عند تسلسل أعمدة named tuple ككائنات JSON. لا يكون هذا صالحًا إلا عندما تكون output\_format\_json\_named\_tuples\_as\_objects مضبوطة على true.

<div id="output_format_json_validate_utf8">
  ## output\_format\_json\_validate\_utf8
</div>

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

يتحكّم في التحقّق من صحة تسلسلات UTF-8 في تنسيقات إخراج JSON، ولا يؤثر في التنسيقات JSON/JSONCompact/JSONColumnsWithMetadata، فهي تتحقق دائمًا من UTF-8.

يكون معطلًا بشكل افتراضي.

<div id="output_format_markdown_escape_special_characters">
  ## output\_format\_markdown\_escape\_special\_characters
</div>

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

عند تفعيل هذا الإعداد، تُفلت الأحرف الخاصة في Markdown.

يحدّد [Common Mark](https://spec.commonmark.org/0.30/#example-12) الأحرف الخاصة التالية التي يمكن إفلاتها:

```
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
```

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

* 0 — تعطيل.
* 1 — تفعيل.

<div id="output_format_msgpack_uuid_representation">
  ## output\_format\_msgpack\_uuid\_representation
</div>

<SettingsInfoBlock type="MsgPackUUIDRepresentation" default_value="ext" />

كيفية إخراج معرّف UUID بتنسيق MsgPack.

<div id="output_format_native_encode_types_in_binary_format">
  ## output\_format\_native\_encode\_types\_in\_binary\_format
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "أُضيف إعداد جديد يتيح كتابة أسماء الأنواع بالتنسيق الثنائي في تنسيق الإخراج Native"}]}]} />

كتابة أنواع البيانات بالتنسيق الثنائي بدلًا من أسماء الأنواع في تنسيق الإخراج Native

<div id="output_format_native_use_flattened_dynamic_and_json_serialization">
  ## output\_format\_native\_use\_flattened\_dynamic\_and\_json\_serialization
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "إضافة تسلسلات Dynamic\/JSON المسطّحة إلى Native format"}]}]} />

كتابة بيانات أعمدة [JSON](/docs/ar/reference/data-types/newjson) و[Dynamic](/docs/ar/reference/data-types/dynamic) بتنسيق مسطّح (جميع الأنواع/المسارات كأعمدة فرعية منفصلة).

<div id="output_format_native_write_json_as_string">
  ## output\_format\_native\_write\_json\_as\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "إضافة إعداد جديد يتيح كتابة عمود JSON كعمود String واحد في Native format"}]}]} />

كتابة بيانات عمود [JSON](/docs/ar/reference/data-types/newjson) كعمود [String](/docs/ar/reference/data-types/string) يحتوي على سلاسل JSON، بدلًا من تسلسل JSON الأصلي الافتراضي.

<div id="output_format_orc_compression_block_size">
  ## output\_format\_orc\_compression\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="262144" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "262144"},{"label": "إعداد جديد"}]}]} />

حجم كتلة الضغط، بالبايت، لتنسيق الإخراج ORC.

<div id="output_format_orc_compression_method">
  ## output\_format\_orc\_compression\_method
</div>

<SettingsInfoBlock type="ORCCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "يدعم Parquet\/ORC\/Arrow العديد من أساليب الضغط، بما في ذلك lz4 وzstd. ويدعم ClickHouse جميع أساليب الضغط هذه. بعض الأدوات الأضعف، مثل 'duckdb'، لا تدعم أسلوب الضغط الأسرع `lz4`، ولذلك نعيّن zstd افتراضيًا."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "استخدام ضغط lz4 في تنسيق الإخراج ORC افتراضيًا"}]}]} />

طريقة الضغط لتنسيق الإخراج ORC. خوارزميات الضغط المدعومة: lz4, snappy, zlib, zstd, none (بدون ضغط)

<div id="output_format_orc_dictionary_key_size_threshold">
  ## output\_format\_orc\_dictionary\_key\_size\_threshold
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "بالنسبة إلى عمود نصي في تنسيق الإخراج ORC، إذا كان عدد القيم المميزة أكبر من هذه النسبة من إجمالي الصفوف غير NULL، فسيتم تعطيل ترميز القاموس. وإلا فسيظل ترميز القاموس مفعّلًا"}]}]} />

بالنسبة إلى عمود نصي في تنسيق الإخراج ORC، إذا كان عدد القيم المميزة أكبر من هذه النسبة من إجمالي الصفوف غير NULL، فسيتم تعطيل ترميز القاموس. وإلا فسيظل ترميز القاموس مفعّلًا

<div id="output_format_orc_row_index_stride">
  ## output\_format\_orc\_row\_index\_stride
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

قيمة stride المستهدفة لمؤشر الصفوف في تنسيق الإخراج ORC

<div id="output_format_orc_string_as_string">
  ## output\_format\_orc\_string\_as\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يتيح ClickHouse استخدام بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. أما سلاسل Parquet\/ORC\/Arrow فلا تدعم إلا UTF-8. لذلك يمكنك اختيار نوع بيانات Arrow الذي تريد استخدامه مع نوع البيانات String في ClickHouse، سواء String أو Binary. ومع أن Binary أكثر دقةً وتوافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع ORC String بدلًا من Binary للأعمدة من نوع String

<div id="output_format_orc_writer_time_zone_name">
  ## output\_format\_orc\_writer\_time\_zone\_name
</div>

<SettingsInfoBlock type="String" default_value="GMT" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "GMT"},{"label": "اسم المنطقة الزمنية لوحدة كتابة ORC، والمنطقة الزمنية الافتراضية لوحدة كتابة ORC هي GMT."}]}]} />

اسم المنطقة الزمنية لوحدة كتابة ORC، والمنطقة الزمنية الافتراضية لوحدة كتابة ORC هي GMT.

<div id="output_format_parallel_formatting">
  ## output\_format\_parallel\_formatting
</div>

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

يُفعّل أو يعطّل تنسيق صيغ البيانات بالتوازي. وهو مدعوم فقط لصيغ [TSV](/docs/ar/reference/formats/TabSeparated/TabSeparated) و[TSKV](/docs/ar/reference/formats/TabSeparated/TSKV) و[CSV](/docs/ar/reference/formats/CSV/CSV) و[JSONEachRow](/docs/ar/reference/formats/JSON/JSONEachRow).

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

* 1 — مفعّل.
* 0 — معطّل.

<div id="output_format_parquet_batch_size">
  ## output\_format\_parquet\_batch\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1024" />

تحقّق من حجم الصفحة كل هذا العدد من الصفوف. يُنصح بتقليل هذه القيمة إذا كان لديك أعمدة يتجاوز متوسط حجم القيم فيها بضعة كيلوبايتات.

<div id="output_format_parquet_bloom_filter_bits_per_value">
  ## output\_format\_parquet\_bloom\_filter\_bits\_per\_value
</div>

<SettingsInfoBlock type="Double" default_value="10.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "10.5"},{"label": "إعداد جديد."}]}]} />

العدد التقريبي للبتات التي تُستخدم لكل قيمة مميزة في مرشحات Bloom في Parquet. معدلات الإيجابيات الكاذبة المقدّرة:

* 6   بتات - 10%
* 10.5 بتات -  1%
* 16.9 بتات -  0.1%
* 26.4 بتات -  0.01%
* 41   بتًا -  0.001%

<div id="output_format_parquet_bloom_filter_flush_threshold_bytes">
  ## output\_format\_parquet\_bloom\_filter\_flush\_threshold\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "134217728"},{"label": "إعداد جديد."}]}]} />

الموضع داخل ملف Parquet الذي تُوضَع فيه مرشحات bloom. ستُكتب مرشحات bloom في مجموعات بهذا الحجم التقريبي. وعلى وجه التحديد:

* إذا كانت القيمة 0، فستُكتب مرشحات bloom الخاصة بكل مجموعة صفوف مباشرةً بعد مجموعة الصفوف،
  * إذا كانت أكبر من الحجم الإجمالي لجميع مرشحات bloom، فستُجمَّع مرشحات bloom الخاصة بجميع مجموعات الصفوف في الذاكرة، ثم تُكتب معًا بالقرب من نهاية الملف،
  * وإلا، فستُجمَّع مرشحات bloom في الذاكرة وتُكتب كلما تجاوز حجمها الإجمالي هذه القيمة.

<div id="output_format_parquet_compression_method">
  ## output\_format\_parquet\_compression\_method
</div>

<SettingsInfoBlock type="ParquetCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "يدعم Parquet\/ORC\/Arrow العديد من طرق الضغط، بما في ذلك lz4 وzstd. ويدعم ClickHouse جميع طرق الضغط هذه. بعض الأدوات الأقل كفاءة، مثل 'duckdb'، لا تدعم طريقة الضغط `lz4` الأسرع، لذلك نعيّن zstd كخيار افتراضي."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4"},{"label": "استخدام ضغط lz4 افتراضيًا في تنسيق إخراج Parquet"}]}]} />

طريقة الضغط لتنسيق إخراج Parquet. خوارزميات الضغط المدعومة: snappy وlz4 وbrotli وzstd وgzip وnone (غير مضغوط)

<div id="output_format_parquet_data_page_size">
  ## output\_format\_parquet\_data\_page\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

حجم الصفحة المستهدف، بالبايت، قبل الضغط.

<div id="output_format_parquet_date_as_uint16">
  ## output\_format\_parquet\_date\_as\_uint16
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "أُضيف إعداد توافق لمعالجة تغيير طفيف غير متوافق أُدخل سابقًا في 24.12."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "اكتب Date بصيغة Date32 بدلًا من UInt16 عادي (فهذان هما نوعا Parquet الأقرب إلى Date)."}]}]} />

اكتب قيم Date كأرقام 16-بت عادية (تُقرأ لاحقًا على أنها UInt16)، بدلًا من تحويلها إلى نوع DATE‏ في Parquet بحجم 32 بت (تُقرأ لاحقًا على أنها Date32).

<div id="output_format_parquet_datetime_as_uint32">
  ## output\_format\_parquet\_datetime\_as\_uint32
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "اكتب قيم DateTime على هيئة DateTime64(3) بدلًا من UInt32 (وهذان هما نوعا Parquet الأقرب إلى DateTime)."}]}]} />

اكتب قيم DateTime كطابع زمني Unix خام (تُقرأ مجددًا كـ UInt32)، بدلًا من تحويلها إلى ميلي ثانية (تُقرأ مجددًا كـ DateTime64(3)).

<div id="output_format_parquet_enum_as_byte_array">
  ## output\_format\_parquet\_enum\_as\_byte\_array
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "تمكين كتابة Enum كمصفوفة بايتات في Parquet افتراضيًا"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "كتابة enum باستخدام النوع الفيزيائي في Parquet: BYTE_ARRAY والنوع المنطقي: ENUM"}]}]} />

كتابة enum باستخدام النوع الفيزيائي في Parquet: BYTE\_ARRAY والنوع المنطقي: ENUM

<div id="output_format_parquet_fixed_string_as_fixed_byte_array">
  ## output\_format\_parquet\_fixed\_string\_as\_fixed\_byte\_array
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "استخدام النوع Parquet FIXED_LENGTH_BYTE_ARRAY لـ FixedString بشكل افتراضي"}]}]} />

استخدم النوع Parquet FIXED\_LEN\_BYTE\_ARRAY بدلًا من Binary لأعمدة FixedString.

<div id="output_format_parquet_geometadata">
  ## output\_format\_parquet\_geometadata
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "إعداد جديد يسمح بكتابة معلومات عن الأعمدة الجغرافية في البيانات الوصفية لـ Parquet وترميز الأعمدة بتنسيق WKB."}]}]} />

يسمح بكتابة معلومات عن الأعمدة الجغرافية في البيانات الوصفية لـ Parquet وترميز الأعمدة بتنسيق WKB.

<div id="output_format_parquet_max_dictionary_size">
  ## output\_format\_parquet\_max\_dictionary\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1048576"},{"label": "إعداد جديد"}]}]} />

إذا تجاوز حجم القاموس هذا العدد من البايتات، فسيتم التبديل إلى ترميز من دون قاموس. عيّنه على 0 لتعطيل ترميز القاموس.

<div id="output_format_parquet_parallel_encoding">
  ## output\_format\_parquet\_parallel\_encoding
</div>

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

ينفّذ ترميز Parquet باستخدام عدة خيوط تنفيذ.

<div id="output_format_parquet_row_group_size">
  ## output\_format\_parquet\_row\_group\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

الحجم المستهدف لمجموعة الصفوف، محسوبًا بعدد الصفوف.

<div id="output_format_parquet_row_group_size_bytes">
  ## output\_format\_parquet\_row\_group\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="536870912" />

الحجم المستهدف لمجموعة الصفوف، بالبايت، قبل الضغط.

<div id="output_format_parquet_string_as_string">
  ## output\_format\_parquet\_string\_as\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "يتيح ClickHouse استخدام بيانات ثنائية عشوائية في نوع البيانات String، والذي يكون عادةً بترميز UTF-8. أما Strings في Parquet\/ORC\/Arrow فلا تدعم إلا UTF-8. لذلك يمكنك اختيار نوع بيانات Arrow الذي سيُستخدم مع نوع البيانات String في ClickHouse، سواءً String أو Binary. ورغم أن Binary أدق وأكثر توافقًا، فإن استخدام String افتراضيًا يتوافق مع توقعات المستخدمين في معظم الحالات."}]}]} />

استخدم نوع Parquet String بدلًا من Binary لأعمدة String.

<div id="output_format_parquet_write_bloom_filter">
  ## output\_format\_parquet\_write\_bloom\_filter
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "تمت إضافة دعم لكتابة مرشحات bloom في ملفات Parquet."}]}]} />

كتابة مرشحات bloom في ملفات Parquet.

<div id="output_format_parquet_write_checksums">
  ## output\_format\_parquet\_write\_checksums
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

أضف قيم التحقق crc32 إلى ترويسات صفحات Parquet.

<div id="output_format_parquet_write_page_index">
  ## output\_format\_parquet\_write\_page\_index
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "إضافة إمكانية كتابة فهرس الصفحات في ملفات Parquet."}]}]} />

يكتب فهرس الأعمدة وفهرس الإزاحة (أي الإحصاءات الخاصة بكل صفحة بيانات، والتي يمكن استخدامها لدفع عوامل التصفية عند القراءة) في ملفات Parquet.

<div id="output_format_pretty_color">
  ## output\_format\_pretty\_color
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "auto"},{"label": "تم تغيير الإعداد للسماح أيضًا بالقيمة auto، مع تعطيل تسلسلات الهروب ANSI إذا لم يكن الإخراج على طرفية tty"}]}]} />

استخدم تسلسلات الهروب ANSI في تنسيقات Pretty. 0 - معطّل، 1 - مفعّل، و'auto' - مفعّل إذا كان الإخراج على طرفية.

<div id="output_format_pretty_display_footer_column_names">
  ## output\_format\_pretty\_display\_footer\_column\_names
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "إضافة إعداد لعرض أسماء الأعمدة في التذييل عند وجود عدد كبير من الصفوف. وتتحكم القيمة الحدية في ذلك عبر output_format_pretty_display_footer_column_names_min_rows."}]}]} />

يعرض أسماء الأعمدة في التذييل عند وجود عدد كبير من صفوف الجدول.

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

* 0 — لا تُعرض أسماء الأعمدة في التذييل.
* 1 — تُعرض أسماء الأعمدة في التذييل إذا كان عدد الصفوف أكبر من أو يساوي القيمة الحدية المحددة بواسطة [output\_format\_pretty\_display\_footer\_column\_names\_min\_rows](/docs/ar/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names_min_rows) (50 افتراضيًا).

**مثال**

الاستعلام:

```sql theme={null}
SELECT *, toTypeName(*) FROM (SELECT * FROM system.numbers LIMIT 1000);
```

النتيجة:

```response theme={null}
      ┌─number─┬─toTypeName(number)─┐
   1. │      0 │ UInt64             │
   2. │      1 │ UInt64             │
   3. │      2 │ UInt64             │
   ...
 999. │    998 │ UInt64             │
1000. │    999 │ UInt64             │
      └─number─┴─toTypeName(number)─┘
```

<div id="output_format_pretty_display_footer_column_names_min_rows">
  ## output\_format\_pretty\_display\_footer\_column\_names\_min\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "50"},{"label": "إضافة إعداد للتحكم في قيمة العتبة للإعداد output_format_pretty_display_footer_column_names_min_rows. القيمة الافتراضية هي 50."}]}]} />

يحدِّد الحد الأدنى لعدد الصفوف الذي عنده يُعرَض تذييل يتضمن أسماء الأعمدة إذا كان الإعداد [output\_format\_pretty\_display\_footer\_column\_names](/docs/ar/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names) مفعّلًا.

<div id="output_format_pretty_fallback_to_vertical">
  ## output\_format\_pretty\_fallback\_to\_vertical
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

إذا كان هذا الإعداد مفعّلًا وكان الجدول عريضًا لكنه قصير، فسيعرض تنسيق Pretty الجدول بالطريقة نفسها التي يعرضه بها تنسيق Vertical.
راجع `output_format_pretty_fallback_to_vertical_max_rows_per_chunk` و `output_format_pretty_fallback_to_vertical_min_table_width` لضبط هذا السلوك بمزيد من التفصيل.

<div id="output_format_pretty_fallback_to_vertical_max_rows_per_chunk">
  ## output\_format\_pretty\_fallback\_to\_vertical\_max\_rows\_per\_chunk
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "100"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان عدد الصفوف في الجزء لا يتجاوز القيمة المحددة.

<div id="output_format_pretty_fallback_to_vertical_min_columns">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_columns
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "5"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان عدد الأعمدة أكبر من القيمة المحددة.

<div id="output_format_pretty_fallback_to_vertical_min_table_width">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_table\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "250"},{"label": "إعداد جديد"}]}]} />

لن يُفعَّل الرجوع إلى تنسيق Vertical (راجع `output_format_pretty_fallback_to_vertical`) إلا إذا كان مجموع أطوال الأعمدة في الجدول يساوي القيمة المحددة على الأقل، أو إذا كانت إحدى القيم تحتوي على محرف سطر جديد.

<div id="output_format_pretty_glue_chunks">
  ## output\_format\_pretty\_glue\_chunks
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "إعداد جديد لجعل تنسيقات Pretty أكثر جمالًا."}]}]} />

إذا وصلت البيانات المعروضة بتنسيقات Pretty على عدة أجزاء، حتى مع وجود تأخير، وكان الجزء التالي يستخدم عروض الأعمدة نفسها كالجزء السابق، فاستخدم تسلسلات الهروب ANSI للعودة إلى السطر السابق والكتابة فوق تذييل الجزء السابق لمتابعته ببيانات الجزء الجديد. وهذا يجعل النتيجة أكثر إرضاءً بصريًا.

0 - معطّل، 1 - مفعّل، 'auto' - مفعّل إذا كانت الجلسة في طرفية.

<div id="output_format_pretty_grid_charset">
  ## output\_format\_pretty\_grid\_charset
</div>

<SettingsInfoBlock type="String" default_value="UTF-8" />

مجموعة المحارف المستخدمة في طباعة حدود الشبكة. مجموعات المحارف المتاحة: ASCII وUTF-8 (الافتراضي).

في interactive mode، ينتقل `clickhouse-client` تلقائيًا إلى `ASCII` عندما لا تدعم الوحدة الطرفية UTF-8 (كما يتحدد ذلك من خلال متغيرات البيئة `LC_ALL` و`LC_CTYPE` و`LANG`)، ما لم يُحدَّد هذا الإعداد صراحةً.

<div id="output_format_pretty_highlight_digit_groups">
  ## output\_format\_pretty\_highlight\_digit\_groups
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "إذا كان مفعّلًا وكان الإخراج يُعرض في طرفية، فستُميَّز كل منزلة رقمية تمثل الآلاف والملايين وما إلى ذلك بوضع خط أسفلها."}]}]} />

إذا كان مفعّلًا وكان الإخراج يُعرض في طرفية، فستُميَّز كل منزلة رقمية تمثل الآلاف والملايين وما إلى ذلك بوضع خط أسفلها.

<div id="output_format_pretty_highlight_trailing_spaces">
  ## output\_format\_pretty\_highlight\_trailing\_spaces
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد."}]}]} />

إذا كان هذا الخيار مُمكّنًا وكان الإخراج يُعرض في طرفية، فستُميَّز المسافات اللاحقة باللون الرمادي مع تسطيرها.

<div id="output_format_pretty_max_column_name_width_cut_to">
  ## output\_format\_pretty\_max\_column\_name\_width\_cut\_to
</div>

<SettingsInfoBlock type="UInt64" default_value="24" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "24"},{"label": "إعداد جديد"}]}]} />

إذا كان اسم العمود طويلًا جدًا، فسيُقصّ إلى هذا الطول.
سيُقصّ العمود إذا كان أطول من `output_format_pretty_max_column_name_width_cut_to` مضافًا إليه `output_format_pretty_max_column_name_width_min_chars_to_cut`.

<div id="output_format_pretty_max_column_name_width_min_chars_to_cut">
  ## output\_format\_pretty\_max\_column\_name\_width\_min\_chars\_to\_cut
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "4"},{"label": "إعداد جديد"}]}]} />

الحد الأدنى لعدد الأحرف التي يجب قصّها إذا كان اسم العمود طويلًا جدًا.
سيُقصّ اسم العمود إذا كان أطول من `output_format_pretty_max_column_name_width_cut_to` مضافًا إليه `output_format_pretty_max_column_name_width_min_chars_to_cut`.

<div id="output_format_pretty_max_column_pad_width">
  ## output\_format\_pretty\_max\_column\_pad\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

الحد الأقصى لعرض الحشو لجميع القيم في عمود ضمن تنسيقات Pretty.

<div id="output_format_pretty_max_rows">
  ## output\_format\_pretty\_max\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1000"},{"label": "هذا أفضل من ناحية سهولة الاستخدام، إذ يقلّل مقدار التمرير."}]}]} />

الحد الأقصى للصفوف لتنسيقات Pretty.

<div id="output_format_pretty_max_value_width">
  ## output\_format\_pretty\_max\_value\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

الحد الأقصى لعرض القيمة المراد إظهارها في تنسيقات Pretty. وإذا زاد العرض على ذلك، فسيتم اقتطاعها.
وتعني القيمة 0 - عدم الاقتطاع مطلقًا.

<div id="output_format_pretty_max_value_width_apply_for_single_value">
  ## output\_format\_pretty\_max\_value\_width\_apply\_for\_single\_value
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "لن تُقتطع القيم المفردة في Pretty formats."}]}]} />

اقتطع القيم فقط (راجع الإعداد `output_format_pretty_max_value_width`) عندما لا تكون قيمة مفردة ضمن block. وإلا فأخرجها كاملةً، وهذا مفيد للاستعلام `SHOW CREATE TABLE`.

<div id="output_format_pretty_multiline_fields">
  ## output\_format\_pretty\_multiline\_fields
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "إعداد جديد"}]}]} />

إذا كان هذا الخيار مُمكّنًا، فستعرض تنسيقات Pretty الحقول متعددة الأسطر داخل خلية الجدول، بحيث يبقى شكل الجدول محفوظًا.
أما إذا لم يكن مُمكّنًا، فستُعرض كما هي، مما قد يؤدي إلى تشوّه الجدول (ومن مزايا إبقائه معطّلًا أن نسخ القيم متعددة الأسطر ولصقها سيكون أسهل).

<div id="output_format_pretty_named_tuples_as_json">
  ## output\_format\_pretty\_named\_tuples\_as\_json
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "إعداد جديد للتحكم في ما إذا كانت الـ Tuples المُسمّاة في Pretty format تُنتَج ككائنات JSON"}]}]} />

يحدد ما إذا كانت الـ Tuples المُسمّاة في Pretty format تُنتَج ككائنات JSON منسّقة.

<div id="output_format_pretty_row_numbers">
  ## output\_format\_pretty\_row\_numbers
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "هذا أفضل من حيث سهولة الاستخدام."}]}]} />

أضف أرقام الصفوف قبل كل صف في تنسيق الإخراج Pretty

<div id="output_format_pretty_single_large_number_tip_threshold">
  ## output\_format\_pretty\_single\_large\_number\_tip\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1000000"},{"label": "اعرض تلميحًا رقميًا سهل القراءة على الجانب الأيمن من الجدول إذا كانت الكتلة تتكوّن من رقم واحد يتجاوز هذه القيمة (باستثناء 0)"}]}]} />

اعرض تلميحًا رقميًا سهل القراءة على الجانب الأيمن من الجدول إذا كانت الكتلة تتكوّن من رقم واحد يتجاوز هذه القيمة (باستثناء 0)

<div id="output_format_pretty_squash_consecutive_ms">
  ## output\_format\_pretty\_squash\_consecutive\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "50"},{"label": "إضافة إعداد جديد"}]}]} />

انتظر الكتلة التالية لمدة تصل إلى عدد المللي ثانية المحدد، ثم ادمجها مع الكتلة السابقة قبل الكتابة.
يؤدي ذلك إلى تجنب الإخراج المتكرر لكتل صغيرة جدًا، مع الحفاظ في الوقت نفسه على عرض البيانات بأسلوب التدفق.

<div id="output_format_pretty_squash_max_wait_ms">
  ## output\_format\_pretty\_squash\_max\_wait\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "إضافة إعداد جديد"}]}]} />

أخرج الكتلة المعلّقة بتنسيقات Pretty إذا انقضى منذ آخر إخراج أكثر من العدد المحدد من المللي ثانية.

<div id="output_format_pretty_use_nbsp_for_padding">
  ## output\_format\_pretty\_use\_nbsp\_for\_padding
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "إعداد جديد. عند تمكينه، يُستخدَم `U+00A0` لعرض الحشو في تنسيق الإخراج `Pretty`، بحيث يبقى محفوظًا عند النسخ واللصق عبر الأدوات التي تضغط تتابعات المسافات العادية."}]}]} />

عند تمكينه، يُعرَض الحشو في تنسيقات الإخراج `Pretty` باستخدام `U+00A0` بدلًا من مسافة ASCII.
يبقى الإخراج متماثلًا بصريًا عند استخدام خط أحادي المسافة، لكن الحشو يظل محفوظًا عند المرور عبر الأدوات التي تضغط أو تقتطع تتابعات المسافات العادية.
لا يسري هذا إلا عندما تكون قيمة `output_format_pretty_grid_charset` هي `UTF-8`.

<div id="output_format_protobuf_nullables_with_google_wrappers">
  ## output\_format\_protobuf\_nullables\_with\_google\_wrappers
</div>

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

عند إجراء التسلسل لأعمدة Nullable باستخدام مغلفات Google، تُسلسَل القيم الافتراضية على شكل مغلفات فارغة. وإذا كان هذا الخيار معطّلًا، فلن تُسلسَل القيم الافتراضية ولا قيم NULL

<div id="output_format_schema">
  ## output\_format\_schema
</div>

مسار الملف الذي سيُحفَظ فيه المخطط الذي يُنشأ تلقائيًا بتنسيقَي [Cap'n Proto](/docs/ar/reference/formats/CapnProto) أو [Protobuf](/docs/ar/reference/formats/Protobuf/Protobuf).

<div id="output_format_sql_insert_include_column_names">
  ## output\_format\_sql\_insert\_include\_column\_names
</div>

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

تضمين أسماء الأعمدة في استعلام INSERT

<div id="output_format_sql_insert_max_batch_size">
  ## output\_format\_sql\_insert\_max\_batch\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="65409" />

الحد الأقصى لعدد الصفوف في تعليمة INSERT واحدة.

<div id="output_format_sql_insert_quote_names">
  ## output\_format\_sql\_insert\_quote\_names
</div>

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

ضع أسماء الأعمدة بين محرفي '\`'

<div id="output_format_sql_insert_table_name">
  ## output\_format\_sql\_insert\_table\_name
</div>

<SettingsInfoBlock type="String" default_value="table" />

اسم الجدول في استعلام INSERT الناتج

<div id="output_format_sql_insert_use_replace">
  ## output\_format\_sql\_insert\_use\_replace
</div>

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

استخدم عبارة REPLACE بدلًا من عبارة INSERT

<div id="output_format_trim_fixed_string">
  ## output\_format\_trim\_fixed\_string
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "إعداد جديد لحذف بايتات الصفر اللاحقة من قيم FixedString في تنسيقات الإخراج النصية"}]}]} />

يحذف بايتات الصفر اللاحقة من قيم FixedString في تنسيقات الإخراج النصية. على سبيل المثال، تُطبع `toFixedString('John', 8)` بالشكل `John` بدلًا من `John\0\0\0\0`.

<div id="output_format_tsv_crlf_end_of_line">
  ## output\_format\_tsv\_crlf\_end\_of\_line
</div>

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

إذا ضُبط هذا الإعداد على true، فستكون نهاية السطر في تنسيق TSV هي \r\n بدلًا من \n.

<div id="output_format_values_escape_quote_with_quote">
  ## output\_format\_values\_escape\_quote\_with\_quote
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "إذا كانت القيمة true، فيُفلت الرمز ' باستخدام ''، وإلا فيُقتبس باستخدام \\'"}]}]} />

إذا كانت القيمة true، فيُفلت الرمز ' باستخدام ''، وإلا فيُقتبس باستخدام \\'

<div id="output_format_write_statistics">
  ## output\_format\_write\_statistics
</div>

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

كتابة إحصاءات عن الصفوف المقروءة، والبايتات، والوقت المنقضي في تنسيقات الإخراج المناسبة.

مفعّل افتراضيًا
