Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37747773
en ru br
Репозитории ALT
S:1.3.16-alt1
5.1: 0.82-alt2
4.1: 0.64-alt3
4.0: 0.63-alt1.1.0
3.0: 0.63-alt1
www.altlinux.org/Changes

Другие репозитории
Upstream:0.64

Группа :: Система/Библиотеки
Пакет: freetds

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: freetds-alt-revert-dblib-fix-TDS_DONE_RESULT-empty-rowsets.patch
Скачать


From 6fb9bbd3cbb7618399b29e20c73059a7b3d0a0c2 Mon Sep 17 00:00:00 2001
From: Aleksei Nikiforov <darktemplar@altlinux.org>
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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin