diff options
author | Florian Dold <florian@dold.me> | 2023-06-02 11:46:48 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-06-02 11:46:48 +0200 |
commit | 2ea3ae1008020589b43a51663c45556a08547212 (patch) | |
tree | e40fe0520d1c9b571ade5aa6230874a7436bf41e /src/exchangedb/exchange_do_reserves_in_insert.sql | |
parent | 04885a289a332800aad896d96692479a1fbdc470 (diff) | |
download | exchange-2ea3ae1008020589b43a51663c45556a08547212.tar.xz |
make CREATE TYPE usage idempotent
PostgresSQL doesn't have a CREATE TYPE OR REPLACE, so we have to work
around this with exception handling.
Diffstat (limited to 'src/exchangedb/exchange_do_reserves_in_insert.sql')
-rw-r--r-- | src/exchangedb/exchange_do_reserves_in_insert.sql | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/exchangedb/exchange_do_reserves_in_insert.sql b/src/exchangedb/exchange_do_reserves_in_insert.sql index 20d1c55a2..cf57d8e81 100644 --- a/src/exchangedb/exchange_do_reserves_in_insert.sql +++ b/src/exchangedb/exchange_do_reserves_in_insert.sql @@ -970,15 +970,16 @@ END $$; - - - - - -CREATE TYPE exchange_do_array_reserve_insert_return_type - AS - (transaction_duplicate BOOLEAN - ,ruuid INT8); +DO $$ +BEGIN + CREATE TYPE exchange_do_array_reserve_insert_return_type + AS + (transaction_duplicate BOOLEAN + ,ruuid INT8); +EXCEPTION + WHEN duplicate_object THEN null; +END +$$; CREATE OR REPLACE FUNCTION exchange_do_array_reserves_insert( IN in_gc_date INT8, |