Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions __fixtures__/plpgsql-pretty/trigger-function.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
CREATE FUNCTION trigger_with_special_vars() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF TG_OP = 'INSERT' THEN
NEW.created_at := now();
RETURN NEW;
ELSIF TG_OP = 'UPDATE' THEN
IF OLD.id IS DISTINCT FROM NEW.id THEN
RAISE EXCEPTION 'IMMUTABLE_FIELD';
END IF;
NEW.updated_at := now();
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
RETURN OLD;
END IF;
IF NOT FOUND THEN
RAISE EXCEPTION 'NOT_FOUND';
END IF;
RETURN NEW;
END;
$$
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,27 @@ exports[`lowercase: simple-function.sql 1`] = `
end"
`;

exports[`lowercase: trigger-function.sql 1`] = `
"begin
if TG_OP = 'INSERT' then
NEW.created_at := now();
return NEW;
elsif TG_OP = 'UPDATE' then
if OLD.id IS DISTINCT FROM NEW.id then
raise exception 'IMMUTABLE_FIELD';
end if;
NEW.updated_at := now();
return NEW;
elsif TG_OP = 'DELETE' then
return OLD;
end if;
if NOT FOUND then
raise exception 'NOT_FOUND';
end if;
return NEW;
end"
`;

exports[`uppercase: big-function.sql 1`] = `
"DECLARE
v_orders_scanned int := 0;
Expand Down Expand Up @@ -415,3 +436,24 @@ exports[`uppercase: simple-function.sql 1`] = `
RETURN a + b;
END"
`;

exports[`uppercase: trigger-function.sql 1`] = `
"BEGIN
IF TG_OP = 'INSERT' THEN
NEW.created_at := now();
RETURN NEW;
ELSIF TG_OP = 'UPDATE' THEN
IF OLD.id IS DISTINCT FROM NEW.id THEN
RAISE EXCEPTION 'IMMUTABLE_FIELD';
END IF;
NEW.updated_at := now();
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
RETURN OLD;
END IF;
IF NOT FOUND THEN
RAISE EXCEPTION 'NOT_FOUND';
END IF;
RETURN NEW;
END"
`;
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const prettyTest = new PlpgsqlPrettyTest([
'simple-function.sql',
'if-else-function.sql',
'loop-function.sql',
'trigger-function.sql',
]);

prettyTest.generateTests();