169 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			169 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# test of already fixed bugs
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								--disable_warnings
							 | 
						||
| 
								 | 
							
								drop table if exists t1,t2,t3,t4,t5,t6;
							 | 
						||
| 
								 | 
							
								drop database if exists mysqltest;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug 10838
							 | 
						||
| 
								 | 
							
								# Insert causes warnings for no default values and corrupts tables
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (a varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 b varchar(1) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 c varchar(4) binary NOT NULL DEFAULT '0000',
							 | 
						||
| 
								 | 
							
										 d tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 e tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 f tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 g tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 h tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 i tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 j tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 k tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 l tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 m tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 n tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 o tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 p tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 q varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 r varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 s tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 t varchar(4) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 u varchar(1) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 v varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 w varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 x tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 y varchar(5) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 z varchar(20) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 a1 varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 b1 tinyblob NULL)
							 | 
						||
| 
								 | 
							
								ENGINE=InnoDB DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
							 | 
						||
| 
								 | 
							
								--enable_warnings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								INSERT into t1 (b) values ('1');
							 | 
						||
| 
								 | 
							
								SHOW WARNINGS;
							 | 
						||
| 
								 | 
							
								SELECT * from t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE t2 (a varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 b varchar(1) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 c varchar(4) binary NOT NULL DEFAULT '0000',
							 | 
						||
| 
								 | 
							
										 d tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 e tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 f tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 g tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 h tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 i tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 j tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 k tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 l tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 m tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 n tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 o tinyblob NULL,
							 | 
						||
| 
								 | 
							
										 p tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 q varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 r varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 s tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 t varchar(4) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 u varchar(1) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 v varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 w varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 x tinyblob NULL,
							 | 
						||
| 
								 | 
							
								                 y varchar(5) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 z varchar(20) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
								                 a1 varchar(30) binary NOT NULL DEFAULT ' ',
							 | 
						||
| 
								 | 
							
										 b1 tinyblob NULL)
							 | 
						||
| 
								 | 
							
								ENGINE=MyISAM DEFAULT CHARACTER SET = latin1 COLLATE latin1_bin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SHOW CREATE TABLE t2;
							 | 
						||
| 
								 | 
							
								INSERT into t2 (b) values ('1');
							 | 
						||
| 
								 | 
							
								SHOW WARNINGS;
							 | 
						||
| 
								 | 
							
								SELECT * from t2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								drop table t2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#20691: DATETIME col (NOT NULL, NO DEFAULT) may insert garbage when specifying DEFAULT
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# From the docs:
							 | 
						||
| 
								 | 
							
								#  If the column can take NULL as a value, the column is defined with an
							 | 
						||
| 
								 | 
							
								#  explicit DEFAULT NULL clause. This is the same as before 5.0.2.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#  If the column cannot take NULL as the value, MySQL defines the column with
							 | 
						||
| 
								 | 
							
								#  no explicit DEFAULT clause. For data entry, if an INSERT or REPLACE
							 | 
						||
| 
								 | 
							
								#  statement includes no value for the column, MySQL handles the column
							 | 
						||
| 
								 | 
							
								#  according to the SQL mode in effect at the time:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#    * If strict SQL mode is not enabled, MySQL sets the column to the
							 | 
						||
| 
								 | 
							
								#      implicit default value for the column data type.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#    * If strict mode is enabled, an error occurs for transactional tables and
							 | 
						||
| 
								 | 
							
								#      the statement is rolled back. For non-transactional tables, an error
							 | 
						||
| 
								 | 
							
								#      occurs, but if this happens for the second or subsequent row of a
							 | 
						||
| 
								 | 
							
								#      multiple-row statement, the preceding rows will have been inserted.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00');
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT);
							 | 
						||
| 
								 | 
							
								insert into bug20691 (i) values (2);
							 | 
						||
| 
								 | 
							
								desc bug20691;
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT);
							 | 
						||
| 
								 | 
							
								insert into bug20691 (i) values (4);
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT);
							 | 
						||
| 
								 | 
							
								SET sql_mode = 'ALLOW_INVALID_DATES';
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT);
							 | 
						||
| 
								 | 
							
								SET sql_mode = 'STRICT_ALL_TABLES';
							 | 
						||
| 
								 | 
							
								--error 1364
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (7, DEFAULT, DEFAULT), (7, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (7, DEFAULT, DEFAULT);
							 | 
						||
| 
								 | 
							
								select * from bug20691 order by i asc;
							 | 
						||
| 
								 | 
							
								drop table bug20691;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SET sql_mode = '';
							 | 
						||
| 
								 | 
							
								create table bug20691 (
							 | 
						||
| 
								 | 
							
								  a set('one', 'two', 'three') not null,
							 | 
						||
| 
								 | 
							
								  b enum('small', 'medium', 'large', 'enormous', 'ellisonego') not null,
							 | 
						||
| 
								 | 
							
								  c time not null,
							 | 
						||
| 
								 | 
							
								  d date not null,
							 | 
						||
| 
								 | 
							
								  e int not null,
							 | 
						||
| 
								 | 
							
								  f long not null,
							 | 
						||
| 
								 | 
							
								  g blob not null,
							 | 
						||
| 
								 | 
							
								  h datetime not null,
							 | 
						||
| 
								 | 
							
								  i decimal not null,
							 | 
						||
| 
								 | 
							
								  x int);
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 1);
							 | 
						||
| 
								 | 
							
								insert into bug20691 (x) values (2);
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (2, 3, 5, '0007-01-01', 11, 13, 17, '0019-01-01 00:00:00', 23, 3);
							 | 
						||
| 
								 | 
							
								insert into bug20691 values (DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, 4);
							 | 
						||
| 
								 | 
							
								select * from bug20691 order by x asc;
							 | 
						||
| 
								 | 
							
								drop table bug20691;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create table t1 (id int not null);
							 | 
						||
| 
								 | 
							
								insert into t1 values(default);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create view v1 (c) as select id from t1;
							 | 
						||
| 
								 | 
							
								insert into t1 values(default);
							 | 
						||
| 
								 | 
							
								drop view v1;
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug #39002: crash with
							 | 
						||
| 
								 | 
							
								#             INSERT ... SELECT ... ON DUPLICATE KEY UPDATE col=DEFAULT
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create table t1 (a int unique);
							 | 
						||
| 
								 | 
							
								create table t2 (b int default 10);
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values (1);
							 | 
						||
| 
								 | 
							
								insert into t2 (b) values (1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								insert into t1 (a) select b from t2 on duplicate key update a=default;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values (1);
							 | 
						||
| 
								 | 
							
								insert into t1 (a) select b from t2 on duplicate key update a=default(b);
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								drop table t1, t2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--echo End of 5.0 tests.
							 | 
						||
| 
								 | 
							
								
							 |