diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-12-08 14:20:33 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-12-08 14:20:33 +0100 |
commit | f9cc76ad3c4d7a8c720e971a1a9cba1bb79fa974 (patch) | |
tree | 6746712e8b0d716410d14252c7fbb3d245c6e36a /src/exchangedb/pg_get_link_data.c | |
parent | 329b7692ea4b09d9fb1399ad38af87b6e7486f38 (diff) | |
parent | db34b05a772504cce4fd13c6fafec28cd0d75907 (diff) |
Merge branch 'master' of git+ssh://git.taler.net/exchange
Diffstat (limited to 'src/exchangedb/pg_get_link_data.c')
-rw-r--r-- | src/exchangedb/pg_get_link_data.c | 68 |
1 files changed, 49 insertions, 19 deletions
diff --git a/src/exchangedb/pg_get_link_data.c b/src/exchangedb/pg_get_link_data.c index 93086289..f15bf35a 100644 --- a/src/exchangedb/pg_get_link_data.c +++ b/src/exchangedb/pg_get_link_data.c @@ -178,25 +178,55 @@ TEH_PG_get_link_data (void *cls, enum GNUNET_DB_QueryStatus qs; struct LinkDataContext ldctx; - PREPARE (pg, - "get_link", - "SELECT " - " tp.transfer_pub" - ",denoms.denom_pub" - ",rrc.ev_sig" - ",rrc.ewv" - ",rrc.link_sig" - ",rrc.freshcoin_index" - ",rrc.coin_ev" - " FROM refresh_commitments" - " JOIN refresh_revealed_coins rrc" - " USING (melt_serial_id)" - " JOIN refresh_transfer_keys tp" - " USING (melt_serial_id)" - " JOIN denominations denoms" - " ON (rrc.denominations_serial = denoms.denominations_serial)" - " WHERE old_coin_pub=$1" - " ORDER BY tp.transfer_pub, rrc.freshcoin_index ASC"); + if (NULL == getenv ("NEW_LOGIC")) + { + PREPARE (pg, + "get_link", + "SELECT " + " tp.transfer_pub" + ",denoms.denom_pub" + ",rrc.ev_sig" + ",rrc.ewv" + ",rrc.link_sig" + ",rrc.freshcoin_index" + ",rrc.coin_ev" + " FROM refresh_commitments" + " JOIN refresh_revealed_coins rrc" + " USING (melt_serial_id)" + " JOIN refresh_transfer_keys tp" + " USING (melt_serial_id)" + " JOIN denominations denoms" + " ON (rrc.denominations_serial = denoms.denominations_serial)" + " WHERE old_coin_pub=$1" + " ORDER BY tp.transfer_pub, rrc.freshcoin_index ASC"); + } + + else + { + PREPARE (pg, + "get_link", + "WITH rc AS MATERIALIZED (" + "SELECT" + "* FROM refresh_commitments" + "WHERE old_coin_pub=$1" + ")" + "SELECT " + " tp.transfer_pub" + ",denoms.denom_pub" + ",rrc.ev_sig" + ",rrc.ewv" + ",rrc.link_sig" + ",rrc.freshcoin_index" + ",rrc.coin_ev" + " FROM refresh_revealed_coins rrc" + " USING (melt_serial_id)" + " JOIN refresh_transfer_keys tp" + " USING (melt_serial_id)" + " JOIN denominations denoms" + " USING (denominations_serial)" + " ORDER BY tp.transfer_pub, rrc.freshcoin_index ASC"); + } + ldctx.ldc = ldc; ldctx.ldc_cls = ldc_cls; ldctx.last = NULL; |