[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_0BETA4-1790-g52299e0

Michal Čihař nijel at users.sourceforge.net
Wed Apr 6 15:41:41 CEST 2011


The branch, master has been updated
       via  52299e0658c4f21fbcfdae60c5f26b587d2af4d3 (commit)
       via  2d540f73b33740b3ecfbc24d6bdb4b204c998c47 (commit)
       via  e264e9f112d917c4170ad432f9f61660c9eddbb4 (commit)
       via  d421c85a5c9912fdc0e728a811940870c5f7dc9f (commit)
       via  4c957837eb6c90259ca6afb80257a31ce33685e0 (commit)
      from  864bf00d97d70001d6446ed87389a8b3942360d7 (commit)


- Log -----------------------------------------------------------------
commit 52299e0658c4f21fbcfdae60c5f26b587d2af4d3
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Tue Apr 5 16:02:46 2011 +0200

    Drizzle-compatible Status tab

commit 2d540f73b33740b3ecfbc24d6bdb4b204c998c47
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Tue Apr 5 16:02:16 2011 +0200

    Drizzle-compatible Processes tab

commit e264e9f112d917c4170ad432f9f61660c9eddbb4
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Tue Apr 5 16:01:35 2011 +0200

    Hide password change for Drizzle

commit d421c85a5c9912fdc0e728a811940870c5f7dc9f
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Tue Apr 5 16:00:44 2011 +0200

    Make Charsets tab read charset and collation info from information_schema (MySQL) / data_dictionary (Drizzle) instead of SHOW statements

commit 4c957837eb6c90259ca6afb80257a31ce33685e0
Author: Piotr Przybylski <piotrprz at gmail.com>
Date:   Tue Apr 5 15:58:11 2011 +0200

    Introduce PMA_DRIZZLE constant

-----------------------------------------------------------------------

Summary of changes:
 libraries/database_interface.lib.php |    4 ++-
 libraries/mysql_charsets.lib.php     |   52 +++++++++++++++++-----------------
 main.php                             |   25 ++++++++--------
 server_processlist.php               |   16 ++++++++++-
 server_status.php                    |    9 ++++-
 5 files changed, 64 insertions(+), 42 deletions(-)

diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php
index 192cf0e..c1b34e0 100644
--- a/libraries/database_interface.lib.php
+++ b/libraries/database_interface.lib.php
@@ -985,10 +985,12 @@ function PMA_DBI_postConnect($link, $is_controluser = false)
             PMA_cacheSet('PMA_MYSQL_MAJOR_VERSION', PMA_MYSQL_MAJOR_VERSION, true);
             PMA_cacheSet('PMA_MYSQL_STR_VERSION', PMA_MYSQL_STR_VERSION, true);
         }
+        // detect Drizzle by version number (year.month.day.?patch-version)
+        define('PMA_DRIZZLE', PMA_MYSQL_MAJOR_VERSION >= 2009);
     }
 
     /* Skip charsets for Drizzle */
-    if (PMA_MYSQL_MAJOR_VERSION < 2009) {
+    if (!PMA_DRIZZLE) {
         if (! empty($GLOBALS['collation_connection'])) {
             PMA_DBI_query("SET CHARACTER SET 'utf8';", $link, PMA_DBI_QUERY_STORE);
             PMA_DBI_query("SET collation_connection = '" . PMA_sqlAddslashes($GLOBALS['collation_connection']) . "';", $link, PMA_DBI_QUERY_STORE);
diff --git a/libraries/mysql_charsets.lib.php b/libraries/mysql_charsets.lib.php
index 5663dd9..45fd55a 100644
--- a/libraries/mysql_charsets.lib.php
+++ b/libraries/mysql_charsets.lib.php
@@ -11,26 +11,18 @@ if (! defined('PHPMYADMIN')) {
 /**
  *
  */
-if (PMA_MYSQL_MAJOR_VERSION >= 2009) {
-    /* There are no charsets in Drizzle */
-    $GLOBALS['mysql_charsets']                  = array();
-    $GLOBALS['mysql_charsets_descriptions']     = array('utf8' => 'UTF-8 Unicode');
-    $GLOBALS['mysql_charsets_count']            = 0;
-    $GLOBALS['mysql_charsets_available']        = array();
-    $GLOBALS['mysql_collations']                = array();
-    $GLOBALS['mysql_default_collations']        = array();
-    $GLOBALS['mysql_collations_flat']           = array();
-    $GLOBALS['mysql_collations_count']          = 0;
-    $GLOBALS['mysql_collations_available']      = array();
-} elseif (! PMA_cacheExists('mysql_charsets_count', true)) {
-    $res = PMA_DBI_query('SHOW CHARACTER SET;');
+if (! PMA_cacheExists('mysql_charsets_count', true)) {
+    $sql = PMA_DRIZZLE
+        ? 'SELECT * FROM data_dictionary.CHARACTER_SETS'
+        : 'SELECT * FROM information_schema.CHARACTER_SETS';
+    $res = PMA_DBI_query($sql);
 
     $mysql_charsets = array();
     while ($row = PMA_DBI_fetch_assoc($res)) {
-        $mysql_charsets[] = $row['Charset'];
+        $mysql_charsets[] = $row['CHARACTER_SET_NAME'];
         // never used
         //$mysql_charsets_maxlen[$row['Charset']] = $row['Maxlen'];
-        $mysql_charsets_descriptions[$row['Charset']] = $row['Description'];
+        $mysql_charsets_descriptions[$row['CHARACTER_SET_NAME']] = $row['DESCRIPTION'];
     }
     PMA_DBI_free_result($res);
 
@@ -40,26 +32,34 @@ if (PMA_MYSQL_MAJOR_VERSION >= 2009) {
     $mysql_collations = array_flip($mysql_charsets);
     $mysql_default_collations = $mysql_collations_flat = $mysql_charsets_available = $mysql_collations_available = array();
 
-    $res = PMA_DBI_query('SHOW COLLATION;');
+    $sql = PMA_DRIZZLE
+        ? 'SELECT * FROM data_dictionary.COLLATIONS'
+        : 'SELECT * FROM information_schema.COLLATIONS';
+    $res = PMA_DBI_query($sql);
     while ($row = PMA_DBI_fetch_assoc($res)) {
-        if (!is_array($mysql_collations[$row['Charset']])) {
-            $mysql_collations[$row['Charset']] = array($row['Collation']);
+        if (!is_array($mysql_collations[$row['CHARACTER_SET_NAME']])) {
+            $mysql_collations[$row['CHARACTER_SET_NAME']] = array($row['COLLATION_NAME']);
         } else {
-            $mysql_collations[$row['Charset']][] = $row['Collation'];
+            $mysql_collations[$row['CHARACTER_SET_NAME']][] = $row['COLLATION_NAME'];
         }
-        $mysql_collations_flat[] = $row['Collation'];
-        if ((isset($row['D']) && $row['D'] == 'Y') || (isset($row['Default']) && $row['Default'] == 'Yes')) {
-            $mysql_default_collations[$row['Charset']] = $row['Collation'];
+        $mysql_collations_flat[] = $row['COLLATION_NAME'];
+        if ($row['IS_DEFAULT'] == 'Yes') {
+            $mysql_default_collations[$row['CHARACTER_SET_NAME']] = $row['COLLATION_NAME'];
         }
         //$mysql_collations_available[$row['Collation']] = !isset($row['Compiled']) || $row['Compiled'] == 'Yes';
-        $mysql_collations_available[$row['Collation']] = TRUE;
-        $mysql_charsets_available[$row['Charset']] =
-            !empty($mysql_charsets_available[$row['Charset']])
-         || !empty($mysql_collations_available[$row['Collation']]);
+        $mysql_collations_available[$row['COLLATION_NAME']] = true;
+        $mysql_charsets_available[$row['CHARACTER_SET_NAME']] =
+            !empty($mysql_charsets_available[$row['CHARACTER_SET_NAME']])
+            || !empty($mysql_collations_available[$row['COLLATION_NAME']]);
     }
     PMA_DBI_free_result($res);
     unset($res, $row);
 
+    if (PMA_DRIZZLE && isset($mysql_collations['utf8_general_ci']) && isset($mysql_collations['utf8'])) {
+        $mysql_collations['utf8'] = $mysql_collations['utf8_general_ci'];
+        unset($mysql_collations['utf8_general_ci']);
+    }
+
     $mysql_collations_count = count($mysql_collations_flat);
     sort($mysql_collations_flat, SORT_STRING);
     foreach ($mysql_collations AS $key => $value) {
diff --git a/main.php b/main.php
index c29a508..e678d88 100644
--- a/main.php
+++ b/main.php
@@ -85,19 +85,20 @@ if ($server > 0
     if ($server > 0) {
         require_once './libraries/check_user_privileges.lib.php';
 
-        // Logout for advanced authentication
-        if ($cfg['Server']['auth_type'] != 'config') {
-            if ($cfg['ShowChgPassword']) {
-                if ($GLOBALS['cfg']['AjaxEnable']) {
-                    $conditional_class = 'ajax';
-                } else {
-                    $conditional_class = null;
+        if (!PMA_DRIZZLE) {
+            // Logout for advanced authentication
+            if ($cfg['Server']['auth_type'] != 'config') {
+                if ($cfg['ShowChgPassword']) {
+                    if ($GLOBALS['cfg']['AjaxEnable']) {
+                        $conditional_class = 'ajax';
+                    } else {
+                        $conditional_class = null;
+                    }
+                    PMA_printListItem(__('Change password'), 'li_change_password',
+                        './user_password.php?' . $common_url_query, null, null, 'change_password_anchor', null, $conditional_class);
                 }
-                PMA_printListItem(__('Change password'), 'li_change_password',
-                    './user_password.php?' . $common_url_query, null, null, 'change_password_anchor', null, $conditional_class);
-            }
-        } // end if
-        if (PMA_MYSQL_MAJOR_VERSION < 2009) {
+            } // end if
+
             echo '    <li id="li_select_mysql_collation">';
             echo '        <form method="post" action="index.php" target="_parent">' . "\n"
            . PMA_generate_common_hidden_inputs(null, null, 4, 'collation_connection')
diff --git a/server_processlist.php b/server_processlist.php
index ea31a76..12959d1 100644
--- a/server_processlist.php
+++ b/server_processlist.php
@@ -52,11 +52,16 @@ $result = PMA_DBI_query($sql_query);
 ?>
 <table id="tableprocesslist" class="data">
 <thead>
-<tr><td><a href="<?php echo $full_text_link; ?>"
+<tr>
+    <?php if (!PMA_DRIZZLE): ?>
+    <td><a href="<?php echo $full_text_link; ?>"
             title="<?php echo empty($full) ? __('Show Full Queries') : __('Truncate Shown Queries'); ?>">
         <img src="<?php echo $pmaThemeImage . 's_' . (empty($_REQUEST['full']) ? 'full' : 'partial'); ?>text.png"
             alt="<?php echo empty($_REQUEST['full']) ? __('Show Full Queries') : __('Truncate Shown Queries'); ?>" />
         </a></td>
+    <?php else: ?>
+    <th></th>
+    <?php endif; ?>
     <th><?php echo __('ID'); ?></th>
     <th><?php echo __('User'); ?></th>
     <th><?php echo __('Host'); ?></th>
@@ -71,6 +76,15 @@ $result = PMA_DBI_query($sql_query);
 <?php
 $odd_row = true;
 while($process = PMA_DBI_fetch_assoc($result)) {
+    if (PMA_DRIZZLE) {
+        // Drizzle uses uppercase keys
+        foreach ($process as $k => $v) {
+            $k = $k !== 'DB'
+                ? $k = ucfirst(strtolower($k))
+                : 'db';
+            $process[$k] = $v;
+        }
+    }
     $url_params['kill'] = $process['Id'];
     $kill_process = 'server_processlist.php' . PMA_generate_common_url($url_params);
     ?>
diff --git a/server_status.php b/server_status.php
index c67c63a..3b44a4a 100644
--- a/server_status.php
+++ b/server_status.php
@@ -653,8 +653,11 @@ $used_queries = $sections['com']['vars'];
 // reverse sort by value to show most used statements first
 arsort($used_queries);
 // remove all zero values from the end
-while (end($used_queries) == 0) {
-    array_pop($used_queries);
+// variable empty for Drizzle
+if ($used_queries) {
+    while (end($used_queries) == 0) {
+        array_pop($used_queries);
+    }
 }
 
 // number of tables to split values into
@@ -713,6 +716,7 @@ foreach ($used_queries as $name => $value) {
     <div class="clearfloat"></div>
 </div>
 
+<?php if ($used_queries): ?>
 <div id="serverstatusquerieschart">
 <?php
 	if (empty($_REQUEST["query_chart"])) {
@@ -726,6 +730,7 @@ foreach ($used_queries as $name => $value) {
 	}
 ?>
 </div>
+<?php endif; ?>
 
 <div id="serverstatussection">
 <?php


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list