File: 0057-ads_odbc_exec.patch

package info (click to toggle)
php5 5.6.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 150,376 kB
  • sloc: ansic: 727,510; php: 21,966; sh: 12,356; cpp: 8,763; xml: 6,105; yacc: 1,551; exp: 1,514; makefile: 1,461; pascal: 1,048; awk: 538; perl: 315; sql: 22
file content (26 lines) | stat: -rw-r--r-- 1,013 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
Date: Fri, 20 Mar 2015 12:08:49 +0100
Subject: ads_odbc_exec

---
 ext/odbc/php_odbc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

--- php5.orig/ext/odbc/php_odbc.c
+++ php5/ext/odbc/php_odbc.c
@@ -1006,6 +1006,15 @@ int odbc_bindcols(odbc_result *result TS
 			default:
 				rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), colfieldid,
 								NULL, 0, NULL, &displaysize);
+				if (colfieldid == SQL_DESC_OCTET_LENGTH && rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
+					/* Fallback to old method because ADS ODBC driver version 11 doesn't support
+					 * SQL_DESC_OCTET_LENGTH.
+					 */
+					charextraalloc = 1;
+					rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE,
+									NULL, 0, NULL, &displaysize);
+				}
+
 				/* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */
 				if (result->values[i].coltype == SQL_TIMESTAMP) {
 					displaysize += 3;