commit 58fa8d9b37b39b728ca0a766b87c9cfd0184f943
parent 366524f890d5f1d34a58e6cbc8f7f8095312e4f4
Author: Christian Grothoff <christian@grothoff.org>
Date: Thu, 11 Jun 2026 01:24:09 +0200
fix test_pq
Diffstat:
4 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/meson.build b/meson.build
@@ -307,7 +307,7 @@ if not get_option('only-doc')
['libtalerutil', '13:0:0'],
['libtalerjson', '7:0:3'],
['libtalercurl', '0:1:0'],
- ['libtalerpq', '0:1:0'],
+ ['libtalerpq', '1:0:0'],
['libtalersq', '0:0:0'],
['libtalermhd', '8:0:1'],
['libtalermhd2', '0:0:0'],
diff --git a/src/include/taler/taler_pq_lib.h b/src/include/taler/taler_pq_lib.h
@@ -216,12 +216,15 @@ TALER_PQ_query_param_array_amount (
*
* @param num of elements in @e amounts
* @param amounts continuous array of amounts
+ * @param schema which schema to take the taler_amount_currency data
+ * type from, NULL to use the search_path
* @param db context for db-connection, needed for OID-lookup
*/
struct GNUNET_PQ_QueryParam
TALER_PQ_query_param_array_amount_with_currency (
size_t num,
const struct TALER_Amount *amounts,
+ const char *schema,
struct GNUNET_PQ_Context *db);
/**
diff --git a/src/pq/pq_query_helper.c b/src/pq/pq_query_helper.c
@@ -1150,14 +1150,24 @@ struct GNUNET_PQ_QueryParam
TALER_PQ_query_param_array_amount_with_currency (
size_t num,
const struct TALER_Amount *amounts,
+ const char *schema,
struct GNUNET_PQ_Context *db)
{
Oid oid;
-
+ char *tn;
+
+ if (NULL != schema)
+ GNUNET_asprintf (&tn,
+ "%s.taler_amount_currency",
+ schema);
+ else
+ GNUNET_asprintf (&tn,
+ "taler_amount_currency");
GNUNET_assert (GNUNET_OK ==
GNUNET_PQ_get_oid_by_name (db,
- "merchant.taler_amount_currency",
+ tn,
&oid));
+ GNUNET_free (tn);
return query_param_array_generic (
num,
true,
diff --git a/src/pq/test_pq.c b/src/pq/test_pq.c
@@ -136,6 +136,7 @@ run_queries (struct GNUNET_PQ_Context *conn)
conn),
TALER_PQ_query_param_array_amount_with_currency (2,
aamountc,
+ "merchant",
conn),
TALER_PQ_query_param_amount_with_currency (conn,
&tamountc),
@@ -206,7 +207,7 @@ run_queries (struct GNUNET_PQ_Context *conn)
&npamount,
&pamount),
TALER_PQ_result_spec_array_amount_with_currency (conn,
- NULL,
+ "merchant",
"aamountc",
&npamountc,
&pamountc),
@@ -216,7 +217,7 @@ run_queries (struct GNUNET_PQ_Context *conn)
&npamountn,
&pamountn),
TALER_PQ_result_spec_array_amount_with_currency (conn,
- NULL,
+ "merchant",
"aamountnc",
&npamountnc,
&pamountnc),
@@ -299,6 +300,11 @@ main (int argc,
struct GNUNET_PQ_ExecuteStatement es[] = {
GNUNET_PQ_make_execute ("DO $$ "
" BEGIN"
+ " CREATE SCHEMA IF NOT EXISTS merchant;"
+ " END "
+ "$$;"),
+ GNUNET_PQ_make_execute ("DO $$ "
+ " BEGIN"
" CREATE DOMAIN gnunet_hashcode AS BYTEA"
" CHECK(length(VALUE)=64);"
" EXCEPTION"
@@ -315,7 +321,7 @@ main (int argc,
"$$;"),
GNUNET_PQ_make_execute ("DO $$ "
" BEGIN"
- " CREATE TYPE taler_amount_currency AS"
+ " CREATE TYPE merchant.taler_amount_currency AS"
" (val INT8, frac INT4, curr VARCHAR(12));"
" EXCEPTION"
" WHEN duplicate_object THEN null;"
@@ -325,10 +331,10 @@ main (int argc,
"tamount taler_amount NOT NULL"
",json VARCHAR NOT NULL"
",aamount taler_amount[]"
- ",aamountc taler_amount_currency[]"
+ ",aamountc merchant.taler_amount_currency[]"
",aamountn taler_amount[] NOT NULL DEFAULT ARRAY[]::taler_amount[]"
- ",aamountnc taler_amount_currency[] NOT NULL DEFAULT ARRAY[]::taler_amount_currency[]"
- ",tamountc taler_amount_currency"
+ ",aamountnc merchant.taler_amount_currency[] NOT NULL DEFAULT ARRAY[]::merchant.taler_amount_currency[]"
+ ",tamountc merchant.taler_amount_currency"
",hash gnunet_hashcode"
",hashes gnunet_hashcode[]"
",cs_r_pubs BYTEA[]"