From ff688b18fb4083c6c18043f207c0f6015a54d0f4 Mon Sep 17 00:00:00 2001 From: Chirayu Chiripal Date: Tue, 10 Jun 2014 15:24:57 +0530 Subject: [PATCH] Bug-4448: Dump binary columns in hexadecimal notation not working and hex_for_blob -> hex_for_binary Signed-off-by: Chirayu Chiripal --- ChangeLog | 1 + export.php | 2 +- libraries/config.default.php | 4 ++-- libraries/config/messages.inc.php | 2 +- libraries/config/setup.forms.php | 2 +- libraries/config/user_preferences.forms.php | 2 +- libraries/plugins/export/ExportSql.class.php | 13 +++++-------- test/classes/plugin/export/PMA_ExportSql_test.php | 6 +++--- 8 files changed, 15 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2c167b3db..c98b006de8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ phpMyAdmin - ChangeLog - bug #4449 Mediawiki export does not produce table header row; also fix related PHP warnings - bug #4442 New lines are added to query every time - bug #4445 Fatal error on SQL Export of join query +- bug #4448 Dump binary columns in hexadecimal notation not working 4.2.3.0 (2014-06-08) - bug #4423 Moving fields not working diff --git a/export.php b/export.php index c2fb468243..a42fcb884b 100644 --- a/export.php +++ b/export.php @@ -123,7 +123,7 @@ if (!defined('TESTSUITE')) { 'sql_type', 'sql_insert_syntax', 'sql_max_query_size', - 'sql_hex_for_blob', + 'sql_hex_for_binary', 'sql_utc_time', 'sql_drop_database', 'csv_separator', diff --git a/libraries/config.default.php b/libraries/config.default.php index 6cc3d1ad16..0b80801f9d 100644 --- a/libraries/config.default.php +++ b/libraries/config.default.php @@ -1936,9 +1936,9 @@ $cfg['Export']['sql_utc_time'] = true; /** * * - * @global boolean $cfg['Export']['sql_hex_for_blob'] + * @global boolean $cfg['Export']['sql_hex_for_binary'] */ -$cfg['Export']['sql_hex_for_blob'] = true; +$cfg['Export']['sql_hex_for_binary'] = true; /** * insert/update/replace diff --git a/libraries/config/messages.inc.php b/libraries/config/messages.inc.php index 365c3b2664..661cdb7c05 100644 --- a/libraries/config/messages.inc.php +++ b/libraries/config/messages.inc.php @@ -175,7 +175,7 @@ $strConfigExport_sql_create_table_name = sprintf(__('Add %s'), 'CREATE TABLE'); $strConfigExport_sql_create_view_name = sprintf(__('Add %s'), 'CREATE VIEW'); $strConfigExport_sql_create_trigger_name = sprintf(__('Add %s'), 'CREATE TRIGGER'); -$strConfigExport_sql_hex_for_blob_name = __('Use hexadecimal for BLOB'); +$strConfigExport_sql_hex_for_binary_name = __('Use hexadecimal for BINARY & BLOB'); $strConfigExport_sql_if_not_exists_name = sprintf(__('Add %s'), 'IF NOT EXISTS'); $strConfigExport_sql_ignore_name = __('Use ignore inserts'); $strConfigExport_sql_include_comments_name = __('Comments'); diff --git a/libraries/config/setup.forms.php b/libraries/config/setup.forms.php index 1c612378e5..4bf902d8a2 100644 --- a/libraries/config/setup.forms.php +++ b/libraries/config/setup.forms.php @@ -315,7 +315,7 @@ $forms['Export']['Sql'] = array('Export' => array( 'sql_type', 'sql_insert_syntax', 'sql_max_query_size', - 'sql_hex_for_blob', + 'sql_hex_for_binary', 'sql_utc_time')); $forms['Export']['CodeGen'] = array('Export' => array( 'codegen_format')); diff --git a/libraries/config/user_preferences.forms.php b/libraries/config/user_preferences.forms.php index 51b481fa76..eb328d0cee 100644 --- a/libraries/config/user_preferences.forms.php +++ b/libraries/config/user_preferences.forms.php @@ -217,7 +217,7 @@ $forms['Export']['Sql'] = array( 'Export/sql_type', 'Export/sql_insert_syntax', 'Export/sql_max_query_size', - 'Export/sql_hex_for_blob', + 'Export/sql_hex_for_binary', 'Export/sql_utc_time'); $forms['Export']['CodeGen'] = array( 'Export/codegen_format'); diff --git a/libraries/plugins/export/ExportSql.class.php b/libraries/plugins/export/ExportSql.class.php index 33b95cf026..debdc10838 100644 --- a/libraries/plugins/export/ExportSql.class.php +++ b/libraries/plugins/export/ExportSql.class.php @@ -212,7 +212,6 @@ class ExportSql extends ExportPlugin // add the main group to the root group $exportSpecificOptions->addProperty($generalOptions); - // structure options main group if (! $hide_structure) { $structureOptions = new OptionsPropertyMainGroup(); @@ -332,7 +331,6 @@ class ExportSql extends ExportPlugin $exportSpecificOptions->addProperty($structureOptions); } - // begin Data options $dataOptions = new OptionsPropertyMainGroup(); $dataOptions->setName("data"); @@ -428,7 +426,7 @@ class ExportSql extends ExportPlugin // Dump binary columns in hexadecimal $leaf = new BoolPropertyItem(); - $leaf->setName("hex_for_blob"); + $leaf->setName("hex_for_binary"); $leaf->setText( __( 'Dump binary columns in hexadecimal notation' @@ -1009,11 +1007,11 @@ class ExportSql extends ExportPlugin * of error * @param bool $show_dates whether to include creation/ * update/check dates - * @param bool $add_semicolon whether to add semicolon and + * @param bool $add_semicolon whether to add semicolon and * end-of-line at the end * @param bool $view whether we're handling a view * @param bool $update_indexes_increments whether we need to update - * two global variables + * two global variables * * @return string resulting schema */ @@ -1962,9 +1960,8 @@ class ExportSql extends ExportPlugin // timestamp is numeric on some MySQL 4.1, BLOBs are // sometimes numeric $values[] = $row[$j]; - } elseif (stristr($field_flags[$j], 'BINARY') - && $fields_meta[$j]->blob - && isset($GLOBALS['sql_hex_for_blob']) + } elseif (stristr($field_flags[$j], 'BINARY') !== false + && isset($GLOBALS['sql_hex_for_binary']) ) { // a true BLOB // - mysqldump only generates hex data when the --hex-blob diff --git a/test/classes/plugin/export/PMA_ExportSql_test.php b/test/classes/plugin/export/PMA_ExportSql_test.php index 59b8055e89..69dcc69e12 100644 --- a/test/classes/plugin/export/PMA_ExportSql_test.php +++ b/test/classes/plugin/export/PMA_ExportSql_test.php @@ -1876,7 +1876,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase $GLOBALS['sql_ignore'] = true; $GLOBALS['sql_truncate'] = true; $GLOBALS['sql_insert_syntax'] = 'both'; - $GLOBALS['sql_hex_for_blob'] = true; + $GLOBALS['sql_hex_for_binary'] = true; ob_start(); $this->object->exportData( @@ -1903,7 +1903,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase ); $this->assertContains( - "(NULL, test, 0x3130, b'110', " . '\'\0\n\r\Z\');', + '(NULL, test, 0x3130, 0x36, 0x000a0d1a);', $result ); @@ -1991,7 +1991,7 @@ class PMA_ExportSql_Test extends PHPUnit_Framework_TestCase $GLOBALS['sql_ignore'] = true; $GLOBALS['sql_truncate'] = true; $GLOBALS['sql_insert_syntax'] = 'both'; - $GLOBALS['sql_hex_for_blob'] = true; + $GLOBALS['sql_hex_for_binary'] = true; ob_start(); $this->object->exportData(