mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
7d6d4c8355
Fixed problems in test suite where some test failed Fixed access to not initialized memory in federated Fixed access to not initialized memory when using BIT fields in internal temporary tables BitKeeper/etc/ignore: added libmysqld/sql_cursor.h mysql-test/r/information_schema.result: Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middlecd mysql-test/r/information_schema_inno.result: Remove used tables at start mysql-test/r/multi_statement.result: Remove used tables at start mysql-test/r/temp_table.result: Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle mysql-test/r/type_bit.result: More tests mysql-test/t/information_schema.test: Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle mysql-test/t/information_schema_inno.test: Remove used tables at start mysql-test/t/multi_statement.test: Remove used tables at start mysql-test/t/temp_table.test: Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle mysql-test/t/type_bit.test: More tests mysql-test/valgrind.supp: Removed some valgrind warnings that isn't errors sql/ha_federated.cc: Fixed errors discovered by valgrind: - Socket was not initialized - share->scheme was deleted while there was still pointer into it from the hash sql/item_func.h: Remove access to table object from cleanup() as the table object may have been dropped earlier (In case of temporary tables or of close_thread_tables() is run before cleanup()) This fixed a bug with access to already freed memory sql/sql_base.cc: Reset variables used by fulltext sql/sql_select.cc: Fixed various problems with bit fields when used in internal temporary tables. Calculate space needed for bit fields correctly (previously we allocated more space than needed for rows in heap/myisam tables)
117 lines
3.7 KiB
Text
117 lines
3.7 KiB
Text
#
|
|
# Test of temporary tables
|
|
#
|
|
|
|
--disable_warnings
|
|
drop table if exists t1,t2;
|
|
drop view if exists v1;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE t1 (c int not null, d char (10) not null);
|
|
insert into t1 values(1,""),(2,"a"),(3,"b");
|
|
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
|
|
insert into t1 values(4,"e"),(5,"f"),(6,"g");
|
|
alter table t1 rename t2;
|
|
select * from t1;
|
|
select * from t2;
|
|
CREATE TABLE t2 (x int not null, y int not null);
|
|
alter table t2 rename t1;
|
|
select * from t1;
|
|
create TEMPORARY TABLE t2 engine=heap select * from t1;
|
|
create TEMPORARY TABLE IF NOT EXISTS t2 (a int) engine=heap;
|
|
|
|
# This should give errors
|
|
--error 1050
|
|
CREATE TEMPORARY TABLE t1 (a int not null, b char (10) not null);
|
|
--error 1050
|
|
ALTER TABLE t1 RENAME t2;
|
|
|
|
select * from t2;
|
|
alter table t2 add primary key (a,b);
|
|
drop table t1,t2;
|
|
select * from t1;
|
|
drop table t2;
|
|
create temporary table t1 select *,2 as "e" from t1;
|
|
select * from t1;
|
|
drop table t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Test CONCAT_WS with temporary tables
|
|
#
|
|
|
|
CREATE TABLE t1 (pkCrash INTEGER PRIMARY KEY,strCrash VARCHAR(255));
|
|
INSERT INTO t1 ( pkCrash, strCrash ) VALUES ( 1, '1');
|
|
SELECT CONCAT_WS(pkCrash, strCrash) FROM t1;
|
|
drop table t1;
|
|
create temporary table t1 select 1 as 'x';
|
|
drop table t1;
|
|
CREATE TABLE t1 (x INT);
|
|
INSERT INTO t1 VALUES (1), (2), (3);
|
|
CREATE TEMPORARY TABLE tmp SELECT *, NULL FROM t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Problem with ELT
|
|
#
|
|
create temporary table t1 (id int(10) not null unique);
|
|
create temporary table t2 (id int(10) not null primary key,
|
|
val int(10) not null);
|
|
|
|
# put in some initial values
|
|
insert into t1 values (1),(2),(4);
|
|
insert into t2 values (1,1),(2,1),(3,1),(4,2);
|
|
|
|
# do a query using ELT, a join and an ORDER BY.
|
|
select one.id, two.val, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# Test of failed ALTER TABLE on temporary table
|
|
#
|
|
create temporary table t1 (a int not null);
|
|
insert into t1 values (1),(1);
|
|
-- error 1062
|
|
alter table t1 add primary key (a);
|
|
drop table t1;
|
|
|
|
#
|
|
# In MySQL 4.0.4 doing a GROUP BY on a NULL column created a disk based
|
|
# temporary table when a memory based one would be good enough.
|
|
|
|
CREATE TABLE t1 (
|
|
d datetime default NULL
|
|
) ENGINE=MyISAM;
|
|
|
|
|
|
INSERT INTO t1 VALUES ('2002-10-24 14:50:32'),('2002-10-24 14:50:33'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:34'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:35'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:36'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:37'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:38'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:39'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40'),('2002-10-24 14:50:40');
|
|
|
|
flush status;
|
|
select * from t1 group by d;
|
|
show status like "created_tmp%tables";
|
|
drop table t1;
|
|
|
|
# Fix for BUG#8921: Check that temporary table is ingored by view commands.
|
|
create temporary table v1 as select 'This is temp. table' A;
|
|
create view v1 as select 'This is view' A;
|
|
select * from v1;
|
|
show create table v1;
|
|
show create view v1;
|
|
drop view v1;
|
|
select * from v1;
|
|
create view v1 as select 'This is view again' A;
|
|
select * from v1;
|
|
drop table v1;
|
|
select * from v1;
|
|
drop view v1;
|
|
|
|
# Bug #8497: tmpdir with extra slashes would cause failures
|
|
#
|
|
create table t1 (a int, b int, index(a), index(b));
|
|
create table t2 (c int auto_increment, d varchar(255), primary key (c));
|
|
insert into t1 values (3,1),(3,2);
|
|
insert into t2 values (NULL, 'foo'), (NULL, 'bar');
|
|
select d, c from t1 left join t2 on b = c where a = 3 order by d;
|
|
drop table t1, t2;
|
|
|
|
# End of 4.1 tests
|