mirror of
https://github.com/MariaDB/server.git
synced 2025-11-15 09:02:33 +03:00
BitKeeper/etc/logging_ok: auto-union client/mysql.cc: Auto merged extra/my_print_defaults.c: Auto merged include/m_string.h: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/user_var.result: Auto merged mysql-test/t/user_var.test: Auto merged scripts/make_binary_distribution.sh: Auto merged sql/item_func.cc: Auto merged sql/sql_yacc.yy: Auto merged strings/ctype-simple.c: Auto merged strings/ctype-ucs2.c: Auto merged strings/ctype-utf8.c: Auto merged libmysql/libmysql.c: ul mysql-test/r/ps_1general.result: Merge mysql-test/t/derived.test: Merge mysql-test/t/ps_1general.test: Merge mysql-test/t/type_float.test: Merge sql/field.cc: ul sql/item.cc: ul sql/item.h: ul sql/item_func.h: ul sql/item_strfunc.cc: ul sql/item_sum.cc: ul sql/item_sum.h: ul sql/procedure.h: ul sql/sql_derived.cc: Trivial merge sql/sql_parse.cc: ul sql/sql_update.cc: Trivial merge strings/strtod.c: Use updated code from 4.1 This is bascily same code as we had before or 5.0, execpt that we now have higher accuracy for floating points value that are integers (like 123.45E+02)
204 lines
5.8 KiB
Plaintext
204 lines
5.8 KiB
Plaintext
drop table if exists t1,t2;
|
|
set @a := foo;
|
|
ERROR 42S22: Unknown column 'foo' in 'field list'
|
|
set @a := connection_id() + 3;
|
|
select @a - connection_id();
|
|
@a - connection_id()
|
|
3
|
|
set @b := 1;
|
|
select @b;
|
|
@b
|
|
1
|
|
CREATE TABLE t1 ( i int not null, v int not null,index (i));
|
|
insert into t1 values (1,1),(1,3),(2,1);
|
|
create table t2 (i int not null, unique (i));
|
|
insert into t2 select distinct i from t1;
|
|
select * from t2;
|
|
i
|
|
1
|
|
2
|
|
select distinct t2.i,@vv1:=if(sv1.i,1,0),@vv2:=if(sv2.i,1,0),@vv3:=if(sv3.i,1,0), @vv1+@vv2+@vv3 from t2 left join t1 as sv1 on sv1.i=t2.i and sv1.v=1 left join t1 as sv2 on sv2.i=t2.i and sv2.v=2 left join t1 as sv3 on sv3.i=t2.i and sv3.v=3;
|
|
i @vv1:=if(sv1.i,1,0) @vv2:=if(sv2.i,1,0) @vv3:=if(sv3.i,1,0) @vv1+@vv2+@vv3
|
|
1 1 0 1 2
|
|
2 1 0 0 1
|
|
explain select * from t1 where i=@vv1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ref i i 4 const 1
|
|
select @vv1,i,v from t1 where i=@vv1;
|
|
@vv1 i v
|
|
1 1 1
|
|
1 1 3
|
|
explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
|
explain select @vv1:=i from t1 where i=@vv1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL i 4 NULL 3 Using where; Using index
|
|
explain select * from t1 where i=@vv1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ref i i 4 const 1
|
|
drop table t1,t2;
|
|
set @a=0,@b=0;
|
|
select @a:=10, @b:=1, @a > @b, @a < @b;
|
|
@a:=10 @b:=1 @a > @b @a < @b
|
|
10 1 1 0
|
|
select @a:="10", @b:="1", @a > @b, @a < @b;
|
|
@a:="10" @b:="1" @a > @b @a < @b
|
|
10 1 1 0
|
|
select @a:=10, @b:=2, @a > @b, @a < @b;
|
|
@a:=10 @b:=2 @a > @b @a < @b
|
|
10 2 0 1
|
|
select @a:="10", @b:="2", @a > @b, @a < @b;
|
|
@a:="10" @b:="2" @a > @b @a < @b
|
|
10 2 1 0
|
|
select @a:=1;
|
|
@a:=1
|
|
1
|
|
select @a, @a:=1;
|
|
@a @a:=1
|
|
1 1
|
|
create table t1 (id int, d double, c char(10));
|
|
insert into t1 values (1,2.0, "test");
|
|
select @c:=0;
|
|
@c:=0
|
|
0
|
|
update t1 SET id=(@c:=@c+1);
|
|
select @c;
|
|
@c
|
|
1
|
|
select @c:=0;
|
|
@c:=0
|
|
0
|
|
update t1 set id=(@c:=@c+1);
|
|
select @c;
|
|
@c
|
|
1
|
|
select @c:=0;
|
|
@c:=0
|
|
0
|
|
select @c:=@c+1;
|
|
@c:=@c+1
|
|
1
|
|
select @d,(@d:=id),@d from t1;
|
|
@d (@d:=id) @d
|
|
NULL 1 1
|
|
select @e,(@e:=d),@e from t1;
|
|
@e (@e:=d) @e
|
|
NULL 2 2
|
|
select @f,(@f:=c),@f from t1;
|
|
@f (@f:=c) @f
|
|
NULL test test
|
|
set @g=1;
|
|
select @g,(@g:=c),@g from t1;
|
|
@g (@g:=c) @g
|
|
1 test test
|
|
select @c, @d, @e, @f;
|
|
@c @d @e @f
|
|
1 1 2 test
|
|
select @d:=id, @e:=id, @f:=id, @g:=@id from t1;
|
|
@d:=id @e:=id @f:=id @g:=@id
|
|
1 1 1 NULL
|
|
select @c, @d, @e, @f, @g;
|
|
@c @d @e @f @g
|
|
1 1 1 1 NULL
|
|
drop table t1;
|
|
select @a:=10, @b:=2, @a>@b, @a:="10", @b:="2", @a>@b, @a:=10, @b:=2, @a>@b, @a:="10", @b:="2", @a>@b;
|
|
@a:=10 @b:=2 @a>@b @a:="10" @b:="2" @a>@b @a:=10 @b:=2 @a>@b @a:="10" @b:="2" @a>@b
|
|
10 2 1 10 2 1 10 2 1 10 2 1
|
|
create table t1 (i int not null);
|
|
insert t1 values (1),(2),(2),(3),(3),(3);
|
|
select @a:=0;
|
|
@a:=0
|
|
0
|
|
select @a, @a:=@a+count(*), count(*), @a from t1 group by i;
|
|
@a @a:=@a+count(*) count(*) @a
|
|
0 1 1 0
|
|
0 2 2 0
|
|
0 3 3 0
|
|
select @a:=0;
|
|
@a:=0
|
|
0
|
|
select @a+0, @a:=@a+0+count(*), count(*), @a+0 from t1 group by i;
|
|
@a+0 @a:=@a+0+count(*) count(*) @a+0
|
|
0 1 1 0
|
|
1 3 2 0
|
|
3 6 3 0
|
|
drop table t1;
|
|
set @a=_latin2'test';
|
|
select charset(@a),collation(@a),coercibility(@a);
|
|
charset(@a) collation(@a) coercibility(@a)
|
|
latin2 latin2_general_ci 2
|
|
select @a=_latin2'TEST';
|
|
@a=_latin2'TEST'
|
|
1
|
|
select @a=_latin2'TEST' collate latin2_bin;
|
|
@a=_latin2'TEST' collate latin2_bin
|
|
0
|
|
set @a=_latin2'test' collate latin2_general_ci;
|
|
select charset(@a),collation(@a),coercibility(@a);
|
|
charset(@a) collation(@a) coercibility(@a)
|
|
latin2 latin2_general_ci 2
|
|
select @a=_latin2'TEST';
|
|
@a=_latin2'TEST'
|
|
1
|
|
select @a=_latin2'TEST' collate latin2_bin;
|
|
@a=_latin2'TEST' collate latin2_bin
|
|
0
|
|
select charset(@a:=_latin2'test');
|
|
charset(@a:=_latin2'test')
|
|
latin2
|
|
select collation(@a:=_latin2'test');
|
|
collation(@a:=_latin2'test')
|
|
latin2_general_ci
|
|
select coercibility(@a:=_latin2'test');
|
|
coercibility(@a:=_latin2'test')
|
|
2
|
|
select collation(@a:=_latin2'test' collate latin2_bin);
|
|
collation(@a:=_latin2'test' collate latin2_bin)
|
|
latin2_bin
|
|
select coercibility(@a:=_latin2'test' collate latin2_bin);
|
|
coercibility(@a:=_latin2'test' collate latin2_bin)
|
|
2
|
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST';
|
|
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST'
|
|
0
|
|
select charset(@a),collation(@a),coercibility(@a);
|
|
charset(@a) collation(@a) coercibility(@a)
|
|
latin2 latin2_bin 2
|
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
|
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci
|
|
1
|
|
create table t1 (a varchar(50));
|
|
reset master;
|
|
SET TIMESTAMP=10000;
|
|
SET @`a b`='hello';
|
|
INSERT INTO t1 VALUES(@`a b`);
|
|
set @var1= "';aaa";
|
|
SET @var2=char(ascii('a'));
|
|
insert into t1 values (@var1),(@var2);
|
|
show binlog events from 96;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 96 User var 1 137 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
|
|
master-bin.000001 137 Query 1 230 use `test`; INSERT INTO t1 VALUES(@`a b`)
|
|
master-bin.000001 230 User var 1 272 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
|
|
master-bin.000001 272 User var 1 310 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci
|
|
master-bin.000001 310 Query 1 411 use `test`; insert into t1 values (@var1),(@var2)
|
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
|
ROLLBACK;
|
|
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
|
|
use test;
|
|
SET TIMESTAMP=10000;
|
|
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
|
SET @@session.sql_mode=0;
|
|
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
|
INSERT INTO t1 VALUES(@`a b`);
|
|
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
|
SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
|
|
SET TIMESTAMP=10000;
|
|
insert into t1 values (@var1),(@var2);
|
|
drop table t1;
|
|
set @var= NULL ;
|
|
select FIELD( @var,'1it','Hit') as my_column;
|
|
my_column
|
|
0
|