Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:32003 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 8835 invoked by uid 1010); 31 Aug 2007 18:04:51 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 8816 invoked from network); 31 Aug 2007 18:04:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 31 Aug 2007 18:04:50 -0000 Authentication-Results: pb1.pair.com header.from=php@hristov.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=php@hristov.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain hristov.com from 85.92.73.163 cause and error) X-PHP-List-Original-Sender: php@hristov.com X-Host-Fingerprint: 85.92.73.163 iko.gotobg.net Received: from [85.92.73.163] ([85.92.73.163:60920] helo=iko.gotobg.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E4/60-06172-04858D64 for ; Fri, 31 Aug 2007 14:04:49 -0400 Received: from androto.ddns.playtime.bg ([87.120.219.11] helo=[192.168.1.22]) by iko.gotobg.net with esmtpa (Exim 4.66) (envelope-from ) id 1IRAka-0007Kk-Uj; Fri, 31 Aug 2007 20:57:45 +0300 Message-ID: <46D857D1.5060201@hristov.com> Date: Fri, 31 Aug 2007 21:02:57 +0300 User-Agent: Thunderbird 1.5.0.7 (X11/20060911) MIME-Version: 1.0 To: BuildSmart CC: PHP Developers Mailing List References: <6ADD6B47-9E03-4588-873D-83AFD3021ECF@daleenterprise.com> <1188458314.3347.0.camel@localhost.localdomain> <675F8900-8D4A-4013-8F7F-4D035ACD49AA@daleenterprise.com> <46D81AF2.1060900@hristov.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - iko.gotobg.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - hristov.com X-Source: X-Source-Args: X-Source-Dir: Subject: Re: [PHP-DEV] PHP6 - fixed mysql/mysqlnd/mysqli/pdo_mysql From: php@hristov.com (Andrey Hristov) 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 >