mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	FOUND is not a reserved keyword anymore Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT Note that the 5.0 tree is not yet up to date: Sanja will have to fix multi-update-locks for this merge to be complete BUILD/SETUP.sh: Portability fix client/mysqltest.c: Portability fix mysql-test/r/drop.result: updated results mysql-test/r/func_str.result: New warnings (after merge) mysql-test/r/insert.result: Updated tests mysql-test/r/join_nested.result: Updated results (because of new column types in 5.0) mysql-test/r/lock_multi.result: Temporarly wrong results until Sanja fixes multi-update-lock in 5.0 mysql-test/r/multi_update.result: Temporary fix until Sanja fixes multi-update locking mysql-test/r/ps_1general.result: Update of results after merge mysql-test/r/ps_2myisam.result: Update of results after merge mysql-test/r/ps_3innodb.result: Update of results after merge mysql-test/r/ps_4heap.result: Update of results after merge mysql-test/r/ps_5merge.result: Update of results after merge mysql-test/r/ps_6bdb.result: Update of results after merge mysql-test/r/query_cache.result: Update of results after merge mysql-test/r/range.result: New results for new tests mysql-test/r/rpl_auto_increment.result: Update with new 4.0 information mysql-test/r/rpl_charset.result: After merge fixes mysql-test/r/subselect.result: After merge fixes mysql-test/r/view.result: Temporary fix until multi-update-locking is fixed mysql-test/t/drop.test: Safety fix mysql-test/t/multi_update.test: Temporary fix until multi-update-locking is fixed mysql-test/t/rpl_charset.test: More comments mysql-test/t/sp-error.test: Updated comments mysql-test/t/view.test: Temporary fix until multi-update-locking is fixed scripts/mysql_fix_privilege_tables.sh: Better error message sql-common/client.c: More debugging sql/ha_ndbcluster.cc: After merge fixes sql/handler.cc: After merge fixes sql/item.cc: Simple optimization of creating item After merge fixed Added Item_field::set_no_const_sub() to be able to mark fields that can't be substituted The problem is that if you compare a string field to a binary string, you can't replace the field with a string constant as the binary comparison may then fail (The original field value may be in a different case) sql/item.h: Added Item::set_no_const_sub() to be able to mark fields that can't be substituted sql/item_cmpfunc.cc: Mark fields compared as binary to not be substituted. sql/item_func.cc: After merge fix sql/log_event.cc: After merge fix sql/mysql_priv.h: After merge fix sql/opt_range.cc: After merge fix sql/protocol.cc: Made flags uint instead of int (as it's used as a bit mask) sql/protocol.h: Made flags uint instead of int (as it's used as a bit mask) sql/protocol_cursor.cc: Made flags uint instead of int (as it's used as a bit mask) Indentation cleanups sql/sp.cc: After merge fixes Removed compiler warnings sql/sp_head.cc: After merge fixes sql/sql_base.cc: After merge fixes Removed 'send_error' from 'insert_fields()' as the error is sent higher up sql/sql_class.cc: Give assert if set_n_backup_item_arena is used twice sql/sql_class.h: Give assert if set_n_backup_item_arena is used twice After merge fixes Added 'simple_select' method to be able to quickly determinate if a select_result is a normal SELECT sql/sql_handler.cc: After merge fixes sql/sql_parse.cc: After merge fixes sql/sql_prepare.cc: After merge fixes sql/sql_select.cc: After merge fixes Moved 'build_equal_items' to optimize_cond() (logical place) sql/sql_table.cc: After merge fixes sql/sql_trigger.cc: After merge fixes sql/sql_update.cc: After merge fixes (This should be fixed by Sanja to have lower granuality locking of tables in multi-update) sql/sql_view.cc: After merge fixes sql/sql_yacc.yy: After merge fixes Don't have FOUND as a reserved keyword
		
			
				
	
	
		
			302 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			302 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| drop table if exists t1,t2,t3;
 | |
| create table t1 (a int not null);
 | |
| insert into t1 values (1);
 | |
| insert into t1 values (a+2);
 | |
| insert into t1 values (a+3);
 | |
| insert into t1 values (4),(a+5);
 | |
| select * from t1;
 | |
| a
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| 4
 | |
| 5
 | |
| drop table t1;
 | |
| create table t1 (id int not null auto_increment primary key, username varchar(32) not null, unique (username));
 | |
| insert into t1 values (0,"mysql");
 | |
| insert into t1 values (0,"mysql ab");
 | |
| insert into t1 values (0,"mysql a");
 | |
| insert into t1 values (0,"r1manic");
 | |
| insert into t1 values (0,"r1man");
 | |
| drop table t1;
 | |
| create table t1 (a int not null auto_increment, primary key (a), t timestamp, c char(10) default "hello", i int);
 | |
| insert into t1 values (default,default,default,default), (default,default,default,default), (4,0,"a",5),(default,default,default,default);
 | |
| select a,t>0,c,i from t1;
 | |
| a	t>0	c	i
 | |
| 1	1	hello	NULL
 | |
| 2	1	hello	NULL
 | |
| 4	0	a	5
 | |
| 5	1	hello	NULL
 | |
| truncate table t1;
 | |
| insert into t1 set a=default,t=default,c=default;
 | |
| insert into t1 set a=default,t=default,c=default,i=default;
 | |
| insert into t1 set a=4,t=0,c="a",i=5;
 | |
| insert into t1 set a=5,t=0,c="a",i=null;
 | |
| insert into t1 set a=default,t=default,c=default,i=default;
 | |
| select a,t>0,c,i from t1;
 | |
| a	t>0	c	i
 | |
| 1	1	hello	NULL
 | |
| 2	1	hello	NULL
 | |
| 4	0	a	5
 | |
| 5	0	a	NULL
 | |
| 6	1	hello	NULL
 | |
| drop table t1;
 | |
| create table t1 (sid char(20), id int(2) NOT NULL auto_increment, key(sid, id));
 | |
| insert into t1 values ('skr',NULL),('skr',NULL),('test',NULL);
 | |
| select * from t1;
 | |
| sid	id
 | |
| skr	1
 | |
| skr	2
 | |
| test	1
 | |
| insert into t1 values ('rts',NULL),('rts',NULL),('test',NULL);
 | |
| select * from t1;
 | |
| sid	id
 | |
| rts	1
 | |
| rts	2
 | |
| skr	1
 | |
| skr	2
 | |
| test	1
 | |
| test	2
 | |
| drop table t1;
 | |
| create table t1 (id int NOT NULL DEFAULT 8);
 | |
| insert into t1 values(NULL);
 | |
| ERROR 23000: Column 'id' cannot be null
 | |
| insert into t1 values (1), (NULL), (2);
 | |
| Warnings:
 | |
| Warning	1263	Column set to default value; NULL supplied to NOT NULL column 'id' at row 2
 | |
| select * from t1;
 | |
| id
 | |
| 1
 | |
| 0
 | |
| 2
 | |
| drop table t1;
 | |
| create table t1 (email varchar(50));
 | |
| insert into t1 values ('sasha@mysql.com'),('monty@mysql.com'),('foo@hotmail.com'),('foo@aol.com'),('bar@aol.com');
 | |
| create table t2(id int not null auto_increment primary key, t2 varchar(50), unique(t2));
 | |
| insert delayed into t2 (t2) select distinct substring(email, locate('@', email)+1) from t1;
 | |
| select * from t2;
 | |
| id	t2
 | |
| 1	mysql.com
 | |
| 2	hotmail.com
 | |
| 3	aol.com
 | |
| drop table t1,t2;
 | |
| drop database if exists mysqltest;
 | |
| create database mysqltest;
 | |
| use mysqltest;
 | |
| create table t1 (c int);
 | |
| insert into mysqltest.t1 set mysqltest.t1.c = '1';
 | |
| drop database mysqltest;
 | |
| use test;
 | |
| create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned);
 | |
| set @value= "aa";
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'f_double' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_7_2' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_4_3' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	1
 | |
| original_value	aa
 | |
| f_double	0
 | |
| f_float	0
 | |
| f_double_7_2	0.00
 | |
| f_float_4_3	0.000
 | |
| f_double_u	0
 | |
| f_float_u	0
 | |
| f_double_15_1_u	0.0
 | |
| f_float_3_1_u	0.0
 | |
| set @value= "1aa";
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'f_double' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_7_2' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_4_3' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	2
 | |
| original_value	1aa
 | |
| f_double	1
 | |
| f_float	1
 | |
| f_double_7_2	1.00
 | |
| f_float_4_3	1.000
 | |
| f_double_u	1
 | |
| f_float_u	1
 | |
| f_double_15_1_u	1.0
 | |
| f_float_3_1_u	1.0
 | |
| set @value= "aa1";
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'f_double' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_7_2' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_4_3' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_double_15_1_u' at row 1
 | |
| Warning	1265	Data truncated for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	3
 | |
| original_value	aa1
 | |
| f_double	0
 | |
| f_float	0
 | |
| f_double_7_2	0.00
 | |
| f_float_4_3	0.000
 | |
| f_double_u	0
 | |
| f_float_u	0
 | |
| f_double_15_1_u	0.0
 | |
| f_float_3_1_u	0.0
 | |
| set @value= "1e+1111111111a";
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1264	Out of range value adjusted for column 'f_double' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	4
 | |
| original_value	1e+1111111111a
 | |
| f_double	1.79769313486232e+308
 | |
| f_float	3.40282e+38
 | |
| f_double_7_2	99999.99
 | |
| f_float_4_3	9.999
 | |
| f_double_u	1.79769313486232e+308
 | |
| f_float_u	3.40282e+38
 | |
| f_double_15_1_u	99999999999999.9
 | |
| f_float_3_1_u	99.9
 | |
| set @value= "-1e+1111111111a";
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1264	Out of range value adjusted for column 'f_double' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	5
 | |
| original_value	-1e+1111111111a
 | |
| f_double	-1.79769313486232e+308
 | |
| f_float	-3.40282e+38
 | |
| f_double_7_2	-99999.99
 | |
| f_float_4_3	-9.999
 | |
| f_double_u	0
 | |
| f_float_u	0
 | |
| f_double_15_1_u	0.0
 | |
| f_float_3_1_u	0.0
 | |
| set @value= 1e+1111111111;
 | |
| ERROR 22007: Illegal double '1e+1111111111' value found during parsing
 | |
| set @value= -1e+1111111111;
 | |
| ERROR 22007: Illegal double '1e+1111111111' value found during parsing
 | |
| set @value= 1e+111;
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	6
 | |
| original_value	1e+111
 | |
| f_double	1e+111
 | |
| f_float	3.40282e+38
 | |
| f_double_7_2	99999.99
 | |
| f_float_4_3	9.999
 | |
| f_double_u	1e+111
 | |
| f_float_u	3.40282e+38
 | |
| f_double_15_1_u	99999999999999.9
 | |
| f_float_3_1_u	99.9
 | |
| set @value= -1e+111;
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1264	Out of range value adjusted for column 'f_float' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_7_2' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_4_3' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	7
 | |
| original_value	-1e+111
 | |
| f_double	-1e+111
 | |
| f_float	-3.40282e+38
 | |
| f_double_7_2	-99999.99
 | |
| f_float_4_3	-9.999
 | |
| f_double_u	0
 | |
| f_float_u	0
 | |
| f_double_15_1_u	0.0
 | |
| f_float_3_1_u	0.0
 | |
| set @value= 1;
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	8
 | |
| original_value	1
 | |
| f_double	1
 | |
| f_float	1
 | |
| f_double_7_2	1.00
 | |
| f_float_4_3	1.000
 | |
| f_double_u	1
 | |
| f_float_u	1
 | |
| f_double_15_1_u	1.0
 | |
| f_float_3_1_u	1.0
 | |
| set @value= -1;
 | |
| insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value);
 | |
| Warnings:
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_double_15_1_u' at row 1
 | |
| Warning	1264	Out of range value adjusted for column 'f_float_3_1_u' at row 1
 | |
| select * from t1 where number =last_insert_id();
 | |
| number	9
 | |
| original_value	-1
 | |
| f_double	-1
 | |
| f_float	-1
 | |
| f_double_7_2	-1.00
 | |
| f_float_4_3	-1.000
 | |
| f_double_u	0
 | |
| f_float_u	0
 | |
| f_double_15_1_u	0.0
 | |
| f_float_3_1_u	0.0
 | |
| drop table t1;
 | |
| create table t1(id1 int not null auto_increment primary key, t char(12));
 | |
| create table t2(id2 int not null, t char(12));
 | |
| create table t3(id3 int not null, t char(12), index(id3));
 | |
| select count(*) from t2;
 | |
| count(*)
 | |
| 500
 | |
| insert into  t2 select t1.* from t1, t2 t, t3 where  t1.id1 = t.id2 and t.id2 = t3.id3;
 | |
| select count(*) from t2;
 | |
| count(*)
 | |
| 25500
 | |
| drop table t1,t2,t3;
 |