Re: PHP6 - fixed mysql/mysqlnd/mysqli/pdo_mysql
| From: | Andrey Hristov | Date: | Fri, 31 Aug 2007 18:02:57 +0000 |
| Subject: | Re: PHP6 - fixed mysql/mysqlnd/mysqli/pdo_mysql | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-32003@lists.php.net to get a copy of this message | ||
Hi Dale,
BuildSmart wrote:
> On Aug 31, 2007, at 09:43:14, Andrey Hristov wrote:
>
>> Hi,
>> 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?
Yes, please. I don't have that ancient MySQL 4.1 :)
I have tested with versions like 4.1.19, 20, 21
> 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
>