From 111a8c9b63138e405f4073fd38787f9e7267d03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sun, 20 Apr 2025 17:11:49 +0200 Subject: [PATCH] #2: add trading account type type and fix schema migrations machinery --- brmbar3/schema/0001-init.sql | 6 ++-- brmbar3/schema/0002-trading-accounts.sql | 37 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 brmbar3/schema/0002-trading-accounts.sql diff --git a/brmbar3/schema/0001-init.sql b/brmbar3/schema/0001-init.sql index 52afd7e..8e7f8db 100644 --- a/brmbar3/schema/0001-init.sql +++ b/brmbar3/schema/0001-init.sql @@ -1,5 +1,5 @@ -- --- 0000-init.sql +-- 0001-init.sql -- -- Initial SQL schema construction as of 2025-04-20 (or so) -- @@ -273,7 +273,7 @@ BEGIN CREATE OR REPLACE FUNCTION brmbar_privileged.has_exact_schema_version( IN i_ver INTEGER - ) RETURNS INTEGER + ) RETURNS BOOLEAN VOLATILE NOT LEAKPROOF LANGUAGE plpgsql AS $x$ DECLARE v_ver INTEGER; @@ -292,7 +292,7 @@ BEGIN CREATE OR REPLACE FUNCTION brmbar_privileged.upgrade_schema_version_to( IN i_ver INTEGER - ) RETURNS INTEGER + ) RETURNS VOID VOLATILE NOT LEAKPROOF LANGUAGE plpgsql AS $x$ DECLARE v_ver INTEGER; diff --git a/brmbar3/schema/0002-trading-accounts.sql b/brmbar3/schema/0002-trading-accounts.sql new file mode 100644 index 0000000..08397cd --- /dev/null +++ b/brmbar3/schema/0002-trading-accounts.sql @@ -0,0 +1,37 @@ +-- +-- 0002-trading-accounts.sql +-- +-- #2 - add trading accounts to account type type +-- +-- ISC License +-- +-- Copyright 2023-2025 Brmlab, z.s. +-- Dominik Pantůček +-- +-- Permission to use, copy, modify, and/or distribute this software +-- for any purpose with or without fee is hereby granted, provided +-- that the above copyright notice and this permission notice appear +-- in all copies. +-- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +-- WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +-- WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +-- AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +-- CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +-- OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +-- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +-- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-- + +DO $upgrade_block$ +BEGIN + +IF brmbar_privileged.has_exact_schema_version(1) THEN + + ALTER TYPE public.account_type ADD VALUE 'trading'; + + PERFORM brmbar_privileged.upgrade_schema_version_to(2); +END IF; + +END; +$upgrade_block$;