mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-25 18:38:00 +03:00 
			
		
		
		
	results) Before this fix, the function BENCHMARK() would fail to evaluate expressions like "(select avg(a) from t1)" in debug builds (with an assert), or would report a time of zero in non debug builds. The root cause is that evaluation of DECIMAL_RESULT expressions was not supported in Item_func_benchmark::val_int(). This has been fixed by this change. mysql-test/r/func_misc.result: Added support for DECIMAL_RESULT in Item_func_benchmark::val_int() mysql-test/t/func_misc.test: Added support for DECIMAL_RESULT in Item_func_benchmark::val_int() sql/item_func.cc: Added support for DECIMAL_RESULT in Item_func_benchmark::val_int()
		
			
				
	
	
		
			189 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| select format(1.5555,0),format(123.5555,1),format(1234.5555,2),format(12345.55555,3),format(123456.5555,4),format(1234567.5555,5),format("12345.2399",2);
 | |
| format(1.5555,0)	format(123.5555,1)	format(1234.5555,2)	format(12345.55555,3)	format(123456.5555,4)	format(1234567.5555,5)	format("12345.2399",2)
 | |
| 2	123.6	1,234.56	12,345.556	123,456.5555	1,234,567.55550	12,345.24
 | |
| select inet_ntoa(inet_aton("255.255.255.255.255.255.255.255"));
 | |
| inet_ntoa(inet_aton("255.255.255.255.255.255.255.255"))
 | |
| NULL
 | |
| select inet_aton("255.255.255.255.255"),inet_aton("255.255.1.255"),inet_aton("0.1.255");
 | |
| inet_aton("255.255.255.255.255")	inet_aton("255.255.1.255")	inet_aton("0.1.255")
 | |
| 1099511627775	4294902271	65791
 | |
| select inet_ntoa(1099511627775),inet_ntoa(4294902271),inet_ntoa(511);
 | |
| inet_ntoa(1099511627775)	inet_ntoa(4294902271)	inet_ntoa(511)
 | |
| NULL	255.255.1.255	0.0.1.255
 | |
| select hex(inet_aton('127'));
 | |
| hex(inet_aton('127'))
 | |
| 7F
 | |
| select hex(inet_aton('127.1'));
 | |
| hex(inet_aton('127.1'))
 | |
| 7F000001
 | |
| select hex(inet_aton('127.1.1'));
 | |
| hex(inet_aton('127.1.1'))
 | |
| 7F010001
 | |
| select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
 | |
| length(uuid())	charset(uuid())	length(unhex(replace(uuid(),_utf8'-',_utf8'')))
 | |
| 36	utf8	16
 | |
| select length(format('nan', 2)) > 0;
 | |
| length(format('nan', 2)) > 0
 | |
| 1
 | |
| Warnings:
 | |
| Warning	1292	Truncated incorrect DOUBLE value: 'nan'
 | |
| select concat("$",format(2500,2));
 | |
| concat("$",format(2500,2))
 | |
| $2,500.00
 | |
| create table t1 ( a timestamp );
 | |
| insert into t1 values ( '2004-01-06 12:34' );
 | |
| select a from t1 where left(a+0,6) in ( left(20040106,6) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| select a from t1 where left(a+0,6) = ( left(20040106,6) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| select a from t1 where right(a+0,6) in ( right(20040106123400,6) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| select a from t1 where right(a+0,6) = ( right(20040106123400,6) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| select a from t1 where mid(a+0,6,3) in ( mid(20040106123400,6,3) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
 | |
| a
 | |
| 2004-01-06 12:34:00
 | |
| drop table t1;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| CREATE TABLE t1 (conn CHAR(7), connection_id INT);
 | |
| INSERT INTO t1 VALUES ('default', CONNECTION_ID());
 | |
| SELECT GET_LOCK('bug16501',600);
 | |
| GET_LOCK('bug16501',600)
 | |
| 1
 | |
| INSERT INTO t1 VALUES ('con1', CONNECTION_ID());
 | |
| SELECT IS_USED_LOCK('bug16501') = connection_id
 | |
| FROM t1
 | |
| WHERE conn = 'default';
 | |
| IS_USED_LOCK('bug16501') = connection_id
 | |
| 1
 | |
| SELECT GET_LOCK('bug16501',600);
 | |
| SELECT IS_USED_LOCK('bug16501') = CONNECTION_ID();
 | |
| IS_USED_LOCK('bug16501') = CONNECTION_ID()
 | |
| 1
 | |
| SELECT RELEASE_LOCK('bug16501');
 | |
| RELEASE_LOCK('bug16501')
 | |
| 1
 | |
| GET_LOCK('bug16501',600)
 | |
| 1
 | |
| SELECT IS_USED_LOCK('bug16501') = connection_id
 | |
| FROM t1
 | |
| WHERE conn = 'con1';
 | |
| IS_USED_LOCK('bug16501') = connection_id
 | |
| 1
 | |
| SELECT IS_USED_LOCK('bug16501') = CONNECTION_ID();
 | |
| IS_USED_LOCK('bug16501') = CONNECTION_ID()
 | |
| 1
 | |
| SELECT RELEASE_LOCK('bug16501');
 | |
| RELEASE_LOCK('bug16501')
 | |
| 1
 | |
| SELECT IS_USED_LOCK('bug16501');
 | |
| IS_USED_LOCK('bug16501')
 | |
| NULL
 | |
| DROP TABLE t1;
 | |
| select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
 | |
| export_set(3, _latin1'foo', _utf8'bar', ',', 4)
 | |
| foo,foo,bar,bar
 | |
| End of 4.1 tests
 | |
| create table t1 as select uuid(), length(uuid());
 | |
| show create table t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `uuid()` varchar(36) character set utf8 NOT NULL default '',
 | |
|   `length(uuid())` int(10) NOT NULL default '0'
 | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 | |
| drop table t1;
 | |
| create table t1 (a timestamp default '2005-05-05 01:01:01',
 | |
| b timestamp default '2005-05-05 01:01:01');
 | |
| insert into t1 set a = now();
 | |
| select sleep(3);
 | |
| sleep(3)
 | |
| 0
 | |
| update t1 set b = now();
 | |
| select timediff(b, a) >= '00:00:03' from t1;
 | |
| timediff(b, a) >= '00:00:03'
 | |
| 1
 | |
| drop table t1;
 | |
| set global query_cache_size=1355776;
 | |
| create table t1 (a int);
 | |
| insert into t1 values (1),(1),(1);
 | |
| create table t2 (a datetime default null, b datetime default null);
 | |
| insert into t2 set a = now();
 | |
| select a from t1 where sleep(1);
 | |
| a
 | |
| update t2 set b = now() where b is null;
 | |
| insert into t2 set a = now();
 | |
| select a from t1 where sleep(a);
 | |
| a
 | |
| update t2 set b = now() where b is null;
 | |
| insert into t2 set a = now();
 | |
| select a from t1 where sleep(1);
 | |
| a
 | |
| update t2 set b = now() where b is null;
 | |
| select timediff(b, a) >= '00:00:03' from t2;
 | |
| timediff(b, a) >= '00:00:03'
 | |
| 1
 | |
| 1
 | |
| 1
 | |
| drop table t2;
 | |
| drop table t1;
 | |
| set global query_cache_size=default;
 | |
| create table t1 select INET_ATON('255.255.0.1') as `a`;
 | |
| show create table t1;
 | |
| Table	Create Table
 | |
| t1	CREATE TABLE `t1` (
 | |
|   `a` bigint(21) unsigned default NULL
 | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1
 | |
| drop table t1;
 | |
| drop table if exists table_26093;
 | |
| drop function if exists func_26093_a;
 | |
| drop function if exists func_26093_b;
 | |
| create table table_26093(a int);
 | |
| insert into table_26093 values
 | |
| (1), (2), (3), (4), (5),
 | |
| (6), (7), (8), (9), (10);
 | |
| create function func_26093_a(x int) returns int
 | |
| begin
 | |
| set @invoked := @invoked + 1;
 | |
| return x;
 | |
| end//
 | |
| create function func_26093_b(x int, y int) returns int
 | |
| begin
 | |
| set @invoked := @invoked + 1;
 | |
| return x;
 | |
| end//
 | |
| select avg(a) from table_26093;
 | |
| avg(a)
 | |
| 5.5000
 | |
| select benchmark(100, (select avg(a) from table_26093));
 | |
| benchmark(100, (select avg(a) from table_26093))
 | |
| 0
 | |
| set @invoked := 0;
 | |
| select benchmark(100, (select avg(func_26093_a(a)) from table_26093));
 | |
| benchmark(100, (select avg(func_26093_a(a)) from table_26093))
 | |
| 0
 | |
| select @invoked;
 | |
| @invoked
 | |
| 10
 | |
| set @invoked := 0;
 | |
| select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093));
 | |
| benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093))
 | |
| 0
 | |
| select @invoked;
 | |
| @invoked
 | |
| 1000
 | |
| select benchmark(100, (select (a) from table_26093));
 | |
| ERROR 21000: Subquery returns more than 1 row
 | |
| select benchmark(100, (select 1, 1));
 | |
| ERROR 21000: Operand should contain 1 column(s)
 | |
| drop table table_26093;
 | |
| drop function func_26093_a;
 | |
| drop function func_26093_b;
 | |
| End of 5.0 tests
 |