Better handling of blobs, query print length limited by compiler flag

This commit is contained in:
2020-10-07 16:59:24 +01:00
parent fb92672739
commit 02b108635d
2 changed files with 13 additions and 4 deletions

View File

@@ -13,12 +13,19 @@
#ifndef SQL_DEBUG_COLOUR #ifndef SQL_DEBUG_COLOUR
# define SQL_DEBUG_COLOUR 36 # define SQL_DEBUG_COLOUR 36
#endif #endif
#ifndef SQL_DEBUG_MAX_LEN
# define SQL_DEBUG_MAX_LEN 512
#endif
uint64_t simpleQuery(struct stored_conn_t *sconn, const char *qry, size_t qry_len) uint64_t simpleQuery(struct stored_conn_t *sconn, const char *qry, size_t qry_len)
{ {
#if defined DEBUG || defined SQL_DEBUG #if defined DEBUG || defined SQL_DEBUG
printf("\x1b[%dm" "QRY: %s" "\x1b[0m" "\n", SQL_DEBUG_COLOUR, qry); printf("\x1b[%dm" "QRY: %.*s%s" "\x1b[0m" "\n",
SQL_DEBUG_COLOUR,
SQL_DEBUG_MAX_LEN, qry,
(qry_len > SQL_DEBUG_MAX_LEN ? "..." : "")
);
#endif #endif
char *old_ptr; char *old_ptr;

View File

@@ -56,7 +56,9 @@ void db_value_sbva(str_builder *sb, e_column_type type, uint32_t n_args, va_list
} }
if (type == TYPE_RAW) { if (type == TYPE_RAW) {
strbld_str(sb, va_arg(args, char *), va_arg(args, size_t)); tmp_str = va_arg(args, char *);
tmp_len = va_arg(args, size_t);
strbld_str(sb, tmp_str, tmp_len);
return; return;
} }
@@ -113,7 +115,6 @@ void db_value_sbva(str_builder *sb, e_column_type type, uint32_t n_args, va_list
strbld_str(sb, "NULL", 4); strbld_str(sb, "NULL", 4);
return; return;
} }
tmp_len = va_arg(args, size_t); tmp_len = va_arg(args, size_t);
esc_str = (char *)malloc(tmp_len * 2 + 1 + 2); esc_str = (char *)malloc(tmp_len * 2 + 1 + 2);
@@ -121,11 +122,12 @@ void db_value_sbva(str_builder *sb, e_column_type type, uint32_t n_args, va_list
fprintf(stderr, "[%d]malloc: (%d) %s\n", __LINE__, errno, strerror(errno)); fprintf(stderr, "[%d]malloc: (%d) %s\n", __LINE__, errno, strerror(errno));
return; return;
} }
esc_str[0] = '0'; esc_str[0] = '0';
esc_str[1] = 'x'; esc_str[1] = 'x';
esc_len = mysql_hex_string(esc_str + 2, tmp_str, tmp_len); esc_len = mysql_hex_string(esc_str + 2, tmp_str, tmp_len);
strbld_str(sb, esc_str, esc_len); strbld_str(sb, esc_str, esc_len);
free(esc_str); free(esc_str);
return; return;
} }