Fix context for startup scripts

This commit is contained in:
Antonio Andelic 2024-10-03 13:17:38 +02:00
parent 8236c9049d
commit 5d94818503
3 changed files with 13 additions and 2 deletions

View File

@ -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 (...)

View File

@ -13,5 +13,13 @@
<scripts>
<query>SELECT * FROM system.query_log LIMIT 1</query>
</scripts>
<scripts>
<query>SELECT 1 SETTINGS skip_unavailable_shards = 1</query>
<condition>SELECT 1;</condition>
</scripts>
<scripts>
<query>SELECT 1 SETTINGS skip_unavailable_shards = 1</query>
<condition>SELECT 1;</condition>
</scripts>
</startup_scripts>
</clickhouse>

View File

@ -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()