summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2003-12-10 17:41:15 +0300
committerunknown <konstantin@mysql.com>2003-12-10 17:41:15 +0300
commitfc1f426e8c7f0768611dcd2af70147b5e14a5e95 (patch)
treef6b43d8dc3e88331d9e6779612dc2495d3407b23
parentf195cf9d1455f05bd6e6b1e0225f1062dc28d9f7 (diff)
parent02cf765fba0a6cf88d7166c737e227f9c389f87c (diff)
downloadmariadb-git-fc1f426e8c7f0768611dcd2af70147b5e14a5e95.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/kostja/mysql/mysql-4.0-1993
-rw-r--r--acinclude.m44
-rw-r--r--client/mysqldump.c34
-rw-r--r--mysql-test/r/mysqldump.result48
-rw-r--r--mysql-test/t/mysqldump.test19
-rw-r--r--mysys/my_thr_init.c3
5 files changed, 101 insertions, 7 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index f7833bdce41..8a92048f9ab 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -745,7 +745,7 @@ AC_DEFUN(MYSQL_FIND_OPENSSL, [
for d in /usr/ssl/lib /usr/local/ssl/lib /usr/lib/openssl \
/usr/lib /usr/lib64 /opt/ssl/lib /opt/openssl/lib /usr/local/lib/ ; do
- if test -f $d/libssl.a ; then
+ if test -f $d/libssl.a || test -f $d/libssl.so || test -f $d/libssl.dylib ; then
OPENSSL_LIB=$d
fi
done
@@ -757,7 +757,7 @@ AC_DEFUN(MYSQL_FIND_OPENSSL, [
if test -f $incs/openssl/ssl.h ; then
OPENSSL_INCLUDE=-I$incs
fi
- if test -f $libs/libssl.a ; then
+ if test -f $libs/libssl.a || test -f $libs/libssl.so || test -f $libs/libssl.dylib ; then
OPENSSL_LIB=$libs
fi
;;
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 40f88021c89..7092503fa25 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -1067,10 +1067,22 @@ static void dumpTable(uint numFields, char *table)
}
else
{
- /* change any strings ("inf","nan",..) into NULL */
+ /* change any strings ("inf", "-inf", "nan") into NULL */
char *ptr = row[i];
- dynstr_append(&extended_row,
- (!isalpha(*ptr)) ? ptr : "NULL");
+ if (isalpha(*ptr) || (*ptr == '-' && *(ptr+1) == 'i'))
+ dynstr_append(&extended_row, "NULL");
+ else
+ {
+ if (field->type == FIELD_TYPE_DECIMAL)
+ {
+ /* add " signs around */
+ dynstr_append(&extended_row, "\"");
+ dynstr_append(&extended_row, ptr);
+ dynstr_append(&extended_row, "\"");
+ }
+ else
+ dynstr_append(&extended_row, ptr);
+ }
}
}
else
@@ -1098,13 +1110,25 @@ static void dumpTable(uint numFields, char *table)
}
else
{
- /* change any strings ("inf","nan",..) into NULL */
+ /* change any strings ("inf", "-inf", "nan") into NULL */
char *ptr = row[i];
if (opt_xml)
fprintf(md_result_file, "\t\t<field name=\"%s\">%s</field>\n",
field->name,!isalpha(*ptr) ?ptr: "NULL");
+ else if (isalpha(*ptr) || (*ptr == '-' && *(ptr+1) == 'i'))
+ fputs("NULL", md_result_file);
else
- fputs((!isalpha(*ptr)) ? ptr : "NULL", md_result_file);
+ {
+ if (field->type == FIELD_TYPE_DECIMAL)
+ {
+ /* add " signs around */
+ fputs("\"", md_result_file);
+ fputs(ptr, md_result_file);
+ fputs("\"", md_result_file);
+ }
+ else
+ fputs(ptr, md_result_file);
+ }
}
}
else
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index 085cf2788f9..01edd10b896 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -15,3 +15,51 @@ INSERT INTO t1 VALUES (1), (2);
</database>
</mysqldump>
DROP TABLE t1;
+CREATE TABLE t1 (a decimal(240, 20));
+INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
+("0987654321098765432109876543210987654321");
+-- MySQL dump 9.09
+--
+-- Host: localhost Database: test
+-- ------------------------------------------------------
+-- Server version 4.0.17-debug-log
+
+--
+-- Table structure for table `t1`
+--
+
+CREATE TABLE t1 (
+ a decimal(240,20) default NULL
+) TYPE=MyISAM;
+
+--
+-- Dumping data for table `t1`
+--
+
+INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890.00000000000000000000");
+INSERT INTO t1 VALUES ("0987654321098765432109876543210987654321.00000000000000000000");
+
+DROP TABLE t1;
+CREATE TABLE t1 (a double);
+INSERT INTO t1 VALUES (-9e999999);
+-- MySQL dump 9.09
+--
+-- Host: localhost Database: test
+-- ------------------------------------------------------
+-- Server version 4.0.17-debug-log
+
+--
+-- Table structure for table `t1`
+--
+
+CREATE TABLE t1 (
+ a double default NULL
+) TYPE=MyISAM;
+
+--
+-- Dumping data for table `t1`
+--
+
+INSERT INTO t1 VALUES (NULL);
+
+DROP TABLE t1;
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index c98fd4050f2..87363855db0 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -8,3 +8,22 @@ CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2);
--exec $MYSQL_DUMP -X test t1
DROP TABLE t1;
+
+#
+# Bug #2005
+#
+
+CREATE TABLE t1 (a decimal(240, 20));
+INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
+("0987654321098765432109876543210987654321");
+--exec $MYSQL_DUMP test t1
+DROP TABLE t1;
+
+#
+# Bug #2055
+#
+
+CREATE TABLE t1 (a double);
+INSERT INTO t1 VALUES (-9e999999);
+--exec $MYSQL_DUMP test t1
+DROP TABLE t1;
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 9f64e9dcb60..3196256facc 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -157,6 +157,9 @@ my_bool my_thread_init(void)
tmp= &THR_KEY_mysys;
#endif
tmp->id= ++thread_id;
+#if defined(__WIN__) && defined(EMBEDDED_LIBRARY)
+ tmp->thread_self= (pthread_t)getpid();
+#endif
pthread_mutex_init(&tmp->mutex,MY_MUTEX_INIT_FAST);
pthread_cond_init(&tmp->suspend, NULL);
tmp->init= 1;