From 581e6a2b860de383a63fde27d228270d868a4a03 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 5 Mar 2005 22:06:07 +0200 Subject: [PATCH] A fix for a bug #8830, which occured when binary data from blob was dumped with --hex-blob and --skip-extended-insert options. BitKeeper/etc/ignore: Added support-files/ndb-config-2-node.ini to the ignore list client/mysqldump.c: A fix for a bug #8830. All that was necessary was to use unsigned char instead of signed char. mysql-test/r/mysqldump.result: A result for test case for bug #8830. mysql-test/t/mysqldump.test: Test case for bug #8830. --- .bzrignore | 1 + client/mysqldump.c | 2 +- mysql-test/r/mysqldump.result | 46 +++++++++++++++++++++++++++++++++++ mysql-test/t/mysqldump.test | 10 ++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/.bzrignore b/.bzrignore index faedfa2b48e..d19b005a03e 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1052,3 +1052,4 @@ ndb/tools/ndb_drop_index.dsp ndb/tools/ndb_show_tables.dsp ndb/tools/ndb_select_all.dsp ndb/tools/ndb_select_count.dsp +support-files/ndb-config-2-node.ini diff --git a/client/mysqldump.c b/client/mysqldump.c index 2c0bdf9a7a9..a53dc319b2e 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1790,7 +1790,7 @@ static void dumpTable(uint numFields, char *table) char *ptr= row[i], *end= ptr+ lengths[i]; fputs("0x", md_result_file); for (; ptr < end ; ptr++) - fprintf(md_result_file, "%02X", *ptr); + fprintf(md_result_file, "%02X", *((uchar *)ptr)); } else unescape(md_result_file, row[i], lengths[i]); diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index f763a16836f..a52749a1a93 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -549,3 +549,49 @@ UNLOCK TABLES; DROP TABLE t1; DROP TABLE t2; +CREATE TABLE t1 (`b` blob); +INSERT INTO `t1` VALUES (0x602010000280100005E71A); +-- MySQL dump 10.9 +-- +-- Host: localhost Database: test +-- ------------------------------------------------------ +-- Server version 4.1.11-debug-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `t1` +-- + +DROP TABLE IF EXISTS `t1`; +CREATE TABLE `t1` ( + `b` blob +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `t1` +-- + + +/*!40000 ALTER TABLE `t1` DISABLE KEYS */; +LOCK TABLES `t1` WRITE; +INSERT INTO `t1` VALUES (0x602010000280100005E71A); +UNLOCK TABLES; +/*!40000 ALTER TABLE `t1` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +DROP TABLE t1; diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 255ae50a8ca..48f6ed9d0c1 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -165,3 +165,13 @@ INSERT INTO t2 VALUES (4),(5),(6); --exec $MYSQL_DUMP --skip-comments --ignore-table=test.t1 test DROP TABLE t1; DROP TABLE t2; + +# +# Bug #8830 +# + +CREATE TABLE t1 (`b` blob); +INSERT INTO `t1` VALUES (0x602010000280100005E71A); +--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test t1 +DROP TABLE t1; +