DROP TABLE IF EXISTS t1, t2;
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' ))
7 F
select hex(inet_aton('127.1' ));
hex(inet_aton('127.1' ))
7 F000001
select hex(inet_aton('127.1.1' ));
hex(inet_aton('127.1.1' ))
7 F010001
select length(uuid()), charset(uuid()), length(unhex(replace (uuid(),_utf8'-' ,_utf8'' )));
length(uuid()) charset(uuid()) length(unhex(replace (uuid(),_utf8'-' ,_utf8'' )))
36 latin1 16
select length(sys_guid()) = length(uuid()) -2 ;
length(sys_guid()) = length(uuid()) -2
0
select sys_guid() != sys_guid();
sys_guid() != sys_guid()
1
explain extended select uuid() = "" , sys_guid() = "" ;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select uuid() = '' AS `uuid() = "" `,sys_guid() = '' AS `sys_guid() = "" `
set @a= uuid_short();
set @b= uuid_short();
select @b - @a;
@b - @a
1
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;
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
connect con1,localhost,root,,;
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 );
connection default;
SELECT IS_USED_LOCK('bug16501' ) = CONNECTION_ID();
IS_USED_LOCK('bug16501' ) = CONNECTION_ID()
1
SELECT RELEASE_LOCK('bug16501' );
RELEASE_LOCK('bug16501' )
1
connection con1;
GET_LOCK('bug16501' ,600 )
1
connection default;
SELECT IS_USED_LOCK('bug16501' ) = connection_id
FROM t1
WHERE conn = 'con1' ;
IS_USED_LOCK('bug16501' ) = connection_id
1
connection con1;
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
disconnect con1;
connection default;
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()` uuid NOT NULL,
`length(uuid())` int(10 ) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
select length(`uuid()`) from t1;
length(`uuid()`)
36
drop table t1;
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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
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)) as exp;
exp
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;
SELECT NAME_CONST('test' , NOW());
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('test' , UPPER('test' ));
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('test' , NULL);
test
NULL
SELECT NAME_CONST('test' , 1 );
test
1
SELECT NAME_CONST('test' , -1 );
test
-1
SELECT NAME_CONST('test' , 1 .0 );
test
1 .0
SELECT NAME_CONST('test' , -1 .0 );
test
-1 .0
SELECT NAME_CONST('test' , 'test' );
test
test
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1 ),(2 ),(3 );
SELECT NAME_CONST('flag' ,1 ) * MAX (a) FROM t1;
NAME_CONST('flag' ,1 ) * MAX (a)
3
SELECT NAME_CONST('flag' ,1 .5 ) * MAX (a) FROM t1;
NAME_CONST('flag' ,1 .5 ) * MAX (a)
4 .5
SELECT NAME_CONST('flag' ,-1 ) * MAX (a) FROM t1;
NAME_CONST('flag' ,-1 ) * MAX (a)
-3
SELECT NAME_CONST('flag' ,-1 .5 ) * MAX (a) FROM t1;
NAME_CONST('flag' ,-1 .5 ) * MAX (a)
-4 .5
SELECT NAME_CONST('flag' , SQRT(4 )) * MAX (a) FROM t1;
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('flag' ,-SQRT(4 )) * MAX (a) FROM t1;
ERROR HY000: Incorrect arguments to NAME_CONST
DROP TABLE t1;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (5 ), (2 );
SELECT NAME_CONST(x,2 ) FROM (SELECT a x FROM t1) t;
ERROR HY000: Incorrect arguments to NAME_CONST
DROP TABLE t1;
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (), (), ();
SELECT NAME_CONST(a, '1' ) FROM t1;
ERROR HY000: Incorrect arguments to NAME_CONST
SET INSERT_ID= NAME_CONST(a, a);
ERROR HY000: Incorrect arguments to NAME_CONST
DROP TABLE t1;
create table t1 (a int not null);
insert into t1 values (-1 ), (-2 );
select min (a) from t1 group by inet_ntoa(a);
min (a)
-2
drop table t1;
SELECT NAME_CONST('var' , 'value' ) COLLATE latin1_general_cs;
NAME_CONST('var' , 'value' ) COLLATE latin1_general_cs
value
select @@session.time_zone into @save_tz;
set @@session.time_zone='UTC' ;
select uuid() into @my_uuid;
select mid(@my_uuid,15 ,1 );
mid(@my_uuid,15 ,1 )
1
select 24 * 60 * 60 * 1000 * 1000 * 10 into @my_uuid_one_day;
select concat('0' ,mid(@my_uuid,16 ,3 ),mid(@my_uuid,10 ,4 ),left(@my_uuid,8 )) into @my_uuidate;
select floor(conv(@my_uuidate,16 ,10 )/@my_uuid_one_day) into @my_uuid_date;
select 141427 + datediff(curdate(),'1970-01-01' ) into @my_uuid_synthetic;
select @my_uuid_date - @my_uuid_synthetic;
@my_uuid_date - @my_uuid_synthetic
0
set @@session.time_zone=@save_tz;
CREATE TABLE t1 (a DATE);
SELECT * FROM t1 WHERE a = NAME_CONST('reportDate' ,
_binary'2009-01-09' COLLATE 'binary' );
a
DROP TABLE t1;
select NAME_CONST('_id' ,1234 ) as id;
id
1234
End of 5 .0 tests
select connection_id() > 0 ;
connection_id() > 0
1
#
# Bug #54461 : crash with longblob and union or update with subquery
#
CREATE TABLE t1 (a INT, b LONGBLOB);
INSERT INTO t1 VALUES (1 , '2' ), (2 , '3' ), (3 , '2' );
SELECT DISTINCT LEAST(a, (SELECT b FROM t1 LIMIT 1 )) FROM t1 UNION SELECT 1 ;
LEAST(a, (SELECT b FROM t1 LIMIT 1 ))
1
2
SELECT DISTINCT GREATEST(a, (SELECT b FROM t1 LIMIT 1 )) FROM t1 UNION SELECT 1 ;
GREATEST(a, (SELECT b FROM t1 LIMIT 1 ))
2
3
1
DROP TABLE t1;
SELECT INET_NTOA(0 );
INET_NTOA(0 )
0 .0 .0 .0
SELECT '1' IN ('1' , INET_NTOA(0 ));
'1' IN ('1' , INET_NTOA(0 ))
1
SELECT NAME_CONST('a' , -(1 OR 2 )) OR 1 ;
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('a' , -(1 AND 2 )) AND 1 ;
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('a' , -(1 )) OR 1 ;
NAME_CONST('a' , -(1 )) OR 1
1
#
#MDEV-5446 : Assertion `!table || (!table->read_set ||
#bitmap_is_set(table->read_set, field_index))' fails on
#EXPLAIN EXTENDED with VALUES function
#
CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1 ,10 );
CREATE VIEW v1 AS SELECT * FROM t1;
EXPLAIN EXTENDED SELECT VALUE(b) FROM v1;
id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 100 .00
Warnings:
Note 1003 select value(10 ) AS `VALUE(b)` from dual
drop view v1;
drop table t1;
End of 5 .3 tests
#
# Bug #52165 : Assertion failed: file .\dtoa.c, line 465
#
CREATE TABLE t1 (a SET ('a' ), b INT);
INSERT INTO t1 VALUES ('' , 0 );
SELECT COALESCE(a) = COALESCE(b) FROM t1;
COALESCE(a) = COALESCE(b)
1
Warnings:
Warning 1292 Truncated incorrect DECIMAL value: ''
DROP TABLE t1;
#
# Bug #54461 : crash with longblob and union or update with subquery
#
CREATE TABLE t1 (a INT, b LONGBLOB);
INSERT INTO t1 VALUES (1 , '2' ), (2 , '3' ), (3 , '2' );
SELECT DISTINCT LEAST(a, (SELECT b FROM t1 LIMIT 1 )) FROM t1 UNION SELECT 1 ;
LEAST(a, (SELECT b FROM t1 LIMIT 1 ))
1
2
SELECT DISTINCT GREATEST(a, (SELECT b FROM t1 LIMIT 1 )) FROM t1 UNION SELECT 1 ;
GREATEST(a, (SELECT b FROM t1 LIMIT 1 ))
2
3
1
DROP TABLE t1;
SELECT INET_NTOA(0 );
INET_NTOA(0 )
0 .0 .0 .0
SELECT '1' IN ('1' , INET_NTOA(0 ));
'1' IN ('1' , INET_NTOA(0 ))
1
#
# End of 5 .1 tests
#
#
# Bug #58199 : name_const in the having clause crashes
#
CREATE TABLE t1 (a INT);
SELECT 1 from t1 HAVING NAME_CONST('' , a);
ERROR HY000: Incorrect arguments to NAME_CONST
DROP TABLE t1;
#
# Test or correct maybe_null of last_value
#
CREATE TABLE t1 (a char(2 ) not null );
INSERT INTO t1 VALUES (4 ),(7 ),(1 );
set @optimizer_switch_save= @@optimizer_switch;
set optimizer_switch='materialization=off' ;
CREATE TABLE tv (e char(2 ) not null );
INSERT INTO tv VALUES (1 );
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM tv;
CREATE ALGORITHM=MERGE VIEW vm AS SELECT * FROM tv;
explain extended
select a from t1 left join v_merge on (a=e) where last_value(NULL,e) not in (select last_value(NULL,e) from vm);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100 .00
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100 .00 Using where; Using join buffer (flat, BNL join)
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100 .00
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on(`test`.`tv`.`e` = `test`.`t1`.`a`) where !<expr_cache><last_value(NULL,`test`.`tv`.`e`)>(<in_optimizer>(last_value(NULL,`test`.`tv`.`e`),<exists>(/* select#2 */ select last_value(NULL,'1') from dual where trigcond(<cache>(last_value(NULL,`test`.`tv`.`e`)) = last_value(NULL,'1')))))
explain extended
select a from t1 left join v_merge on (a=e) where e not in (select last_value(NULL,e) from vm);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100 .00
1 PRIMARY tv ALL NULL NULL NULL NULL 1 100 .00 Using where; Using join buffer (flat, BNL join)
2 DEPENDENT SUBQUERY tv system NULL NULL NULL NULL 1 100 .00
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` left join (`test`.`tv`) on(`test`.`tv`.`e` = `test`.`t1`.`a`) where !<expr_cache><`test`.`tv`.`e`>(<in_optimizer>(`test`.`tv`.`e`,<exists>(/* select#2 */ select last_value(NULL,'1') from dual where trigcond(<cache>(`test`.`tv`.`e`) = last_value(NULL,'1')))))
set optimizer_switch=@optimizer_switch_save;
drop view v_merge, vm;
drop table t1,tv;
#
# MDEV-4017 - GET_LOCK() with negative timeouts has strange behavior
#
SELECT GET_LOCK('ul1' , NULL);
GET_LOCK('ul1' , NULL)
NULL
Warnings:
Warning 1411 Incorrect timeout value: 'NULL' for function get_lock
SELECT GET_LOCK('ul1' , -1 );
GET_LOCK('ul1' , -1 )
NULL
Warnings:
Warning 1411 Incorrect timeout value: '-1' for function get_lock
#
# MDEV-8624 MariaDB hangs on query with many logical condition
#
CREATE TABLE `t1` (
`id` int(11 ) NOT NULL AUTO_INCREMENT,
`submitdate` datetime DEFAULT NULL,
`lastpage` int(11 ) DEFAULT NULL,
`startlanguage` varchar(20 ) COLLATE utf8_unicode_ci NOT NULL,
`token` varchar(36 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`datestamp` datetime NOT NULL,
`startdate` datetime NOT NULL,
`ipaddr` text COLLATE utf8_unicode_ci,
`refurl` text COLLATE utf8_unicode_ci,
`57813 X540X1723` text COLLATE utf8_unicode_ci,
`57813 X540X1724` text COLLATE utf8_unicode_ci,
`57813 X540X1725` text COLLATE utf8_unicode_ci,
`57813 X540X1726` double DEFAULT NULL,
`57813 X540X1909` double DEFAULT NULL,
`57813 X541X17271` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17272` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17273` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17274` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17275` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17276` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X541X17281` text COLLATE utf8_unicode_ci,
`57813 X541X17282` text COLLATE utf8_unicode_ci,
`57813 X541X17283` text COLLATE utf8_unicode_ci,
`57813 X541X17284` text COLLATE utf8_unicode_ci,
`57813 X541X17285` text COLLATE utf8_unicode_ci,
`57813 X541X17286` text COLLATE utf8_unicode_ci,
`57813 X542X18131` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18132` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18133` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18134` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18135` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18136` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18137` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18138` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18139` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X542X18141` text COLLATE utf8_unicode_ci,
`57813 X542X18142` text COLLATE utf8_unicode_ci,
`57813 X542X18143` text COLLATE utf8_unicode_ci,
`57813 X542X18144` text COLLATE utf8_unicode_ci,
`57813 X542X18145` text COLLATE utf8_unicode_ci,
`57813 X542X18146` text COLLATE utf8_unicode_ci,
`57813 X542X18147` text COLLATE utf8_unicode_ci,
`57813 X542X18148` text COLLATE utf8_unicode_ci,
`57813 X542X18149` text COLLATE utf8_unicode_ci,
`57813 X543X18451` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18452` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18453` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18454` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18455` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18456` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X543X18461` text COLLATE utf8_unicode_ci,
`57813 X543X18462` text COLLATE utf8_unicode_ci,
`57813 X543X18463` text COLLATE utf8_unicode_ci,
`57813 X543X18464` text COLLATE utf8_unicode_ci,
`57813 X543X18465` text COLLATE utf8_unicode_ci,
`57813 X543X18466` text COLLATE utf8_unicode_ci,
`57813 X544X18711` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18712` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18713` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18714` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18715` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18716` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18717` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18718` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X544X18721` text COLLATE utf8_unicode_ci,
`57813 X544X18722` text COLLATE utf8_unicode_ci,
`57813 X544X18723` text COLLATE utf8_unicode_ci,
`57813 X544X18724` text COLLATE utf8_unicode_ci,
`57813 X544X18725` text COLLATE utf8_unicode_ci,
`57813 X544X18726` text COLLATE utf8_unicode_ci,
`57813 X544X18727` text COLLATE utf8_unicode_ci,
`57813 X544X18728` text COLLATE utf8_unicode_ci,
`57813 X546X1902` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X546X1903` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X546X1904` varchar(5 ) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813 X545X1901` varchar(1 ) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `lime_survey_57813_idx` (`token`),
KEY `57813 X540X1723` (`57813 X540X1723`(100 )),
KEY `57813 X540X1724` (`57813 X540X1724`(100 )),
KEY `57813 X540X1726` (`57813 X540X1726`),
KEY `57813 X540X1725` (`57813 X540X1725`(100 )),
KEY `57813 X546X1902` (`57813 X546X1902`),
KEY `57813 X546X1903` (`57813 X546X1903`),
KEY `57813 X546X1904` (`57813 X546X1904`)
);
SELECT
COUNT(*) as `N`,
ROUND(
(
SUM(
(
(
IF ( 57813 X541X17271 IS NOT NULL AND 57813 X541X17271 != '' AND 57813 X541X17271 != '99' , 57813 X541X17271, 0 ) +
IF ( 57813 X541X17272 IS NOT NULL AND 57813 X541X17272 != '' AND 57813 X541X17272 != '99' , 57813 X541X17272, 0 ) +
IF ( 57813 X541X17273 IS NOT NULL AND 57813 X541X17273 != '' AND 57813 X541X17273 != '99' , 57813 X541X17273, 0 ) +
IF ( 57813 X541X17274 IS NOT NULL AND 57813 X541X17274 != '' AND 57813 X541X17274 != '99' , 57813 X541X17274, 0 ) +
IF ( 57813 X541X17275 IS NOT NULL AND 57813 X541X17275 != '' AND 57813 X541X17275 != '99' , 57813 X541X17275, 0 ) +
IF ( 57813 X541X17276 IS NOT NULL AND 57813 X541X17276 != '' AND 57813 X541X17276 != '99' , 57813 X541X17276, 0 ) +
IF ( 57813 X542X18131 IS NOT NULL AND 57813 X542X18131 != '' AND 57813 X542X18131 != '99' , 57813 X542X18131, 0 ) +
IF ( 57813 X542X18132 IS NOT NULL AND 57813 X542X18132 != '' AND 57813 X542X18132 != '99' , 57813 X542X18132, 0 ) +
IF ( 57813 X542X18133 IS NOT NULL AND 57813 X542X18133 != '' AND 57813 X542X18133 != '99' , 57813 X542X18133, 0 ) +
IF ( 57813 X542X18134 IS NOT NULL AND 57813 X542X18134 != '' AND 57813 X542X18134 != '99' , 57813 X542X18134, 0 ) +
IF ( 57813 X542X18135 IS NOT NULL AND 57813 X542X18135 != '' AND 57813 X542X18135 != '99' , 57813 X542X18135, 0 ) +
IF ( 57813 X542X18136 IS NOT NULL AND 57813 X542X18136 != '' AND 57813 X542X18136 != '99' , 57813 X542X18136, 0 ) +
IF ( 57813 X542X18137 IS NOT NULL AND 57813 X542X18137 != '' AND 57813 X542X18137 != '99' , 57813 X542X18137, 0 ) +
IF ( 57813 X542X18138 IS NOT NULL AND 57813 X542X18138 != '' AND 57813 X542X18138 != '99' , 57813 X542X18138, 0 ) +
IF ( 57813 X542X18139 IS NOT NULL AND 57813 X542X18139 != '' AND 57813 X542X18139 != '99' , 57813 X542X18139, 0 ) +
IF ( 57813 X543X18451 IS NOT NULL AND 57813 X543X18451 != '' AND 57813 X543X18451 != '99' , 57813 X543X18451, 0 ) +
IF ( 57813 X543X18452 IS NOT NULL AND 57813 X543X18452 != '' AND 57813 X543X18452 != '99' , 57813 X543X18452, 0 ) +
IF ( 57813 X543X18453 IS NOT NULL AND 57813 X543X18453 != '' AND 57813 X543X18453 != '99' , 57813 X543X18453, 0 ) +
IF ( 57813 X543X18454 IS NOT NULL AND 57813 X543X18454 != '' AND 57813 X543X18454 != '99' , 57813 X543X18454, 0 ) +
IF ( 57813 X543X18455 IS NOT NULL AND 57813 X543X18455 != '' AND 57813 X543X18455 != '99' , 57813 X543X18455, 0 ) +
IF ( 57813 X543X18456 IS NOT NULL AND 57813 X543X18456 != '' AND 57813 X543X18456 != '99' , 57813 X543X18456, 0 ) +
IF ( 57813 X544X18711 IS NOT NULL AND 57813 X544X18711 != '' AND 57813 X544X18711 != '99' , 57813 X544X18711, 0 ) +
IF ( 57813 X544X18712 IS NOT NULL AND 57813 X544X18712 != '' AND 57813 X544X18712 != '99' , 57813 X544X18712, 0 ) +
IF ( 57813 X544X18713 IS NOT NULL AND 57813 X544X18713 != '' AND 57813 X544X18713 != '99' , 57813 X544X18713, 0 ) +
IF ( 57813 X544X18714 IS NOT NULL AND 57813 X544X18714 != '' AND 57813 X544X18714 != '99' , 57813 X544X18714, 0 ) +
IF ( 57813 X544X18715 IS NOT NULL AND 57813 X544X18715 != '' AND 57813 X544X18715 != '99' , 57813 X544X18715, 0 ) +
IF ( 57813 X544X18716 IS NOT NULL AND 57813 X544X18716 != '' AND 57813 X544X18716 != '99' , 57813 X544X18716, 0 ) +
IF ( 57813 X544X18717 IS NOT NULL AND 57813 X544X18717 != '' AND 57813 X544X18717 != '99' , 57813 X544X18717, 0 ) +
IF ( 57813 X544X18718 IS NOT NULL AND 57813 X544X18718 != '' AND 57813 X544X18718 != '99' , 57813 X544X18718, 0 )
)
/
(
IF ( 57813 X541X17271 IS NOT NULL AND 57813 X541X17271 != '' AND 57813 X541X17271 != '99' , 1 , 0 ) +
IF ( 57813 X541X17272 IS NOT NULL AND 57813 X541X17272 != '' AND 57813 X541X17272 != '99' , 1 , 0 ) +
IF ( 57813 X541X17273 IS NOT NULL AND 57813 X541X17273 != '' AND 57813 X541X17273 != '99' , 1 , 0 ) +
IF ( 57813 X541X17274 IS NOT NULL AND 57813 X541X17274 != '' AND 57813 X541X17274 != '99' , 1 , 0 ) +
IF ( 57813 X541X17275 IS NOT NULL AND 57813 X541X17275 != '' AND 57813 X541X17275 != '99' , 1 , 0 ) +
IF ( 57813 X541X17276 IS NOT NULL AND 57813 X541X17276 != '' AND 57813 X541X17276 != '99' , 1 , 0 ) +
IF ( 57813 X542X18131 IS NOT NULL AND 57813 X542X18131 != '' AND 57813 X542X18131 != '99' , 1 , 0 ) +
IF ( 57813 X542X18132 IS NOT NULL AND 57813 X542X18132 != '' AND 57813 X542X18132 != '99' , 1 , 0 ) +
IF ( 57813 X542X18133 IS NOT NULL AND 57813 X542X18133 != '' AND 57813 X542X18133 != '99' , 1 , 0 ) +
IF ( 57813 X542X18134 IS NOT NULL AND 57813 X542X18134 != '' AND 57813 X542X18134 != '99' , 1 , 0 ) +
IF ( 57813 X542X18135 IS NOT NULL AND 57813 X542X18135 != '' AND 57813 X542X18135 != '99' , 1 , 0 ) +
IF ( 57813 X542X18136 IS NOT NULL AND 57813 X542X18136 != '' AND 57813 X542X18136 != '99' , 1 , 0 ) +
IF ( 57813 X542X18137 IS NOT NULL AND 57813 X542X18137 != '' AND 57813 X542X18137 != '99' , 1 , 0 ) +
IF ( 57813 X542X18138 IS NOT NULL AND 57813 X542X18138 != '' AND 57813 X542X18138 != '99' , 1 , 0 ) +
IF ( 57813 X542X18139 IS NOT NULL AND 57813 X542X18139 != '' AND 57813 X542X18139 != '99' , 1 , 0 ) +
IF ( 57813 X543X18451 IS NOT NULL AND 57813 X543X18451 != '' AND 57813 X543X18451 != '99' , 1 , 0 ) +
IF ( 57813 X543X18452 IS NOT NULL AND 57813 X543X18452 != '' AND 57813 X543X18452 != '99' , 1 , 0 ) +
IF ( 57813 X543X18453 IS NOT NULL AND 57813 X543X18453 != '' AND 57813 X543X18453 != '99' , 1 , 0 ) +
IF ( 57813 X543X18454 IS NOT NULL AND 57813 X543X18454 != '' AND 57813 X543X18454 != '99' , 1 , 0 ) +
IF ( 57813 X543X18455 IS NOT NULL AND 57813 X543X18455 != '' AND 57813 X543X18455 != '99' , 1 , 0 ) +
IF ( 57813 X543X18456 IS NOT NULL AND 57813 X543X18456 != '' AND 57813 X543X18456 != '99' , 1 , 0 ) +
IF ( 57813 X544X18711 IS NOT NULL AND 57813 X544X18711 != '' AND 57813 X544X18711 != '99' , 1 , 0 ) +
IF ( 57813 X544X18712 IS NOT NULL AND 57813 X544X18712 != '' AND 57813 X544X18712 != '99' , 1 , 0 ) +
IF ( 57813 X544X18713 IS NOT NULL AND 57813 X544X18713 != '' AND 57813 X544X18713 != '99' , 1 , 0 ) +
IF ( 57813 X544X18714 IS NOT NULL AND 57813 X544X18714 != '' AND 57813 X544X18714 != '99' , 1 , 0 ) +
IF ( 57813 X544X18715 IS NOT NULL AND 57813 X544X18715 != '' AND 57813 X544X18715 != '99' , 1 , 0 ) +
IF ( 57813 X544X18716 IS NOT NULL AND 57813 X544X18716 != '' AND 57813 X544X18716 != '99' , 1 , 0 ) +
IF ( 57813 X544X18717 IS NOT NULL AND 57813 X544X18717 != '' AND 57813 X544X18717 != '99' , 1 , 0 ) +
IF ( 57813 X544X18718 IS NOT NULL AND 57813 X544X18718 != '' AND 57813 X544X18718 != '99' , 1 , 0 )
)
)
)
/ COUNT(*) ), 4 ) as `AVG`
FROM `t1`
WHERE `submitdate` IS NOT NULL
AND (
( 57813 X541X17271 IS NOT NULL AND 57813 X541X17271 != '' AND 57813 X541X17271 != '99' ) OR
( 57813 X541X17272 IS NOT NULL AND 57813 X541X17272 != '' AND 57813 X541X17272 != '99' ) OR
( 57813 X541X17273 IS NOT NULL AND 57813 X541X17273 != '' AND 57813 X541X17273 != '99' ) OR
( 57813 X541X17274 IS NOT NULL AND 57813 X541X17274 != '' AND 57813 X541X17274 != '99' ) OR
( 57813 X541X17275 IS NOT NULL AND 57813 X541X17275 != '' AND 57813 X541X17275 != '99' ) OR
( 57813 X541X17276 IS NOT NULL AND 57813 X541X17276 != '' AND 57813 X541X17276 != '99' ) OR
( 57813 X542X18131 IS NOT NULL AND 57813 X542X18131 != '' AND 57813 X542X18131 != '99' ) OR
( 57813 X542X18132 IS NOT NULL AND 57813 X542X18132 != '' AND 57813 X542X18132 != '99' ) OR
( 57813 X542X18133 IS NOT NULL AND 57813 X542X18133 != '' AND 57813 X542X18133 != '99' ) OR
( 57813 X542X18134 IS NOT NULL AND 57813 X542X18134 != '' AND 57813 X542X18134 != '99' ) OR
( 57813 X542X18135 IS NOT NULL AND 57813 X542X18135 != '' AND 57813 X542X18135 != '99' ) OR
( 57813 X542X18136 IS NOT NULL AND 57813 X542X18136 != '' AND 57813 X542X18136 != '99' ) OR
( 57813 X542X18137 IS NOT NULL AND 57813 X542X18137 != '' AND 57813 X542X18137 != '99' ) OR
( 57813 X542X18138 IS NOT NULL AND 57813 X542X18138 != '' AND 57813 X542X18138 != '99' ) OR
( 57813 X542X18139 IS NOT NULL AND 57813 X542X18139 != '' AND 57813 X542X18139 != '99' ) OR
( 57813 X543X18451 IS NOT NULL AND 57813 X543X18451 != '' AND 57813 X543X18451 != '99' ) OR
( 57813 X543X18452 IS NOT NULL AND 57813 X543X18452 != '' AND 57813 X543X18452 != '99' ) OR
( 57813 X543X18453 IS NOT NULL AND 57813 X543X18453 != '' AND 57813 X543X18453 != '99' ) OR
( 57813 X543X18454 IS NOT NULL AND 57813 X543X18454 != '' AND 57813 X543X18454 != '99' ) OR
( 57813 X543X18455 IS NOT NULL AND 57813 X543X18455 != '' AND 57813 X543X18455 != '99' ) OR
( 57813 X543X18456 IS NOT NULL AND 57813 X543X18456 != '' AND 57813 X543X18456 != '99' ) OR
( 57813 X544X18711 IS NOT NULL AND 57813 X544X18711 != '' AND 57813 X544X18711 != '99' ) OR
( 57813 X544X18712 IS NOT NULL AND 57813 X544X18712 != '' AND 57813 X544X18712 != '99' ) OR
( 57813 X544X18713 IS NOT NULL AND 57813 X544X18713 != '' AND 57813 X544X18713 != '99' ) OR
( 57813 X544X18714 IS NOT NULL AND 57813 X544X18714 != '' AND 57813 X544X18714 != '99' ) OR
( 57813 X544X18715 IS NOT NULL AND 57813 X544X18715 != '' AND 57813 X544X18715 != '99' ) OR
( 57813 X544X18716 IS NOT NULL AND 57813 X544X18716 != '' AND 57813 X544X18716 != '99' ) OR
( 57813 X544X18717 IS NOT NULL AND 57813 X544X18717 != '' AND 57813 X544X18717 != '99' ) OR
( 57813 X544X18718 IS NOT NULL AND 57813 X544X18718 != '' AND 57813 X544X18718 != '99' ) )
AND 57813 X540X1723 = 'Test' ;
N AVG
0 NULL
drop table t1;
SELECT NAME_CONST('a' , -(1 OR 2 )) OR 1 ;
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('a' , -(1 AND 2 )) OR 1 ;
ERROR HY000: Incorrect arguments to NAME_CONST
SELECT NAME_CONST('a' , -(1 )) OR 1 ;
NAME_CONST('a' , -(1 )) OR 1
1
#
# MDEV-15630 uuid() function evaluates at wrong time in query
#
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1 ),(2 ),(3 );
SELECT COUNT(1 ), UUID() as uid FROM t1 GROUP BY uid;
COUNT(1 ) uid
1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DROP TABLE t1;
#
# End of 5 .5 tests
#
#
# GET_LOCK, RELEASE_LOCK, IS_USED_LOCK functions test
#
# IS_USED_LOCK, IS_FREE_LOCK: the lock is not acquired
# Note: IS_USED_LOCK returns NULL if the lock is unused
select is_used_lock('test' );
is_used_lock('test' )
NULL
select is_free_lock('test' );
is_free_lock('test' )
1
# GET_LOCK returns 1 if it manages to acquire a lock
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
# IS_USED_LOCK, IS_FREE_LOCK: the lock is acquired
select is_free_lock('test' );
is_free_lock('test' )
0
select is_used_lock('test' ) = connection_id();
is_used_lock('test' ) = connection_id()
1
connect con1,localhost,root,,;
connection con1;
# IS_USED_LOCK, IS_FREE_LOCK: the lock is acquired in another
# connection
select is_used_lock('test' ) = connection_id();
is_used_lock('test' ) = connection_id()
0
select is_free_lock('test' );
is_free_lock('test' )
0
# GET_LOCK returns 0 if it can't acquire a lock (wait timeout)
select get_lock('test' , 0 );
get_lock('test' , 0 )
0
# RELEASE_LOCK returns 0 if the lock belongs to another connection
select release_lock('test' );
release_lock('test' )
0
connection default;
# RELEASE_LOCK returns 1 if it successfully releases a lock
select release_lock('test' );
release_lock('test' )
1
# RELEASE_LOCK returns NULL if it doesn't release a lock and there is no such lock
select release_lock('test' );
release_lock('test' )
NULL
# Test that get_lock() returns NULL if error .
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
connection con1;
create table t1 select connection_id() as id;
select get_lock('test' , 7200 );
connection default;
select (@id := id) - id from t1;
(@id := id) - id
0
kill query @id;
connection con1;
get_lock('test' , 7200 )
NULL
connection default;
# GET_LOCK() works recursively
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
# RELEASE_LOCK() needs to be called recursively then, too
select release_lock('test' );
release_lock('test' )
1
select release_lock('test' );
release_lock('test' )
1
select release_lock('test' );
release_lock('test' )
1
# Once the last instance of the lock is released,
# the next call returns NULL
select release_lock('test' );
release_lock('test' )
1
# Multiple locks in the same session are OK
select get_lock('test1' , 0 );
get_lock('test1' , 0 )
1
select get_lock('test2' , 0 );
get_lock('test2' , 0 )
1
select get_lock('test3' , 0 );
get_lock('test3' , 0 )
1
select release_lock('test1' );
release_lock('test1' )
1
select release_lock('test2' );
release_lock('test2' )
1
select release_lock('test3' );
release_lock('test3' )
1
# Deadlocks are detected e.g. in case of a mutual wait
select get_lock('test1' , 0 );
get_lock('test1' , 0 )
1
connection con1;
select get_lock('test2' , 0 );
get_lock('test2' , 0 )
1
select get_lock('test1' , 7200 );
connection default;
select get_lock('test2' , 7200 );
ERROR 40001 : Deadlock found when trying to get lock; try restarting transaction
select release_lock('test1' );
release_lock('test1' )
1
connection con1;
get_lock('test1' , 7200 )
1
select release_lock('test2' );
release_lock('test2' )
1
select release_lock('test1' );
release_lock('test1' )
1
connection default;
# LOCK/UNLOCK TABLES works fine with a user lock.
lock table t1 write;
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
unlock tables;
commit;
select release_lock('test' );
release_lock('test' )
1
# GLOBAL READ LOCK works with fine with user locks
select get_lock('test1' , 0 );
get_lock('test1' , 0 )
1
flush tables with read lock;
select get_lock('test2' , 0 );
get_lock('test2' , 0 )
1
unlock tables;
commit;
select release_lock('test1' );
release_lock('test1' )
1
select release_lock('test2' );
release_lock('test2' )
1
# BEGIN/COMMIT/ROLLBACK don't unlock user locks.
begin;
select get_lock('test1' , 0 );
get_lock('test1' , 0 )
1
select get_lock('test2' , 0 );
get_lock('test2' , 0 )
1
select count(*) from t1;
count(*)
1
rollback;
select release_lock('test1' );
release_lock('test1' )
1
select release_lock('test2' );
release_lock('test2' )
1
# Deadlocks between user locks and LOCK TABLES locks
# are detected OK.
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
connection con1;
lock table t1 write;
select get_lock('test' , 7200 );
connection default;
lock table t1 read;
ERROR 40001 : Deadlock found when trying to get lock; try restarting transaction
select release_lock('test' );
release_lock('test' )
1
connection con1;
get_lock('test' , 7200 )
1
select release_lock('test' );
release_lock('test' )
1
unlock tables;
# cleanup
disconnect con1;
connection default;
drop table t1;
# check too long identifier names
select get_lock(repeat('a' , 192 ), 0 );
get_lock(repeat('a' , 192 ), 0 )
1
select is_used_lock(repeat('a' , 192 )) = connection_id();
is_used_lock(repeat('a' , 192 )) = connection_id()
1
select is_free_lock(repeat('a' , 192 ));
is_free_lock(repeat('a' , 192 ))
0
select release_lock(repeat('a' , 192 ));
release_lock(repeat('a' , 192 ))
1
select get_lock(repeat('a' , 193 ), 0 );
ERROR 42000 : Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...' is too long
select is_used_lock(repeat('a' , 193 ));
ERROR 42000 : Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...' is too long
select is_free_lock(repeat('a' , 193 ));
ERROR 42000 : Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...' is too long
select release_lock(repeat('a' , 193 ));
ERROR 42000 : Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...' is too long
# --
# -- WL#5787 : IPv6-capable INET_ATON and INET_NTOA functions.
# --
# -- INET6_ATON: checking NULL, invalid types, out-of range values...
SELECT INET6_ATON(NULL) IS NULL;
INET6_ATON(NULL) IS NULL
1
SELECT INET6_ATON(123 ) IS NULL;
INET6_ATON(123 ) IS NULL
1
SELECT INET6_ATON(123 .45 ) IS NULL;
INET6_ATON(123 .45 ) IS NULL
1
SELECT INET6_ATON(NOW()) IS NULL;
INET6_ATON(NOW()) IS NULL
1
SELECT INET6_ATON('1.2.3' ) IS NULL;
INET6_ATON('1.2.3' ) IS NULL
1
SELECT INET6_ATON('1.2.3.' ) IS NULL;
INET6_ATON('1.2.3.' ) IS NULL
1
SELECT INET6_ATON('1..3.4' ) IS NULL;
INET6_ATON('1..3.4' ) IS NULL
1
SELECT INET6_ATON('-1.2.3.4' ) IS NULL;
INET6_ATON('-1.2.3.4' ) IS NULL
1
SELECT INET6_ATON('1.2.3.256' ) IS NULL;
INET6_ATON('1.2.3.256' ) IS NULL
1
SELECT INET6_ATON('1.2.3.4.5' ) IS NULL;
INET6_ATON('1.2.3.4.5' ) IS NULL
1
SELECT INET6_ATON('0001.2.3.4' ) IS NULL;
INET6_ATON('0001.2.3.4' ) IS NULL
1
SELECT INET6_ATON('0x1.2.3.4' ) IS NULL;
INET6_ATON('0x1.2.3.4' ) IS NULL
1
SELECT INET6_ATON('a.2.3.4' ) IS NULL;
INET6_ATON('a.2.3.4' ) IS NULL
1
SELECT INET6_ATON('1.2.3.4:80' ) IS NULL;
INET6_ATON('1.2.3.4:80' ) IS NULL
1
SELECT INET6_ATON('1.2.3.4/32' ) IS NULL;
INET6_ATON('1.2.3.4/32' ) IS NULL
1
SELECT INET6_ATON('mysql.com' ) IS NULL;
INET6_ATON('mysql.com' ) IS NULL
1
SELECT INET6_ATON(':::' ) IS NULL;
INET6_ATON(':::' ) IS NULL
1
SELECT INET6_ATON(':1:2:3' ) IS NULL;
INET6_ATON(':1:2:3' ) IS NULL
1
SELECT INET6_ATON('1:2:3:' ) IS NULL;
INET6_ATON('1:2:3:' ) IS NULL
1
SELECT INET6_ATON(':1::2:3' ) IS NULL;
INET6_ATON(':1::2:3' ) IS NULL
1
SELECT INET6_ATON('1::2:3:' ) IS NULL;
INET6_ATON('1::2:3:' ) IS NULL
1
SELECT INET6_ATON('::00001' ) IS NULL;
INET6_ATON('::00001' ) IS NULL
1
SELECT INET6_ATON('::00001:2' ) IS NULL;
INET6_ATON('::00001:2' ) IS NULL
1
SELECT INET6_ATON('::12345' ) IS NULL;
INET6_ATON('::12345' ) IS NULL
1
SELECT INET6_ATON('1020::3040::5060' ) IS NULL;
INET6_ATON('1020::3040::5060' ) IS NULL
1
SELECT INET6_ATON('::ABCZ' ) IS NULL;
INET6_ATON('::ABCZ' ) IS NULL
1
SELECT INET6_ATON('::0x1.2.3.4' ) IS NULL;
INET6_ATON('::0x1.2.3.4' ) IS NULL
1
SELECT INET6_ATON('::1.0x2.3.4' ) IS NULL;
INET6_ATON('::1.0x2.3.4' ) IS NULL
1
SELECT INET6_ATON('::a.b.c.d' ) IS NULL;
INET6_ATON('::a.b.c.d' ) IS NULL
1
SELECT INET6_ATON('::FFFF:0x1.2.3.4' ) IS NULL;
INET6_ATON('::FFFF:0x1.2.3.4' ) IS NULL
1
SELECT INET6_ATON('::FFFF:1.0x2.3.4' ) IS NULL;
INET6_ATON('::FFFF:1.0x2.3.4' ) IS NULL
1
SELECT INET6_ATON('::FFFF:a.b.c.d' ) IS NULL;
INET6_ATON('::FFFF:a.b.c.d' ) IS NULL
1
SELECT INET6_ATON('::1.2.3.4:ABCD' ) IS NULL;
INET6_ATON('::1.2.3.4:ABCD' ) IS NULL
1
# NOTE: such addresses are supported because getaddrinfo() supports them.
# This is just to record the current behaviour.
SELECT HEX(INET6_ATON('::ABCD:1.2.3.4' ));
HEX(INET6_ATON('::ABCD:1.2.3.4' ))
00000000000000000000 ABCD01020304
# -- INET6_ATON: checking binary representation...
SELECT HEX(INET6_ATON('0.0.0.0' ));
HEX(INET6_ATON('0.0.0.0' ))
00000000
SELECT HEX(INET6_ATON('00.00.00.00' ));
HEX(INET6_ATON('00.00.00.00' ))
00000000
SELECT HEX(INET6_ATON('000.000.000.000' ));
HEX(INET6_ATON('000.000.000.000' ))
00000000
SELECT HEX(INET6_ATON('1.2.3.4' ));
HEX(INET6_ATON('1.2.3.4' ))
01020304
SELECT HEX(INET6_ATON('01.02.03.04' ));
HEX(INET6_ATON('01.02.03.04' ))
01020304
SELECT HEX(INET6_ATON('001.002.003.004' ));
HEX(INET6_ATON('001.002.003.004' ))
01020304
SELECT HEX(INET6_ATON('255.255.255.255' ));
HEX(INET6_ATON('255.255.255.255' ))
FFFFFFFF
SELECT HEX(INET6_ATON('::' ));
HEX(INET6_ATON('::' ))
00000000000000000000000000000000
SELECT HEX(INET6_ATON('0::0' ));
HEX(INET6_ATON('0::0' ))
00000000000000000000000000000000
SELECT HEX(INET6_ATON('1::2' ));
HEX(INET6_ATON('1::2' ))
00010000000000000000000000000002
SELECT HEX(INET6_ATON('0::' ));
HEX(INET6_ATON('0::' ))
00000000000000000000000000000000
SELECT HEX(INET6_ATON('1::' ));
HEX(INET6_ATON('1::' ))
00010000000000000000000000000000
SELECT HEX(INET6_ATON('::0' ));
HEX(INET6_ATON('::0' ))
00000000000000000000000000000000
SELECT HEX(INET6_ATON('::1' ));
HEX(INET6_ATON('::1' ))
00000000000000000000000000000001
SELECT HEX(INET6_ATON('1:2:3:4:5:6:7:8' ));
HEX(INET6_ATON('1:2:3:4:5:6:7:8' ))
00010002000300040005000600070008
SELECT HEX(INET6_ATON('::2:3:4:5:6:7:8' ));
HEX(INET6_ATON('::2:3:4:5:6:7:8' ))
00000002000300040005000600070008
SELECT HEX(INET6_ATON('1::3:4:5:6:7:8' ));
HEX(INET6_ATON('1::3:4:5:6:7:8' ))
00010000000300040005000600070008
SELECT HEX(INET6_ATON('1:2::4:5:6:7:8' ));
HEX(INET6_ATON('1:2::4:5:6:7:8' ))
00010002000000040005000600070008
SELECT HEX(INET6_ATON('1:2:3::5:6:7:8' ));
HEX(INET6_ATON('1:2:3::5:6:7:8' ))
00010002000300000005000600070008
SELECT HEX(INET6_ATON('1:2:3:4::6:7:8' ));
HEX(INET6_ATON('1:2:3:4::6:7:8' ))
00010002000300040000000600070008
SELECT HEX(INET6_ATON('1:2:3:4:5::7:8' ));
HEX(INET6_ATON('1:2:3:4:5::7:8' ))
00010002000300040005000000070008
SELECT HEX(INET6_ATON('1:2:3:4:5:6::8' ));
HEX(INET6_ATON('1:2:3:4:5:6::8' ))
00010002000300040005000600000008
SELECT HEX(INET6_ATON('1:2:3:4:5:6:7::' ));
HEX(INET6_ATON('1:2:3:4:5:6:7::' ))
00010002000300040005000600070000
SELECT HEX(INET6_ATON('0000:0000::0000:0001' ));
HEX(INET6_ATON('0000:0000::0000:0001' ))
00000000000000000000000000000001
SELECT HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed' ));
HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed' ))
123456789 ABCDEF043218765CBA90FED
SELECT HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001' ));
HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001' ))
00000000000000000000000000000001
SELECT HEX(INET6_ATON('::C0A8:0102' ));
HEX(INET6_ATON('::C0A8:0102' ))
000000000000000000000000 C0A80102
SELECT HEX(INET6_ATON('::c0a8:0102' ));
HEX(INET6_ATON('::c0a8:0102' ))
000000000000000000000000 C0A80102
SELECT HEX(INET6_ATON('::192.168.1.2' ));
HEX(INET6_ATON('::192.168.1.2' ))
000000000000000000000000 C0A80102
SELECT HEX(INET6_ATON('::FfFf:C0a8:0102' ));
HEX(INET6_ATON('::FfFf:C0a8:0102' ))
00000000000000000000 FFFFC0A80102
SELECT HEX(INET6_ATON('::ffff:c0a8:0102' ));
HEX(INET6_ATON('::ffff:c0a8:0102' ))
00000000000000000000 FFFFC0A80102
SELECT HEX(INET6_ATON('::ffff:192.168.1.2' ));
HEX(INET6_ATON('::ffff:192.168.1.2' ))
00000000000000000000 FFFFC0A80102
SELECT HEX(INET6_ATON('::01.2.3.4' ));
HEX(INET6_ATON('::01.2.3.4' ))
00000000000000000000000001020304
SELECT HEX(INET6_ATON('::1.02.3.4' ));
HEX(INET6_ATON('::1.02.3.4' ))
00000000000000000000000001020304
SELECT HEX(INET6_ATON('::1.2.03.4' ));
HEX(INET6_ATON('::1.2.03.4' ))
00000000000000000000000001020304
SELECT HEX(INET6_ATON('::1.2.3.04' ));
HEX(INET6_ATON('::1.2.3.04' ))
00000000000000000000000001020304
SELECT HEX(INET6_ATON('::1.2.3.00' ));
HEX(INET6_ATON('::1.2.3.00' ))
00000000000000000000000001020300
SELECT HEX(INET6_ATON('::FFFF:01.2.3.4' ));
HEX(INET6_ATON('::FFFF:01.2.3.4' ))
00000000000000000000 FFFF01020304
SELECT HEX(INET6_ATON('::FFFF:1.02.3.4' ));
HEX(INET6_ATON('::FFFF:1.02.3.4' ))
00000000000000000000 FFFF01020304
SELECT HEX(INET6_ATON('::FFFF:1.2.03.4' ));
HEX(INET6_ATON('::FFFF:1.2.03.4' ))
00000000000000000000 FFFF01020304
SELECT HEX(INET6_ATON('::FFFF:1.2.3.04' ));
HEX(INET6_ATON('::FFFF:1.2.3.04' ))
00000000000000000000 FFFF01020304
SELECT HEX(INET6_ATON('::FFFF:1.2.3.00' ));
HEX(INET6_ATON('::FFFF:1.2.3.00' ))
00000000000000000000 FFFF01020300
# -- INET6_ATON: checking the length is either 4 or 16 ...
SELECT LENGTH(INET6_ATON('0.0.0.0' ));
LENGTH(INET6_ATON('0.0.0.0' ))
4
SELECT LENGTH(INET6_ATON('255.255.255.255' ));
LENGTH(INET6_ATON('255.255.255.255' ))
4
SELECT LENGTH(INET6_ATON('::' ));
LENGTH(INET6_ATON('::' ))
16
SELECT LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010' ));
LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010' ))
16
# -- INET6_NTOA: checking NULL, invalid types, out-of range values...
SELECT INET6_NTOA(NULL);
INET6_NTOA(NULL)
NULL
SELECT INET6_NTOA(123 );
INET6_NTOA(123 )
NULL
SELECT INET6_NTOA(123 .456 );
INET6_NTOA(123 .456 )
NULL
SELECT INET6_NTOA(NOW());
INET6_NTOA(NOW())
NULL
SELECT INET6_NTOA(UNHEX('C0A801' ));
INET6_NTOA(UNHEX('C0A801' ))
NULL
SELECT INET6_NTOA(UNHEX('C0A80102' ));
INET6_NTOA(UNHEX('C0A80102' ))
192 .168 .1 .2
SELECT INET6_NTOA(UNHEX('C0A8010203' ));
INET6_NTOA(UNHEX('C0A8010203' ))
NULL
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F' ));
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F' ))
NULL
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10' ));
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10' ))
102 :304 :506 :708 :90 a:b0c:d0e:f10
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011' ));
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011' ))
NULL
SELECT INET6_NTOA('1234' ), INET6_NTOA(BINARY('1234' ));
INET6_NTOA('1234' ) INET6_NTOA(BINARY('1234' ))
NULL 49 .50 .51 .52
SELECT INET6_NTOA('0123456789abcdef' ), INET6_NTOA(BINARY('0123456789abcdef' ));
INET6_NTOA('0123456789abcdef' ) INET6_NTOA(BINARY('0123456789abcdef' ))
NULL 3031 :3233 :3435 :3637 :3839 :6162 :6364 :6566
# -- Checking double-conversion...
SELECT INET6_NTOA(INET6_ATON('::' ));
INET6_NTOA(INET6_ATON('::' ))
::
SELECT INET6_NTOA(INET6_ATON('0::0' ));
INET6_NTOA(INET6_ATON('0::0' ))
::
SELECT INET6_NTOA(INET6_ATON('1::2' ));
INET6_NTOA(INET6_ATON('1::2' ))
1 ::2
SELECT INET6_NTOA(INET6_ATON('0::' ));
INET6_NTOA(INET6_ATON('0::' ))
::
SELECT INET6_NTOA(INET6_ATON('1::' ));
INET6_NTOA(INET6_ATON('1::' ))
1 ::
SELECT INET6_NTOA(INET6_ATON('::0' ));
INET6_NTOA(INET6_ATON('::0' ))
::
SELECT INET6_NTOA(INET6_ATON('::1' ));
INET6_NTOA(INET6_ATON('::1' ))
::1
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8' ));
INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8' ))
1 :2 :3 :4 :5 :6 :7 :8
SELECT INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8' ));
INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8' ))
::2 :3 :4 :5 :6 :7 :8
SELECT INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8' ));
INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8' ))
1 ::3 :4 :5 :6 :7 :8
SELECT INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8' ));
INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8' ))
1 :2 ::4 :5 :6 :7 :8
SELECT INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8' ));
INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8' ))
1 :2 :3 ::5 :6 :7 :8
SELECT INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8' ));
INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8' ))
1 :2 :3 :4 ::6 :7 :8
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8' ));
INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8' ))
1 :2 :3 :4 :5 ::7 :8
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8' ));
INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8' ))
1 :2 :3 :4 :5 :6 ::8
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::' ));
INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::' ))
1 :2 :3 :4 :5 :6 :7 ::
SELECT INET6_NTOA(INET6_ATON('0000:0000::0000:0001' ));
INET6_NTOA(INET6_ATON('0000:0000::0000:0001' ))
::1
SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed' )) as exp;
exp
1234 :5678 :9 abc:def0:4321 :8765 :cba9:fed
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001' )) as exp;
exp
::1
SELECT INET6_NTOA(INET6_ATON('::C0A8:0102' ));
INET6_NTOA(INET6_ATON('::C0A8:0102' ))
::192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::c0a8:0102' ));
INET6_NTOA(INET6_ATON('::c0a8:0102' ))
::192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::192.168.1.2' ));
INET6_NTOA(INET6_ATON('::192.168.1.2' ))
::192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102' ));
INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102' ))
::ffff:192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::ffff:c0a8:0102' ));
INET6_NTOA(INET6_ATON('::ffff:c0a8:0102' ))
::ffff:192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::ffff:192.168.1.2' ));
INET6_NTOA(INET6_ATON('::ffff:192.168.1.2' ))
::ffff:192 .168 .1 .2
SELECT INET6_NTOA(INET6_ATON('::01.2.3.4' ));
INET6_NTOA(INET6_ATON('::01.2.3.4' ))
::1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::1.02.3.4' ));
INET6_NTOA(INET6_ATON('::1.02.3.4' ))
::1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::1.2.03.4' ));
INET6_NTOA(INET6_ATON('::1.2.03.4' ))
::1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::1.2.3.04' ));
INET6_NTOA(INET6_ATON('::1.2.3.04' ))
::1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::1.2.3.00' ));
INET6_NTOA(INET6_ATON('::1.2.3.00' ))
::1 .2 .3 .0
SELECT INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4' ));
INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4' ))
::ffff:1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4' ));
INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4' ))
::ffff:1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4' ));
INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4' ))
::ffff:1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04' ));
INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04' ))
::ffff:1 .2 .3 .4
SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00' ));
INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00' ))
::ffff:1 .2 .3 .0
# -- Comparing INET_ATON() and INET6_ATON()...
SELECT HEX(INET_ATON('192.168.1.2' ));
HEX(INET_ATON('192.168.1.2' ))
C0A80102
SELECT HEX(INET6_ATON('192.168.1.2' ));
HEX(INET6_ATON('192.168.1.2' ))
C0A80102
SELECT HEX(INET_ATON('255.255.255.255' ));
HEX(INET_ATON('255.255.255.255' ))
FFFFFFFF
SELECT HEX(INET6_ATON('255.255.255.255' ));
HEX(INET6_ATON('255.255.255.255' ))
FFFFFFFF
SELECT HEX(INET_ATON('192.168.08.2' ));
HEX(INET_ATON('192.168.08.2' ))
C0A80802
SELECT HEX(INET6_ATON('192.168.08.2' ));
HEX(INET6_ATON('192.168.08.2' ))
C0A80802
SELECT HEX(INET_ATON('192.168.0x8.2' ));
HEX(INET_ATON('192.168.0x8.2' ))
NULL
SELECT HEX(INET6_ATON('192.168.0x8.2' ));
HEX(INET6_ATON('192.168.0x8.2' ))
NULL
SELECT HEX(INET_ATON('1.2.255' ));
HEX(INET_ATON('1.2.255' ))
10200 FF
SELECT HEX(INET6_ATON('1.2.255' ));
HEX(INET6_ATON('1.2.255' ))
NULL
SELECT HEX(INET_ATON('1.2.256' ));
HEX(INET_ATON('1.2.256' ))
NULL
SELECT HEX(INET6_ATON('1.2.256' ));
HEX(INET6_ATON('1.2.256' ))
NULL
SELECT HEX(INET_ATON('1.0002.3.4' ));
HEX(INET_ATON('1.0002.3.4' ))
1020304
SELECT HEX(INET6_ATON('1.0002.3.4' ));
HEX(INET6_ATON('1.0002.3.4' ))
NULL
SELECT HEX(INET_ATON('1.2.3.4.5' ));
HEX(INET_ATON('1.2.3.4.5' ))
102030405
SELECT HEX(INET6_ATON('1.2.3.4.5' ));
HEX(INET6_ATON('1.2.3.4.5' ))
NULL
# -- Checking mix of INET- and INET6- functions...
SELECT HEX(INET6_ATON(INET_NTOA(INET_ATON('1.2.3.4' )))) AS x;
x
01020304
# -- Checking IS_IPV4() / IS_IPV6()...
SELECT IS_IPV4(NULL);
IS_IPV4(NULL)
0
SELECT IS_IPV4(1 );
IS_IPV4(1 )
0
SELECT IS_IPV4(1 .0 );
IS_IPV4(1 .0 )
0
SELECT IS_IPV4('1.2.3.4' );
IS_IPV4('1.2.3.4' )
1
SELECT IS_IPV4('001.02.000.255' );
IS_IPV4('001.02.000.255' )
1
SELECT IS_IPV4('::1.2.0.255' );
IS_IPV4('::1.2.0.255' )
0
SELECT IS_IPV4('::1' );
IS_IPV4('::1' )
0
SELECT IS_IPV4(BINARY('1.2.3.4' ));
IS_IPV4(BINARY('1.2.3.4' ))
1
SELECT IS_IPV6(NULL);
IS_IPV6(NULL)
0
SELECT IS_IPV6(1 );
IS_IPV6(1 )
0
SELECT IS_IPV6(1 .0 );
IS_IPV6(1 .0 )
0
SELECT IS_IPV6('1.2.3.4' );
IS_IPV6('1.2.3.4' )
0
SELECT IS_IPV6('001.02.000.255' );
IS_IPV6('001.02.000.255' )
0
SELECT IS_IPV6('::001.02.000.255' );
IS_IPV6('::001.02.000.255' )
1
SELECT IS_IPV6('::1.2.0.255' );
IS_IPV6('::1.2.0.255' )
1
SELECT IS_IPV6('::1' );
IS_IPV6('::1' )
1
SELECT IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001' );
IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001' )
1
SELECT IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001' ));
IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001' ))
1
# -- Checking IS_IPV4_MAPPED() and IS_IPV4_COMPAT()...
SELECT IS_IPV4_MAPPED(INET6_ATON('1.2.3.4' )),
IS_IPV4_COMPAT(INET6_ATON('1.2.3.4' ));
IS_IPV4_MAPPED(INET6_ATON('1.2.3.4' )) IS_IPV4_COMPAT(INET6_ATON('1.2.3.4' ))
0 0
Warnings:
Warning 1292 Incorrect inet6 value: '\x01\x02\x03\x04'
Warning 1292 Incorrect inet6 value: '\x01\x02\x03\x04'
SELECT IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4' )),
IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4' ));
IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4' )) IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4' ))
0 1
SELECT IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4' )),
IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4' ));
IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4' )) IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4' ))
1 0
SELECT IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4' )),
IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4' ));
IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4' )) IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4' ))
0 0
SELECT IS_IPV4_MAPPED(INET6_ATON('::1' )),
IS_IPV4_COMPAT(INET6_ATON('::1' ));
IS_IPV4_MAPPED(INET6_ATON('::1' )) IS_IPV4_COMPAT(INET6_ATON('::1' ))
0 0
SELECT IS_IPV4_MAPPED(INET6_ATON('::' )),
IS_IPV4_COMPAT(INET6_ATON('::' ));
IS_IPV4_MAPPED(INET6_ATON('::' )) IS_IPV4_COMPAT(INET6_ATON('::' ))
0 0
# -- Checking IS_IPV4_COMPAT()...
# -- Working with a table...
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
CREATE TABLE t1(ip INT UNSIGNED);
CREATE TABLE t2(ip VARBINARY(16 ));
INSERT INTO t1 VALUES
(INET_ATON('1.2.3.4' )), (INET_ATON('255.255.255.255' ));
SELECT INET_NTOA(ip) FROM t1;
INET_NTOA(ip)
1 .2 .3 .4
255 .255 .255 .255
INSERT INTO t2 SELECT INET6_ATON(INET_NTOA(ip)) FROM t1;
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
1 .2 .3 .4 01020304 4
255 .255 .255 .255 FFFFFFFF 4
DELETE FROM t2;
INSERT INTO t2 VALUES
(INET6_ATON('1.2.3.4' )), (INET6_ATON('255.255.255.255' )),
(INET6_ATON('::1.2.3.4' )), (INET6_ATON('::ffff:255.255.255.255' )),
(INET6_ATON('::' )), (INET6_ATON('::1' )),
(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010' ));
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
1 .2 .3 .4 01020304 4
255 .255 .255 .255 FFFFFFFF 4
::1 .2 .3 .4 00000000000000000000000001020304 16
::ffff:255 .255 .255 .255 00000000000000000000 FFFFFFFFFFFF 16
:: 00000000000000000000000000000000 16
::1 00000000000000000000000000000001 16
1020 :3040 :5060 :7080 :90 a0:b0c0:d0e0:f010 102030405060708090 A0B0C0D0E0F010 16
DROP TABLE t1;
DROP TABLE t2;
#
# MDEV-4018 : Microseconds in GET_LOCK()
#
connection default;
select is_used_lock('test' ) = connection_id();
is_used_lock('test' ) = connection_id()
NULL
# GET_LOCK returns 1 if it manages to acquire a lock
select get_lock('test' , 0 );
get_lock('test' , 0 )
1
connect con1,localhost,root,,;
connection con1;
select is_used_lock('test' ) = connection_id();
is_used_lock('test' ) = connection_id()
0
select get_lock('test' , 0 );
get_lock('test' , 0 )
0
select get_lock('test' , 1 .0 );
get_lock('test' , 1 .0 )
0
select get_lock('test' , 1 .5 );
get_lock('test' , 1 .5 )
0
select get_lock('test' , 0 .1 );
get_lock('test' , 0 .1 )
0
select get_lock('test' , 0 .000001 );
get_lock('test' , 0 .000001 )
0
select get_lock('test' , 0 .0000000000000001 );
get_lock('test' , 0 .0000000000000001 )
0
connection default;
select is_used_lock('test' ) = connection_id();
is_used_lock('test' ) = connection_id()
1
select release_lock('test' );
release_lock('test' )
1
# -- Done.
#
# MDEV-13685 Can not replay binary log due to Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'concat'
#
SET NAMES utf8;
SELECT COERCIBILITY(NAME_CONST('name' ,'test' ));
COERCIBILITY(NAME_CONST('name' ,'test' ))
2
SELECT COERCIBILITY(NAME_CONST('name' ,TIME'00:00:00' ));
COERCIBILITY(NAME_CONST('name' ,TIME'00:00:00' ))
7
SELECT COERCIBILITY(NAME_CONST('name' ,15 ));
COERCIBILITY(NAME_CONST('name' ,15 ))
7
SELECT CONCAT(NAME_CONST('name' ,15 ),'오' );
CONCAT(NAME_CONST('name' ,15 ),'오' )
15 오
SET NAMES latin1;
#
# MDEV-14116 INET6_NTOA output is set as null to varchar(39 ) variable
#
CREATE PROCEDURE p1()
BEGIN
DECLARE ip_full_addr varchar(39 ) DEFAULT "" ;
SELECT INET6_NTOA(UNHEX('20000000000000000000000000000000' )) into ip_full_addr;
SELECT ip_full_addr;
END;
$$
CALL p1();
ip_full_addr
2000 ::
DROP PROCEDURE p1;
#
# MDEV-18195 ASAN use-after-poison in my_strcasecmp_utf8 / Item::eq upon prepared statement with ORDER BY NAME_CONST
#
PREPARE stmt FROM "SELECT 'x' ORDER BY NAME_CONST( 'f', 'foo' )" ;
EXECUTE stmt;
x
x
DEALLOCATE PREPARE stmt;
#
# MDEV-19680 : Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index) ||
# (!(ptr >= table->record[0 ] && ptr < table->record[0 ] + table->s->reclength)))'
# or alike failed upon SELECT with mix of functions from simple view
#
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1 ),(2 );
CREATE VIEW v1 AS SELECT * FROM t1;
SELECT ISNULL( BENCHMARK(1 , MIN (a))) FROM v1;
ISNULL( BENCHMARK(1 , MIN (a)))
0
DROP VIEW v1;
DROP TABLE t1;
#
# Start of 10 .2 tests
#
#
# MDEV-10134 Add full support for DEFAULT
#
CREATE TABLE t1 (
a VARCHAR(30 ),
b BIGINT DEFAULT INET_ATON(a),
a1 VARCHAR(30 ) DEFAULT INET_NTOA(b),
c INT DEFAULT IS_IPV4(a),
d INT DEFAULT IS_IPV6(a)
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(30 ) DEFAULT NULL,
`b` bigint(20 ) DEFAULT inet_aton(`a`),
`a1` varchar(30 ) DEFAULT inet_ntoa(`b`),
`c` int(11 ) DEFAULT is_ipv4(`a`),
`d` int(11 ) DEFAULT is_ipv6(`a`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
INSERT INTO t1 (a) VALUES ('192.168.001.001' ),('::1' ),('xxx' );
SELECT * FROM t1;
a b a1 c d
192 .168 .001 .001 3232235777 192 .168 .1 .1 1 0
::1 NULL NULL 0 1
xxx NULL NULL 0 0
DROP TABLE t1;
CREATE TABLE t1 (
str VARCHAR(128 ),
addr VARBINARY(16 ) DEFAULT INET6_ATON(str),
str1 VARCHAR(128 ) DEFAULT INET6_NTOA(addr),
b INT DEFAULT IS_IPV4_COMPAT(addr),
c INT DEFAULT IS_IPV4_MAPPED(addr)
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`str` varchar(128 ) DEFAULT NULL,
`addr` varbinary(16 ) DEFAULT inet6_aton(`str`),
`str1` varchar(128 ) DEFAULT inet6_ntoa(`addr`),
`b` int(11 ) DEFAULT is_ipv4_compat(`addr`),
`c` int(11 ) DEFAULT is_ipv4_mapped(`addr`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
INSERT INTO t1 (str) VALUES ('::FFFF:192.168.0.1' ),('::10.0.5.9' );
SELECT str, str1, b,c FROM t1;
str str1 b c
::FFFF:192 .168 .0 .1 ::ffff:192 .168 .0 .1 0 1
::10 .0 .5 .9 ::10 .0 .5 .9 1 0
DROP TABLE t1;
#
# MDEV-14613 : Assertion `fixed == 0 ' failed in Item_func::fix_fields
#
CREATE TABLE `t1` (
`numgtfmt` char(10 ) COLLATE utf8_bin NOT NULL
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
create view v1(numgtfmt)
as
select 'x' from t1
union
select 'x' from t1 ;
SELECT * FROM v1 WHERE numgtfmt = NAME_CONST('wnumgtfmt' ,_utf8'QEDITIONS' COLLATE 'utf8_bin' );
numgtfmt
DROP VIEW v1;
DROP TABLE t1;
#
# MDEV-20517 Assertion `!is_expensive()' failed in Item::value_depends_on_sql_mode_const_item
#
SELECT ( 1 LIKE GET_LOCK( 'foo' , 0 ) ) - 2 ;
( 1 LIKE GET_LOCK( 'foo' , 0 ) ) - 2
-1
SELECT RELEASE_LOCK('foo' );
RELEASE_LOCK('foo' )
1
#
# End of 10 .2 tests
#
#
# Start of 10 .3 tests
#
#
# MDEV-12854 Synchronize CREATE..SELECT data type and result set metadata data type for INT functions
#
SELECT INET_ATON("255.255.255.255.255.255.255.255" );
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def INET_ATON("255.255.255.255.255.255.255.255" ) 8 21 20 Y 32928 0 63
INET_ATON("255.255.255.255.255.255.255.255" )
18446744073709551615
#
# MDEV-8049 name_const() is not consistent about its signess
#
SELECT 18446744073709551615 AS c1, name_const('a' ,18446744073709551615 ) AS c2;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def c1 8 20 20 N 32929 0 63
def c2 8 20 20 Y 32928 0 63
c1 c2
18446744073709551615 18446744073709551615
CREATE TABLE t1 AS SELECT 18446744073709551615 AS c1, name_const('a' ,18446744073709551615 ) AS c2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` bigint(20 ) unsigned NOT NULL,
`c2` bigint(20 ) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
SELECT * FROM t1;
c1 c2
18446744073709551615 18446744073709551615
DROP TABLE t1;
#
# End of 10 .3 tests
#
#
# Start of 10 .4 tests
#
#
# MDEV-16309 Split ::create_tmp_field() into virtual methods in Item
#
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1 ),(2 ),(3 );
BEGIN NOT ATOMIC
DECLARE a TEXT;
DECLARE c CURSOR FOR SELECT NAME_CONST('x' ,'y' ) FROM t1;
OPEN c;
FETCH c INTO a;
CLOSE c;
SELECT a;
END;
$$
a
y
DROP TABLE t1;
#
# End of 10 .4 tests
#
#
# MDEV-10569 Add RELEASE_ALL_LOCKS SQL-function
#
# Test function without any locks
SELECT RELEASE_ALL_LOCKS();
RELEASE_ALL_LOCKS()
0
# Test function with one lock only
SELECT GET_LOCK('l1' ,10 );
GET_LOCK('l1' ,10 )
1
SELECT RELEASE_ALL_LOCKS();
RELEASE_ALL_LOCKS()
1
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA
FROM information_schema.metadata_lock_info WHERE thread_id>0 ORDER BY TABLE_SCHEMA;
LOCK_MODE LOCK_TYPE TABLE_SCHEMA
# Test function with multiple locks
SELECT GET_LOCK('l01' ,10 ),
GET_LOCK('l02' ,10 ),
GET_LOCK('l03' ,10 ),
GET_LOCK('l04' ,10 ),
GET_LOCK('l05' ,10 ),
GET_LOCK('l06' ,10 ),
GET_LOCK('l07' ,10 ),
GET_LOCK('l08' ,10 ),
GET_LOCK('l09' ,10 ),
GET_LOCK('l10' ,10 ),
GET_LOCK('l11' ,10 ),
GET_LOCK('l12' ,10 ),
GET_LOCK('l13' ,10 ),
GET_LOCK('l14' ,10 ),
GET_LOCK('l15' ,10 );
GET_LOCK('l01' ,10 ) GET_LOCK('l02' ,10 ) GET_LOCK('l03' ,10 ) GET_LOCK('l04' ,10 ) GET_LOCK('l05' ,10 ) GET_LOCK('l06' ,10 ) GET_LOCK('l07' ,10 ) GET_LOCK('l08' ,10 ) GET_LOCK('l09' ,10 ) GET_LOCK('l10' ,10 ) GET_LOCK('l11' ,10 ) GET_LOCK('l12' ,10 ) GET_LOCK('l13' ,10 ) GET_LOCK('l14' ,10 ) GET_LOCK('l15' ,10 )
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA
FROM information_schema.metadata_lock_info WHERE thread_id>0 ORDER BY TABLE_SCHEMA;
LOCK_MODE LOCK_TYPE TABLE_SCHEMA
MDL_SHARED_NO_WRITE User lock l01
MDL_SHARED_NO_WRITE User lock l02
MDL_SHARED_NO_WRITE User lock l03
MDL_SHARED_NO_WRITE User lock l04
MDL_SHARED_NO_WRITE User lock l05
MDL_SHARED_NO_WRITE User lock l06
MDL_SHARED_NO_WRITE User lock l07
MDL_SHARED_NO_WRITE User lock l08
MDL_SHARED_NO_WRITE User lock l09
MDL_SHARED_NO_WRITE User lock l10
MDL_SHARED_NO_WRITE User lock l11
MDL_SHARED_NO_WRITE User lock l12
MDL_SHARED_NO_WRITE User lock l13
MDL_SHARED_NO_WRITE User lock l14
MDL_SHARED_NO_WRITE User lock l15
SELECT RELEASE_ALL_LOCKS();
RELEASE_ALL_LOCKS()
15
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA
FROM information_schema.metadata_lock_info WHERE thread_id>0 ORDER BY TABLE_SCHEMA;
LOCK_MODE LOCK_TYPE TABLE_SCHEMA
# Test function with recursive locks
SELECT GET_LOCK('l1' ,10 ),
GET_LOCK('l2' ,10 ),
GET_LOCK('l2' ,10 ),
GET_LOCK('l3' ,10 ),
GET_LOCK('l3' ,10 ),
GET_LOCK('l3' ,10 ),
GET_LOCK('l4' ,10 ),
GET_LOCK('l4' ,10 ),
GET_LOCK('l4' ,10 ),
GET_LOCK('l4' ,10 ),
GET_LOCK('l5' ,10 ),
GET_LOCK('l5' ,10 ),
GET_LOCK('l5' ,10 ),
GET_LOCK('l5' ,10 ),
GET_LOCK('l5' ,10 );
GET_LOCK('l1' ,10 ) GET_LOCK('l2' ,10 ) GET_LOCK('l2' ,10 ) GET_LOCK('l3' ,10 ) GET_LOCK('l3' ,10 ) GET_LOCK('l3' ,10 ) GET_LOCK('l4' ,10 ) GET_LOCK('l4' ,10 ) GET_LOCK('l4' ,10 ) GET_LOCK('l4' ,10 ) GET_LOCK('l5' ,10 ) GET_LOCK('l5' ,10 ) GET_LOCK('l5' ,10 ) GET_LOCK('l5' ,10 ) GET_LOCK('l5' ,10 )
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA
FROM information_schema.metadata_lock_info WHERE thread_id>0 ORDER BY TABLE_SCHEMA;
LOCK_MODE LOCK_TYPE TABLE_SCHEMA
MDL_SHARED_NO_WRITE User lock l1
MDL_SHARED_NO_WRITE User lock l2
MDL_SHARED_NO_WRITE User lock l3
MDL_SHARED_NO_WRITE User lock l4
MDL_SHARED_NO_WRITE User lock l5
SELECT RELEASE_ALL_LOCKS();
RELEASE_ALL_LOCKS()
15
SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA
FROM information_schema.metadata_lock_info WHERE thread_id>0 ORDER BY TABLE_SCHEMA;
LOCK_MODE LOCK_TYPE TABLE_SCHEMA
#
# MDEV-32583 UUID() should be treated as stochastic for the purposes of
# forcing query materialization
#
create table t1 as WITH cte AS (SELECT UUID() as r FROM seq_1_to_10)
SELECT r as r1, r FROM cte;
select count(*) from t1 where r1!=r;
count(*)
0
drop table t1;
#
# MDEV-29462 ASAN: heap-use-after-free in Binary_string::copy on DO CONVERT
#
DO CONVERT (INET_ATON (CAST(LEFT (-1 ,1 ) as BINARY (30 ))) USING utf8);
DO FROM_BASE64(CAST((MID(UUID(),20 ,64 )) AS BINARY (55 )));
Warnings:
Warning 1958 Bad base64 data as position 4
DO FROM_BASE64(CAST((MID(17653 ,ROW('-688:20:162697' , (NULL))>=ROW(('*.)$' ),(0 xc254b6)),1 )) AS BINARY (34 )));
Warnings:
Warning 1958 Bad base64 data as position 1
DO FROM_BASE64(CAST(LEFT (-1 ,1 ) as BINARY (30 )));
Warnings:
Warning 1958 Bad base64 data as position 0
#
# End of 10 .5 tests
#
Messung V0.5 in Prozent C=70 H=100 G=86
¤ Dauer der Verarbeitung: 0.59 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland