diff --git a/src/exchangedb/Makefile.am b/src/exchangedb/Makefile.am index 9757aefff..f07069f43 100644 --- a/src/exchangedb/Makefile.am +++ b/src/exchangedb/Makefile.am @@ -257,6 +257,7 @@ libtaler_plugin_exchangedb_postgres_la_SOURCES = \ pg_select_purse_deposits_above_serial_id.h pg_select_purse_deposits_above_serial_id.c \ pg_select_account_merges_above_serial_id.h pg_select_account_merges_above_serial_id.c \ pg_select_all_purse_decisions_above_serial_id.h pg_select_all_purse_decisions_above_serial_id.c \ + pg_batch_ensure_coin_known.h pg_batch_ensure_coin_known.c \ pg_select_reserve_open_above_serial_id.c pg_select_reserve_open_above_serial_id.h libtaler_plugin_exchangedb_postgres_la_LIBADD = \ $(LTLIBINTL) diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c index 2ef250775..e67995188 100644 --- a/src/exchangedb/plugin_exchangedb_postgres.c +++ b/src/exchangedb/plugin_exchangedb_postgres.c @@ -216,7 +216,7 @@ #include "pg_select_aml_process.h" #include "pg_select_aml_history.h" #include "pg_insert_aml_decision.h" - +#include "pg_batch_ensure_coin_known.h" /** * Set to 1 to enable Postgres auto_explain module. This will @@ -773,6 +773,8 @@ libtaler_plugin_exchangedb_postgres_init (void *cls) = &TEH_PG_select_aml_history; plugin->insert_aml_decision = &TEH_PG_insert_aml_decision; + plugin->batch_ensure_coin_known + = &TEH_PG_batch_ensure_coin_known; return plugin; } diff --git a/src/exchangedb/procedures.sql.in b/src/exchangedb/procedures.sql.in index 27a5b3bb3..12ec3656f 100644 --- a/src/exchangedb/procedures.sql.in +++ b/src/exchangedb/procedures.sql.in @@ -44,5 +44,6 @@ SET search_path TO exchange; #include "exchange_do_refund_by_coin.sql" #include "exchange_do_get_ready_deposit.sql" #include "exchange_do_get_link_data.sql" +#include "exchange_do_batch_coin_known.sql" COMMIT; diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h index 962bccaa2..02d7896a6 100644 --- a/src/include/taler_exchangedb_plugin.h +++ b/src/include/taler_exchangedb_plugin.h @@ -4026,7 +4026,12 @@ struct TALER_EXCHANGEDB_Plugin uint64_t *known_coin_id, struct TALER_DenominationHashP *denom_pub_hash, struct TALER_AgeCommitmentHash *age_hash); - + enum TALER_EXCHANGEDB_CoinKnownStatus + (*batch_ensure_coin_known)(void *cls, + const struct TALER_CoinPublicInfo *coin, + const struct TALER_CoinInfo *result, + unsigned int coin_length, + unsigned int batch_size); /** * Retrieve information about the given @a coin from the database.