diff options
| author | Sergey Skvortsov <skv@FreeBSD.org> | 2005-09-13 09:21:21 +0000 |
|---|---|---|
| committer | Sergey Skvortsov <skv@FreeBSD.org> | 2005-09-13 09:21:21 +0000 |
| commit | c1fae7115ff19dca3b215b50b303b1bb41d5d8de (patch) | |
| tree | 2f5b35eb79d34b32840f178d77bfe911b35ceb30 /databases/p5-DBD-InterBase/files/patch-dbdimp.c | |
| parent | Update to 0.79. (diff) | |
Update to 0.44
Changes: http://search.cpan.org/src/EDPRATOMO/DBD-InterBase-0.44/Changes
Diffstat (limited to '')
| -rw-r--r-- | databases/p5-DBD-InterBase/files/patch-dbdimp.c | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/databases/p5-DBD-InterBase/files/patch-dbdimp.c b/databases/p5-DBD-InterBase/files/patch-dbdimp.c deleted file mode 100644 index 81b372f60d10..000000000000 --- a/databases/p5-DBD-InterBase/files/patch-dbdimp.c +++ /dev/null @@ -1,174 +0,0 @@ ---- dbdimp.c.old Wed Feb 25 07:38:03 2004 -+++ dbdimp.c Mon Mar 14 20:23:19 2005 -@@ -1002,9 +1002,6 @@ - { - D_imp_dbh_from_sth; - ISC_STATUS status[ISC_STATUS_LENGTH]; -- char stmt_info[1], count_info[1]; -- char info_buffer[20], count_buffer[33]; -- char *p; - int result = -2; - int row_count = 0; - -@@ -1543,7 +1540,10 @@ - blob_info_buffer); - - if (ib_error_check(sth, status)) -+ { -+ isc_cancel_blob(status, &blob_handle); - return FALSE; -+ } - - /* Get the information out of the info buffer. */ - for (p = blob_info_buffer; *p != isc_info_end; ) -@@ -1590,7 +1590,7 @@ - if ((DBIc_LongReadLen(imp_sth) < (unsigned long) total_length) && - (! DBIc_is(imp_dbh, DBIcf_LongTruncOk))) - { -- isc_cancel_blob(status, &blob_handle); -+ isc_close_blob(status, &blob_handle); - do_error(sth, 1, "Not enough LongReadLen buffer."); - return FALSE; - break; -@@ -1603,7 +1603,7 @@ - sv_setpvn(sv, "** Blob exceeds maximum safe length **", 38); - - /* I deliberately don't set FAILURE based on this. */ -- isc_cancel_blob(status, &blob_handle); -+ isc_close_blob(status, &blob_handle); - if (ib_error_check(sth, status)) - return FALSE; - break; -@@ -1620,12 +1620,15 @@ - (short) BLOB_SEGMENT, - blob_segment_buffer); - -+ if (status[1] == isc_segstr_eof) -+ break; -+ - if (status[1] != isc_segment) - if (ib_error_check(sth, status)) -+ { -+ isc_cancel_blob(status, &blob_handle); - return FALSE; -- -- if (status[1] == isc_segstr_eof) -- break; -+ } - - if (seg_length > DBIc_LongReadLen(imp_sth)) - break; -@@ -1744,11 +1747,7 @@ - DBI_TRACE(2, (DBILOGFP, "dbd_st_destroy\n")); - - /* freeing cursor name */ -- if (imp_sth->cursor_name != NULL) -- { -- safefree(imp_sth->cursor_name); -- imp_sth->cursor_name = NULL; -- } -+ FREE_SETNULL(imp_sth->cursor_name); - - /* freeing in_sqlda */ - if (imp_sth->in_sqlda) -@@ -1955,31 +1954,6 @@ - - DBI_TRACE(2, (DBILOGFP, "dbd_st_STORE - %s\n", key)); - -- if ((kl == 13) && (strcmp(key, "ib_cursorname") == 0)) -- { -- if (DBIc_ACTIVE(imp_sth)) -- { -- do_error(sth, 1, "Can't modify active statement cursor name."); -- return FALSE; -- } -- else -- { -- STRLEN vl; -- char *value = SvPV(valuesv, vl); -- -- if (imp_sth->cursor_name != NULL) -- { -- safefree(imp_sth->cursor_name); -- imp_sth->cursor_name = NULL; -- } -- imp_sth->cursor_name = (char *)safemalloc(vl + 1); -- -- if (imp_sth->cursor_name != NULL) -- strcpy(imp_sth->cursor_name, value); -- else -- return FALSE; -- } -- } - return FALSE; - } - -@@ -2185,7 +2159,7 @@ - DBI_TRACE(1, (DBILOGFP, "ib_fill_isqlda: SQL_VARYING\n")); - { - char buf[25]; /* long long can have max 20 chars. */ -- char *tmp; -+ char *tmp = NULL; - if (ivar->sqldata == (char *) NULL) - { - if ((ivar->sqldata = (char *)safemalloc( -@@ -2204,7 +2178,7 @@ - tmp = buf; - len = sprintf(tmp, "%ld", SvNV(value)); - } -- else if (SvPOK(value)) { -+ else if (SvPOK(value) || (SvTYPE(value) == SVt_PVMG)) { - len = SvCUR(value); - tmp = SvPV_nolen(value); - } -@@ -2249,7 +2223,6 @@ - { - do_error(sth, 2, "Cannot allocate buffer for TEXT input parameter \n"); - retval = FALSE; -- safefree(tmp); - break; - } - } -@@ -2261,7 +2234,7 @@ - tmp = buf; - len = sprintf(tmp, "%ld", SvNV(value)); - } -- else if (SvPOK(value)) { -+ else if (SvPOK(value) || (SvTYPE(value) == SVt_PVMG)) { - len = SvCUR(value); - tmp = SvPV_nolen(value); - } -@@ -2579,6 +2552,12 @@ - - ivar->sqltype = SQL_TEXT | (ivar->sqltype & 1); - -+ /* prevent overflow */ -+ if (len > 100) { -+ do_error(sth, 2, "DATE input parameter too long, but will try...\n"); -+ len = 100; -+ } -+ - /* workaround for date problem (bug #429820) */ - ivar->sqlsubtype = 0x77; /* (0x77 is a random value) */ - -@@ -2696,8 +2675,18 @@ - case SQL_BLOB: - DBI_TRACE(1, (DBILOGFP, "ib_fill_isqlda: SQL_BLOB\n")); - -- /* we have an extra function for this */ -- retval = ib_blob_write(sth, imp_sth, ivar, value); -+ /* SELECT's can't have a blob as in_sqlda. */ -+ if ((imp_sth->type == isc_info_sql_stmt_select) || -+ (imp_sth->type == isc_info_sql_stmt_select_for_upd)) -+ { -+ do_error(sth, 2, "BLOB as an input param for SELECT is not allowed.\n"); -+ retval = FALSE; -+ break; -+ } -+ else -+ /* we have an extra function for this */ -+ retval = ib_blob_write(sth, imp_sth, ivar, value); -+ - break; - - /**********************************************************************/ |
