From 5e841e10ede000dfe31fca4fa260eace651f4b85 Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Fri, 24 Jul 2015 17:13:29 +0200 Subject: [PATCH] mx_mysql: Add debugging routines to dump mysql bindings --- mx_mysql.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/mx_mysql.c b/mx_mysql.c index bee7606..0ef434b 100644 --- a/mx_mysql.c +++ b/mx_mysql.c @@ -711,6 +711,42 @@ static inline int _mx_mysql_bind_integer(struct mx_mysql_bind *b, unsigned int i return 0; } +void _mx_mysql_bind_dump_index(struct mx_mysql_bind *b, unsigned int index) +{ + mx_debug_value("%d", index); + mx_debug_value("%d", b->bind[index].buffer_type); + mx_debug_value("%d", b->bind[index].buffer_length); + mx_debug_value("%p", b->bind[index].buffer); + if (b->bind[index].buffer_type == MYSQL_TYPE_STRING) + mx_debug_value("%s", b->bind[index].buffer); + mx_debug_value("%d", b->bind[index].is_unsigned); + mx_debug_value("%d", *b->bind[index].length); + mx_debug_value("%d", *b->bind[index].is_null); + mx_debug_value("%d", *b->bind[index].error); + mx_debug_value("0x%x", b->data[index].flags); +} + +void _mx_mysql_bind_dump(struct mx_mysql_bind *b) +{ + int i; + + mx_log_debug("entered"); + + if (!b) { + mx_log_debug("done"); + return; + } + + mx_debug_value("%d", b->type); + mx_debug_value("%d", b->count); + + for (i=0; i < b->count; i++) { + _mx_mysql_bind_dump_index(b, i); + } + mx_log_debug("done"); +} + + static inline int _mx_mysql_bind_string(struct mx_mysql_bind *b, unsigned int index, char **value) { mx_assert_return_minus_errno(b, EINVAL);