Merge branch 'madhuracj-Bug4552' into QA_4_2
This commit is contained in:
commit
38f3ae91ce
@ -3,6 +3,7 @@ phpMyAdmin - ChangeLog
|
||||
|
||||
4.2.11.0 (not yet released)
|
||||
- bug ReferenceError: Table_onover is not defined
|
||||
- bug #4552 Incorrect routines display for database due to case insensitive checks
|
||||
|
||||
4.2.10.0 (2014-10-11)
|
||||
- bug #4361 Can't change font size (when config.inc.php not present)
|
||||
|
||||
@ -1903,7 +1903,8 @@ class PMA_DatabaseInterface
|
||||
. ', EVENT_OBJECT_TABLE, ACTION_TIMING, ACTION_STATEMENT'
|
||||
. ', EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE, DEFINER'
|
||||
. ' FROM information_schema.TRIGGERS'
|
||||
. ' WHERE TRIGGER_SCHEMA= \'' . PMA_Util::sqlAddSlashes($db) . '\'';
|
||||
. ' WHERE TRIGGER_SCHEMA ' . PMA_Util::getCollateForIS() . '='
|
||||
. ' \'' . PMA_Util::sqlAddSlashes($db) . '\'';
|
||||
|
||||
if (! empty($table)) {
|
||||
$query .= " AND EVENT_OBJECT_TABLE = '"
|
||||
|
||||
@ -4380,6 +4380,24 @@ class PMA_Util
|
||||
}
|
||||
return 'none';
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide COLLATE clause, if required, to perfrom case sensitice comparisons
|
||||
* for queries on information_schema.
|
||||
*
|
||||
* @return string COLLATE clause if needed or empty string.
|
||||
*/
|
||||
public static function getCollateForIS()
|
||||
{
|
||||
$lowerCaseTableNames = $GLOBALS['dbi']->fetchValue(
|
||||
"SHOW VARIABLES LIKE 'lower_case_table_names'", 0, 1
|
||||
);
|
||||
|
||||
if ($lowerCaseTableNames === '0') {
|
||||
return "COLLATE utf8_bin";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -117,7 +117,8 @@ class Node_Database extends Node
|
||||
$db = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT COUNT(*) ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`ROUTINES` ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA`='$db'";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$db'";
|
||||
$query .= "AND `ROUTINE_TYPE`='PROCEDURE' ";
|
||||
if (! empty($searchClause)) {
|
||||
if ($singleItem) {
|
||||
@ -140,7 +141,8 @@ class Node_Database extends Node
|
||||
$db = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT COUNT(*) ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`ROUTINES` ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA`='$db' ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$db' ";
|
||||
$query .= "AND `ROUTINE_TYPE`='FUNCTION' ";
|
||||
if (! empty($searchClause)) {
|
||||
if ($singleItem) {
|
||||
@ -163,7 +165,8 @@ class Node_Database extends Node
|
||||
$db = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT COUNT(*) ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`EVENTS` ";
|
||||
$query .= "WHERE `EVENT_SCHEMA`='$db' ";
|
||||
$query .= "WHERE `EVENT_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$db' ";
|
||||
if (! empty($searchClause)) {
|
||||
if ($singleItem) {
|
||||
$query .= "AND `EVENT_NAME` = '";
|
||||
@ -250,7 +253,8 @@ class Node_Database extends Node
|
||||
$escdDb = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT `ROUTINE_NAME` AS `name` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`ROUTINES` ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA`='$escdDb'";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$escdDb'";
|
||||
$query .= "AND `ROUTINE_TYPE`='PROCEDURE' ";
|
||||
if (! empty($searchClause)) {
|
||||
$query .= "AND `ROUTINE_NAME` LIKE '%";
|
||||
@ -267,7 +271,8 @@ class Node_Database extends Node
|
||||
$escdDb = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT `ROUTINE_NAME` AS `name` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`ROUTINES` ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA`='$escdDb' ";
|
||||
$query .= "WHERE `ROUTINE_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$escdDb' ";
|
||||
$query .= "AND `ROUTINE_TYPE`='FUNCTION' ";
|
||||
if (! empty($searchClause)) {
|
||||
$query .= "AND `ROUTINE_NAME` LIKE '%";
|
||||
@ -284,7 +289,8 @@ class Node_Database extends Node
|
||||
$escdDb = PMA_Util::sqlAddSlashes($db);
|
||||
$query = "SELECT `EVENT_NAME` AS `name` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`EVENTS` ";
|
||||
$query .= "WHERE `EVENT_SCHEMA`='$escdDb' ";
|
||||
$query .= "WHERE `EVENT_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$escdDb' ";
|
||||
if (! empty($searchClause)) {
|
||||
$query .= "AND `EVENT_NAME` LIKE '%";
|
||||
$query .= PMA_Util::sqlAddSlashes(
|
||||
|
||||
@ -98,8 +98,10 @@ class Node_Table extends Node_DatabaseChild
|
||||
$table = PMA_Util::sqlAddSlashes($table);
|
||||
$query = "SELECT COUNT(*) ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`TRIGGERS` ";
|
||||
$query .= "WHERE `EVENT_OBJECT_SCHEMA`='$db' ";
|
||||
$query .= "AND `EVENT_OBJECT_TABLE`='$table'";
|
||||
$query .= "WHERE `EVENT_OBJECT_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$db' ";
|
||||
$query .= "AND `EVENT_OBJECT_TABLE` "
|
||||
. PMA_Util::getCollateForIS() . "='$table'";
|
||||
$retval = (int)$GLOBALS['dbi']->fetchValue($query);
|
||||
break;
|
||||
default:
|
||||
@ -161,8 +163,10 @@ class Node_Table extends Node_DatabaseChild
|
||||
$table = PMA_Util::sqlAddSlashes($table);
|
||||
$query = "SELECT `TRIGGER_NAME` AS `name` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`TRIGGERS` ";
|
||||
$query .= "WHERE `EVENT_OBJECT_SCHEMA`='$db' ";
|
||||
$query .= "AND `EVENT_OBJECT_TABLE`='$table' ";
|
||||
$query .= "WHERE `EVENT_OBJECT_SCHEMA` "
|
||||
. PMA_Util::getCollateForIS() . "='$db' ";
|
||||
$query .= "AND `EVENT_OBJECT_TABLE` "
|
||||
. PMA_Util::getCollateForIS() . "='$table' ";
|
||||
$query .= "ORDER BY `TRIGGER_NAME` ASC ";
|
||||
$query .= "LIMIT " . intval($pos) . ", $maxItems";
|
||||
$retval = $GLOBALS['dbi']->fetchResult($query);
|
||||
|
||||
@ -64,7 +64,8 @@ function PMA_EVN_main()
|
||||
* Display a list of available events
|
||||
*/
|
||||
$columns = "`EVENT_NAME`, `EVENT_TYPE`, `STATUS`";
|
||||
$where = "EVENT_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "'";
|
||||
$where = "EVENT_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "'";
|
||||
$query = "SELECT $columns FROM `INFORMATION_SCHEMA`.`EVENTS` "
|
||||
. "WHERE $where ORDER BY `EVENT_NAME` ASC;";
|
||||
$items = $GLOBALS['dbi']->fetchResult($query);
|
||||
@ -191,7 +192,8 @@ function PMA_EVN_handleEditor()
|
||||
$response = PMA_Response::getInstance();
|
||||
if ($message->isSuccess()) {
|
||||
$columns = "`EVENT_NAME`, `EVENT_TYPE`, `STATUS`";
|
||||
$where = "EVENT_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
$where = "EVENT_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
. "AND EVENT_NAME='"
|
||||
. PMA_Util::sqlAddSlashes($_REQUEST['item_name']) . "'";
|
||||
$query = "SELECT " . $columns
|
||||
@ -325,7 +327,8 @@ function PMA_EVN_getDataFromName($name)
|
||||
$columns = "`EVENT_NAME`, `STATUS`, `EVENT_TYPE`, `EXECUTE_AT`, "
|
||||
. "`INTERVAL_VALUE`, `INTERVAL_FIELD`, `STARTS`, `ENDS`, "
|
||||
. "`EVENT_DEFINITION`, `ON_COMPLETION`, `DEFINER`, `EVENT_COMMENT`";
|
||||
$where = "EVENT_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
$where = "EVENT_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
. "AND EVENT_NAME='" . PMA_Util::sqlAddSlashes($name) . "'";
|
||||
$query = "SELECT $columns FROM `INFORMATION_SCHEMA`.`EVENTS` WHERE $where;";
|
||||
$item = $GLOBALS['dbi']->fetchSingleRow($query);
|
||||
|
||||
@ -55,7 +55,8 @@ function PMA_RTN_main($type)
|
||||
*/
|
||||
$columns = "`SPECIFIC_NAME`, `ROUTINE_NAME`, `ROUTINE_TYPE`, ";
|
||||
$columns .= "`DTD_IDENTIFIER`, `ROUTINE_DEFINITION`";
|
||||
$where = "ROUTINE_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "'";
|
||||
$where = "ROUTINE_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "'";
|
||||
if (PMA_isValid($type, array('FUNCTION','PROCEDURE'))) {
|
||||
$where .= " AND `ROUTINE_TYPE`='" . $type . "'";
|
||||
}
|
||||
@ -392,7 +393,8 @@ function PMA_RTN_handleEditor()
|
||||
if ($message->isSuccess()) {
|
||||
$columns = "`SPECIFIC_NAME`, `ROUTINE_NAME`, `ROUTINE_TYPE`,"
|
||||
. " `DTD_IDENTIFIER`, `ROUTINE_DEFINITION`";
|
||||
$where = "ROUTINE_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
$where = "ROUTINE_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
. "AND ROUTINE_NAME='"
|
||||
. PMA_Util::sqlAddSlashes($_REQUEST['item_name']) . "'"
|
||||
. "AND ROUTINE_TYPE='"
|
||||
@ -625,7 +627,8 @@ function PMA_RTN_getDataFromName($name, $type, $all = true)
|
||||
$fields = "SPECIFIC_NAME, ROUTINE_TYPE, DTD_IDENTIFIER, "
|
||||
. "ROUTINE_DEFINITION, IS_DETERMINISTIC, SQL_DATA_ACCESS, "
|
||||
. "ROUTINE_COMMENT, SECURITY_TYPE";
|
||||
$where = "ROUTINE_SCHEMA='" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
$where = "ROUTINE_SCHEMA " . PMA_Util::getCollateForIS() . "="
|
||||
. "'" . PMA_Util::sqlAddSlashes($db) . "' "
|
||||
. "AND SPECIFIC_NAME='" . PMA_Util::sqlAddSlashes($name) . "'"
|
||||
. "AND ROUTINE_TYPE='" . PMA_Util::sqlAddSlashes($type) . "'";
|
||||
$query = "SELECT $fields FROM INFORMATION_SCHEMA.ROUTINES WHERE $where;";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user