List:Commits« Previous MessageNext Message »
From:Ingo Struewing Date:October 1 2008 9:54am
Subject:bzr commit into mysql-6.0 branch (ingo.struewing:2826)
View as plain text  
#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 Struewing1 Oct