aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasaya Tojo <masaya@tojo.tokyo>2023-03-04 19:44:11 +0900
committerMasaya Tojo <masaya@tojo.tokyo>2023-03-04 20:12:02 +0900
commit85aa0f7fa89cad0cd81af87336d7f9d31bb19422 (patch)
tree5f0b3662993798269085c6d7d3a04a00188214ac
parent88b7a0784e0c9e66dad26e0d85ee06ce9f7c59b9 (diff)
Change insert_transaction signature to use integer.
-rw-r--r--deploy/insert_transaction.sql3
-rw-r--r--deploy/insert_transaction@v1.0.0-dev1.sql24
-rw-r--r--revert/insert_transaction.sql22
-rw-r--r--revert/insert_transaction@v1.0.0-dev1.sql7
-rw-r--r--sqitch.plan1
-rw-r--r--verify/insert_transaction.sql2
-rw-r--r--verify/insert_transaction@v1.0.0-dev1.sql7
7 files changed, 62 insertions, 4 deletions
diff --git a/deploy/insert_transaction.sql b/deploy/insert_transaction.sql
index 851b38e..42e825d 100644
--- a/deploy/insert_transaction.sql
+++ b/deploy/insert_transaction.sql
@@ -4,8 +4,9 @@
BEGIN;
+DROP FUNCTION kakeibo.insert_transaction(kakeibo.transaction_type, DATE, TEXT);
CREATE OR REPLACE FUNCTION kakeibo.insert_transaction(
- p_type kakeibo.transaction_type,
+ p_type INTEGER,
p_date DATE,
p_note TEXT
) RETURNS INTEGER AS $$
diff --git a/deploy/insert_transaction@v1.0.0-dev1.sql b/deploy/insert_transaction@v1.0.0-dev1.sql
new file mode 100644
index 0000000..851b38e
--- /dev/null
+++ b/deploy/insert_transaction@v1.0.0-dev1.sql
@@ -0,0 +1,24 @@
+-- Deploy kakeibo:insert_transaction to pg
+-- requires: appschema
+-- requires: transactions
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION kakeibo.insert_transaction(
+ p_type kakeibo.transaction_type,
+ p_date DATE,
+ p_note TEXT
+) RETURNS INTEGER AS $$
+DECLARE
+ inserted_id INTEGER;
+BEGIN
+ INSERT INTO kakeibo.transactions (
+ type, date, note
+ ) VALUES (
+ p_type, p_date, p_note
+ ) RETURNING id INTO inserted_id;
+ RETURN inserted_id;
+END;
+$$ LANGUAGE plpgsql SECURITY DEFINER;
+
+COMMIT;
diff --git a/revert/insert_transaction.sql b/revert/insert_transaction.sql
index d579ca6..d15552f 100644
--- a/revert/insert_transaction.sql
+++ b/revert/insert_transaction.sql
@@ -1,7 +1,25 @@
--- Revert kakeibo:insert_transaction from pg
+-- Deploy kakeibo:insert_transaction to pg
+-- requires: appschema
+-- requires: transactions
BEGIN;
-DROP FUNCTION kakeibo.insert_transaction;
+DROP FUNCTION kakeibo.insert_transaction(INTEGER, DATE, TEXT);
+CREATE OR REPLACE FUNCTION kakeibo.insert_transaction(
+ p_type kakeibo.transaction_type,
+ p_date DATE,
+ p_note TEXT
+) RETURNS INTEGER AS $$
+DECLARE
+ inserted_id INTEGER;
+BEGIN
+ INSERT INTO kakeibo.transactions (
+ type, date, note
+ ) VALUES (
+ p_type, p_date, p_note
+ ) RETURNING id INTO inserted_id;
+ RETURN inserted_id;
+END;
+$$ LANGUAGE plpgsql SECURITY DEFINER;
COMMIT;
diff --git a/revert/insert_transaction@v1.0.0-dev1.sql b/revert/insert_transaction@v1.0.0-dev1.sql
new file mode 100644
index 0000000..d579ca6
--- /dev/null
+++ b/revert/insert_transaction@v1.0.0-dev1.sql
@@ -0,0 +1,7 @@
+-- Revert kakeibo:insert_transaction from pg
+
+BEGIN;
+
+DROP FUNCTION kakeibo.insert_transaction;
+
+COMMIT;
diff --git a/sqitch.plan b/sqitch.plan
index 9d0965f..ae95b66 100644
--- a/sqitch.plan
+++ b/sqitch.plan
@@ -15,3 +15,4 @@ transactions_update_timestamp [transactions update_timestamp] 2023-02-28T16:43:4
items_update_timestamp [items update_timestamp] 2023-02-28T17:04:02Z Masaya Tojo <masaya@tojo.tokyo> # Add update_timestamp trigger to items table.
@v1.0.0-dev1 2023-03-04T09:29:02Z Masaya Tojo <masaya@tojo.tokyo> # Tag v1.0.0-dev1.
transaction_type_to_integer [transactions] 2023-03-04T09:32:34Z Masaya Tojo <masaya@tojo.tokyo> # Make transaction type integer.
+insert_transaction [insert_transaction@v1.0.0-dev1 appschema transactions] 2023-03-04T10:40:25Z Masaya Tojo <masaya@tojo.tokyo> # Change insert_transaction signature to use integer.
diff --git a/verify/insert_transaction.sql b/verify/insert_transaction.sql
index a591157..1c348f1 100644
--- a/verify/insert_transaction.sql
+++ b/verify/insert_transaction.sql
@@ -2,6 +2,6 @@
BEGIN;
-SELECT has_function_privilege('kakeibo.insert_transaction(kakeibo.transaction_type, date, text)', 'execute');
+SELECT has_function_privilege('kakeibo.insert_transaction(INTEGER, date, text)', 'execute');
ROLLBACK;
diff --git a/verify/insert_transaction@v1.0.0-dev1.sql b/verify/insert_transaction@v1.0.0-dev1.sql
new file mode 100644
index 0000000..a591157
--- /dev/null
+++ b/verify/insert_transaction@v1.0.0-dev1.sql
@@ -0,0 +1,7 @@
+-- Verify kakeibo:insert_transaction on pg
+
+BEGIN;
+
+SELECT has_function_privilege('kakeibo.insert_transaction(kakeibo.transaction_type, date, text)', 'execute');
+
+ROLLBACK;