aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/taler_pq_lib.h22
-rw-r--r--src/mintdb/plugin_mintdb_postgres.c24
-rw-r--r--src/pq/pq_helper.c32
3 files changed, 66 insertions, 12 deletions
diff --git a/src/include/taler_pq_lib.h b/src/include/taler_pq_lib.h
index 9159cc0f7..2fe66c52f 100644
--- a/src/include/taler_pq_lib.h
+++ b/src/include/taler_pq_lib.h
@@ -202,6 +202,16 @@ TALER_PQ_query_param_absolute_time(const struct GNUNET_TIME_Absolute *x);
/**
+ * Generate query parameter for an absolute time value.
+ * The database must store a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct TALER_PQ_QueryParam
+TALER_PQ_query_param_absolute_time_nbo(const struct GNUNET_TIME_AbsoluteNBO *x);
+
+
+/**
* Generate query parameter for an uint16_t in host byte order.
*
* @param x pointer to the query parameter to pass
@@ -453,6 +463,18 @@ TALER_PQ_result_spec_absolute_time (const char *name,
/**
+ * Absolute time expected.
+ *
+ * @param name name of the field in the table
+ * @param[out] at where to store the result
+ * @return array entry for the result specification to use
+ */
+struct TALER_PQ_ResultSpec
+TALER_PQ_result_spec_absolute_time_nbo (const char *name,
+ struct GNUNET_TIME_AbsoluteNBO *at);
+
+
+/**
* uint16_t expected.
*
* @param name name of the field in the table
diff --git a/src/mintdb/plugin_mintdb_postgres.c b/src/mintdb/plugin_mintdb_postgres.c
index 00c515e1f..c222d1c37 100644
--- a/src/mintdb/plugin_mintdb_postgres.c
+++ b/src/mintdb/plugin_mintdb_postgres.c
@@ -1057,10 +1057,10 @@ postgres_insert_denomination_info (void *cls,
TALER_PQ_query_param_rsa_public_key (denom_pub->rsa_public_key),
TALER_PQ_query_param_auto_from_type (&issue->master),
TALER_PQ_query_param_auto_from_type (&issue->signature),
- TALER_PQ_query_param_auto_from_type (&issue->start.abs_value_us__),
- TALER_PQ_query_param_auto_from_type (&issue->expire_withdraw.abs_value_us__),
- TALER_PQ_query_param_auto_from_type (&issue->expire_spend.abs_value_us__),
- TALER_PQ_query_param_auto_from_type (&issue->expire_legal.abs_value_us__),
+ TALER_PQ_query_param_absolute_time_nbo (&issue->start),
+ TALER_PQ_query_param_absolute_time_nbo (&issue->expire_withdraw),
+ TALER_PQ_query_param_absolute_time_nbo (&issue->expire_spend),
+ TALER_PQ_query_param_absolute_time_nbo (&issue->expire_legal),
TALER_PQ_query_param_amount_nbo (&issue->value),
TALER_PQ_query_param_amount_nbo (&issue->fee_withdraw),
TALER_PQ_query_param_amount_nbo (&issue->fee_deposit),
@@ -1147,14 +1147,14 @@ postgres_get_denomination_info (void *cls,
&issue->master),
TALER_PQ_result_spec_auto_from_type ("master_sig",
&issue->signature),
- TALER_PQ_result_spec_auto_from_type ("valid_from",
- &issue->start.abs_value_us__),
- TALER_PQ_result_spec_auto_from_type ("expire_withdraw",
- &issue->expire_withdraw.abs_value_us__),
- TALER_PQ_result_spec_auto_from_type ("expire_spend",
- &issue->expire_spend.abs_value_us__),
- TALER_PQ_result_spec_auto_from_type ("expire_legal",
- &issue->expire_legal.abs_value_us__),
+ TALER_PQ_result_spec_absolute_time_nbo ("valid_from",
+ &issue->start),
+ TALER_PQ_result_spec_absolute_time_nbo ("expire_withdraw",
+ &issue->expire_withdraw),
+ TALER_PQ_result_spec_absolute_time_nbo ("expire_spend",
+ &issue->expire_spend),
+ TALER_PQ_result_spec_absolute_time_nbo ("expire_legal",
+ &issue->expire_legal),
TALER_PQ_result_spec_amount_nbo ("coin",
&issue->value),
TALER_PQ_result_spec_amount_nbo ("fee_withdraw",
diff --git a/src/pq/pq_helper.c b/src/pq/pq_helper.c
index 8fd7e207b..bd54447e7 100644
--- a/src/pq/pq_helper.c
+++ b/src/pq/pq_helper.c
@@ -108,6 +108,21 @@ TALER_PQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x)
/**
+ * Generate query parameter for an absolute time value.
+ * The database must store a 64-bit integer.
+ *
+ * @param x pointer to the query parameter to pass
+ */
+struct TALER_PQ_QueryParam
+TALER_PQ_query_param_absolute_time_nbo(const struct GNUNET_TIME_AbsoluteNBO *x)
+{
+ struct TALER_PQ_QueryParam res =
+ TALER_PQ_query_param_auto_from_type (&x->abs_value_us__);
+ return res;
+}
+
+
+/**
* Generate query parameter for an uint16_t in host byte order.
*
* @param x pointer to the query parameter to pass
@@ -269,6 +284,23 @@ TALER_PQ_result_spec_absolute_time (const char *name,
/**
+ * Absolute time expected.
+ *
+ * @param name name of the field in the table
+ * @param[out] at where to store the result
+ * @return array entry for the result specification to use
+ */
+struct TALER_PQ_ResultSpec
+TALER_PQ_result_spec_absolute_time_nbo (const char *name,
+ struct GNUNET_TIME_AbsoluteNBO *at)
+{
+ struct TALER_PQ_ResultSpec res =
+ TALER_PQ_result_spec_auto_from_type(name, &at->abs_value_us__);
+ return res;
+}
+
+
+/**
* uint16_t expected.
*
* @param name name of the field in the table