2023-04-09 01:25:38 +00:00
|
|
|
DROP TABLE IF EXISTS test;
|
|
|
|
|
|
|
|
-- You can create a table with the {server_uuid} substituted.
|
2023-04-09 19:26:49 +00:00
|
|
|
CREATE TABLE test (x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test', 'replica-{server_uuid}') ORDER BY x;
|
2023-04-09 01:25:38 +00:00
|
|
|
|
|
|
|
-- The server UUID is correctly substituted.
|
|
|
|
SELECT engine_full LIKE ('%replica-' || serverUUID()::String || '%') FROM system.tables WHERE database = currentDatabase() AND name = 'test';
|
|
|
|
|
|
|
|
-- An attempt to create a second table with the same UUID results in error.
|
2023-04-09 19:26:49 +00:00
|
|
|
CREATE TABLE test2 (x UInt8) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/test', 'replica-{server_uuid}') ORDER BY x; -- { serverError REPLICA_ALREADY_EXISTS }
|
2023-04-09 01:25:38 +00:00
|
|
|
|
|
|
|
-- The macro {server_uuid} is special, not a configuration-type macro. It's normal that it is inaccessible with the getMacro function.
|
|
|
|
SELECT getMacro('server_uuid'); -- { serverError NO_ELEMENTS_IN_CONFIG }
|
|
|
|
|
|
|
|
DROP TABLE test NO DELAY;
|