add expr: (#198)
This commit is contained in:
711
test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result
Normal file
711
test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result
Normal file
@ -0,0 +1,711 @@
|
||||
drop table if exists t1,t2;
|
||||
select inet_ntoa(null),inet_aton(null);
|
||||
inet_ntoa(null) inet_aton(null)
|
||||
NULL NULL
|
||||
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")
|
||||
NULL 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 inet_aton("0.255.255.255.255");
|
||||
inet_aton("0.255.255.255.255")
|
||||
NULL
|
||||
select inet_aton("255.255.255.0000");
|
||||
inet_aton("255.255.255.0000")
|
||||
4294967040
|
||||
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
|
||||
select inet_aton("122.226.");
|
||||
inet_aton("122.226.")
|
||||
NULL
|
||||
select inet_aton("");
|
||||
inet_aton("")
|
||||
NULL
|
||||
|
||||
# -- 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(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
|
||||
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('oceanbase') IS NULL;
|
||||
INET6_ATON('oceanbase') 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'))
|
||||
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
|
||||
SELECT INET6_NTOA(123.456);
|
||||
INET6_NTOA(123.456)
|
||||
NULL
|
||||
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
|
||||
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:90a: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'));
|
||||
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('0000:0000:0000:0000:1:1:255.255.255.255'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:1:1:255.255.255.255'))
|
||||
::1:1:ffff:ffff
|
||||
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255'))
|
||||
::1:1:ffff:ffff
|
||||
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'))
|
||||
10200FF
|
||||
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'))
|
||||
NULL
|
||||
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(NULL), IS_IPV4_COMPAT(NULL);
|
||||
IS_IPV4_MAPPED(NULL) IS_IPV4_COMPAT(NULL)
|
||||
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 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 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
|
||||
|
||||
# test different sql mode
|
||||
|
||||
set sql_mode = STRICT_TRANS_TABLES;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
STRICT_TRANS_TABLES
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
|
||||
set sql_mode = STRICT_ALL_TABLES;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
STRICT_ALL_TABLES
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
|
||||
set sql_mode = '';
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
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
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
# -- Done misc test.
|
||||
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
718
test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result
Normal file
718
test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result
Normal file
@ -0,0 +1,718 @@
|
||||
connect sys_jianhua, $OBMYSQL_MS0,root@sys,,oceanbase,$OBMYSQL_PORT;
|
||||
connection sys_jianhua;
|
||||
alter system set _enable_static_typing_engine = false;
|
||||
connect mysql_jianhua, $OBMYSQL_MS0,root@mysql,'',test,$OBMYSQL_PORT;
|
||||
connection mysql_jianhua;
|
||||
drop table if exists t1,t2;
|
||||
select inet_ntoa(null),inet_aton(null);
|
||||
inet_ntoa(null) inet_aton(null)
|
||||
NULL NULL
|
||||
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")
|
||||
NULL 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 inet_aton("0.255.255.255.255");
|
||||
inet_aton("0.255.255.255.255")
|
||||
NULL
|
||||
select inet_aton("255.255.255.0000");
|
||||
inet_aton("255.255.255.0000")
|
||||
4294967040
|
||||
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
|
||||
select inet_aton("122.226.");
|
||||
inet_aton("122.226.")
|
||||
NULL
|
||||
select inet_aton("");
|
||||
inet_aton("")
|
||||
NULL
|
||||
|
||||
# -- 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(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
|
||||
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('oceanbase') IS NULL;
|
||||
INET6_ATON('oceanbase') 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'))
|
||||
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
|
||||
SELECT INET6_NTOA(123.456);
|
||||
INET6_NTOA(123.456)
|
||||
NULL
|
||||
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
|
||||
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:90a: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'));
|
||||
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('0000:0000:0000:0000:1:1:255.255.255.255'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:1:1:255.255.255.255'))
|
||||
::1:1:ffff:ffff
|
||||
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255'));
|
||||
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255'))
|
||||
::1:1:ffff:ffff
|
||||
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'))
|
||||
10200FF
|
||||
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'))
|
||||
NULL
|
||||
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(NULL), IS_IPV4_COMPAT(NULL);
|
||||
IS_IPV4_MAPPED(NULL) IS_IPV4_COMPAT(NULL)
|
||||
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 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 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
|
||||
|
||||
# test different sql mode
|
||||
|
||||
set sql_mode = STRICT_TRANS_TABLES;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
STRICT_TRANS_TABLES
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
|
||||
set sql_mode = STRICT_ALL_TABLES;
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
STRICT_ALL_TABLES
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
ERROR HY000: Invalid argument
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
ERROR HY000: Invalid argument
|
||||
SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2;
|
||||
INET6_NTOA(ip) HEX(ip) LENGTH(ip)
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
|
||||
set sql_mode = '';
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
|
||||
DELETE FROM t2;
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.255'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('1.2.256'));
|
||||
INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2'));
|
||||
INSERT INTO t2 VALUES (inet_aton("122.256"));
|
||||
INSERT INTO t2 VALUES (inet_aton("122.226."));
|
||||
INSERT INTO t2 VALUES (inet_aton(""));
|
||||
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
|
||||
SELECT INET6_ATON('1.0002.3.4');
|
||||
INET6_ATON('1.0002.3.4')
|
||||
NULL
|
||||
SELECT INET6_ATON("");
|
||||
INET6_ATON("")
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
# -- Done misc test.
|
||||
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
connection sys_jianhua;
|
||||
alter system set _enable_static_typing_engine = true;
|
||||
Reference in New Issue
Block a user