37 lines
864 B
PL/PgSQL
37 lines
864 B
PL/PgSQL
drop function if exists get_title;
|
|
|
|
create function get_title() returns text as
|
|
$$
|
|
select value from title as result;
|
|
$$
|
|
language sql;
|
|
|
|
|
|
drop function if exists set_title;
|
|
|
|
create function set_title(new_value text) returns json as
|
|
$$
|
|
declare
|
|
old_value text;
|
|
|
|
redo_sql text;
|
|
undo_sql text;
|
|
redo_cs json;
|
|
undo_cs json;
|
|
|
|
begin
|
|
select value into old_value from title;
|
|
|
|
redo_sql = format('update title set value = ''%s''', new_value);
|
|
undo_sql = format('update title set value = ''%s''', old_value);
|
|
redo_cs = format('{"operation": "update", "type": "title", "value": "%s" }', new_value)::json;
|
|
undo_cs = format('{"operation": "update", "type": "title", "value": "%s" }', old_value)::json;
|
|
execute add_operation(redo_sql, undo_sql, redo_cs, undo_cs);
|
|
|
|
execute redo_sql;
|
|
|
|
return redo_cs;
|
|
|
|
end;
|
|
$$
|
|
language plpgsql; |