diff options
Diffstat (limited to 'src/exchangedb/exchange_do_reserves_in_insert.sql')
-rw-r--r-- | src/exchangedb/exchange_do_reserves_in_insert.sql | 888 |
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, |