From 3cfbd44f45098853cb8419bf61059f80c62466fd Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Tue, 28 Mar 2023 00:04:59 +0900 Subject: Add update_timestamp to common schema. --- deploy/update_timestamp.sql | 8 ++++++++ deploy/update_timestamp@v1.0.0-alpha.2.sql | 13 +++++++++++++ revert/update_timestamp.sql | 11 +++++++++-- revert/update_timestamp@v1.0.0-alpha.2.sql | 7 +++++++ sqitch.plan | 1 + verify/update_timestamp.sql | 1 + verify/update_timestamp@v1.0.0-alpha.2.sql | 7 +++++++ 7 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 deploy/update_timestamp@v1.0.0-alpha.2.sql create mode 100644 revert/update_timestamp@v1.0.0-alpha.2.sql create mode 100644 verify/update_timestamp@v1.0.0-alpha.2.sql diff --git a/deploy/update_timestamp.sql b/deploy/update_timestamp.sql index c84ca69..eac2a44 100644 --- a/deploy/update_timestamp.sql +++ b/deploy/update_timestamp.sql @@ -3,6 +3,13 @@ BEGIN; +CREATE OR REPLACE FUNCTION common.update_timestamp() RETURNS TRIGGER AS $$ + BEGIN + NEW.updated_at = NOW(); + RETURN NEW; + END; +$$ LANGUAGE plpgsql; + CREATE OR REPLACE FUNCTION kakeibo.update_timestamp() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); @@ -10,4 +17,5 @@ CREATE OR REPLACE FUNCTION kakeibo.update_timestamp() RETURNS TRIGGER AS $$ END; $$ LANGUAGE plpgsql; + COMMIT; diff --git a/deploy/update_timestamp@v1.0.0-alpha.2.sql b/deploy/update_timestamp@v1.0.0-alpha.2.sql new file mode 100644 index 0000000..c84ca69 --- /dev/null +++ b/deploy/update_timestamp@v1.0.0-alpha.2.sql @@ -0,0 +1,13 @@ +-- Deploy kakeibo:update_timestamp to pg +-- requires: schema + +BEGIN; + +CREATE OR REPLACE FUNCTION kakeibo.update_timestamp() RETURNS TRIGGER AS $$ + BEGIN + NEW.updated_at = NOW(); + RETURN NEW; + END; +$$ LANGUAGE plpgsql; + +COMMIT; diff --git a/revert/update_timestamp.sql b/revert/update_timestamp.sql index 07074ac..30f9c6d 100644 --- a/revert/update_timestamp.sql +++ b/revert/update_timestamp.sql @@ -1,7 +1,14 @@ --- Revert kakeibo:update_timestamp from pg +-- Deploy kakeibo:update_timestamp to pg +-- requires: schema BEGIN; -DROP FUNCTION kakeibo.update_timestamp; +DROP FUNCTION common.update_timestamp(); +CREATE OR REPLACE FUNCTION kakeibo.update_timestamp() RETURNS TRIGGER AS $$ + BEGIN + NEW.updated_at = NOW(); + RETURN NEW; + END; +$$ LANGUAGE plpgsql; COMMIT; diff --git a/revert/update_timestamp@v1.0.0-alpha.2.sql b/revert/update_timestamp@v1.0.0-alpha.2.sql new file mode 100644 index 0000000..07074ac --- /dev/null +++ b/revert/update_timestamp@v1.0.0-alpha.2.sql @@ -0,0 +1,7 @@ +-- Revert kakeibo:update_timestamp from pg + +BEGIN; + +DROP FUNCTION kakeibo.update_timestamp; + +COMMIT; diff --git a/sqitch.plan b/sqitch.plan index bd62574..1bd6098 100644 --- a/sqitch.plan +++ b/sqitch.plan @@ -19,3 +19,4 @@ transaction_types [kakeibo] 2023-03-12T15:20:07Z Masaya Tojo articles_update_timestamp [articles update_timestamp] 2023-03-12T15:38:43Z Masaya Tojo # Add update_timestamp trigger to articles table. transactions [transactions@v1.0.0-alpha.2 articles] 2023-03-12T15:42:06Z Masaya Tojo # Add foreign key constraint to transactions table referencing types table. common 2023-03-27T15:01:06Z Masaya Tojo # Add common schema. +update_timestamp [update_timestamp@v1.0.0-alpha.2] 2023-03-27T15:03:00Z Masaya Tojo # Add update_timestamp to common schema. diff --git a/verify/update_timestamp.sql b/verify/update_timestamp.sql index e3d8025..0149615 100644 --- a/verify/update_timestamp.sql +++ b/verify/update_timestamp.sql @@ -2,6 +2,7 @@ BEGIN; +SELECT has_function_privilege('common.update_timestamp()', 'EXECUTE'); SELECT has_function_privilege('kakeibo.update_timestamp()', 'EXECUTE'); ROLLBACK; diff --git a/verify/update_timestamp@v1.0.0-alpha.2.sql b/verify/update_timestamp@v1.0.0-alpha.2.sql new file mode 100644 index 0000000..e3d8025 --- /dev/null +++ b/verify/update_timestamp@v1.0.0-alpha.2.sql @@ -0,0 +1,7 @@ +-- Verify kakeibo:update_timestamp on pg + +BEGIN; + +SELECT has_function_privilege('kakeibo.update_timestamp()', 'EXECUTE'); + +ROLLBACK; -- cgit v1.2.3