From 0430ac63371e42fa0847ed78655b48769ba5fc6a Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Tue, 23 Dec 2014 12:53:12 +0530 Subject: [PATCH 1/2] #4663 Export missing back ticks for order table name Signed-off-by: Madhura Jayaratne --- libraries/Util.class.php | 2 +- libraries/plugins/export/ExportSql.class.php | 84 ++++++++++++------- .../plugin/export/PMA_ExportSql_test.php | 12 +-- .../common/PMA_quoting_slashing_test.php | 4 - 4 files changed, 62 insertions(+), 40 deletions(-) diff --git a/libraries/Util.class.php b/libraries/Util.class.php index bdb9035711..80e10f9589 100644 --- a/libraries/Util.class.php +++ b/libraries/Util.class.php @@ -949,7 +949,7 @@ class PMA_Util $quote = '"'; break; default: - (isset($GLOBALS['sql_backquotes'])) ? $quote = "`" : $quote = ''; + $quote = "`"; break; } diff --git a/libraries/plugins/export/ExportSql.class.php b/libraries/plugins/export/ExportSql.class.php index cb061b4261..9f1ebb72d9 100644 --- a/libraries/plugins/export/ExportSql.class.php +++ b/libraries/plugins/export/ExportSql.class.php @@ -773,8 +773,9 @@ class ExportSql extends ExportPlugin if (isset($GLOBALS['sql_drop_database'])) { if (! PMA_exportOutputHandler( 'DROP DATABASE ' - . (isset($GLOBALS['sql_backquotes']) - ? PMA_Util::backquoteCompat($db_alias, $compat) : $db_alias) + . PMA_Util::backquoteCompat( + $db_alias, $compat, isset($GLOBALS['sql_backquotes']) + ) . ';' . $crlf )) { return false; @@ -785,8 +786,9 @@ class ExportSql extends ExportPlugin } $create_query = 'CREATE DATABASE IF NOT EXISTS ' - . (isset($GLOBALS['sql_backquotes']) - ? PMA_Util::backquoteCompat($db_alias, $compat) : $db_alias); + . PMA_Util::backquoteCompat( + $db_alias, $compat, isset($GLOBALS['sql_backquotes']) + ); $collation = PMA_getDbCollation($db); if (PMA_DRIZZLE) { $create_query .= ' COLLATE ' . $collation; @@ -807,13 +809,15 @@ class ExportSql extends ExportPlugin if (! PMA_exportOutputHandler($create_query)) { return false; } - if (isset($GLOBALS['sql_backquotes']) - && ((isset($GLOBALS['sql_compatibility']) + if ((isset($GLOBALS['sql_compatibility']) && $GLOBALS['sql_compatibility'] == 'NONE') - || PMA_DRIZZLE) + || PMA_DRIZZLE ) { $result = PMA_exportOutputHandler( - 'USE ' . PMA_Util::backquoteCompat($db_alias, $compat) + 'USE ' + . PMA_Util::backquoteCompat( + $db_alias, $compat, isset($GLOBALS['sql_backquotes']) + ) . ';' . $crlf ); } else { @@ -843,9 +847,9 @@ class ExportSql extends ExportPlugin $head = $this->_exportComment() . $this->_exportComment( __('Database:') . ' ' - . (isset($GLOBALS['sql_backquotes']) - ? PMA_Util::backquoteCompat($db_alias, $compat) - : '\'' . $db_alias . '\'') + . PMA_Util::backquoteCompat( + $db_alias, $compat, isset($GLOBALS['sql_backquotes']) + ) ) . $this->_exportComment(); return PMA_exportOutputHandler($head); @@ -1313,19 +1317,30 @@ class ExportSql extends ExportPlugin . $this->_exportComment( __('Constraints for table') . ' ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) ) . $this->_exportComment(); } $sql_constraints_query .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf; $sql_constraints .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf; $sql_drop_foreign_keys .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($db_alias, $compat) . '.' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $db_alias, $compat, $sql_backquotes + ) + . '.' + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf; } //if there are indexes @@ -1357,16 +1372,22 @@ class ExportSql extends ExportPlugin . $this->_exportComment( __('Indexes for table') . ' ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) ) . $this->_exportComment(); } $sql_indexes_query .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf . ' '; $sql_indexes .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf . ' '; } if ($update_indexes_increments && preg_match( @@ -1393,12 +1414,16 @@ class ExportSql extends ExportPlugin . $this->_exportComment( __('AUTO_INCREMENT for table') . ' ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) ) . $this->_exportComment(); } $sql_auto_increments .= 'ALTER TABLE ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ) . $crlf; } @@ -1748,9 +1773,9 @@ class ExportSql extends ExportPlugin $compat = 'NONE'; } - $formatted_table_name = (isset($GLOBALS['sql_backquotes'])) - ? PMA_Util::backquoteCompat($table_alias, $compat) - : '\'' . $table_alias . '\''; + $formatted_table_name = PMA_Util::backquoteCompat( + $table_alias, $compat, isset($GLOBALS['sql_backquotes']) + ); $dump = $this->_possibleCRLF() . $this->_exportComment(str_repeat('-', 56)) . $this->_possibleCRLF() @@ -1891,9 +1916,9 @@ class ExportSql extends ExportPlugin $compat = 'NONE'; } - $formatted_table_name = (isset($GLOBALS['sql_backquotes'])) - ? PMA_Util::backquoteCompat($table_alias, $compat) - : '\'' . $table_alias . '\''; + $formatted_table_name = PMA_Util::backquoteCompat( + $table_alias, $compat, $sql_backquotes + ); // Do not export data for a VIEW, unless asked to export the view as a table // (For a VIEW, this is called only when exporting a single VIEW) @@ -2077,7 +2102,8 @@ class ExportSql extends ExportPlugin 'SET IDENTITY_INSERT ' . PMA_Util::backquoteCompat( $table_alias, - $compat + $compat, + $sql_backquotes ) . ' ON ;' . $crlf )) { @@ -2217,7 +2243,7 @@ class ExportSql extends ExportPlugin ) { $outputSucceeded = PMA_exportOutputHandler( $crlf . 'SET IDENTITY_INSERT ' - . PMA_Util::backquoteCompat($table_alias, $compat) + . PMA_Util::backquoteCompat($table_alias, $compat, $sql_backquotes) . ' OFF;' . $crlf ); if (! $outputSucceeded) { diff --git a/test/classes/plugin/export/PMA_ExportSql_test.php b/test/classes/plugin/export/PMA_ExportSql_test.php index 4f6fdc0379..bbbca012aa 100644 --- a/test/classes/plugin/export/PMA_ExportSql_test.php +++ b/test/classes/plugin/export/PMA_ExportSql_test.php @@ -855,7 +855,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase public function testExportDBHeader() { $GLOBALS['sql_compatibility'] = 'MSSQL'; - $GLOBALS['sql_backquotes'] = ''; + $GLOBALS['sql_backquotes'] = true; $GLOBALS['sql_include_comments'] = true; $GLOBALS['crlf'] = "\n"; @@ -881,7 +881,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase $result = ob_get_clean(); $this->assertContains( - "'testDB'", + "testDB", $result ); } @@ -1694,7 +1694,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase $result = ob_get_clean(); $this->assertContains( - "-- Triggers 't&bl'\n", + "-- Triggers t&bl\n", $result ); @@ -1718,7 +1718,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase $result = ob_get_clean(); $this->assertContains( - "-- Structure for view 't&bl'\n", + "-- Structure for view t&bl\n", $result ); @@ -2028,12 +2028,12 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase ob_start(); $this->assertTrue( - $this->object->exportData('db', 'table', "\n", "err.com", "SELECT") + $this->object->exportData('db', 'tbl', "\n", "err.com", "SELECT") ); $result = ob_get_clean(); $this->assertContains( - "-- VIEW 'table'\n", + "-- VIEW tbl\n", $result ); diff --git a/test/libraries/common/PMA_quoting_slashing_test.php b/test/libraries/common/PMA_quoting_slashing_test.php index 7ff9b6170b..2710946b89 100644 --- a/test/libraries/common/PMA_quoting_slashing_test.php +++ b/test/libraries/common/PMA_quoting_slashing_test.php @@ -199,10 +199,6 @@ class PMA_QuotingSlashing_Test extends PHPUnit_Framework_TestCase // Test bypass quoting (used by dump functions) $this->assertEquals($a, PMA_Util::backquoteCompat($a, 'NONE', false)); - // Test backquote (backquoting will be enabled only - // if isset $GLOBALS['sql_backquotes'] - $this->assertEquals($a, PMA_Util::backquoteCompat($a, 'NONE')); - // Run tests in MSSQL compatibility mode // Test bypass quoting (used by dump functions) $this->assertEquals($a, PMA_Util::backquoteCompat($a, 'MSSQL', false)); From a6c53149be8d357283436ad409a217c7c91a3ce4 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Tue, 23 Dec 2014 08:03:09 -0500 Subject: [PATCH 2/2] ChangeLog entry Signed-off-by: Marc Delisle --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 777a70b7af..10de39398f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ phpMyAdmin - ChangeLog - bug #4651 don't open console with esc - bug #4664 select min() displays 1 row, but reports the table amount of rows returned - bug #4666 Undefined indexes in table stucture print view of a view +- bug #4663 Export missing back ticks for order table name 4.3.3.0 (2014-12-21) - bug The "Recently used tables" setting should be with Nav panel