-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Aug 31, 2007, at 14:02:57, Andrey Hristov wrote:

 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

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.tgz


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

- -- Dale
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (Darwin)

iD8DBQFG2IJD0hzWbkf0eKgRAh9lAJ9fBNIBvYsfxGeSeXoTBDPLVcwT5gCfQ9nk
ooSXEThB5v/U9jCxnhCTS9I=
=f34o
-----END PGP SIGNATURE-----

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to