diff --git a/programs/server/Server.cpp b/programs/server/Server.cpp
index 188dd2c019d..bb23e10770e 100644
--- a/programs/server/Server.cpp
+++ b/programs/server/Server.cpp
@@ -628,7 +628,8 @@ void loadStartupScripts(const Poco::Util::AbstractConfiguration & config, Contex
auto condition_write_buffer = WriteBufferFromOwnString();
LOG_DEBUG(log, "Checking startup query condition `{}`", condition);
- executeQuery(condition_read_buffer, condition_write_buffer, true, context, callback, QueryFlags{ .internal = true }, std::nullopt, {});
+ auto startup_context = Context::createCopy(context);
+ executeQuery(condition_read_buffer, condition_write_buffer, true, startup_context, callback, QueryFlags{ .internal = true }, std::nullopt, {});
auto result = condition_write_buffer.str();
@@ -648,7 +649,8 @@ void loadStartupScripts(const Poco::Util::AbstractConfiguration & config, Contex
auto write_buffer = WriteBufferFromOwnString();
LOG_DEBUG(log, "Executing query `{}`", query);
- executeQuery(read_buffer, write_buffer, true, context, callback, QueryFlags{ .internal = true }, std::nullopt, {});
+ auto startup_context = Context::createCopy(context);
+ executeQuery(read_buffer, write_buffer, true, startup_context, callback, QueryFlags{ .internal = true }, std::nullopt, {});
}
}
catch (...)
diff --git a/tests/integration/test_startup_scripts/configs/config.d/startup_scripts.xml b/tests/integration/test_startup_scripts/configs/config.d/startup_scripts.xml
index e8a711a926a..21d2865efe8 100644
--- a/tests/integration/test_startup_scripts/configs/config.d/startup_scripts.xml
+++ b/tests/integration/test_startup_scripts/configs/config.d/startup_scripts.xml
@@ -13,5 +13,13 @@
SELECT * FROM system.query_log LIMIT 1
+
+ SELECT 1 SETTINGS skip_unavailable_shards = 1
+ SELECT 1;
+
+
+ SELECT 1 SETTINGS skip_unavailable_shards = 1
+ SELECT 1;
+
diff --git a/tests/integration/test_startup_scripts/test.py b/tests/integration/test_startup_scripts/test.py
index 43a871a6fc5..ee1b34bcf24 100644
--- a/tests/integration/test_startup_scripts/test.py
+++ b/tests/integration/test_startup_scripts/test.py
@@ -16,6 +16,7 @@ def test_startup_scripts():
try:
cluster.start()
assert node.query("SHOW TABLES") == "TestTable\n"
+ assert node.query("SELECT value, changed FROM system.settings WHERE name = 'skip_unavailable_shards'") == "0\t0\n"
finally:
cluster.shutdown()