From 8ba4eac7619bc8eee650648c433ddb197ac4f51b Mon Sep 17 00:00:00 2001
From: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
Date: Thu, 17 Apr 2025 17:01:23 +0200
Subject: [PATCH] Update format, server and mergetree settings
---
scripts/settings/format-settings.sql | 14 +++--
scripts/settings/global-server-settings.sql | 3 +-
scripts/settings/mergetree-settings.sql | 64 +++++++++++++++++----
3 files changed, 66 insertions(+), 15 deletions(-)
diff --git a/scripts/settings/format-settings.sql b/scripts/settings/format-settings.sql
index 57fdf62be91..181652b855d 100644
--- a/scripts/settings/format-settings.sql
+++ b/scripts/settings/format-settings.sql
@@ -8,8 +8,12 @@ WITH
),
main_content AS
(
- SELECT format('## {} {} {} \n\n|Type|Default|\n|---|---|\n|`{}`|`{}`|\n\n{}\n\n',
- name, '{#'||name||'}', multiIf(tier == 'Experimental', '', tier == 'Beta', '', ''), type, default, trim(BOTH '\\n' FROM description))
+ SELECT format('## {} {} {} \n\n{}\n\n{}\n\n',
+ name,
+ '{#'||name||'}',
+ multiIf(tier == 'Experimental', '', tier == 'Beta', '', ''),
+ if(type != '' AND default != '', format('', type, default), ''),
+ trim(BOTH '\\n' FROM description))
FROM system.settings WHERE name IN settings_from_cpp
ORDER BY name
),
@@ -22,8 +26,10 @@ toc_max_heading_level: 2
description: ''Settings which control input and output formats.''
---
-import ExperimentalBadge from \'@theme/badges/ExperimentalBadge\';
-import BetaBadge from \'@theme/badges/BetaBadge\';
+import ExperimentalBadge from ''@theme/badges/ExperimentalBadge'';
+import BetaBadge from ''@theme/badges/BetaBadge'';
+import SettingsInfoBlock from ''@theme/SettingsInfoBlock/SettingsInfoBlock'';
+import VersionHistory from ''@theme/VersionHistory/VersionHistory'';
These settings are autogenerated from [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).
diff --git a/scripts/settings/global-server-settings.sql b/scripts/settings/global-server-settings.sql
index 200e831a331..0e9b57d6aaf 100644
--- a/scripts/settings/global-server-settings.sql
+++ b/scripts/settings/global-server-settings.sql
@@ -39,7 +39,7 @@ WITH
'## {}{}{}{}\n\n',
name,
lcase(' {#'|| name ||'} \n\n'),
- if(type != '' AND default != '', format('|Type|Default|\n|---|---|\n|`{}`|`{}`|\n\n',type, default), ''),
+ if(type != '' AND default != '', format('', type, default), ''),
description
) AS formatted_text
FROM combined_server_settings
@@ -58,6 +58,7 @@ title: ''Server Settings''
import Tabs from ''@theme/Tabs'';
import TabItem from ''@theme/TabItem'';
import SystemLogParameters from ''@site/docs/operations/server-configuration-parameters/_snippets/_system-log-parameters.md''
+import SettingsInfoBlock from ''@theme/SettingsInfoBlock/SettingsInfoBlock'';
# Server Settings
diff --git a/scripts/settings/mergetree-settings.sql b/scripts/settings/mergetree-settings.sql
index a57e509d56b..21d859291f1 100644
--- a/scripts/settings/mergetree-settings.sql
+++ b/scripts/settings/mergetree-settings.sql
@@ -1,15 +1,59 @@
WITH
- merge_tree_settings AS
+ settings_changes AS
+ (
+ SELECT
+ setting_name AS name,
+ '[' ||
+ arrayStringConcat(
+ arrayMap(
+ (i, x) -> '{' ||
+ '"id": "row-' || toString(i) || '",' ||
+ '"items": [' ||
+ '{"label": "' || toString(x.1) || '"},' ||
+ '{"label": "' || toString(x.2) || '"},' ||
+ '{"label": "' || replaceRegexpAll(x.3, '([\\"])', '\\\\$1') || '"}' ||
+ ']' ||
+ '}',
+ arrayEnumerate(groupArray((version, default_value, comment))),
+ groupArray((version, default_value, comment))
+ ),
+ ', '
+ ) ||
+ ']' AS rows
+ FROM
(
- SELECT format(
- '## {} {} \n{}\n{}{}',
- name,
- '{#'||name||'}',
- multiIf(tier == 'Experimental', '\n\n', tier == 'Beta', '\n\n', ''),
- if(type != '' AND default != '', format('|Type|Default|\n|---|---|\n|`{}`|`{}`|\n\n',type, default), ''),
- replaceRegexpAll(description, '(?m)(^[ \t]+|[ \t]+$)', '')
- )
- FROM system.merge_tree_settings ORDER BY name
+ SELECT
+ (arrayJoin(changes) AS change).1 AS setting_name,
+ version,
+ change.3 AS default_value,
+ change.4 AS comment
+ FROM system.settings_changes
+ WHERE type = 'MergeTree'
+ ORDER BY setting_name, version DESC
+ )
+ GROUP BY setting_name
+ ),
+ combined_changes_and_merge_tree_settings AS
+ (
+ SELECT
+ a.*,
+ b.*
+ FROM system.merge_tree_settings AS a
+ INNER JOIN settings_changes as b
+ ON a.name = b.name
+ ),
+ merge_tree_settings AS
+ (
+ SELECT format(
+ '## {} {} \n{}{}\n{}{}',
+ name,
+ '{#'||name||'}',
+ multiIf(tier == 'Experimental', '\n\n', tier == 'Beta', '\n\n', ''),
+ if(type != '' AND default != '', format('', type, default), ''),
+ if(rows != '', printf('\n\n', rows), ''),
+ replaceRegexpAll(description, '(?m)(^[ \t]+|[ \t]+$)', '')
)
+ FROM combined_changes_and_merge_tree_settings ORDER BY name
+ )
SELECT * FROM merge_tree_settings
INTO OUTFILE 'generated_merge_tree_settings.md' TRUNCATE FORMAT LineAsString