aboutsummaryrefslogtreecommitdiff
path: root/databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c
diff options
context:
space:
mode:
Diffstat (limited to 'databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c')
-rw-r--r--databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c b/databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c
new file mode 100644
index 000000000000..3c2e0f098d03
--- /dev/null
+++ b/databases/libdbi-drivers/files/patch-drivers__freetds__dbd_freetds.c
@@ -0,0 +1,66 @@
+--- drivers/freetds/dbd_freetds.c.orig Thu Sep 8 16:41:25 2005
++++ drivers/freetds/dbd_freetds.c Sat Oct 1 23:34:11 2005
+@@ -453,6 +453,7 @@
+ {
+ dbi_result_t *res;
+ char *sql_cmd;
++ char *current_db = NULL;
+
+ if (db == NULL || db[0] == '\0') {
+ /* Use current database */
+@@ -460,7 +461,6 @@
+ return res;
+ }
+
+- char *current_db = NULL;
+ if (conn->current_db)
+ /* Reserved current DB name */
+ current_db = strdup(conn->current_db);
+@@ -508,9 +508,9 @@
+ {
+ /* foo's -> 'foo''s' */
+ size_t len;
++ const char *escaped = "\'";
+
+ strcpy(dest, "\'");
+- const char *escaped = "\'";
+
+ len = _dbd_freetds_escape_chars(dest + 1, orig, strlen(orig), escaped);
+
+@@ -559,6 +559,8 @@
+ * everything else will be filled in by DBI */
+
+ unsigned int idx = 0;
++ unsigned short type = 0;
++ unsigned int attribs = 0;
+ dbi_result_t *result = NULL;
+ dbi_row_t *row = NULL;
+ FREETDSCON *tdscon = (FREETDSCON *) conn->connection;
+@@ -628,9 +630,6 @@
+ return NULL;
+ }
+
+- unsigned short type = 0;
+- unsigned int attribs = 0;
+-
+ _translate_freetds_type(datafmt[idx], &type, &attribs);
+ /* Fill fields value in result */
+ _dbd_result_add_field(result, idx, datafmt[idx]->name, type, attribs);
+@@ -884,6 +883,7 @@
+ dbi_row_t *row = NULL;
+ unsigned int idx = 0;
+ void *addr = NULL;
++ char **orig;
+
+ FREETDSCON *tdscon = (FREETDSCON *) conn->connection;
+
+@@ -911,8 +911,7 @@
+ dstfmt.format = CS_FMT_UNUSED;
+
+ addr = malloc(sizeof(CS_NUMERIC_TYPE));
+- char **orig =
+- &(result->rows[result->numrows_matched]->field_values[idx].d_string);
++ orig = &(result->rows[result->numrows_matched]->field_values[idx].d_string);
+
+ if (cs_convert(tdscon->ctx, datafmt[idx], *orig, &dstfmt, addr, NULL) !=
+ CS_SUCCEED) {