You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1128 lines
35 KiB
1128 lines
35 KiB
SET sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
|
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
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''255.255.255.255.255.255.255.255'' for function inet_aton
|
|
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")
|
|
NULL 4294902271 65791
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''255.255.255.255.255'' for function inet_aton
|
|
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
|
|
Warnings:
|
|
Warning 1411 Incorrect integer value: '1099511627775' for function inet_ntoa
|
|
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 inet_aton("122.256");
|
|
inet_aton("122.256")
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''122.256'' for function inet_aton
|
|
select inet_aton("122.226.");
|
|
inet_aton("122.226.")
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''122.226.'' for function inet_aton
|
|
select inet_aton("");
|
|
inet_aton("")
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '''' for function inet_aton
|
|
explain select inet_aton("122.256"),inet_aton("122.226."),inet_aton("");
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select inet_aton('122.256') AS `inet_aton("122.256")`,inet_aton('122.226.') AS `inet_aton("122.226.")`,inet_aton('') AS `inet_aton("")`
|
|
select length(uuid()), charset(uuid()), length(unhex(replace(uuid(),_utf8'-',_utf8'')));
|
|
length(uuid()) charset(uuid()) length(unhex(replace(uuid(),_utf8'-',_utf8'')))
|
|
36 utf8 16
|
|
Warnings:
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
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;
|
|
select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
|
|
export_set(3, _latin1'foo', _utf8'bar', ',', 4)
|
|
foo,foo,bar,bar
|
|
Warnings:
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
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=ENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
drop table t1;
|
|
#------------------------------------------------------------------------
|
|
# Test for Bug#6760
|
|
SET @row_count = 4;
|
|
SET @sleep_time_per_result_row = 1;
|
|
SET @max_acceptable_delay = 2;
|
|
DROP TEMPORARY TABLE IF EXISTS t_history;
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TEMPORARY TABLE t_history (attempt SMALLINT,
|
|
start_ts DATETIME, end_ts DATETIME,
|
|
start_cached INTEGER, end_cached INTEGER);
|
|
CREATE TABLE t1 (f1 BIGINT);
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t1 VALUES (1);
|
|
# Test 1: Does the query with SLEEP need a reasonable time?
|
|
SELECT COUNT(*) >= - 1 INTO @aux1 FROM t_history
|
|
WHERE TIMEDIFF(end_ts,start_ts) - @sleep_time_per_result_row * @row_count
|
|
BETWEEN 0 AND @max_acceptable_delay;
|
|
SELECT @aux1 AS "Expect 1";
|
|
Expect 1
|
|
1
|
|
DROP TABLE t1;
|
|
DROP TEMPORARY TABLE t_history;
|
|
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=ENGINE DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_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));
|
|
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;
|
|
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
|
|
Warnings:
|
|
Warning 1411 Incorrect integer value: '`test`.`t1`.`a`' for function inet_ntoa
|
|
Warning 1411 Incorrect integer value: '`test`.`t1`.`a`' for function inet_ntoa
|
|
Warning 1411 Incorrect integer value: '`test`.`t1`.`a`' for function inet_ntoa
|
|
drop table t1;
|
|
set names latin1;
|
|
SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs;
|
|
NAME_CONST('var', 'value') COLLATE latin1_general_cs
|
|
value
|
|
set names utf8mb4;
|
|
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 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
|
|
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
|
|
#
|
|
# 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
|
|
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;
|
|
#
|
|
# End of 5.5 tests
|
|
#
|
|
|
|
# --
|
|
# -- 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
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '123' for function inet6_aton
|
|
SELECT INET6_ATON(123.45) IS NULL;
|
|
INET6_ATON(123.45) IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '123.45' for function inet6_aton
|
|
SELECT INET6_ATON(str_to_date('2014,2,28 09', '%Y,%m,%d %h')) IS NULL;
|
|
INET6_ATON(str_to_date('2014,2,28 09', '%Y,%m,%d %h')) IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'str_to_date('2014,2,28 09','%Y,%m,%d %h')' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3') IS NULL;
|
|
INET6_ATON('1.2.3') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3'' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3.') IS NULL;
|
|
INET6_ATON('1.2.3.') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.'' for function inet6_aton
|
|
SELECT INET6_ATON('1..3.4') IS NULL;
|
|
INET6_ATON('1..3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1..3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('-1.2.3.4') IS NULL;
|
|
INET6_ATON('-1.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''-1.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3.256') IS NULL;
|
|
INET6_ATON('1.2.3.256') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.256'' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3.4.5') IS NULL;
|
|
INET6_ATON('1.2.3.4.5') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.4.5'' for function inet6_aton
|
|
SELECT INET6_ATON('0001.2.3.4') IS NULL;
|
|
INET6_ATON('0001.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''0001.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('0x1.2.3.4') IS NULL;
|
|
INET6_ATON('0x1.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''0x1.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('a.2.3.4') IS NULL;
|
|
INET6_ATON('a.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''a.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3.4:80') IS NULL;
|
|
INET6_ATON('1.2.3.4:80') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.4:80'' for function inet6_aton
|
|
SELECT INET6_ATON('1.2.3.4/32') IS NULL;
|
|
INET6_ATON('1.2.3.4/32') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.4/32'' for function inet6_aton
|
|
SELECT INET6_ATON('mysql.com') IS NULL;
|
|
INET6_ATON('mysql.com') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''mysql.com'' for function inet6_aton
|
|
SELECT INET6_ATON(':::') IS NULL;
|
|
INET6_ATON(':::') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '':::'' for function inet6_aton
|
|
SELECT INET6_ATON(':1:2:3') IS NULL;
|
|
INET6_ATON(':1:2:3') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '':1:2:3'' for function inet6_aton
|
|
SELECT INET6_ATON('1:2:3:') IS NULL;
|
|
INET6_ATON('1:2:3:') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1:2:3:'' for function inet6_aton
|
|
SELECT INET6_ATON(':1::2:3') IS NULL;
|
|
INET6_ATON(':1::2:3') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '':1::2:3'' for function inet6_aton
|
|
SELECT INET6_ATON('1::2:3:') IS NULL;
|
|
INET6_ATON('1::2:3:') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1::2:3:'' for function inet6_aton
|
|
SELECT INET6_ATON('::00001') IS NULL;
|
|
INET6_ATON('::00001') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::00001'' for function inet6_aton
|
|
SELECT INET6_ATON('::00001:2') IS NULL;
|
|
INET6_ATON('::00001:2') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::00001:2'' for function inet6_aton
|
|
SELECT INET6_ATON('::12345') IS NULL;
|
|
INET6_ATON('::12345') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::12345'' for function inet6_aton
|
|
SELECT INET6_ATON('1020::3040::5060') IS NULL;
|
|
INET6_ATON('1020::3040::5060') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1020::3040::5060'' for function inet6_aton
|
|
SELECT INET6_ATON('::ABCZ') IS NULL;
|
|
INET6_ATON('::ABCZ') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::ABCZ'' for function inet6_aton
|
|
SELECT INET6_ATON('::0x1.2.3.4') IS NULL;
|
|
INET6_ATON('::0x1.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::0x1.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('::1.0x2.3.4') IS NULL;
|
|
INET6_ATON('::1.0x2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::1.0x2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('::a.b.c.d') IS NULL;
|
|
INET6_ATON('::a.b.c.d') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::a.b.c.d'' for function inet6_aton
|
|
SELECT INET6_ATON('::FFFF:0x1.2.3.4') IS NULL;
|
|
INET6_ATON('::FFFF:0x1.2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::FFFF:0x1.2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('::FFFF:1.0x2.3.4') IS NULL;
|
|
INET6_ATON('::FFFF:1.0x2.3.4') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::FFFF:1.0x2.3.4'' for function inet6_aton
|
|
SELECT INET6_ATON('::FFFF:a.b.c.d') IS NULL;
|
|
INET6_ATON('::FFFF:a.b.c.d') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::FFFF:a.b.c.d'' for function inet6_aton
|
|
SELECT INET6_ATON('::1.2.3.4:ABCD') IS NULL;
|
|
INET6_ATON('::1.2.3.4:ABCD') IS NULL
|
|
1
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''::1.2.3.4:ABCD'' for function inet6_aton
|
|
# 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'))
|
|
00000000000000000000ABCD01020304
|
|
|
|
# -- 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'))
|
|
123456789ABCDEF043218765CBA90FED
|
|
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'))
|
|
000000000000000000000000C0A80102
|
|
SELECT HEX(INET6_ATON('::c0a8:0102'));
|
|
HEX(INET6_ATON('::c0a8:0102'))
|
|
000000000000000000000000C0A80102
|
|
SELECT HEX(INET6_ATON('::192.168.1.2'));
|
|
HEX(INET6_ATON('::192.168.1.2'))
|
|
000000000000000000000000C0A80102
|
|
SELECT HEX(INET6_ATON('::FfFf:C0a8:0102'));
|
|
HEX(INET6_ATON('::FfFf:C0a8:0102'))
|
|
00000000000000000000FFFFC0A80102
|
|
SELECT HEX(INET6_ATON('::ffff:c0a8:0102'));
|
|
HEX(INET6_ATON('::ffff:c0a8:0102'))
|
|
00000000000000000000FFFFC0A80102
|
|
SELECT HEX(INET6_ATON('::ffff:192.168.1.2'));
|
|
HEX(INET6_ATON('::ffff:192.168.1.2'))
|
|
00000000000000000000FFFFC0A80102
|
|
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'))
|
|
00000000000000000000FFFF01020304
|
|
SELECT HEX(INET6_ATON('::FFFF:1.02.3.4'));
|
|
HEX(INET6_ATON('::FFFF:1.02.3.4'))
|
|
00000000000000000000FFFF01020304
|
|
SELECT HEX(INET6_ATON('::FFFF:1.2.03.4'));
|
|
HEX(INET6_ATON('::FFFF:1.2.03.4'))
|
|
00000000000000000000FFFF01020304
|
|
SELECT HEX(INET6_ATON('::FFFF:1.2.3.04'));
|
|
HEX(INET6_ATON('::FFFF:1.2.3.04'))
|
|
00000000000000000000FFFF01020304
|
|
SELECT HEX(INET6_ATON('::FFFF:1.2.3.00'));
|
|
HEX(INET6_ATON('::FFFF:1.2.3.00'))
|
|
00000000000000000000FFFF01020300
|
|
|
|
# -- 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
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '123' for function inet6_ntoa
|
|
SELECT INET6_NTOA(123.456);
|
|
INET6_NTOA(123.456)
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '123.456' for function inet6_ntoa
|
|
SELECT INET6_NTOA(str_to_date('2014,2,28 09', '%Y,%m,%d %h'));
|
|
INET6_NTOA(str_to_date('2014,2,28 09', '%Y,%m,%d %h'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'str_to_date('2014,2,28 09','%Y,%m,%d %h')' for function inet6_ntoa
|
|
SELECT INET6_NTOA(UNHEX('C0A801'));
|
|
INET6_NTOA(UNHEX('C0A801'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'unhex('C0A801')' for function inet6_ntoa
|
|
SELECT INET6_NTOA(UNHEX('C0A80102'));
|
|
INET6_NTOA(UNHEX('C0A80102'))
|
|
192.168.1.2
|
|
SELECT INET6_NTOA(UNHEX('C0A8010203'));
|
|
INET6_NTOA(UNHEX('C0A8010203'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'unhex('C0A8010203')' for function inet6_ntoa
|
|
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F'));
|
|
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'unhex('0102030405060708090A0B0C0D0E0F')' for function inet6_ntoa
|
|
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10'));
|
|
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10'))
|
|
102:304:506:708:90a:b0c:d0e:f10
|
|
SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011'));
|
|
INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: 'unhex('0102030405060708090A0B0C0D0E0F1011')' for function inet6_ntoa
|
|
SELECT INET6_NTOA('1234'), INET6_NTOA(BINARY('1234'));
|
|
INET6_NTOA('1234') INET6_NTOA(BINARY('1234'))
|
|
NULL 49.50.51.52
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1234'' for function inet6_ntoa
|
|
SELECT INET6_NTOA('0123456789abcdef'), INET6_NTOA(BINARY('0123456789abcdef'));
|
|
INET6_NTOA('0123456789abcdef') INET6_NTOA(BINARY('0123456789abcdef'))
|
|
NULL 3031:3233:3435:3637:3839:6162:6364:6566
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''0123456789abcdef'' for function inet6_ntoa
|
|
|
|
# -- 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'));
|
|
INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed'))
|
|
1234:5678:9abc:def0:4321:8765:cba9:fed
|
|
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'));
|
|
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001'))
|
|
::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
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''192.168.0x8.2'' for function inet_aton
|
|
SELECT HEX(INET6_ATON('192.168.0x8.2'));
|
|
HEX(INET6_ATON('192.168.0x8.2'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''192.168.0x8.2'' for function inet6_aton
|
|
SELECT HEX(INET_ATON('1.2.255'));
|
|
HEX(INET_ATON('1.2.255'))
|
|
10200FF
|
|
SELECT HEX(INET6_ATON('1.2.255'));
|
|
HEX(INET6_ATON('1.2.255'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.255'' for function inet6_aton
|
|
SELECT HEX(INET_ATON('1.2.256'));
|
|
HEX(INET_ATON('1.2.256'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.256'' for function inet_aton
|
|
SELECT HEX(INET6_ATON('1.2.256'));
|
|
HEX(INET6_ATON('1.2.256'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.256'' for function inet6_aton
|
|
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
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.0002.3.4'' for function inet6_aton
|
|
SELECT HEX(INET_ATON('1.2.3.4.5'));
|
|
HEX(INET_ATON('1.2.3.4.5'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.4.5'' for function inet_aton
|
|
SELECT HEX(INET6_ATON('1.2.3.4.5'));
|
|
HEX(INET6_ATON('1.2.3.4.5'))
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.3.4.5'' for function inet6_aton
|
|
|
|
# -- 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
|
|
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 00000000000000000000FFFFFFFFFFFF 16
|
|
:: 00000000000000000000000000000000 16
|
|
::1 00000000000000000000000000000001 16
|
|
1020:3040:5060:7080:90a0:b0c0:d0e0:f010 102030405060708090A0B0C0D0E0F010 16
|
|
|
|
DELETE FROM t2;
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.0002.3.4'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.255'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''1.2.256'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''192.168.0x8.2'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''122.256'' for function inet_aton
|
|
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''122.226.'' for function inet_aton
|
|
INSERT INTO t2 VALUES (inet_aton(""));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: '''' for function inet_aton
|
|
INSERT INTO t2 VALUES (UNHEX('Z0Q80F02'));
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''Z0Q80F02'' for function unhex
|
|
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
|
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
NULL NULL NULL
|
|
DELETE FROM t2;
|
|
|
|
SET sql_mode = default;
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
|
ERROR HY000: Incorrect string value: ''1.0002.3.4'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
|
ERROR HY000: Incorrect string value: ''1.2.255'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
|
ERROR HY000: Incorrect string value: ''1.2.256'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
|
ERROR HY000: Incorrect string value: ''192.168.0x8.2'' for function inet6_aton
|
|
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
|
ERROR HY000: Incorrect string value: ''122.256'' for function inet_aton
|
|
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
|
ERROR HY000: Incorrect string value: ''122.226.'' for function inet_aton
|
|
INSERT INTO t2 VALUES (inet_aton(""));
|
|
ERROR HY000: Incorrect string value: '''' for function inet_aton
|
|
|
|
INSERT INTO t2 VALUES (UNHEX('Z0Q80F02'));
|
|
ERROR HY000: Incorrect string value: ''Z0Q80F02'' for function unhex
|
|
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
|
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
#
|
|
# Bug#22071558 INET_ATON ACCEPTS MORE THAN FOUR GROUPS OF DIGITS AND RETURNS INT BIGGER THAN 4G
|
|
#
|
|
select inet_aton("0.255.255.255.255");
|
|
inet_aton("0.255.255.255.255")
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''0.255.255.255.255'' for function inet_aton
|
|
select inet_aton("255.255.255.2551");
|
|
inet_aton("255.255.255.2551")
|
|
NULL
|
|
Warnings:
|
|
Warning 1411 Incorrect string value: ''255.255.255.2551'' for function inet_aton
|
|
#
|
|
# Bug #27004825: UBSAN: ITEM_FUNC_IS_IPV4_MAPPED - MEMBER ACCESS WITHIN MISALIGNED ADDRESS
|
|
#
|
|
SELECT IS_IPV4_MAPPED(MIN(AES_ENCRYPT(1,2)));
|
|
IS_IPV4_MAPPED(MIN(AES_ENCRYPT(1,2)))
|
|
0
|
|
SELECT IS_IPV4_COMPAT(MIN(AES_ENCRYPT(1,2)));
|
|
IS_IPV4_COMPAT(MIN(AES_ENCRYPT(1,2)))
|
|
0
|
|
#
|
|
# Bug#27744557 UBSAN: COMPARE_BINARY_STRING NULL POINTER PASSED
|
|
#
|
|
select format('f','')<=replace(1,1,mid(0xd9,2,1));
|
|
format('f','')<=replace(1,1,mid(0xd9,2,1))
|
|
0
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect INTEGER value: ''
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'f'
|
|
#
|
|
# Bug#29240446: RECENT REGRESSION, ISCTYPE.CPP(36) : ASSERTION FAILED: C >= -1 && C <= 255
|
|
#
|
|
DO DATEDIFF(UUID_TO_BIN(UUID()), 0x32df2ce8);
|
|
DO (!(SECOND(0xb16beeb7)));
|
|
Warnings:
|
|
Warning 1287 '!' is deprecated and will be removed in a future release. Please use NOT instead
|
|
Warning 1292 Truncated incorrect time value: '\xB1k\xEE\xB7'
|
|
|
|
# -- Done.
|
|
|
|
#
|
|
# End of tests
|
|
#
|
|
|