From 6fb9bbd3cbb7618399b29e20c73059a7b3d0a0c2 Mon Sep 17 00:00:00 2001 From: Aleksei Nikiforov Date: Tue, 15 Dec 2020 18:10:55 +0300 Subject: [PATCH] Revert "dblib: fix TDS_DONE_RESULT empty rowsets:" This reverts commit 9058123f9e7fd9cc4c3adf8caf3ace2e2a2d50bc. --- src/dblib/dblib.c | 4 +- src/dblib/unittests/.gitignore | 1 - src/dblib/unittests/CMakeLists.txt | 3 +- src/dblib/unittests/Makefile.am | 4 +- src/dblib/unittests/empty_rowsets.c | 69 --------------------------- src/dblib/unittests/empty_rowsets.sql | 5 -- 6 files changed, 3 insertions(+), 83 deletions(-) delete mode 100644 src/dblib/unittests/empty_rowsets.c delete mode 100644 src/dblib/unittests/empty_rowsets.sql diff --git a/src/dblib/dblib.c b/src/dblib/dblib.c index 207e9cab..2ad922b9 100644 --- a/src/dblib/dblib.c +++ b/src/dblib/dblib.c @@ -1760,10 +1760,8 @@ _dbresults(DBPROCESS * dbproc) dbproc->dbresults_state = _DB_RES_NEXT_RESULT; if (done_flags & TDS_DONE_ERROR) return FAIL; - if (result_type == TDS_DONE_RESULT) { - tds_free_all_results(tds); + if (result_type == TDS_DONE_RESULT) return SUCCEED; - } break; case _DB_RES_RESULTSET_EMPTY: diff --git a/src/dblib/unittests/CMakeLists.txt b/src/dblib/unittests/CMakeLists.txt index 1d437bff..fa1c3bd8 100644 --- a/src/dblib/unittests/CMakeLists.txt +++ b/src/dblib/unittests/CMakeLists.txt @@ -5,7 +5,7 @@ foreach(target t0001 t0002 t0003 t0004 t0005 t0006 t0007 t0008 t0009 dbsafestr t0022 t0023 rpc dbmorecmds bcp thread text_buffer done_handling timeout hang null null2 setnull numeric pending cancel spid canquery batch_stmt_ins_sel batch_stmt_ins_upd bcp_getl - empty_rowsets string_bind colinfo bcp2) + string_bind colinfo bcp2) add_executable(d_${target} EXCLUDE_FROM_ALL ${target}.c) set_target_properties(d_${target} PROPERTIES OUTPUT_NAME ${target}) target_link_libraries(d_${target} d_common sybdb replacements tdsutils ${lib_NETWORK} ${lib_BASE}) diff --git a/src/dblib/unittests/Makefile.am b/src/dblib/unittests/Makefile.am index cd5a633b..cb11cd1e 100644 --- a/src/dblib/unittests/Makefile.am +++ b/src/dblib/unittests/Makefile.am @@ -40,7 +40,6 @@ TESTS = \ batch_stmt_ins_sel$(EXEEXT) \ batch_stmt_ins_upd$(EXEEXT) \ bcp_getl$(EXEEXT) \ - empty_rowsets$(EXEEXT) \ string_bind$(EXEEXT) \ colinfo$(EXEEXT) \ bcp2$(EXEEXT) @@ -94,7 +93,6 @@ canquery_SOURCES= canquery.c canquery.sql batch_stmt_ins_sel_SOURCES = batch_stmt_ins_sel.c batch_stmt_ins_sel.sql batch_stmt_ins_upd_SOURCES = batch_stmt_ins_upd.c batch_stmt_ins_upd.sql bcp_getl_SOURCES= bcp_getl.c -empty_rowsets_SOURCES = empty_rowsets.c empty_rowsets.sql string_bind_SOURCES = string_bind.c colinfo_SOURCES = colinfo.c colinfo.sql bcp2_SOURCES = bcp2.c bcp2.sql diff --git a/src/dblib/unittests/empty_rowsets.c b/src/dblib/unittests/empty_rowsets.c deleted file mode 100644 index 25c88746..00000000 --- a/src/dblib/unittests/empty_rowsets.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Purpose: Test handling of empty rowsets - * Functions: dbcmd dbdata dbdatlen dbnextrow dbresults dbsqlexec - */ - -#include "common.h" - -static int failed = 0; -static void set_failed(int line) -{ - failed = 1; - fprintf(stderr, "Failed check at line %d\n", line); -} -#define set_failed() set_failed(__LINE__) - -int -main(int argc, char *argv[]) -{ - LOGINREC *login; - DBPROCESS *dbproc; - int ret_code; - int num_cols; - int num_res; - - set_malloc_options(); - - read_login_info(argc, argv); - printf("Starting %s\n", argv[0]); - dbinit(); - - dberrhandle(syb_err_handler); - dbmsghandle(syb_msg_handler); - - printf("About to logon\n"); - - login = dblogin(); - DBSETLPWD(login, PASSWORD); - DBSETLUSER(login, USER); - DBSETLAPP(login, "t0012"); - - dbproc = dbopen(login, SERVER); - if (strlen(DATABASE)) { - dbuse(dbproc, DATABASE); - } - dbloginfree(login); - printf("After logon\n"); - - /* select */ - sql_cmd(dbproc); - dbsqlexec(dbproc); - - num_res = 0; - while ((ret_code = dbresults(dbproc)) == SUCCEED) { - num_cols = dbnumcols(dbproc); - printf("Result %d has %d columns\n", num_res, num_cols); - if (!(num_res % 2) && num_cols) - set_failed(); - while(dbnextrow(dbproc) != NO_MORE_ROWS) {}; - num_res++; - } - if (ret_code == FAIL) - set_failed(); - - dbclose(dbproc); - dbexit(); - - printf("%s %s\n", __FILE__, (failed ? "failed!" : "OK")); - return failed ? 1 : 0; -} diff --git a/src/dblib/unittests/empty_rowsets.sql b/src/dblib/unittests/empty_rowsets.sql deleted file mode 100644 index d6ad7a29..00000000 --- a/src/dblib/unittests/empty_rowsets.sql +++ /dev/null @@ -1,5 +0,0 @@ -set arithabort on -select 1 -set arithabort on -select 2 -go -- 2.25.4