mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Removed wrong implementation of CUBE/ROLLUP
Fixed bugfix of INSERT ... SET db_name.table_name.column_name Changed locking to external-locking Fix client hangup for some invalid SQL queries. Docs/manual.texi: Changelog & recent incompatible changes to 4.0.3 include/mysqld_error.h: New error messages myisam/ft_boolean_search.c: Removed compiler warning myisam/mi_check.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_dynrec.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_extra.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_key.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_open.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/mi_packrec.c: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/myisamdef.h: Change mi_fix_rec_buff_for_blob to mi_alloc_rec_buff myisam/sort.c: Fixed uninitialized variable mysql-test/r/insert_set.result: Change test case to use database foo mysql-test/r/union.result: Test wrong usage of union mysql-test/t/insert_set.test: Test bug in insert mysql-test/t/union.test: Test wrong usage of union sql/item.h: Indentation cleanup sql/item_cmpfunc.h: Indentation cleanup sql/item_func.h: Indentation cleanup sql/item_strfunc.h: Indentation cleanup sql/item_sum.h: Indentation cleanup sql/item_timefunc.h: Indentation cleanup sql/item_uniq.h: Indentation cleanup sql/mysql_priv.h: Fix that we always generate an error message when calling YYABORT sql/mysqld.cc: Changed command line arguments regarding locking to always use --external-locking Disable external locking by default sql/procedure.h: Cleanup sql/set_var.cc: change locking -> external_locking sql/share/czech/errmsg.txt: New error messages sql/share/danish/errmsg.txt: New error messages sql/share/dutch/errmsg.txt: New error messages sql/share/english/errmsg.txt: New error messages sql/share/estonian/errmsg.txt: New error messages sql/share/french/errmsg.txt: New error messages sql/share/german/errmsg.txt: New error messages sql/share/greek/errmsg.txt: New error messages sql/share/hungarian/errmsg.txt: New error messages sql/share/italian/errmsg.txt: New error messages sql/share/japanese/errmsg.txt: New error messages sql/share/korean/errmsg.txt: New error messages mysql-test/r/olap.result: Removed CUBE/ROLLUP mysql-test/t/olap.test: Removed CUBE/ROLLUP sql/share/norwegian-ny/errmsg.txt: New error messages sql/share/norwegian/errmsg.txt: New error messages sql/share/polish/errmsg.txt: New error messages sql/share/portuguese/errmsg.txt: New error messages sql/share/romanian/errmsg.txt: New error messages sql/share/russian/errmsg.txt: New error messages sql/share/slovak/errmsg.txt: New error messages sql/share/spanish/errmsg.txt: New error messages sql/share/swedish/errmsg.txt: New error messages sql/share/ukrainian/errmsg.txt: New error messages sql/sql_base.cc: Removed wrong patch for INSERT... sql/sql_insert.cc: Fix bug in INSERT ... SET db_name.table_name.column_name sql/sql_lex.h: Changed NON_EXISTIONG_ONE -> UNSPECIFIED_OLAP_TYPE sql/sql_olap.cc: Removed wrong implementation of CUBE/ROLLUP sql/sql_parse.cc: Removed wrong implementation of CUBE/ROLLUP Added function to give better error messages sql/sql_select.cc: Removed wrong implementation of CUBE/ROLLUP sql/sql_union.cc: Added comment sql/sql_yacc.yy: Fix that we always generate an error message when calling YYABORT
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
drop database if exists a;
|
||||
create database a;
|
||||
use a;
|
||||
drop database if exists foo;
|
||||
create database foo;
|
||||
use foo;
|
||||
create table b (c int);
|
||||
insert into a.b set a.b.c = '1';
|
||||
drop database a;
|
||||
insert into foo.b set foo.b.c = '1';
|
||||
drop database foo;
|
||||
|
@ -15,124 +15,13 @@ insert into sales values ( 'Computer', 'India',2000, 1200),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'Calculator', 'United States', 2000,75);
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
Calculator India 0 75
|
||||
Calculator United States 0 200
|
||||
Computer India 0 2400
|
||||
Computer United States 0 4500
|
||||
TV India 0 300
|
||||
TV United States 0 300
|
||||
Calculator ALL 1999 50
|
||||
Calculator ALL 2000 225
|
||||
Computer ALL 1999 2700
|
||||
Computer ALL 2000 4200
|
||||
TV ALL 1999 250
|
||||
TV ALL 2000 350
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
Calculator ALL 0 275
|
||||
Computer ALL 0 6900
|
||||
TV ALL 0 600
|
||||
ALL India 0 2775
|
||||
ALL United States 0 5000
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
This version of MySQL doesn't yet support 'CUBE',
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14
|
||||
This version of MySQL doesn't yet support 'CUBE',
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
This version of MySQL doesn't yet support 'ROLLUP',
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14
|
||||
This version of MySQL doesn't yet support 'ROLLUP',
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube union all select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
Calculator India 0 75
|
||||
Calculator United States 0 200
|
||||
Computer India 0 2400
|
||||
Computer United States 0 4500
|
||||
TV India 0 300
|
||||
TV United States 0 300
|
||||
Calculator ALL 1999 50
|
||||
Calculator ALL 2000 225
|
||||
Computer ALL 1999 2700
|
||||
Computer ALL 2000 4200
|
||||
TV ALL 1999 250
|
||||
TV ALL 2000 350
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
Calculator ALL 0 275
|
||||
Computer ALL 0 6900
|
||||
TV ALL 0 600
|
||||
ALL India 0 2775
|
||||
ALL United States 0 5000
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
This version of MySQL doesn't yet support 'CUBE',
|
||||
drop table sales;
|
||||
|
@ -129,6 +129,8 @@ select * from t1 union select a from t2;
|
||||
The used SELECT statements have a different number of columns
|
||||
select a from t1 union select * from t2;
|
||||
The used SELECT statements have a different number of columns
|
||||
select * from t1 union select SQL_BUFFER_RESULT * from t2;
|
||||
Wrong usage/placement of 'SQL_BUFFER_RESULT'
|
||||
create table t3 select a,b from t1 union all select a,b from t2;
|
||||
insert into t3 select a,b from t1 union all select a,b from t2;
|
||||
replace into t3 select a,b as c from t1 union all select a,b from t2;
|
||||
|
@ -2,9 +2,9 @@
|
||||
# Test of mysqld crash with fully qualified column names
|
||||
#
|
||||
|
||||
drop database if exists a;
|
||||
create database a;
|
||||
use a;
|
||||
drop database if exists foo;
|
||||
create database foo;
|
||||
use foo;
|
||||
create table b (c int);
|
||||
insert into a.b set a.b.c = '1';
|
||||
drop database a;
|
||||
insert into foo.b set foo.b.c = '1';
|
||||
drop database foo;
|
||||
|
@ -14,9 +14,14 @@ insert into sales values ( 'Computer', 'India',2000, 1200),
|
||||
( 'Computer', 'India', 1999,1200),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'Calculator', 'United States', 2000,75);
|
||||
--error 1235
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
--error 1235
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
--error 1235
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
--error 1235
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
--error 1235
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube union all select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
drop table sales;
|
||||
|
@ -23,7 +23,11 @@ select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 g
|
||||
explain (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
|
||||
(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
|
||||
select found_rows();
|
||||
|
||||
#
|
||||
# Test some error conditions with UNION
|
||||
#
|
||||
|
||||
explain select a,b from t1 union all select a,b from t2;
|
||||
|
||||
--error 1054
|
||||
@ -53,6 +57,9 @@ select * from t1 union select a from t2;
|
||||
--error 1222
|
||||
select a from t1 union select * from t2;
|
||||
|
||||
--error 1234
|
||||
select * from t1 union select SQL_BUFFER_RESULT * from t2;
|
||||
|
||||
# Test CREATE, INSERT and REPLACE
|
||||
create table t3 select a,b from t1 union all select a,b from t2;
|
||||
insert into t3 select a,b from t1 union all select a,b from t2;
|
||||
|
Reference in New Issue
Block a user