aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2023-02-28 21:00:18 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2023-03-02 09:22:36 +0900
commit343155aab78c28d6d09bea75671b390aec9599f6 (patch)
treece21628e140de64ee748734df1ae081dbd1b002c
parent8102191eb96a7f5a7cd2baf2711c273f179a11e4 (diff)
Add function to delete a traansaction.
-rw-r--r--deploy/delete_transaction.sql14
-rw-r--r--revert/delete_transaction.sql7
-rw-r--r--sqitch.plan1
-rw-r--r--verify/delete_transaction.sql7
4 files changed, 29 insertions, 0 deletions
diff --git a/deploy/delete_transaction.sql b/deploy/delete_transaction.sql
new file mode 100644
index 0000000..b4d6567
--- /dev/null
+++ b/deploy/delete_transaction.sql
@@ -0,0 +1,14 @@
+-- Deploy kakeibo:delete_transaction to pg
+-- requires: transactions
+-- requires: appschema
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION kakeibo.delete_transaction(p_id integer)
+ RETURNS VOID AS $$
+BEGIN
+ DELETE FROM kakeibo.transactions WHERE id = p_id;
+END;
+$$ LANGUAGE plpgsql SECURITY DEFINER;
+
+COMMIT;
diff --git a/revert/delete_transaction.sql b/revert/delete_transaction.sql
new file mode 100644
index 0000000..573a0b2
--- /dev/null
+++ b/revert/delete_transaction.sql
@@ -0,0 +1,7 @@
+-- Revert kakeibo:delete_transaction from pg
+
+BEGIN;
+
+DROP FUNCTION kakeibo.delete_transaction;
+
+COMMIT;
diff --git a/sqitch.plan b/sqitch.plan
index c572266..a385e5d 100644
--- a/sqitch.plan
+++ b/sqitch.plan
@@ -6,3 +6,4 @@ appschema 2023-02-26T06:27:59Z Masaya Tojo <masaya@tojo.tokyo> # Add schema for
transaction_type [appschema] 2023-02-27T15:51:38Z Masaya Tojo <masaya@tojo.tokyo> # Add transaction type.
transactions [appschema transaction_type] 2023-02-27T15:53:02Z Masaya Tojo <masaya@tojo.tokyo> # Add table for tracking transactions.
insert_transaction [appschema transactions] 2023-02-28T01:06:21Z Masaya Tojo <masaya@tojo.tokyo> # Add function to insert transaction.
+delete_transaction [transactions appschema] 2023-02-28T12:00:07Z Masaya Tojo <masaya@tojo.tokyo> # Create a function to delete a transaction.
diff --git a/verify/delete_transaction.sql b/verify/delete_transaction.sql
new file mode 100644
index 0000000..13a6cd3
--- /dev/null
+++ b/verify/delete_transaction.sql
@@ -0,0 +1,7 @@
+-- Verify kakeibo:delete_transaction on pg
+
+BEGIN;
+
+SELECT has_function_privilege('kakeibo.delete_transaction(integer)', 'execute');
+
+ROLLBACK;