[Asterisk-code-review] func odbc: NODATA if SQLNumResultCols returned 0 columns on ... (asterisk[15])
George Joseph
asteriskteam at digium.com
Tue Jun 12 08:07:01 CDT 2018
George Joseph has submitted this change and it was merged. ( https://gerrit.asterisk.org/9133 )
Change subject: func_odbc: NODATA if SQLNumResultCols returned 0 columns on readsql
......................................................................
func_odbc: NODATA if SQLNumResultCols returned 0 columns on readsql
The functions acf_odbc_read/cli_odbc_read ignore a number of columns
returned by the SQLNumResultCols.
If the number of columns is zero it means no data.
In this case, a SQLFetch function has to be not called,
because it will cause an error.
ASTERISK-27888 #close
Change-Id: Ie0f7bdac6c405aa5bbd38932c7b831f90729ee19
---
M funcs/func_odbc.c
1 file changed, 24 insertions(+), 0 deletions(-)
Approvals:
Kevin Harwell: Looks good to me, but someone else must approve
Joshua Colp: Looks good to me, approved
George Joseph: Approved for Submit
diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c
index 0d053f6..66722df 100644
--- a/funcs/func_odbc.c
+++ b/funcs/func_odbc.c
@@ -857,6 +857,21 @@
return -1;
}
+ if (colcount <= 0) {
+ ast_verb(4, "Returned %d columns [%s]\n", colcount, ast_str_buffer(sql));
+ buf[0] = '\0';
+ SQLCloseCursor(stmt);
+ SQLFreeHandle (SQL_HANDLE_STMT, stmt);
+ release_obj_or_dsn (&obj, &dsn);
+ if (!bogus_chan) {
+ pbx_builtin_setvar_helper(chan, "ODBCROWS", "0");
+ pbx_builtin_setvar_helper(chan, "ODBCSTATUS", "NODATA");
+ ast_autoservice_stop(chan);
+ }
+ odbc_datastore_free(resultset);
+ return 0;
+ }
+
res = SQLFetch(stmt);
if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
int res1 = -1;
@@ -1520,6 +1535,15 @@
return CLI_SUCCESS;
}
+ if (colcount <= 0) {
+ SQLCloseCursor(stmt);
+ SQLFreeHandle (SQL_HANDLE_STMT, stmt);
+ release_obj_or_dsn (&obj, &dsn);
+ ast_cli(a->fd, "Returned %d columns. Query executed on handle %d:%s [%s]\n", colcount, dsn_num, query->readhandle[dsn_num], ast_str_buffer(sql));
+ AST_RWLIST_UNLOCK(&queries);
+ return CLI_SUCCESS;
+ }
+
res = SQLFetch(stmt);
if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
SQLCloseCursor(stmt);
--
To view, visit https://gerrit.asterisk.org/9133
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 15
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie0f7bdac6c405aa5bbd38932c7b831f90729ee19
Gerrit-Change-Number: 9133
Gerrit-PatchSet: 1
Gerrit-Owner: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Jenkins2
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180612/db3ff0a0/attachment-0001.html>
More information about the asterisk-code-review
mailing list