diff options
author | Christian Grothoff <christian@grothoff.org> | 2023-08-21 23:34:44 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2023-08-21 23:34:44 +0200 |
commit | 250e1997d86c160e1a6603c72b23bf1ec8eafb5d (patch) | |
tree | 9dfdfaab4fd32b14c7fcf35845565e901efed61d /src/pq/pq_query_helper.c | |
parent | d1e242aa083cd108aca6e3ceda5f3459c8cebdc4 (diff) | |
download | exchange-250e1997d86c160e1a6603c72b23bf1ec8eafb5d.tar.xz |
postgres does not like 0-padding of VARCHAR, implement proper serialization
Diffstat (limited to 'src/pq/pq_query_helper.c')
-rw-r--r-- | src/pq/pq_query_helper.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/pq/pq_query_helper.c b/src/pq/pq_query_helper.c index a1a1070bb..48bbfb522 100644 --- a/src/pq/pq_query_helper.c +++ b/src/pq/pq_query_helper.c @@ -68,6 +68,7 @@ qconv_amount_currency_tuple (void *cls, Oid oid_v; Oid oid_f; Oid oid_c; + struct TALER_PQ_AmountCurrencyP d; GNUNET_assert (GNUNET_OK == GNUNET_PQ_get_oid_by_name (db, @@ -79,24 +80,18 @@ qconv_amount_currency_tuple (void *cls, &oid_f)); GNUNET_assert (GNUNET_OK == GNUNET_PQ_get_oid_by_name (db, - "text", + "varchar", &oid_c)); - - { - struct TALER_PQ_AmountCurrencyP d - = TALER_PQ_make_taler_pq_amount_currency_ (amount, - oid_v, - oid_f, - oid_c); - - sz = sizeof(uint32_t); /* number of elements in tuple */ - sz += sizeof(d); - out = GNUNET_malloc (sz); - scratch[0] = out; - *(uint32_t *) out = htonl (3); - out += sizeof(uint32_t); - *(struct TALER_PQ_AmountCurrencyP*) out = d; - } + sz = TALER_PQ_make_taler_pq_amount_currency_ (amount, + oid_v, + oid_f, + oid_c, + &d); + out = GNUNET_malloc (sz); + memcpy (out, + &d, + sz); + scratch[0] = out; } param_values[0] = scratch[0]; |