mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0 sql/field.cc: Auto merged sql/field.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
select CAST(1-2 AS UNSIGNED);
|
||||
select CAST(CAST(1-2 AS UNSIGNED) AS SIGNED INTEGER);
|
||||
select CONVERT('-1',UNSIGNED);
|
||||
select CAST('10 ' as unsigned integer);
|
||||
select cast(-5 as unsigned) | 1, cast(-5 as unsigned) & -1;
|
||||
select cast(-5 as unsigned) -1, cast(-5 as unsigned) + 1;
|
||||
select ~5, cast(~5 as signed);
|
||||
@@ -16,11 +17,22 @@ select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A";
|
||||
select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME);
|
||||
select cast("1:2:3" as TIME);
|
||||
select CONVERT("2004-01-22 21:45:33",DATE);
|
||||
select 10+'10';
|
||||
select 10.0+'10';
|
||||
select 10E+0+'10';
|
||||
|
||||
# The following cast creates warnings
|
||||
|
||||
select CONVERT(DATE "2004-01-22 21:45:33" USING latin1);
|
||||
select CONVERT(DATE "2004-01-22 21:45:33",CHAR);
|
||||
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
|
||||
select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
|
||||
select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
|
||||
select cast('-10a' as signed integer);
|
||||
select cast('a10' as unsigned integer);
|
||||
select 10+'a';
|
||||
select 10.0+cast('a' as decimal);
|
||||
select 10E+0+'a';
|
||||
|
||||
#
|
||||
# Character set convertion
|
||||
@@ -41,6 +53,7 @@ select
|
||||
cast(_latin1'abc' AS char(2)) as c3,
|
||||
cast(_latin1'a ' AS char(2)) as c4,
|
||||
cast(_latin1'a' AS char(2)) as c5;
|
||||
select cast(1000 as CHAR(3));
|
||||
|
||||
create table t1 select
|
||||
cast(_latin1'ab' AS char) as c1,
|
||||
|
||||
@@ -49,14 +49,25 @@ create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
create table a (`aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` int);
|
||||
|
||||
#
|
||||
# Some wrong defaults, so these creates should fail too
|
||||
# Some wrong defaults, so these creates should fail too (Bug #5902)
|
||||
#
|
||||
--error 1067
|
||||
create table test (a datetime default now());
|
||||
create table t1 (a datetime default now());
|
||||
--error 1294
|
||||
create table test (a datetime on update now());
|
||||
create table t1 (a datetime on update now());
|
||||
--error 1067
|
||||
create table test (a int default 100 auto_increment);
|
||||
create table t1 (a int default 100 auto_increment);
|
||||
--error 1067
|
||||
create table t1 (a tinyint default 1000);
|
||||
--error 1067
|
||||
create table t1 (a varchar(5) default 'abcdef');
|
||||
|
||||
create table t1 (a varchar(5) default 'abcde');
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
--error 1067
|
||||
alter table t1 alter column a set default 'abcdef';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# test of dummy table names
|
||||
|
||||
@@ -25,9 +25,10 @@ explain extended select if(u=1,st,binary st) s from t1 where st like "%a%" order
|
||||
#
|
||||
# NULLIF test
|
||||
#
|
||||
select nullif(u=0, 'test') from t1;
|
||||
explain extended select nullif(u=0, 'test') from t1;
|
||||
select nullif(u, 1) from t1;
|
||||
explain extended select nullif(u, 1) from t1;
|
||||
drop table t1;
|
||||
select nullif(1,'test');
|
||||
|
||||
#
|
||||
# Bug 2629
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Testing string functions
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
|
||||
set names latin1;
|
||||
@@ -244,7 +244,7 @@ select FIELD('b','A' COLLATE latin1_bin,'B');
|
||||
select FIELD(_latin2'b','A','B');
|
||||
--error 1270
|
||||
select FIELD('b',_latin2'A','B');
|
||||
select FIELD('b',_latin2'A','B',1);
|
||||
select FIELD('1',_latin2'3','2',1);
|
||||
|
||||
select POSITION(_latin1'B' IN _latin1'abcd');
|
||||
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
|
||||
@@ -523,4 +523,3 @@ SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id
|
||||
ORDER BY t1.id;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
@@ -182,8 +182,8 @@ INSERT INTO t3 VALUES (1,'V1',NULL);
|
||||
CREATE TABLE t4 (
|
||||
uid bigint(20) unsigned NOT NULL default '0',
|
||||
gid bigint(20) unsigned NOT NULL,
|
||||
rid bigint(20) unsigned NOT NULL default '-1',
|
||||
cid bigint(20) unsigned NOT NULL default '-1',
|
||||
rid bigint(20) unsigned NOT NULL,
|
||||
cid bigint(20) unsigned NOT NULL,
|
||||
UNIQUE KEY m (uid,gid,rid,cid)
|
||||
) engine=ndbcluster;
|
||||
INSERT INTO t4 VALUES (1,1,2,4);
|
||||
@@ -209,8 +209,8 @@ CREATE TABLE t7 (
|
||||
mid bigint(20) unsigned NOT NULL PRIMARY KEY,
|
||||
uid bigint(20) unsigned NOT NULL default '0',
|
||||
gid bigint(20) unsigned NOT NULL,
|
||||
rid bigint(20) unsigned NOT NULL default '-1',
|
||||
cid bigint(20) unsigned NOT NULL default '-1',
|
||||
rid bigint(20) unsigned NOT NULL,
|
||||
cid bigint(20) unsigned NOT NULL,
|
||||
UNIQUE KEY m (uid,gid,rid,cid)
|
||||
) engine=ndbcluster;
|
||||
INSERT INTO t7 VALUES(1, 1, 1, 1, 1);
|
||||
|
||||
@@ -500,10 +500,10 @@ select 'a' || 'b' ;
|
||||
prepare stmt4 from ' SET sql_mode="" ';
|
||||
execute stmt4;
|
||||
# check if the sql_mode is not ansi
|
||||
select 'a' || 'b' ;
|
||||
select '2' || '3' ;
|
||||
# Will a switch of the sqlmode affect the execution of already prepared
|
||||
# statements ?
|
||||
prepare stmt5 from ' select ''a'' || ''b'' ' ;
|
||||
prepare stmt5 from ' select ''2'' || ''3'' ' ;
|
||||
execute stmt5;
|
||||
SET sql_mode=ansi;
|
||||
execute stmt5;
|
||||
|
||||
@@ -9,9 +9,9 @@ select row(1,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3));
|
||||
select row(10,2,3) IN (row(3,NULL,3), row(1,2,3), row(1,3,3));
|
||||
--disable_ps_warnings
|
||||
select row('a',1.5,3) IN (row(1,2,3), row('a',1.5,3), row('a','a','a'));
|
||||
select row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3));
|
||||
--enable_ps_warnings
|
||||
select row('a',0,3) IN (row(3,2,3), row('a','0','3'), row(1,3,3));
|
||||
select row('a',0,3) IN (row(3,2,3), row('a','a','3'), row(1,3,3));
|
||||
select row('a',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
|
||||
select row('b',1.5,3) IN (row(3,NULL,3), row('a',1.5,3), row(1,3,3));
|
||||
select row('b',1.5,3) IN (row('b',NULL,3), row('a',1.5,3), row(1,3,3));
|
||||
|
||||
@@ -7,7 +7,7 @@ create table t1(a varchar(100),b int);
|
||||
set @@session.sql_mode=pipes_as_concat;
|
||||
insert into t1 values('My'||'SQL', 1);
|
||||
set @@session.sql_mode=default;
|
||||
insert into t1 values('My'||'SQL', 2);
|
||||
insert into t1 values('1'||'2', 2);
|
||||
select * from t1 where b<3 order by a;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
|
||||
@@ -284,8 +284,8 @@ INSERT INTO t1 (col1) VALUES(CAST('2004-0-10' AS DATE));
|
||||
|
||||
# deactivated because of Bug#6145
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col1) VALUES(CAST('0000-00-00' AS DATE));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col1) VALUES(CAST('0000-00-00' AS DATE));
|
||||
|
||||
## Test INSERT with CAST AS DATETIME into DATETIME
|
||||
# All test cases expected to fail should return
|
||||
@@ -308,10 +308,9 @@ INSERT INTO t1 (col2) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col2) VALUES(CAST('2004-13-15 15:30' AS DATETIME));
|
||||
|
||||
# deactivated because of Bug#6145
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col2) VALUES(CAST('0000-00-00' AS DATETIME));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col2) VALUES(CAST('0000-00-00' AS DATETIME));
|
||||
|
||||
## Test INSERT with CAST AS DATETIME into TIMESTAMP
|
||||
# All test cases expected to fail should return
|
||||
@@ -338,10 +337,9 @@ INSERT INTO t1 (col3) VALUES(CAST('2004-0-10 15:30' AS DATETIME));
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col3) VALUES(CAST('2004-13-15 15:30' AS DATETIME));
|
||||
|
||||
# deactivated because of Bug#6145
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col3) VALUES(CAST('0000-00-00' AS DATETIME));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col3) VALUES(CAST('0000-00-00' AS DATETIME));
|
||||
|
||||
drop table t1;
|
||||
|
||||
@@ -376,10 +374,9 @@ INSERT INTO t1 (col1) VALUES(CONVERT('2004-0-10' , DATE));
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col1) VALUES(CONVERT('2004-13-15',DATE));
|
||||
|
||||
# deactivated because of Bug#6145
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col1) VALUES(CONVERT('0000-00-00',DATE));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col1) VALUES(CONVERT('0000-00-00',DATE));
|
||||
|
||||
## Test INSERT with CONVERT to DATETIME into DATETIME
|
||||
# All test cases expected to fail should return
|
||||
@@ -403,8 +400,8 @@ INSERT INTO t1 (col2) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
|
||||
#INSERT INTO t1 (col2) VALUES(CONVERT('2004-13-15 15:30',DATETIME));
|
||||
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col2) VALUES(CONVERT('0000-00-00',DATETIME));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col2) VALUES(CONVERT('0000-00-00',DATETIME));
|
||||
|
||||
## Test INSERT with CONVERT to DATETIME into DATETIME
|
||||
# All test cases expected to fail should return
|
||||
@@ -430,10 +427,9 @@ INSERT INTO t1 (col3) VALUES(CONVERT('2004-0-10 15:30',DATETIME));
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col3) VALUES(CONVERT('2004-13-15 15:30',DATETIME));
|
||||
|
||||
# deactivated because of Bug#6145
|
||||
# Bug#6145: Traditional: CONVERT and CAST should reject zero DATE values
|
||||
#--error 1292
|
||||
#INSERT INTO t1 (col3) VALUES(CONVERT('0000-00-00',DATETIME));
|
||||
--error 1292
|
||||
INSERT INTO t1 (col3) VALUES(CONVERT('0000-00-00',DATETIME));
|
||||
|
||||
drop table t1;
|
||||
|
||||
@@ -977,6 +973,64 @@ select count(*) from t1 where STR_TO_DATE('2004.12.12 10:22:61','%Y.%m.%d %T') I
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Check insert with wrong CAST() (Bug #5912)
|
||||
#
|
||||
|
||||
create table t1 (col1 char(3), col2 integer);
|
||||
--error 1292
|
||||
insert into t1 (col1) values (cast(1000 as char(3)));
|
||||
--error 1292
|
||||
insert into t1 (col1) values (cast(1000E+0 as char(3)));
|
||||
--error 1292
|
||||
insert into t1 (col1) values (cast(1000.0 as char(3)));
|
||||
--error 1292
|
||||
insert into t1 (col2) values (cast('abc' as signed integer));
|
||||
--error 1292
|
||||
insert into t1 (col2) values (10E+0 + 'a');
|
||||
--error 1292
|
||||
insert into t1 (col2) values (cast('10a' as unsigned integer));
|
||||
insert into t1 (col2) values (cast('10' as unsigned integer));
|
||||
insert into t1 (col2) values (cast('10' as signed integer));
|
||||
insert into t1 (col2) values (10E+0 + '0 ');
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Zero dates using numbers was not checked properly (Bug #5933 & #6145)
|
||||
#
|
||||
|
||||
create table t1 (col1 date, col2 datetime, col3 timestamp);
|
||||
--error 1292
|
||||
insert into t1 values (0,0,0);
|
||||
--error 1292
|
||||
insert into t1 values (0.0,0.0,0.0);
|
||||
--error 1292
|
||||
insert into t1 (col1) values (convert('0000-00-00',date));
|
||||
--error 1292
|
||||
insert into t1 (col1) values (cast('0000-00-00' as date));
|
||||
|
||||
set sql_mode='no_zero_date';
|
||||
insert into t1 values (0,0,0);
|
||||
insert into t1 values (0.0,0.0,0.0);
|
||||
drop table t1;
|
||||
set sql_mode='traditional';
|
||||
create table t1 (col1 date);
|
||||
insert ignore into t1 values ('0000-00-00');
|
||||
--error 1292
|
||||
insert into t1 select * from t1;
|
||||
insert ignore into t1 values ('0000-00-00');
|
||||
insert ignore into t1 (col1) values (cast('0000-00-00' as date));
|
||||
--error 1292
|
||||
insert into t1 select * from t1;
|
||||
--error 1292
|
||||
alter table t1 modify col1 datetime;
|
||||
alter ignore table t1 modify col1 datetime;
|
||||
--error 1292
|
||||
insert into t1 select * from t1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Restore mode
|
||||
#
|
||||
|
||||
@@ -46,9 +46,9 @@ SELECT ROW(1,2,3) > (SELECT 1,2,1);
|
||||
SELECT ROW(1,2,3) = (SELECT 1,2,NULL);
|
||||
SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'a');
|
||||
SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'b');
|
||||
SELECT (SELECT 1.5,2,'a') = ROW('b',2,'b');
|
||||
SELECT (SELECT 1.5,2,'a') = ROW('1.5b',2,'b');
|
||||
SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');
|
||||
SELECT (SELECT 1.5,2,'a') = ROW(1.5,'c','a');
|
||||
SELECT (SELECT 1.5,2,'a') = ROW(1.5,'2','a');
|
||||
SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');
|
||||
|
||||
-- error 1241
|
||||
|
||||
@@ -69,7 +69,7 @@ ALTER TABLE t1
|
||||
add new_field char(10) default "new" not null,
|
||||
change blob_col new_blob_col varchar(20),
|
||||
change date_field date_field char(10),
|
||||
alter column string set default "new default",
|
||||
alter column string set default "newdefault",
|
||||
alter short drop default,
|
||||
DROP INDEX utiny,
|
||||
DROP INDEX ushort,
|
||||
|
||||
@@ -760,3 +760,15 @@ create table t2 select a from t1 union select c from t1;
|
||||
create table t2 select a from t1 union select b from t1;
|
||||
show columns from t2;
|
||||
drop table t2, t1;
|
||||
|
||||
#
|
||||
# Test that union with VARCHAR produces dynamic row tables
|
||||
#
|
||||
|
||||
create table t1 (a varchar(5));
|
||||
create table t2 select * from t1 union select 'abcdefghijkl';
|
||||
show create table t2;
|
||||
select row_format from information_schema.TABLES where table_schema="test" and table_name="t2";
|
||||
alter table t2 ROW_FORMAT=fixed;
|
||||
show create table t2;
|
||||
drop table t1,t2;
|
||||
|
||||
Reference in New Issue
Block a user