Re: PHP6 - fixed mysql/mysqlnd/mysqli/pdo_mysql
| From: | BuildSmart | Date: | Fri, 31 Aug 2007 21:04:02 +0000 |
| Subject: | Re: PHP6 - fixed mysql/mysqlnd/mysqli/pdo_mysql | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals php.pecl.dev |
| Request: | Send a blank email to internals+get-32004@lists.php.net to get a copy of this message | ||
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Aug 31, 2007, at 14:02:57, Andrey Hristov wrote:
Hi Dale, BuildSmart wrote:I've only checked the versions that are vendor supplied (for Darwin / Mac OS X) 4.1.10, 4.1.13 and 5.0.24 so I couldn't tell you the specific version that it comes into play, perhaps a check if they are defined might be a direction to go rather than a version check unless you can isolate the specific version where these appeared. http://daleenterprise.com/patches/mysql_headers.tgzOn Aug 31, 2007, at 09:43:14, Andrey Hristov wrote:Yes, please. I don't have that ancient MySQL 4.1 :) I have tested with versions like 4.1.19, 20, 21Hi, BuildSmart wrote:On Aug 30, 2007, at 03:18:34, Jani Taskinen wrote:Perhaps you could send the diff to the list, or better yet, an url pointing to the place you uploaded the diff. And note: it should be unified diff. (diff -u)I don't understand the intention of the changes? What was the problem?Compile failures. The original #if tests had the same data in #else, obviously the original coder had the right intentions but forgot to check the data types. Things like MYSQL_TYPE_VARCHAR don't exist in 4.1.13 and below, I checked the header files for 4.1.10 and 4.1.13 and removed the ones that didn't exist. I can send you the header files if you wish?
- -- Dale -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (Darwin) iD8DBQFG2IJD0hzWbkf0eKgRAh9lAJ9fBNIBvYsfxGeSeXoTBDPLVcwT5gCfQ9nk ooSXEThB5v/U9jCxnhCTS9I= =f34o -----END PGP SIGNATURE-----One of the files didn't check at all and it didn't compensate for the mysql version differences so the check was added to correct this.Greets, Andrey--Jani______________________________ A link to it: http://daleenterprise.com/patches/mysql.diff ______________________________ a unified diff: diff -ur ext.orig/mysql/php_mysql.c ext/mysql/php_mysql.c--- ext.orig/mysql/php_mysql.c 2007-08-06 11:11:46.000000000 -0400 +++ ext/mysql/php_mysql.c 2007-08-30 15:00:16.000000000 -0400@@ -1977,11 +1977,9 @@(f)->type == MYSQL_TYPE_VAR_STRING || (f)->type ==MYSQL_TYPE_VARCHAR || \(f)->type == MYSQL_TYPE_STRING)&& (f)->charsetnr ==MYSQL_BINARY_CHARSET_NR) #else -#define IS_BINARY_DATA(f) (((f)->type == MYSQL_TYPE_TINY_BLOB || (f)->type == MYSQL_TYPE_BLOB || \ +#define IS_BINARY_DATA(f) ((f)->type == MYSQL_TYPE_TINY_BLOB || (f)->type == MYSQL_TYPE_BLOB || \(f)->type == MYSQL_TYPE_MEDIUM_BLOB || (f)->type ==MYSQL_TYPE_LONG_BLOB || \- (f)->type == MYSQL_TYPE_VAR_STRING || \ (f)->type ==MYSQL_TYPE_VARCHAR || \- (f)->type == MYSQL_TYPE_STRING)&& (f)->charsetnr ==MYSQL_BINARY_CHARSET_NR) -+ (f)->type == MYSQL_TYPE_VAR_STRING || (f)->type ==MYSQL_TYPE_STRING) #endif /* {{{ php_mysql_fetch_hash diff -ur ext.orig/mysqli/mysqli.c ext/mysqli/mysqli.c--- ext.orig/mysqli/mysqli.c 2007-07-24 12:13:25.000000000 -0400 +++ ext/mysqli/mysqli.c 2007-08-30 15:01:02.000000000 -0400@@ -947,11 +947,16 @@ #define MYSQL_BINARY_CHARSET_NR 63 +#if MYSQL_VERSION_ID > 50002 || defined(HAVE_MYSQLND) #define IS_BINARY_DATA(f) (((f).type == MYSQL_TYPE_TINY_BLOB || (f).type == MYSQL_TYPE_BLOB || \(f).type == MYSQL_TYPE_MEDIUM_BLOB || (f).type ==MYSQL_TYPE_LONG_BLOB || \(f).type == MYSQL_TYPE_BIT || (f).type == MYSQL_TYPE_VAR_STRING ||(f).type == MYSQL_TYPE_VARCHAR ||\(f).type == MYSQL_TYPE_STRING) && (f).charsetnr ==MYSQL_BINARY_CHARSET_NR) - +#else +#define IS_BINARY_DATA(f) ((f).type == MYSQL_TYPE_TINY_BLOB || (f).type == MYSQL_TYPE_BLOB || \+ (f).type == MYSQL_TYPE_MEDIUM_BLOB || (f).type ==MYSQL_TYPE_LONG_BLOB || \+ (f).type == MYSQL_TYPE_VAR_STRING || (f).type == MYSQL_TYPE_STRING)+#endif /* {{{ php_mysqli_fetch_into_hash */ diff -ur ext.orig/mysqli/mysqli_api.c ext/mysqli/mysqli_api.c--- ext.orig/mysqli/mysqli_api.c 2007-07-24 12:13:26.000000000 -0400 +++ ext/mysqli/mysqli_api.c 2007-08-30 15:01:02.000000000 -0400@@ -759,10 +759,9 @@(f).type == MYSQL_TYPE_STRING) && (f).charsetnr ==MYSQL_BINARY_CHARSET_NR) #else /* No BIT */ -#define IS_BINARY_DATA(f) (((f).type == MYSQL_TYPE_TINY_BLOB || (f).type == MYSQL_TYPE_BLOB || \ +#define IS_BINARY_DATA(f) ((f).type == MYSQL_TYPE_TINY_BLOB || (f).type == MYSQL_TYPE_BLOB || \(f).type == MYSQL_TYPE_MEDIUM_BLOB || (f).type ==MYSQL_TYPE_LONG_BLOB || \- (f).type == MYSQL_TYPE_VAR_STRING || (f).type ==MYSQL_TYPE_VARCHAR ||\- (f).type == MYSQL_TYPE_STRING) && (f).charsetnr ==MYSQL_BINARY_CHARSET_NR)+ (f).type == MYSQL_TYPE_VAR_STRING || (f).type == MYSQL_TYPE_STRING)#endif ______________________________ -- Dale--PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php-- BuildSmart