diff options
-rw-r--r-- | src/include/taler_pq_lib.h | 22 | ||||
-rw-r--r-- | src/mintdb/plugin_mintdb_postgres.c | 24 | ||||
-rw-r--r-- | src/pq/pq_helper.c | 32 |
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 |