changeset 1718:b656a3acea15

upgrade package freetds to cvs
author Mark Brand <mabrand@mabrand.nl>
date Wed, 30 Mar 2011 16:57:14 +0200
parents eb3e1558bf24
children e7166e5a6d5b
files src/freetds-1-fastforward.patch
diffstat 1 files changed, 188 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/freetds-1-fastforward.patch	Tue Mar 29 15:36:10 2011 +0200
+++ b/src/freetds-1-fastforward.patch	Wed Mar 30 16:57:14 2011 +0200
@@ -178385,3 +178385,191 @@
  void tds_set_version(TDSLOGIN * tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver);
  void tds_set_capabilities(TDSLOGIN * tds_login, unsigned char *capabilities, int size);
  int tds_connect_and_login(TDSSOCKET * tds, TDSCONNECTION * connection);
+
+commit 0fb0f4a2b0734d2dbf56870566c0228ce71f1859
+Author: freddy77 <freddy77>
+Date:   Wed Mar 30 11:29:34 2011 +0000
+
+    avoid unnecessary prepare and unprepare
+
+diff --git a/ChangeLog b/ChangeLog
+index 79e2ed8..73910cd 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,7 @@
++Wed Mar 30 13:29:15 CEST 2011    Frediano Ziglio <freddy77_A_gmail_D_com>
++	* include/tds.h src/odbc/odbc.c src/tds/query.c:
++	- avoid unnecessary prepare and unprepare
++
+ Sun Mar 27 12:34:23 EDT 2011	JK Lowden <jklowden@freetds.org>
+ 	* include/sybdb.h include/tds.h
+ 	- src/dblib/dblib.c src/tds/config.c src/tds/login.c
+@@ -3193,4 +3197,4 @@ Wed Jan  9 19:54:43 EST 2008	JK Lowden <jklowden@freetds.org>
+ 	* ChangeLog-0.82 added because of release
+ 	
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3204 2011/03/27 16:36:53 jklowden Exp $
++$Id: ChangeLog,v 1.3205 2011/03/30 11:29:34 freddy77 Exp $
+diff --git a/include/tds.h b/include/tds.h
+index a0ebb12..9486ebc 100644
+--- a/include/tds.h
++++ b/include/tds.h
+@@ -21,7 +21,7 @@
+ #ifndef _tds_h_
+ #define _tds_h_
+ 
+-/* $Id: tds.h,v 1.351 2011/03/27 16:36:53 jklowden Exp $ */
++/* $Id: tds.h,v 1.352 2011/03/30 11:29:34 freddy77 Exp $ */
+ 
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -1485,6 +1485,7 @@ int tds_submit_execute(TDSSOCKET * tds, TDSDYNAMIC * dyn);
+ int tds_send_cancel(TDSSOCKET * tds);
+ const char *tds_next_placeholder(const char *start);
+ int tds_count_placeholders(const char *query);
++int tds_needs_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
+ int tds_submit_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
+ int tds_submit_rpc(TDSSOCKET * tds, const char *rpc_name, TDSPARAMINFO * params);
+ int tds_submit_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size);
+diff --git a/src/odbc/odbc.c b/src/odbc/odbc.c
+index 0e57775..73a63ff 100644
+--- a/src/odbc/odbc.c
++++ b/src/odbc/odbc.c
+@@ -1,6 +1,6 @@
+ /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+  * Copyright (C) 1998, 1999, 2000, 2001  Brian Bruns
+- * Copyright (C) 2002-2010  Frediano Ziglio
++ * Copyright (C) 2002-2011  Frediano Ziglio
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Library General Public
+@@ -61,7 +61,7 @@
+ #include <dmalloc.h>
+ #endif
+ 
+-TDS_RCSID(var, "$Id: odbc.c,v 1.555 2010/12/28 14:37:10 freddy77 Exp $");
++TDS_RCSID(var, "$Id: odbc.c,v 1.556 2011/03/30 11:29:34 freddy77 Exp $");
+ 
+ static SQLRETURN _SQLAllocConnect(SQLHENV henv, SQLHDBC FAR * phdbc);
+ static SQLRETURN _SQLAllocEnv(SQLHENV FAR * phenv, SQLINTEGER odbc_version);
+@@ -500,17 +500,16 @@ odbc_prepare(TDS_STMT *stmt)
+ 			stmt->errs.lastrc = SQL_ERROR;
+ 			break;
+ 		}
+-
+-		if (stmt->dbc->current_statement == stmt)
+-			stmt->dbc->current_statement = NULL;
+-		if (stmt->errs.lastrc == SQL_ERROR && !stmt->dyn->emulated) {
+-			TDSDYNAMIC *dyn = stmt->dyn;
+-			stmt->dyn = NULL;
+-			tds_free_dynamic(tds, dyn);
+-		}
+-		ODBC_RETURN_(stmt);
++		break;
+ 	}
+ 
++	if (stmt->dbc->current_statement == stmt)
++		stmt->dbc->current_statement = NULL;
++	if (stmt->errs.lastrc == SQL_ERROR && !stmt->dyn->emulated) {
++		TDSDYNAMIC *dyn = stmt->dyn;
++		stmt->dyn = NULL;
++		tds_free_dynamic(tds, dyn);
++	}
+ 	stmt->need_reprepare = 0;
+ 	ODBC_RETURN_(stmt);
+ }
+@@ -7112,7 +7111,7 @@ odbc_free_dynamic(TDS_STMT * stmt)
+ 	TDSSOCKET *tds = stmt->dbc->tds_socket;
+ 
+ 	if (stmt->dyn) {
+-		if (stmt->dyn->emulated) {
++		if (!tds_needs_unprepare(tds, stmt->dyn)) {
+ 			tds_free_dynamic(tds, stmt->dyn);
+ 			stmt->dyn = NULL;
+ 		} else if (tds_submit_unprepare(tds, stmt->dyn) == TDS_SUCCEED) {
+diff --git a/src/tds/query.c b/src/tds/query.c
+index 899bb09..3e1e608 100644
+--- a/src/tds/query.c
++++ b/src/tds/query.c
+@@ -46,7 +46,7 @@
+ 
+ #include <assert.h>
+ 
+-TDS_RCSID(var, "$Id: query.c,v 1.246 2011/01/12 09:21:11 freddy77 Exp $");
++TDS_RCSID(var, "$Id: query.c,v 1.247 2011/03/30 11:29:34 freddy77 Exp $");
+ 
+ static void tds_put_params(TDSSOCKET * tds, TDSPARAMINFO * info, int flags);
+ static void tds7_put_query_params(TDSSOCKET * tds, const char *query, size_t query_len);
+@@ -1900,6 +1900,22 @@ tds_put_params(TDSSOCKET * tds, TDSPARAMINFO * info, int flags)
+ 	}
+ }
+ 
++int
++tds_needs_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn)
++{
++	CHECK_TDS_EXTRA(tds);
++	CHECK_DYNAMIC_EXTRA(dyn);
++
++	// check if statement is prepared
++	if (IS_TDS7_PLUS(tds) && !dyn->num_id)
++		return 0;
++
++	if (dyn->emulated)
++		return 0;
++
++	return 1;
++}
++
+ /**
+  * Send a unprepare request for a prepared query
+  * \param tds state information for the socket and the TDS protocol
+
+commit 1bf29e550aea989d29b9500ee4cc9e3e0594160b
+Author: freddy77 <freddy77>
+Date:   Wed Mar 30 12:53:19 2011 +0000
+
+    future developing version!
+
+diff --git a/ChangeLog b/ChangeLog
+index 73910cd..b5aecf3 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++Wed Mar 30 14:53:04 CEST 2011    Frediano Ziglio <freddy77_A_gmail_D_com>
++	* configure.ac: future developing version!
++
+ Wed Mar 30 13:29:15 CEST 2011    Frediano Ziglio <freddy77_A_gmail_D_com>
+ 	* include/tds.h src/odbc/odbc.c src/tds/query.c:
+ 	- avoid unnecessary prepare and unprepare
+@@ -3197,4 +3200,4 @@ Wed Jan  9 19:54:43 EST 2008	JK Lowden <jklowden@freetds.org>
+ 	* ChangeLog-0.82 added because of release
+ 	
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3205 2011/03/30 11:29:34 freddy77 Exp $
++$Id: ChangeLog,v 1.3206 2011/03/30 12:53:19 freddy77 Exp $
+diff --git a/configure.ac b/configure.ac
+index 3d6b95b..e05146a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,7 +1,7 @@
+ dnl Process this file with autoconf to produce a configure script.
+ 
+ dnl ------------------------------------------------------------
+-dnl $Id: configure.ac,v 1.60 2010/12/28 14:37:10 freddy77 Exp $
++dnl $Id: configure.ac,v 1.61 2011/03/30 12:53:19 freddy77 Exp $
+ dnl If you're trying to create a new configure test, try
+ dnl
+ dnl 	http://autogen.sourceforge.net/conftest.html
+@@ -12,10 +12,10 @@ dnl ------------------------------------------------------------
+ # ------------------------------------------------------------
+ # Initialization
+ # ------------------------------------------------------------
+-AC_INIT(FreeTDS, 0.83.dev.esyscmd(printf $(date +"%Y%m%d")))
++AC_INIT(FreeTDS, 0.92.dev.esyscmd(printf $(date +"%Y%m%d")))
+ AC_CONFIG_SRCDIR(src/dblib/dblib.c)
+ AC_PREREQ(2.53)
+-AC_REVISION($Revision: 1.60 $)
++AC_REVISION($Revision: 1.61 $)
+ 
+ AM_INIT_AUTOMAKE([dist-bzip2])
+ AC_CONFIG_HEADERS(include/config.h)