From 406fe9e057ca4f80f96bb6e47fef577798685b32 Mon Sep 17 00:00:00 2001 From: avsdev-cw Date: Mon, 5 Oct 2020 17:03:07 +0100 Subject: [PATCH] Fixed the testing of table existance --- src/modb_p.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modb_p.c b/src/modb_p.c index 5d05922..7e07991 100644 --- a/src/modb_p.c +++ b/src/modb_p.c @@ -358,8 +358,18 @@ int tableExists(struct stored_conn_t *sconn, struct modb_t *modb, } res = scalarString(sconn, qry, qry_len, "Z"); - if (res == 0 || strlen(res) != (modb->name_len + suffix_len)) { + /* Result: + * 0: query success, no result returned + * 1: query failed, default ("Z") returned + * 2: query success, result does not match required length + * 3: query success, result matches required length (check content) + */ + if (res == 0) { + retval = 0; + } else if (strlen(res) == 1 && strncmp(res, "Z", 1) == 0) { retval = -1; + } else if (strlen(res) != (modb->name_len + suffix_len)) { + retval = 0; } else { retval = strncmp(res, modb->name, modb->name_len) == 0; }