diff options
author | Anatol Belski <ab@php.net> | 2015-04-28 15:13:46 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-04-28 15:13:46 +0200 |
commit | b78f8220e7985c5851864ad9e79583c5df8cb045 (patch) | |
tree | 05c50e134db9562cd21905bcf73c4f94fe3bdb67 | |
parent | 7ccafe40c27336d5770d9158a522a7bc72b355f7 (diff) | |
parent | 1c7a902d8adc546bf81b0d9cdd42fcce139e18c3 (diff) | |
download | php-git-b78f8220e7985c5851864ad9e79583c5df8cb045.tar.gz |
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
updated NEWS
Fixed bug #69381 out of memory with sage odbc driver
-rw-r--r-- | ext/odbc/php_odbc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 231e8144f9..ddfbc4edbe 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -999,6 +999,15 @@ int odbc_bindcols(odbc_result *result TSRMLS_DC) default: rc = PHP_ODBC_SQLCOLATTRIBUTE(result->stmt, (SQLUSMALLINT)(i+1), colfieldid, NULL, 0, NULL, &displaysize); +#if defined(ODBCVER) && (ODBCVER >= 0x0300) + if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO && colfieldid == SQL_DESC_OCTET_LENGTH) { + /* This is a quirk for ODBC 2.0 compatibility for broken driver implementations. + */ + charextraalloc = 1; + rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE, + NULL, 0, NULL, &displaysize); + } +#endif /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */ if (result->values[i].coltype == SQL_TIMESTAMP) { displaysize += 3; |