uw                                       Fri, 02 Sep 2011 11:06:51 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=316034

Log:
Hopefully, this is an even better way to check for InnoDB support as of MySQL 
5.6.1

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqli/tests/connect.inc
    U   php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/mysql_pdo_test.inc
    U   php/php-src/branches/PHP_5_4/ext/mysqli/tests/connect.inc
    U   php/php-src/branches/PHP_5_4/ext/pdo_mysql/tests/mysql_pdo_test.inc
    U   php/php-src/trunk/ext/mysqli/tests/connect.inc
    U   php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc

Modified: php/php-src/branches/PHP_5_3/ext/mysqli/tests/connect.inc
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqli/tests/connect.inc   2011-09-02 
10:38:51 UTC (rev 316033)
+++ php/php-src/branches/PHP_5_3/ext/mysqli/tests/connect.inc   2011-09-02 
11:06:51 UTC (rev 316034)
@@ -234,7 +234,12 @@
                                /* MySQL 5.6.1+ */
                                if ($res = $link->query("SHOW ENGINES")) {
                                        while ($row = $res->fetch_assoc()) {
-                                               if (('InnoDB' == 
$row['Engine']) && ('YES' == $row['Support'])) {
+                                               if (!isset($row['Engine']) || 
!isset($row['Support']))
+                                                       return false;
+
+                                               if (('InnoDB' == 
$row['Engine']) &&
+                                                       (('YES' == 
$row['Support']) || ('DEFAULT' == $row['Support']))
+                                                       ) {
                                                        return true;
                                                }
                                        }

Modified: php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/mysql_pdo_test.inc
===================================================================
--- php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/mysql_pdo_test.inc 
2011-09-02 10:38:51 UTC (rev 316033)
+++ php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/mysql_pdo_test.inc 
2011-09-02 11:06:51 UTC (rev 316034)
@@ -141,12 +141,19 @@

        }

-       static function detect_transactional_mysql_engine($db) {
+       static function detect_transactional_mysql_engine($db) {
                foreach ($db->query("show variables like 'have%'") as $row) {
-                       if ($row[1] == 'YES' && ($row[0] == 'have_innodb' || 
$row[0] == 'have_bdb')) {
+                       if (!empty($row) && $row[1] == 'YES' && ($row[0] == 
'have_innodb' || $row[0] == 'have_bdb')) {
                                return str_replace("have_", "", $row[0]);
                        }
                }
+               /* MySQL 5.6.1+ */
+               foreach ($db->query("SHOW ENGINES") as $row) {
+                       if (isset($row['engine']) && isset($row['support'])) {
+                                if ('InnoDB' == $row['engine'] && ('YES' == 
$row['support'] || 'DEFAULT' == $row['support']))
+                                       return 'innodb';
+                       }
+               }
                return false;
        }


Modified: php/php-src/branches/PHP_5_4/ext/mysqli/tests/connect.inc
===================================================================
--- php/php-src/branches/PHP_5_4/ext/mysqli/tests/connect.inc   2011-09-02 
10:38:51 UTC (rev 316033)
+++ php/php-src/branches/PHP_5_4/ext/mysqli/tests/connect.inc   2011-09-02 
11:06:51 UTC (rev 316034)
@@ -234,7 +234,12 @@
                                /* MySQL 5.6.1+ */
                                if ($res = $link->query("SHOW ENGINES")) {
                                        while ($row = $res->fetch_assoc()) {
-                                               if (('InnoDB' == 
$row['Engine']) && ('YES' == $row['Support'])) {
+                                               if (!isset($row['Engine']) || 
!isset($row['Support']))
+                                                       return false;
+
+                                               if (('InnoDB' == 
$row['Engine']) &&
+                                                       (('YES' == 
$row['Support']) || ('DEFAULT' == $row['Support']))
+                                                       ) {
                                                        return true;
                                                }
                                        }

Modified: php/php-src/branches/PHP_5_4/ext/pdo_mysql/tests/mysql_pdo_test.inc
===================================================================
--- php/php-src/branches/PHP_5_4/ext/pdo_mysql/tests/mysql_pdo_test.inc 
2011-09-02 10:38:51 UTC (rev 316033)
+++ php/php-src/branches/PHP_5_4/ext/pdo_mysql/tests/mysql_pdo_test.inc 
2011-09-02 11:06:51 UTC (rev 316034)
@@ -141,12 +141,19 @@

        }

-       static function detect_transactional_mysql_engine($db) {
+       static function detect_transactional_mysql_engine($db) {
                foreach ($db->query("show variables like 'have%'") as $row) {
-                       if ($row[1] == 'YES' && ($row[0] == 'have_innodb' || 
$row[0] == 'have_bdb')) {
+                       if (!empty($row) && $row[1] == 'YES' && ($row[0] == 
'have_innodb' || $row[0] == 'have_bdb')) {
                                return str_replace("have_", "", $row[0]);
                        }
                }
+               /* MySQL 5.6.1+ */
+               foreach ($db->query("SHOW ENGINES") as $row) {
+                       if (isset($row['engine']) && isset($row['support'])) {
+                                if ('InnoDB' == $row['engine'] && ('YES' == 
$row['support'] || 'DEFAULT' == $row['support']))
+                                       return 'innodb';
+                       }
+               }
                return false;
        }


Modified: php/php-src/trunk/ext/mysqli/tests/connect.inc
===================================================================
--- php/php-src/trunk/ext/mysqli/tests/connect.inc      2011-09-02 10:38:51 UTC 
(rev 316033)
+++ php/php-src/trunk/ext/mysqli/tests/connect.inc      2011-09-02 11:06:51 UTC 
(rev 316034)
@@ -234,7 +234,12 @@
                                /* MySQL 5.6.1+ */
                                if ($res = $link->query("SHOW ENGINES")) {
                                        while ($row = $res->fetch_assoc()) {
-                                               if (('InnoDB' == 
$row['Engine']) && ('YES' == $row['Support'])) {
+                                               if (!isset($row['Engine']) || 
!isset($row['Support']))
+                                                       return false;
+
+                                               if (('InnoDB' == 
$row['Engine']) &&
+                                                       (('YES' == 
$row['Support']) || ('DEFAULT' == $row['Support']))
+                                                       ) {
                                                        return true;
                                                }
                                        }

Modified: php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc
===================================================================
--- php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc    2011-09-02 
10:38:51 UTC (rev 316033)
+++ php/php-src/trunk/ext/pdo_mysql/tests/mysql_pdo_test.inc    2011-09-02 
11:06:51 UTC (rev 316034)
@@ -141,12 +141,19 @@

        }

-       static function detect_transactional_mysql_engine($db) {
+       static function detect_transactional_mysql_engine($db) {
                foreach ($db->query("show variables like 'have%'") as $row) {
-                       if ($row[1] == 'YES' && ($row[0] == 'have_innodb' || 
$row[0] == 'have_bdb')) {
+                       if (!empty($row) && $row[1] == 'YES' && ($row[0] == 
'have_innodb' || $row[0] == 'have_bdb')) {
                                return str_replace("have_", "", $row[0]);
                        }
                }
+               /* MySQL 5.6.1+ */
+               foreach ($db->query("SHOW ENGINES") as $row) {
+                       if (isset($row['engine']) && isset($row['support'])) {
+                                if ('InnoDB' == $row['engine'] && ('YES' == 
$row['support'] || 'DEFAULT' == $row['support']))
+                                       return 'innodb';
+                       }
+               }
                return false;
        }


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to