summaryrefslogtreecommitdiff
path: root/src/exchangedb/exchange_do_reserves_in_insert.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchangedb/exchange_do_reserves_in_insert.sql')
-rw-r--r--src/exchangedb/exchange_do_reserves_in_insert.sql888
1 files changed, 0 insertions, 888 deletions
diff --git a/src/exchangedb/exchange_do_reserves_in_insert.sql b/src/exchangedb/exchange_do_reserves_in_insert.sql
index f8c7f1971..d2347bde8 100644
--- a/src/exchangedb/exchange_do_reserves_in_insert.sql
+++ b/src/exchangedb/exchange_do_reserves_in_insert.sql
@@ -14,894 +14,6 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-CREATE OR REPLACE FUNCTION exchange_do_batch_reserves_in_insert(
- IN in_gc_date INT8,
- IN in_reserve_expiration INT8,
- IN in_reserve_pub BYTEA,
- IN in_wire_ref INT8,
- IN in_credit taler_amount,
- IN in_exchange_account_name TEXT,
- IN in_execution_date INT8,
- IN in_wire_source_h_payto BYTEA,
- IN in_payto_uri TEXT,
- IN in_notify TEXT,
- OUT transaction_duplicate0 BOOLEAN,
- OUT ruuid0 INT8)
-LANGUAGE plpgsql
-AS $$
-BEGIN
-
- INSERT INTO wire_targets
- (wire_target_h_payto
- ,payto_uri)
- VALUES
- (in_wire_source_h_payto
- ,in_payto_uri)
- ON CONFLICT DO NOTHING;
-
- INSERT INTO reserves
- (reserve_pub
- ,current_balance
- ,expiration_date
- ,gc_date)
- VALUES
- (in_reserve_pub
- ,in_credit
- ,in_reserve_expiration
- ,in_gc_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_uuid
- INTO ruuid0;
-
- INSERT INTO reserves_in
- (reserve_pub
- ,wire_reference
- ,credit
- ,exchange_account_section
- ,wire_source_h_payto
- ,execution_date)
- VALUES
- (in_reserve_pub
- ,in_wire_ref
- ,in_credit
- ,in_exchange_account_name
- ,in_wire_source_h_payto
- ,in_execution_date)
- ON CONFLICT DO NOTHING;
-
- transaction_duplicate0 = NOT FOUND;
- IF FOUND
- THEN
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in_notify);
- END IF;
- RETURN;
-END $$;
-
-
-CREATE OR REPLACE FUNCTION exchange_do_batch2_reserves_insert(
- IN in_gc_date INT8,
- IN in_reserve_expiration INT8,
- IN in0_reserve_pub BYTEA,
- IN in0_wire_ref INT8,
- IN in0_credit taler_amount,
- IN in0_exchange_account_name TEXT,
- IN in0_execution_date INT8,
- IN in0_wire_source_h_payto BYTEA,
- IN in0_payto_uri TEXT,
- IN in0_notify TEXT,
- IN in1_reserve_pub BYTEA,
- IN in1_wire_ref INT8,
- IN in1_credit taler_amount,
- IN in1_exchange_account_name TEXT,
- IN in1_execution_date INT8,
- IN in1_wire_source_h_payto BYTEA,
- IN in1_payto_uri TEXT,
- IN in1_notify TEXT,
- OUT transaction_duplicate0 BOOLEAN,
- OUT transaction_duplicate1 BOOLEAN,
- OUT ruuid0 INT8,
- OUT ruuid1 INT8)
-LANGUAGE plpgsql
-AS $$
-DECLARE
- curs_reserve_exist REFCURSOR;
- k INT8;
- curs_transaction_exist REFCURSOR;
- i RECORD;
-BEGIN
- transaction_duplicate0 = TRUE;
- transaction_duplicate1 = TRUE;
-
- INSERT INTO wire_targets
- (wire_target_h_payto
- ,payto_uri)
- VALUES
- (in0_wire_source_h_payto
- ,in0_payto_uri),
- (in1_wire_source_h_payto
- ,in1_payto_uri)
- ON CONFLICT DO NOTHING;
-
- OPEN curs_reserve_exist FOR
- WITH reserve_changes AS (
- INSERT INTO reserves
- (reserve_pub
- ,current_balance
- ,expiration_date
- ,gc_date)
- VALUES
- (in0_reserve_pub
- ,in0_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in1_reserve_pub
- ,in1_credit
- ,in_reserve_expiration
- ,in_gc_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_uuid, reserve_pub)
- SELECT reserve_uuid, reserve_pub FROM reserve_changes;
-
- k=0;
- <<loop_reserve>> LOOP
- FETCH FROM curs_reserve_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_reserve;
- END IF;
-
- <<loop_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- ruuid0 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 1 THEN
- IF in1_reserve_pub = i.reserve_pub
- THEN
- ruuid1 = i.reserve_uuid;
- END IF;
- EXIT loop_reserve;
- END CASE;
- END LOOP loop_k;
- END LOOP loop_reserve;
-
- CLOSE curs_reserve_exist;
-
- OPEN curs_transaction_exist FOR
- WITH reserve_transaction AS (
- INSERT INTO reserves_in
- (reserve_pub
- ,wire_reference
- ,credit
- ,exchange_account_section
- ,wire_source_h_payto
- ,execution_date)
- VALUES
- (in0_reserve_pub
- ,in0_wire_ref
- ,in0_credit
- ,in0_exchange_account_name
- ,in0_wire_source_h_payto
- ,in0_execution_date),
- (in1_reserve_pub
- ,in1_wire_ref
- ,in1_credit
- ,in1_exchange_account_name
- ,in1_wire_source_h_payto
- ,in1_execution_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_pub)
- SELECT reserve_pub FROM reserve_transaction;
-
- k=0;
- <<loop_transaction>> LOOP
- FETCH FROM curs_transaction_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_transaction;
- END IF;
-
- <<loop2_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate0 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in0_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 1 THEN
- IF in1_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate1 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in1_notify);
- END IF;
- EXIT loop_transaction;
- END CASE;
- END LOOP loop2_k;
- END LOOP loop_transaction;
-
- CLOSE curs_transaction_exist;
-
- RETURN;
-END $$;
-
-
-CREATE OR REPLACE FUNCTION exchange_do_batch4_reserves_insert(
- IN in_gc_date INT8,
- IN in_reserve_expiration INT8,
- IN in0_reserve_pub BYTEA,
- IN in0_wire_ref INT8,
- IN in0_credit taler_amount,
- IN in0_exchange_account_name TEXT,
- IN in0_execution_date INT8,
- IN in0_wire_source_h_payto BYTEA,
- IN in0_payto_uri TEXT,
- IN in0_notify TEXT,
- IN in1_reserve_pub BYTEA,
- IN in1_wire_ref INT8,
- IN in1_credit taler_amount,
- IN in1_exchange_account_name TEXT,
- IN in1_execution_date INT8,
- IN in1_wire_source_h_payto BYTEA,
- IN in1_payto_uri TEXT,
- IN in1_notify TEXT,
- IN in2_reserve_pub BYTEA,
- IN in2_wire_ref INT8,
- IN in2_credit taler_amount,
- IN in2_exchange_account_name TEXT,
- IN in2_execution_date INT8,
- IN in2_wire_source_h_payto BYTEA,
- IN in2_payto_uri TEXT,
- IN in2_notify TEXT,
- IN in3_reserve_pub BYTEA,
- IN in3_wire_ref INT8,
- IN in3_credit taler_amount,
- IN in3_exchange_account_name TEXT,
- IN in3_execution_date INT8,
- IN in3_wire_source_h_payto BYTEA,
- IN in3_payto_uri TEXT,
- IN in3_notify TEXT,
- OUT transaction_duplicate0 BOOLEAN,
- OUT transaction_duplicate1 BOOLEAN,
- OUT transaction_duplicate2 BOOLEAN,
- OUT transaction_duplicate3 BOOLEAN,
- OUT ruuid0 INT8,
- OUT ruuid1 INT8,
- OUT ruuid2 INT8,
- OUT ruuid3 INT8)
-LANGUAGE plpgsql
-AS $$
-DECLARE
- curs_reserve_exist REFCURSOR;
- k INT8;
- curs_transaction_exist REFCURSOR;
- i RECORD;
-BEGIN
- transaction_duplicate0=TRUE;
- transaction_duplicate1=TRUE;
- transaction_duplicate2=TRUE;
- transaction_duplicate3=TRUE;
-
- INSERT INTO wire_targets
- (wire_target_h_payto
- ,payto_uri)
- VALUES
- (in0_wire_source_h_payto
- ,in0_payto_uri),
- (in1_wire_source_h_payto
- ,in1_payto_uri),
- (in2_wire_source_h_payto
- ,in2_payto_uri),
- (in3_wire_source_h_payto
- ,in3_payto_uri)
- ON CONFLICT DO NOTHING;
-
- OPEN curs_reserve_exist FOR
- WITH reserve_changes AS (
- INSERT INTO reserves
- (reserve_pub
- ,current_balance
- ,expiration_date
- ,gc_date)
- VALUES
- (in0_reserve_pub
- ,in0_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in1_reserve_pub
- ,in1_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in2_reserve_pub
- ,in2_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in3_reserve_pub
- ,in3_credit
- ,in_reserve_expiration
- ,in_gc_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_uuid,reserve_pub)
- SELECT reserve_uuid, reserve_pub FROM reserve_changes;
-
- k=0;
- <<loop_reserve>> LOOP
- FETCH FROM curs_reserve_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_reserve;
- END IF;
-
- <<loop_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- ruuid0 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 1 THEN
- k = k + 1;
- IF in1_reserve_pub = i.reserve_pub
- THEN
- ruuid1 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 2 THEN
- k = k + 1;
- IF in2_reserve_pub = i.reserve_pub
- THEN
- ruuid2 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 3 THEN
- IF in3_reserve_pub = i.reserve_pub
- THEN
- ruuid3 = i.reserve_uuid;
- END IF;
- EXIT loop_reserve;
- END CASE;
- END LOOP loop_k;
- END LOOP loop_reserve;
-
- CLOSE curs_reserve_exist;
-
- OPEN curs_transaction_exist FOR
- WITH reserve_transaction AS (
- INSERT INTO reserves_in
- (reserve_pub
- ,wire_reference
- ,credit
- ,exchange_account_section
- ,wire_source_h_payto
- ,execution_date)
- VALUES
- (in0_reserve_pub
- ,in0_wire_ref
- ,in0_credit
- ,in0_exchange_account_name
- ,in0_wire_source_h_payto
- ,in0_execution_date),
- (in1_reserve_pub
- ,in1_wire_ref
- ,in1_credit
- ,in1_exchange_account_name
- ,in1_wire_source_h_payto
- ,in1_execution_date),
- (in2_reserve_pub
- ,in2_wire_ref
- ,in2_credit
- ,in2_exchange_account_name
- ,in2_wire_source_h_payto
- ,in2_execution_date),
- (in3_reserve_pub
- ,in3_wire_ref
- ,in3_credit
- ,in3_exchange_account_name
- ,in3_wire_source_h_payto
- ,in3_execution_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_pub)
- SELECT reserve_pub FROM reserve_transaction;
-
- k=0;
- <<loop_transaction>> LOOP
- FETCH FROM curs_transaction_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_transaction;
- END IF;
-
- <<loop2_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate0 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in0_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 1 THEN
- k = k + 1;
- IF in1_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate1 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in1_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 2 THEN
- k = k + 1;
- IF in2_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate2 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in2_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 3 THEN
- IF in3_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate3 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in3_notify);
- END IF;
- EXIT loop_transaction;
- END CASE;
- END LOOP loop2_k;
- END LOOP loop_transaction;
-
- CLOSE curs_transaction_exist;
-
- RETURN;
-END $$;
-
-
-CREATE OR REPLACE FUNCTION exchange_do_batch8_reserves_insert(
- IN in_gc_date INT8,
- IN in_reserve_expiration INT8,
- IN in0_reserve_pub BYTEA,
- IN in0_wire_ref INT8,
- IN in0_credit taler_amount,
- IN in0_exchange_account_name TEXT,
- IN in0_execution_date INT8,
- IN in0_wire_source_h_payto BYTEA,
- IN in0_payto_uri TEXT,
- IN in0_notify TEXT,
- IN in1_reserve_pub BYTEA,
- IN in1_wire_ref INT8,
- IN in1_credit taler_amount,
- IN in1_exchange_account_name TEXT,
- IN in1_execution_date INT8,
- IN in1_wire_source_h_payto BYTEA,
- IN in1_payto_uri TEXT,
- IN in1_notify TEXT,
- IN in2_reserve_pub BYTEA,
- IN in2_wire_ref INT8,
- IN in2_credit taler_amount,
- IN in2_exchange_account_name TEXT,
- IN in2_execution_date INT8,
- IN in2_wire_source_h_payto BYTEA,
- IN in2_payto_uri TEXT,
- IN in2_notify TEXT,
- IN in3_reserve_pub BYTEA,
- IN in3_wire_ref INT8,
- IN in3_credit taler_amount,
- IN in3_exchange_account_name TEXT,
- IN in3_execution_date INT8,
- IN in3_wire_source_h_payto BYTEA,
- IN in3_payto_uri TEXT,
- IN in3_notify TEXT,
- IN in4_reserve_pub BYTEA,
- IN in4_wire_ref INT8,
- IN in4_credit taler_amount,
- IN in4_exchange_account_name TEXT,
- IN in4_execution_date INT8,
- IN in4_wire_source_h_payto BYTEA,
- IN in4_payto_uri TEXT,
- IN in4_notify TEXT,
- IN in5_reserve_pub BYTEA,
- IN in5_wire_ref INT8,
- IN in5_credit taler_amount,
- IN in5_exchange_account_name TEXT,
- IN in5_execution_date INT8,
- IN in5_wire_source_h_payto BYTEA,
- IN in5_payto_uri TEXT,
- IN in5_notify TEXT,
- IN in6_reserve_pub BYTEA,
- IN in6_wire_ref INT8,
- IN in6_credit taler_amount,
- IN in6_exchange_account_name TEXT,
- IN in6_execution_date INT8,
- IN in6_wire_source_h_payto BYTEA,
- IN in6_payto_uri TEXT,
- IN in6_notify TEXT,
- IN in7_reserve_pub BYTEA,
- IN in7_wire_ref INT8,
- IN in7_credit taler_amount,
- IN in7_exchange_account_name TEXT,
- IN in7_execution_date INT8,
- IN in7_wire_source_h_payto BYTEA,
- IN in7_payto_uri TEXT,
- IN in7_notify TEXT,
- OUT transaction_duplicate0 BOOLEAN,
- OUT transaction_duplicate1 BOOLEAN,
- OUT transaction_duplicate2 BOOLEAN,
- OUT transaction_duplicate3 BOOLEAN,
- OUT transaction_duplicate4 BOOLEAN,
- OUT transaction_duplicate5 BOOLEAN,
- OUT transaction_duplicate6 BOOLEAN,
- OUT transaction_duplicate7 BOOLEAN,
- OUT ruuid0 INT8,
- OUT ruuid1 INT8,
- OUT ruuid2 INT8,
- OUT ruuid3 INT8,
- OUT ruuid4 INT8,
- OUT ruuid5 INT8,
- OUT ruuid6 INT8,
- OUT ruuid7 INT8)
-LANGUAGE plpgsql
-AS $$
-DECLARE
- curs_reserve_exist REFCURSOR;
- k INT8;
- curs_transaction_exist REFCURSOR;
- i RECORD;
- r RECORD;
-
-BEGIN
- transaction_duplicate0=TRUE;
- transaction_duplicate1=TRUE;
- transaction_duplicate2=TRUE;
- transaction_duplicate3=TRUE;
- transaction_duplicate4=TRUE;
- transaction_duplicate5=TRUE;
- transaction_duplicate6=TRUE;
- transaction_duplicate7=TRUE;
-
- INSERT INTO wire_targets
- (wire_target_h_payto
- ,payto_uri)
- VALUES
- (in0_wire_source_h_payto
- ,in0_payto_uri),
- (in1_wire_source_h_payto
- ,in1_payto_uri),
- (in2_wire_source_h_payto
- ,in2_payto_uri),
- (in3_wire_source_h_payto
- ,in3_payto_uri),
- (in4_wire_source_h_payto
- ,in4_payto_uri),
- (in5_wire_source_h_payto
- ,in5_payto_uri),
- (in6_wire_source_h_payto
- ,in6_payto_uri),
- (in7_wire_source_h_payto
- ,in7_payto_uri)
- ON CONFLICT DO NOTHING;
-
- OPEN curs_reserve_exist FOR
- WITH reserve_changes AS (
- INSERT INTO reserves
- (reserve_pub
- ,current_balance
- ,expiration_date
- ,gc_date)
- VALUES
- (in0_reserve_pub
- ,in0_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in1_reserve_pub
- ,in1_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in2_reserve_pub
- ,in2_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in3_reserve_pub
- ,in3_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in4_reserve_pub
- ,in4_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in5_reserve_pub
- ,in5_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in6_reserve_pub
- ,in6_credit
- ,in_reserve_expiration
- ,in_gc_date),
- (in7_reserve_pub
- ,in7_credit
- ,in_reserve_expiration
- ,in_gc_date)
- ON CONFLICT DO NOTHING
- RETURNING
- reserve_uuid
- ,reserve_pub)
- SELECT
- reserve_uuid
- ,reserve_pub
- FROM reserve_changes;
-
- k=0;
- <<loop_reserve>> LOOP
- FETCH FROM curs_reserve_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_reserve;
- END IF;
-
- <<loop_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- ruuid0 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 1 THEN
- k = k + 1;
- IF in1_reserve_pub = i.reserve_pub
- THEN
- ruuid1 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 2 THEN
- k = k + 1;
- IF in2_reserve_pub = i.reserve_pub
- THEN
- ruuid2 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 3 THEN
- k = k + 1;
- IF in3_reserve_pub = i.reserve_pub
- THEN
- ruuid3 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 4 THEN
- k = k + 1;
- IF in4_reserve_pub = i.reserve_pub
- THEN
- ruuid4 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 5 THEN
- k = k + 1;
- IF in5_reserve_pub = i.reserve_pub
- THEN
- ruuid5 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 6 THEN
- k = k + 1;
- IF in6_reserve_pub = i.reserve_pub
- THEN
- ruuid6 = i.reserve_uuid;
- CONTINUE loop_reserve;
- END IF;
- CONTINUE loop_k;
- WHEN 7 THEN
- IF in7_reserve_pub = i.reserve_pub
- THEN
- ruuid7 = i.reserve_uuid;
- END IF;
- EXIT loop_reserve;
- END CASE;
- END LOOP loop_k;
- END LOOP loop_reserve;
-
- CLOSE curs_reserve_exist;
-
- OPEN curs_transaction_exist FOR
- WITH reserve_transaction AS (
- INSERT INTO reserves_in
- (reserve_pub
- ,wire_reference
- ,credit
- ,exchange_account_section
- ,wire_source_h_payto
- ,execution_date)
- VALUES
- (in0_reserve_pub
- ,in0_wire_ref
- ,in0_credit
- ,in0_exchange_account_name
- ,in0_wire_source_h_payto
- ,in0_execution_date),
- (in1_reserve_pub
- ,in1_wire_ref
- ,in1_credit
- ,in1_exchange_account_name
- ,in1_wire_source_h_payto
- ,in1_execution_date),
- (in2_reserve_pub
- ,in2_wire_ref
- ,in2_credit
- ,in2_exchange_account_name
- ,in2_wire_source_h_payto
- ,in2_execution_date),
- (in3_reserve_pub
- ,in3_wire_ref
- ,in3_credit
- ,in3_exchange_account_name
- ,in3_wire_source_h_payto
- ,in3_execution_date),
- (in4_reserve_pub
- ,in4_wire_ref
- ,in4_credit
- ,in4_exchange_account_name
- ,in4_wire_source_h_payto
- ,in4_execution_date),
- (in5_reserve_pub
- ,in5_wire_ref
- ,in5_credit
- ,in5_exchange_account_name
- ,in5_wire_source_h_payto
- ,in5_execution_date),
- (in6_reserve_pub
- ,in6_wire_ref
- ,in6_credit
- ,in6_exchange_account_name
- ,in6_wire_source_h_payto
- ,in6_execution_date),
- (in7_reserve_pub
- ,in7_wire_ref
- ,in7_credit
- ,in7_exchange_account_name
- ,in7_wire_source_h_payto
- ,in7_execution_date)
- ON CONFLICT DO NOTHING
- RETURNING reserve_pub)
- SELECT reserve_pub FROM reserve_transaction;
-
- k=0;
- <<loop_transaction>> LOOP
- FETCH FROM curs_transaction_exist INTO i;
- IF NOT FOUND
- THEN
- EXIT loop_transaction;
- END IF;
-
- <<loop2_k>> LOOP
- CASE k
- WHEN 0 THEN
- k = k + 1;
- IF in0_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate0 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in0_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 1 THEN
- k = k + 1;
- IF in1_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate1 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in1_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 2 THEN
- k = k + 1;
- IF in2_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate2 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in2_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 3 THEN
- k = k + 1;
- IF in3_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate3 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in3_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 4 THEN
- k = k + 1;
- IF in4_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate4 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in4_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 5 THEN
- k = k + 1;
- IF in5_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate5 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in5_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 6 THEN
- k = k + 1;
- IF in6_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate6 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in6_notify);
- CONTINUE loop_transaction;
- END IF;
- CONTINUE loop2_k;
- WHEN 7 THEN
- IF in7_reserve_pub = i.reserve_pub
- THEN
- transaction_duplicate7 = FALSE;
- EXECUTE FORMAT (
- 'NOTIFY %s'
- ,in7_notify);
- END IF;
- EXIT loop_transaction;
- END CASE;
- END LOOP loop2_k;
- END LOOP loop_transaction;
-
- CLOSE curs_transaction_exist;
- RETURN;
-END $$;
-
-
CREATE OR REPLACE FUNCTION exchange_do_array_reserves_insert(
IN in_gc_date INT8,