#At file:///home2/mydev/bzrroot/mysql-6.0-bug37958/
2826 Ingo Struewing 2008-10-01 [merge]
merge
modified:
BUILD/compile-solaris-amd64-forte*
BUILD/compile-solaris-amd64-forte-debug
BUILD/compile-solaris-sparc
BUILD/compile-solaris-sparc-forte*
mysql-test/extra/rpl_tests/rpl_EE_err.test
mysql-test/include/ndb_backup_print.inc
mysql-test/r/distinct.result
mysql-test/r/sp-error.result
mysql-test/suite/binlog/t/binlog_killed_simulate.test
mysql-test/suite/binlog/t/binlog_start_comment.test
mysql-test/suite/ndb/t/ndb_restore_print.test
mysql-test/suite/ndb_team/t/ndb_autodiscover.test
mysql-test/t/ctype_big5.test
mysql-test/t/distinct.test
mysql-test/t/outfile.test
mysql-test/t/sp-error.test
mysql-test/t/symlink.test
sql/parse_file.cc
sql/parse_file.h
sql/sql_db.cc
sql/sql_view.cc
=== modified file 'BUILD/compile-solaris-amd64-forte' (properties changed: -x to +x)
--- a/BUILD/compile-solaris-amd64-forte 2007-11-10 10:03:07 +0000
+++ b/BUILD/compile-solaris-amd64-forte 2008-09-30 20:57:48 +0000
@@ -7,22 +7,23 @@ path=`dirname $0`
. "$path/autorun.sh"
# For "optimal" code for this computer add -fast to EXTRA
-# To compile 64 bit, add -xarch=v9 to EXTRA_64_BIT
+# To compile 64 bit, add -m64 to EXTRA_64_BIT
-EXTRA_64_BIT="-xarch=amd64"
+EXTRA_64_BIT="-m64"
EXTRA="-fast"
#
# The following should not need to be touched
#
-export CC CXX CFLAGS CXXFLAGS
+export CC CXX CFLAGS CXXFLAGS LIBS
STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT"
ASFLAGS="$EXTRA_64_BIT"
CC=cc-5.0
CFLAGS="-Xa -xstrconst $STD"
CXX=CC
CXXFLAGS="-noex $STD"
+LIBS=-lmtmalloc
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
=== modified file 'BUILD/compile-solaris-amd64-forte-debug'
--- a/BUILD/compile-solaris-amd64-forte-debug 2007-11-10 10:03:07 +0000
+++ b/BUILD/compile-solaris-amd64-forte-debug 2008-09-30 20:57:48 +0000
@@ -6,8 +6,8 @@ gmake -k clean || true
path=`dirname $0`
. "$path/autorun.sh"
-# To compile 64 bit, add -xarch=amd64 to EXTRA_64_BIT
-EXTRA_64_BIT="-xarch=amd64"
+# To compile 64 bit, add -m64 to EXTRA_64_BIT
+EXTRA_64_BIT="-m64"
# For "optimal" code for this computer add -fast to EXTRA. Note that
# this causes problem with debugging the program since -fast implies
=== modified file 'BUILD/compile-solaris-sparc'
--- a/BUILD/compile-solaris-sparc 2007-02-23 11:13:55 +0000
+++ b/BUILD/compile-solaris-sparc 2008-09-30 20:57:48 +0000
@@ -9,6 +9,6 @@ PATH=$PATH:/usr/ccs/bin:/usr/local/bin
path=`dirname $0`
. "$path/autorun.sh"
-CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
+CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" LIBS="-lmtmalloc" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
make -j 4
=== modified file 'BUILD/compile-solaris-sparc-forte' (properties changed: +x to -x)
--- a/BUILD/compile-solaris-sparc-forte 2007-09-14 02:12:32 +0000
+++ b/BUILD/compile-solaris-sparc-forte 2008-10-01 09:54:24 +0000
@@ -31,7 +31,7 @@ EXTRA="-fast" # Remove comment to targ
STD="-mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT"
CC=cc-5.0 CFLAGS="-Xa -xstrconst $STD" \
DTRACEFLAGS='-64' \
-CXX=CC CXXFLAGS="-noex $STD" \
+CXX=CC CXXFLAGS="-noex $STD" LIBS="-lmtmalloc" \
./configure --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --prefix=$PREFIX --with-plugins=max --enable-dtrace
make -j 4
=== modified file 'mysql-test/extra/rpl_tests/rpl_EE_err.test'
--- a/mysql-test/extra/rpl_tests/rpl_EE_err.test 2006-01-24 13:10:48 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_EE_err.test 2008-09-30 19:32:35 +0000
@@ -20,7 +20,7 @@
eval create table t1 (a int) engine=$engine_type;
flush tables;
-system rm $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
+remove_file $MYSQLTEST_VARDIR/master-data/test/t1.MYI ;
drop table if exists t1;
save_master_pos;
connection slave;
=== modified file 'mysql-test/include/ndb_backup_print.inc'
--- a/mysql-test/include/ndb_backup_print.inc 2007-03-07 06:19:37 +0000
+++ b/mysql-test/include/ndb_backup_print.inc 2008-09-20 06:21:28 +0000
@@ -1,6 +1,7 @@
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 1 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter > $MYSQLTEST_VARDIR/tmp/tmp.dat
--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults $ndb_restore_opts -b $the_backup_id -n 2 $NDB_BACKUP_DIR/BACKUP/BACKUP-$the_backup_id $ndb_restore_filter >> $MYSQLTEST_VARDIR/tmp/tmp.dat
--exec sort $MYSQLTEST_VARDIR/tmp/tmp.dat
---exec rm -f $MYSQLTEST_VARDIR/tmp/tmp.dat
+--error 0,1
+--remove_file $MYSQLTEST_VARDIR/tmp/tmp.dat
--let ndb_restore_opts=
--let ndb_restore_filter=
=== modified file 'mysql-test/r/distinct.result'
--- a/mysql-test/r/distinct.result 2008-04-27 01:02:09 +0000
+++ b/mysql-test/r/distinct.result 2008-09-30 20:14:37 +0000
@@ -608,6 +608,65 @@ id select_type table type possible_keys
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
a a
DROP TABLE t1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
+default NULL);
+INSERT INTO t1 VALUES (1,1,'ORANGE');
+INSERT INTO t1 VALUES (2,2,'APPLE');
+INSERT INTO t1 VALUES (3,2,'APPLE');
+INSERT INTO t1 VALUES (4,3,'PEAR');
+SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
+'APPLE';
+SELECT @v1, @v2;
+@v1 @v2
+2 APPLE
+SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
+fruit_name HAVING fruit_name = 'APPLE';
+SELECT @v3, @v4;
+@v3 @v4
+2 APPLE
+SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
+fruit_name = 'APPLE';
+SELECT @v5, @v6, @v7, @v8;
+@v5 @v6 @v7 @v8
+3 PEAR 3 PEAR
+SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
+WHERE fruit_name = 'APPLE';
+SELECT @v5, @v6, @v7, @v8, @v9, @v10;
+@v5 @v6 @v7 @v8 @v9 @v10
+3 PEAR 3 PEAR 5 PEARAPPLE
+SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
+@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
+SELECT @v11, @v12, @v13, @v14;
+@v11 @v12 @v13 @v14
+6 PEARPEAR 6 PEARPEAR
+SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
+SELECT @v15, @v16;
+@v15 @v16
+6 PEARPEAR
+SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
+'APPLE';
+SELECT @v17, @v18;
+@v17 @v18
+4 Bob
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
+default NULL);
+SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
+'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
+SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
+'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
+SELECT @v19, @v20;
+@v19 @v20
+2 APPLE
+SELECT * FROM t2;
+fruit_id fruit_name
+2 APPLE
+2 APPLE
+DROP TABLE t1;
+DROP TABLE t2;
CREATE TABLE t1 (a CHAR(1));
INSERT INTO t1 VALUES('A'), (0);
SELECT a FROM t1 WHERE a=0;
=== modified file 'mysql-test/r/sp-error.result'
--- a/mysql-test/r/sp-error.result 2008-08-22 11:16:08 +0000
+++ b/mysql-test/r/sp-error.result 2008-09-30 10:10:32 +0000
@@ -1612,6 +1612,13 @@ end loop label1;
end loop;
end|
ERROR 42000: End-label label1 without match
+CREATE TABLE t1 (a INT)|
+INSERT INTO t1 VALUES (1),(2)|
+CREATE PROCEDURE p1(a INT) BEGIN END|
+CALL p1((SELECT * FROM t1))|
+ERROR 21000: Subquery returns more than 1 row
+DROP PROCEDURE IF EXISTS p1|
+DROP TABLE t1|
drop procedure if exists proc_8759;
create procedure proc_8759()
begin
=== modified file 'mysql-test/suite/binlog/t/binlog_killed_simulate.test'
--- a/mysql-test/suite/binlog/t/binlog_killed_simulate.test 2008-03-23 18:40:22 +0000
+++ b/mysql-test/suite/binlog/t/binlog_killed_simulate.test 2008-09-30 20:14:37 +0000
@@ -34,7 +34,7 @@ let $error_code= `select @a like "%#%err
eval select $error_code /* must return 1 as query completed before got killed*/;
# cleanup for the sub-case
-system rm $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog;
+remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog;
#
@@ -62,7 +62,7 @@ let $error_code= `select @a like "%#%err
eval select $error_code /* must return 0 to mean the killed query is in */;
# cleanup for the sub-case
-system rm $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog;
+remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog;
drop table t1,t2;
=== modified file 'mysql-test/suite/binlog/t/binlog_start_comment.test'
--- a/mysql-test/suite/binlog/t/binlog_start_comment.test 2008-06-11 18:14:43 +0000
+++ b/mysql-test/suite/binlog/t/binlog_start_comment.test 2008-09-30 20:14:37 +0000
@@ -21,4 +21,4 @@ select * from t2;
# clean up
drop table t1,t2;
-#--system rm $MYSQLTEST_VARDIR/tmp/binlog_start_comment.binlog
+#--remove_file $MYSQLTEST_VARDIR/tmp/binlog_start_comment.binlog
=== modified file 'mysql-test/suite/ndb/t/ndb_restore_print.test'
--- a/mysql-test/suite/ndb/t/ndb_restore_print.test 2007-07-04 20:38:53 +0000
+++ b/mysql-test/suite/ndb/t/ndb_restore_print.test 2008-09-30 19:32:35 +0000
@@ -134,10 +134,14 @@ insert into t4 values (1,31),(2,32),(3,3
--let ndb_restore_filter=test t1
--source include/ndb_backup_print.inc
---exec rm -f $MYSQLTEST_VARDIR/tmp/t1.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t2.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt
+--error 0,1
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
+--error 0,1
+--remove_file $MYSQLTEST_VARDIR/tmp/t2.txt
+--error 0,1
+--remove_file $MYSQLTEST_VARDIR/tmp/t3.txt
+--error 0,1
+--remove_file $MYSQLTEST_VARDIR/tmp/t4.txt
--let ndb_restore_opts=--verbose=0 --print_data --hex --tab $MYSQLTEST_VARDIR/tmp --append
--let ndb_restore_filter=test
@@ -156,10 +160,10 @@ insert into t4 values (1,31),(2,32),(3,3
--source include/show_msg.inc
--exec sort $MYSQLTEST_VARDIR/tmp/t4.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t1.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t2.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t3.txt
---exec rm -f $MYSQLTEST_VARDIR/tmp/t4.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/t2.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/t3.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/t4.txt
# now test some other datatypes
drop table t1;
=== modified file 'mysql-test/suite/ndb_team/t/ndb_autodiscover.test'
--- a/mysql-test/suite/ndb_team/t/ndb_autodiscover.test 2008-02-21 13:11:01 +0000
+++ b/mysql-test/suite/ndb_team/t/ndb_autodiscover.test 2008-09-30 19:32:35 +0000
@@ -113,7 +113,7 @@ flush tables;
# Remove the frm file from disk
--remove_file $MYSQLTEST_VARDIR/master-data/test/t3.frm
---error 1050
+--error ER_TABLE_EXISTS_ERROR
create table t3(
id int not null primary key,
name char(20), a int, b float, c char(24)
@@ -204,13 +204,13 @@ system exec $NDB_TOOLS_DIR/ndb_drop_tabl
#
# Test that correct error is returned
---error 1146
+--error ER_NO_SUCH_TABLE
select * from t4;
---error 1146
+--error ER_NO_SUCH_TABLE
select * from t4;
show status like 'handler_discover%';
---error 1051
+--error ER_BAD_TABLE_ERROR
drop table t4;
create table t4(
@@ -223,14 +223,14 @@ select * from t4;
# Remove the table from NDB
system exec $NDB_TOOLS_DIR/ndb_drop_table --no-defaults -d test t4 >> $NDB_TOOLS_OUTPUT ;
---error 1146
+--error ER_NO_SUCH_TABLE
select * from t4;
drop table if exists t4;
# Test that dropping a table that does not exists
# on disk or in NDB gives same result as above
---error 1051
+--error ER_BAD_TABLE_ERROR
drop table t5;
drop table if exists t5;
@@ -257,7 +257,7 @@ system exec $NDB_TOOLS_DIR/ndb_drop_tabl
SHOW TABLES;
---error 1146
+--error ER_NO_SUCH_TABLE
select * from t4;
#######################################################
@@ -342,9 +342,9 @@ show status like 'handler_discover%';
# Check that t3 or t5 can't be created
# frm files for these tables is stilll on disk
---error 1050
+--error ER_TABLE_EXISTS_ERROR
create table t3(a int);
---error 1050
+--error ER_TABLE_EXISTS_ERROR
create table t5(a int);
SHOW TABLES LIKE 't%';
@@ -462,7 +462,7 @@ show tables;
create database test2;
use test2;
show tables;
---error 1146
+--error ER_NO_SUCH_TABLE
select * from t1;
create table t2 (b int,c longblob) engine=ndb;
use test;
@@ -487,7 +487,7 @@ create table t1 (a int primary key) engi
select * from t1;
--exec $NDB_MGM --no-defaults -e "all restart -n" > /dev/null
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults --not-started > /dev/null
---error 1015
+--error ER_CANT_LOCK
select * from t1;
--exec $NDB_MGM --no-defaults -e "all start" > /dev/null
--exec $NDB_TOOLS_DIR/ndb_waiter --no-defaults > /dev/null
@@ -503,17 +503,17 @@ drop database test_only_ndb_tables;
# discovered( for example a table created via NDBAPI)
# Test disabled since it doesn't work on case insensitive systems
-#--error 1050
+#--error ER_TABLE_EXISTS_ERROR
#CREATE TABLE sys.SYSTAB_0 (a int);
-#--error 1105
+#--error ER_UNKNOWN_ERROR
#select * from sys.SYSTAB_0;
#CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
#show warnings;
-#--error 1105
+#--error ER_UNKNOWN_ERROR
#select * from sys.SYSTAB_0;
-#--error 1051
+#--error ER_BAD_TABLE_ERROR
#drop table sys.SYSTAB_0;
#drop table IF EXISTS sys.SYSTAB_0;
=== modified file 'mysql-test/t/ctype_big5.test'
--- a/mysql-test/t/ctype_big5.test 2008-05-05 11:22:31 +0000
+++ b/mysql-test/t/ctype_big5.test 2008-09-30 20:14:37 +0000
@@ -80,7 +80,8 @@ delete from t1;
--eval select hex(load_file('$MYSQLTEST_VARDIR/master-data/test/t1.txt'));
load data infile 't1.txt' into table t1;
select hex(a) from t1;
---exec rm $MYSQLTEST_VARDIR/master-data/test/t1.txt
+--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.txt
+
drop table t1;
--echo End of 5.0 tests
=== modified file 'mysql-test/t/distinct.test'
--- a/mysql-test/t/distinct.test 2008-03-26 16:37:36 +0000
+++ b/mysql-test/t/distinct.test 2008-10-01 02:01:50 +0000
@@ -438,72 +438,71 @@ EXPLAIN SELECT DISTINCT a,a FROM t1 WHER
SELECT DISTINCT a,a FROM t1 WHERE b < 12 ORDER BY a;
DROP TABLE t1;
-# The test case for bug#20836 should be re-enabled when bug#16861 is resolved
-# The results for the test should be the same as in 4.1.
-#
+
#Bug #20836: Selecting into variables results in wrong results being returned
-#
-#--disable_warnings
-#DROP TABLE IF EXISTS t1;
-#--enable_warnings
-#
-#CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
-#default NULL);
-#
-#INSERT INTO t1 VALUES (1,1,'ORANGE');
-#INSERT INTO t1 VALUES (2,2,'APPLE');
-#INSERT INTO t1 VALUES (3,2,'APPLE');
-#INSERT INTO t1 VALUES (4,3,'PEAR');
-#
-#SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
-#'APPLE';
-#SELECT @v1, @v2;
-#
-#SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
-#fruit_name HAVING fruit_name = 'APPLE';
-#SELECT @v3, @v4;
-#
-#SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
-#fruit_name = 'APPLE';
-#SELECT @v5, @v6, @v7, @v8;
-#
-#SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
-#WHERE fruit_name = 'APPLE';
-#SELECT @v5, @v6, @v7, @v8, @v9, @v10;
-#
-#SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
-#@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
-#SELECT @v11, @v12, @v13, @v14;
-#
-#SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
-#SELECT @v15, @v16;
-#
-#SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
-#'APPLE';
-#SELECT @v17, @v18;
-#
-#--disable_warnings
-#DROP TABLE IF EXISTS t2;
-#--enable_warnings
-#
-#CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
-#default NULL);
-#
-#SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
-#'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-#LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
-#--exec rm $MYSQL_TEST_DIR/var/tmp/data1.tmp
-#
-#SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
-#'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
-#LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
-#--exec rm $MYSQL_TEST_DIR/var/tmp/data2.tmp
-#
-#SELECT @v19, @v20;
-#SELECT * FROM t2;
-#
-#DROP TABLE t1;
-#DROP TABLE t2;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1 (id INT NOT NULL, fruit_id INT NOT NULL, fruit_name varchar(20)
+default NULL);
+
+INSERT INTO t1 VALUES (1,1,'ORANGE');
+INSERT INTO t1 VALUES (2,2,'APPLE');
+INSERT INTO t1 VALUES (3,2,'APPLE');
+INSERT INTO t1 VALUES (4,3,'PEAR');
+
+SELECT DISTINCT fruit_id, fruit_name INTO @v1, @v2 FROM t1 WHERE fruit_name =
+'APPLE';
+SELECT @v1, @v2;
+
+SELECT DISTINCT fruit_id, fruit_name INTO @v3, @v4 FROM t1 GROUP BY fruit_id,
+fruit_name HAVING fruit_name = 'APPLE';
+SELECT @v3, @v4;
+
+SELECT DISTINCT @v5:= fruit_id, @v6:= fruit_name INTO @v7, @v8 FROM t1 WHERE
+fruit_name = 'APPLE';
+SELECT @v5, @v6, @v7, @v8;
+
+SELECT DISTINCT @v5 + fruit_id, CONCAT(@v6, fruit_name) INTO @v9, @v10 FROM t1
+WHERE fruit_name = 'APPLE';
+SELECT @v5, @v6, @v7, @v8, @v9, @v10;
+
+SELECT DISTINCT @v11:= @v5 + fruit_id, @v12:= CONCAT(@v6, fruit_name) INTO
+@v13, @v14 FROM t1 WHERE fruit_name = 'APPLE';
+SELECT @v11, @v12, @v13, @v14;
+
+SELECT DISTINCT @v13, @v14 INTO @v15, @v16 FROM t1 WHERE fruit_name = 'APPLE';
+SELECT @v15, @v16;
+
+SELECT DISTINCT 2 + 2, 'Bob' INTO @v17, @v18 FROM t1 WHERE fruit_name =
+'APPLE';
+SELECT @v17, @v18;
+
+--disable_warnings
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+
+CREATE TABLE t2 (fruit_id INT NOT NULL, fruit_name varchar(20)
+default NULL);
+
+SELECT DISTINCT fruit_id, fruit_name INTO OUTFILE
+'../tmp/data1.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+LOAD DATA INFILE '../tmp/data1.tmp' INTO TABLE t2;
+--error 0,1
+--remove_file $MYSQL_TEST_DIR/var/tmp/data1.tmp
+
+SELECT DISTINCT @v19:= fruit_id, @v20:= fruit_name INTO OUTFILE
+'../tmp/data2.tmp' FROM t1 WHERE fruit_name = 'APPLE';
+LOAD DATA INFILE '../tmp/data2.tmp' INTO TABLE t2;
+--remove_file $MYSQL_TEST_DIR/var/tmp/data2.tmp
+
+SELECT @v19, @v20;
+SELECT * FROM t2;
+
+DROP TABLE t1;
+DROP TABLE t2;
#
# Bug #15881: cast problems
=== modified file 'mysql-test/t/outfile.test'
--- a/mysql-test/t/outfile.test 2008-03-04 16:26:59 +0000
+++ b/mysql-test/t/outfile.test 2008-09-30 20:14:37 +0000
@@ -3,7 +3,7 @@ disable_query_log;
# Server are started in "var/master-data", so "../tmp" will be "var/tmp"
eval set @tmpdir="../tmp";
enable_query_log;
--- source include/have_outfile.inc
+#-- source include/have_outfile.inc
#
# test of into outfile|dumpfile
@@ -31,13 +31,13 @@ select load_file(concat(@tmpdir,"/outfil
# the following should give errors
disable_query_log;
---error 1086
+--error ER_FILE_EXISTS_ERROR
eval select * into outfile "../tmp/outfile-test.1" from t1;
---error 1086
+--error ER_FILE_EXISTS_ERROR
eval select * into dumpfile "../tmp/outfile-test.2" from t1;
---error 1086
+--error ER_FILE_EXISTS_ERROR
eval select * into dumpfile "../tmp/outfile-test.3" from t1;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
@@ -92,7 +92,7 @@ use test;
# It should not be possible to write to a file outside of vardir
create table t1(a int);
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
---error 1290
+--error ER_OPTION_PREVENTS_STATEMENT
eval select * into outfile "$MYSQL_TEST_DIR/outfile-test1" from t1;
drop table t1;
@@ -105,7 +105,7 @@ create user user_1@localhost;
grant all on mysqltest.* to user_1@localhost;
connect (con28181_1,localhost,user_1,,mysqltest);
---error ER_ACCESS_DENIED_ERROR
+--error ER_ACCESS_DENIED_ERROR
eval select schema_name
into outfile "../tmp/outfile-test.4"
fields terminated by ',' optionally enclosed by '"'
@@ -125,7 +125,7 @@ from information_schema.schemata
where schema_name like 'mysqltest';
connection default;
---exec rm $MYSQLTEST_VARDIR/tmp/outfile-test.4
+--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4
use test;
revoke all privileges on *.* from user_1@localhost;
drop user user_1@localhost;
=== modified file 'mysql-test/t/sp-error.test'
--- a/mysql-test/t/sp-error.test 2008-08-22 11:16:08 +0000
+++ b/mysql-test/t/sp-error.test 2008-09-30 06:05:34 +0000
@@ -2345,6 +2345,14 @@ begin
end loop;
end|
+CREATE TABLE t1 (a INT)|
+INSERT INTO t1 VALUES (1),(2)|
+CREATE PROCEDURE p1(a INT) BEGIN END|
+--error ER_SUBQUERY_NO_1_ROW
+CALL p1((SELECT * FROM t1))|
+DROP PROCEDURE IF EXISTS p1|
+DROP TABLE t1|
+
delimiter ;|
#
=== modified file 'mysql-test/t/symlink.test'
--- a/mysql-test/t/symlink.test 2008-08-26 15:01:13 +0000
+++ b/mysql-test/t/symlink.test 2008-09-30 20:14:37 +0000
@@ -74,12 +74,12 @@ create database mysqltest;
create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="/this-dir-does-not-exist";
# temporarily disabled as it returns different result in the embedded server
-# --error 1210, 1210
+# --error ER_WRONG_ARGUMENTS, ER_WRONG_ARGUMENTS
# create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="not-hard-path";
# Should fail becasue the file t9.MYI already exist in 'run'
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---error 1,1,1105
+--error 1,1,ER_UNKNOWN_ERROR
eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="$MYSQLTEST_VARDIR/run";
# Should fail becasue the file t9.MYD already exist in 'tmp'
@@ -195,19 +195,19 @@ DROP TABLE t1;
# Bug#32167: another privilege bypass with DATA/INDEX DIRECTORY
#
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql';
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/test';
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/';
--replace_result $MYSQLTEST_VARDIR TEST_DIR
---error 1210
+--error ER_WRONG_ARGUMENTS
eval CREATE TABLE t1(a INT)
INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data';
--replace_result $MYSQLTEST_VARDIR TEST_DIR
=== modified file 'sql/parse_file.cc'
--- a/sql/parse_file.cc 2008-07-14 14:24:32 +0000
+++ b/sql/parse_file.cc 2008-09-30 13:31:41 +0000
@@ -26,6 +26,9 @@
#include <my_sys.h>
#include <my_dir.h>
+/* from sql_db.cc */
+extern long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path);
+
/**
Write string with escaping.
@@ -282,8 +285,9 @@ sql_create_definition_file(const LEX_STR
DBUG_RETURN(TRUE);
}
- // archive copies management
path[path_end]='\0';
+#ifdef FRM_ARCHIVE
+ // archive copies management: disabled unused feature (see bug #17823).
if (!access(path, F_OK))
{
if (old_version != ULONGLONG_MAX && max_versions != 0)
@@ -330,6 +334,7 @@ sql_create_definition_file(const LEX_STR
}
}
}
+#endif//FRM_ARCHIVE
{
// rename temporary file
@@ -352,6 +357,7 @@ err_w_file:
/**
Renames a frm file (including backups) in same schema.
+ @thd thread handler
@param schema name of given schema
@param old_name original file name
@param new_name new file name
@@ -363,7 +369,8 @@ err_w_file:
@retval
1 Error (only if renaming of frm failed)
*/
-my_bool rename_in_schema_file(const char *schema, const char *old_name,
+my_bool rename_in_schema_file(THD *thd,
+ const char *schema, const char *old_name,
const char *new_name, ulonglong revision,
uint num_view_backups)
{
@@ -377,9 +384,10 @@ my_bool rename_in_schema_file(const char
if (my_rename(old_path, new_path, MYF(MY_WME)))
return 1;
- /* check if arc_dir exists */
+ /* check if arc_dir exists: disabled unused feature (see bug #17823). */
build_table_filename(arc_path, sizeof(arc_path) - 1, schema, "arc", "", 0);
+#ifdef FRM_ARCHIVE
if (revision > 0 && !access(arc_path, F_OK))
{
char old_name_buf[FN_REFLEN], new_name_buf[FN_REFLEN];
@@ -400,6 +408,16 @@ my_bool rename_in_schema_file(const char
my_rename(old_path, new_path, MYF(0));
}
}
+#else//FRM_ARCHIVE
+ { // remove obsolete 'arc' directory and files if any
+ MY_DIR *new_dirp;
+ if ((new_dirp = my_dir(arc_path, MYF(MY_DONT_SORT))))
+ {
+ DBUG_PRINT("my",("Archive subdir found: %s", arc_path));
+ (void) mysql_rm_arc_files(thd, new_dirp, arc_path);
+ }
+ }
+#endif//FRM_ARCHIVE
return 0;
}
=== modified file 'sql/parse_file.h'
--- a/sql/parse_file.h 2007-10-16 20:11:50 +0000
+++ b/sql/parse_file.h 2008-09-30 13:16:11 +0000
@@ -82,8 +82,9 @@ my_bool
sql_create_definition_file(const LEX_STRING *dir, const LEX_STRING *file_name,
const LEX_STRING *type,
uchar* base, File_option *parameters, uint versions);
-my_bool rename_in_schema_file(const char *schema, const char *old_name,
- const char *new_name, ulonglong revision,
+my_bool rename_in_schema_file(THD *thd,
+ const char *schema, const char *old_name,
+ const char *new_name, ulonglong revision,
uint num_view_backups);
class File_parser: public Sql_alloc
=== modified file 'sql/sql_db.cc'
--- a/sql/sql_db.cc 2008-08-27 08:47:03 +0000
+++ b/sql/sql_db.cc 2008-09-30 13:31:41 +0000
@@ -37,7 +37,7 @@ static long mysql_rm_known_files(THD *th
const char *db, const char *path, uint level,
TABLE_LIST **dropped_tables);
-static long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path);
+long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path);
static my_bool rm_dir_w_symlink(const char *org_path, my_bool send_error);
static void mysql_change_db_impl(THD *thd,
LEX_STRING *new_db_name,
@@ -1091,7 +1091,11 @@ static long mysql_rm_known_files(THD *th
else if (file->name[0] == 'a' && file->name[1] == 'r' &&
file->name[2] == 'c' && file->name[3] == '\0')
{
- /* .frm archive */
+ /* .frm archive:
+ Those archives are obsolete, but following code should
+ exist to remove existent "arc" directories.
+ See #ifdef FRM_ARCHIVE directives for obsolete code.
+ */
char newpath[FN_REFLEN];
MY_DIR *new_dirp;
strxmov(newpath, org_path, "/", "arc", NullS);
@@ -1260,9 +1264,13 @@ static my_bool rm_dir_w_symlink(const ch
RETURN
> 0 number of removed files
-1 error
+
+ NOTE
+ A support of "arc" directories is obsolete, however this
+ function should exist to remove existent "arc" directories.
+ See #ifdef FRM_ARCHIVE directives for obsolete code.
*/
-static long mysql_rm_arc_files(THD *thd, MY_DIR *dirp,
- const char *org_path)
+long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path)
{
long deleted= 0;
ulong found_other_files= 0;
@@ -1304,6 +1312,7 @@ static long mysql_rm_arc_files(THD *thd,
{
goto err;
}
+ deleted++;
}
if (thd->killed)
goto err;
=== modified file 'sql/sql_view.cc'
--- a/sql/sql_view.cc 2008-07-15 16:29:51 +0000
+++ b/sql/sql_view.cc 2008-09-30 13:31:41 +0000
@@ -1971,7 +1971,7 @@ mysql_rename_view(THD *thd,
goto err;
/* rename view and it's backups */
- if (rename_in_schema_file(view->db, view->table_name, new_name,
+ if (rename_in_schema_file(thd, view->db, view->table_name, new_name,
view_def.revision - 1, num_view_backups))
goto err;
@@ -1991,7 +1991,7 @@ mysql_rename_view(THD *thd,
num_view_backups))
{
/* restore renamed view in case of error */
- rename_in_schema_file(view->db, new_name, view->table_name,
+ rename_in_schema_file(thd, view->db, new_name, view->table_name,
view_def.revision - 1, num_view_backups);
goto err;
}
| Thread |
|---|
| • bzr commit into mysql-6.0 branch (ingo.struewing:2826) | Ingo Struewing | 1 Oct |