Make name column immutable for kms workers. (#2190)
errcode 23601 is the error code used by the immutable_column() function.
This commit is contained in:
1 file changed
+19
@@ -107,6 +107,25 @@ create trigger worker_update_time_column before update on server_worker
|
||||
create trigger update_version_column after update of version, description, name on server_worker
|
||||
for each row execute procedure update_version_column();
|
||||
|
||||
create function immutable_kms_name()
|
||||
returns trigger
|
||||
as $$
|
||||
begin
|
||||
if old.type = 'kms' and new.name is distinct from old.name then
|
||||
raise exception 'immutable column for kms worker: server_worker.name' using
|
||||
errcode = '23601',
|
||||
schema = tg_table_schema,
|
||||
table = tg_table_name,
|
||||
column = 'name';
|
||||
end if;
|
||||
end;
|
||||
$$ language plpgsql;
|
||||
comment on function immutable_kms_name is
|
||||
'function used in before update triggers to make name column immutable for kms workers';
|
||||
|
||||
create trigger immutable_kms_name before update on server_worker
|
||||
for each row execute procedure immutable_kms_name();
|
||||
|
||||
create function update_kms_server_worker_update_last_status_time_column()
|
||||
returns trigger
|
||||
as $$
|
||||
|
||||
Reference in new issue
Block a user