From c4130e5a6f0d592c8e84a52e6c0ef88667e8f694 Mon Sep 17 00:00:00 2001 From: Laughing Date: Mon, 21 Mar 2022 17:23:24 +0800 Subject: [PATCH] remove some test cases conflict with gpl (#819) --- .../delete/r/mysql/delete_from_mysql.result | 416 ---------- .../delete/t/delete_from_mysql.test | 568 -------------- .../expr/r/mysql/expr_inet_new.result | 711 ----------------- .../expr/r/mysql/expr_inet_old.result | 718 ------------------ .../test_suite/expr/t/expr_inet_new.test | 373 --------- .../test_suite/expr/t/expr_inet_old.test | 383 ---------- .../r/mysql/subquery_sj_firstmatch.result | 168 ---- .../subquery/t/subquery_sj_firstmatch.test | 108 --- 8 files changed, 3445 deletions(-) delete mode 100644 test/mysql_test/test_suite/delete/r/mysql/delete_from_mysql.result delete mode 100644 test/mysql_test/test_suite/delete/t/delete_from_mysql.test delete mode 100644 test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result delete mode 100644 test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result delete mode 100644 test/mysql_test/test_suite/expr/t/expr_inet_new.test delete mode 100644 test/mysql_test/test_suite/expr/t/expr_inet_old.test delete mode 100644 test/mysql_test/test_suite/subquery/r/mysql/subquery_sj_firstmatch.result delete mode 100644 test/mysql_test/test_suite/subquery/t/subquery_sj_firstmatch.test diff --git a/test/mysql_test/test_suite/delete/r/mysql/delete_from_mysql.result b/test/mysql_test/test_suite/delete/r/mysql/delete_from_mysql.result deleted file mode 100644 index bf87eb7a1..000000000 --- a/test/mysql_test/test_suite/delete/r/mysql/delete_from_mysql.result +++ /dev/null @@ -1,416 +0,0 @@ -drop table if exists t1,t2,t3,t11,t12; -CREATE TABLE t1 (a int, b int, c int, primary key(a,b)); -INSERT INTO t1 VALUES (1,1,0); -INSERT INTO t1 VALUES (1,2,0); -INSERT INTO t1 VALUES (1,3,0); -DELETE from t1 where a=1 limit 1; -DELETE from t1 where a=1 and b =1; -INSERT INTO t1 VALUES (1,1,0); -DELETE from t1 where a=1 and b=1; -DELETE from t1 where a=1 and b=2; -DELETE from t1 where a=1 and b=3; -INSERT INTO t1 VALUES (1,2,0); -DELETE from t1 where a=1 and b=2; -INSERT INTO t1 VALUES (1,2,0); -DELETE from t1 where a=1 and b=2; -drop table t1; -create table t1 ( -a bigint not null, -b bigint not null default 0, -c bigint not null default 0, -d bigint not null default 0, -e bigint not null default 0, -f bigint not null default 0, -g bigint not null default 0, -h bigint not null default 0, -i bigint not null default 0, -j bigint not null default 0, -primary key (a)); -insert into t1 (a) values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23); -delete from t1 where a=26; -drop table t1; -create table t1 ( -a bigint not null, -b bigint not null default 0, -c bigint not null default 0, -d bigint not null default 0, -e bigint not null default 0, -f bigint not null default 0, -g bigint not null default 0, -h bigint not null default 0, -i bigint not null default 0, -j bigint not null default 0, -primary key (a)); -insert into t1 (a) values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23),(27); -delete from t1 where a=27; -drop table t1; -CREATE TABLE t1 ( -bool1 char(0) default NULL, -not_null varchar(20) NOT NULL default '', -misc integer not null, -PRIMARY KEY (not_null) -) ; -INSERT INTO t1 VALUES (NULL,'a',4), (NULL,'b',5), (NULL,'c',6), (NULL,'d',7); -select * from t1 where misc > 5 and bool1 is null; -bool1 not_null misc -NULL c 6 -NULL d 7 -delete from t1 where not_null='c'; -delete from t1 where not_null='d'; -select * from t1 where misc > 5 and bool1 is null; -bool1 not_null misc -select count(*) from t1; -count(*) -2 -select count(*) from t1; -count(*) -2 -select count(*) from t1; -count(*) -2 -drop table t1; -create table t1 (a int not null auto_increment primary key, b char(32)); -insert into t1 (a,b) values (1,'apple'), (2,'apple'); -select * from t1; -a b -1 apple -2 apple -delete t1 from t1, t1 as t2 where t1.b = t2.b and t1.a > t2.a; -select * from t1; -a b -1 apple -drop table t1; -create table t11 (a int NOT NULL, b int, primary key (a)); -create table t12 (a int NOT NULL, b int, primary key (a)); -create table t2 (a int NOT NULL, b int, primary key (a)); -insert into t11 values (0, 10),(1, 11),(2, 12); -insert into t12 values (33, 10),(0, 11),(2, 12); -insert into t2 values (1, 21),(2, 12),(3, 23); -select * from t11; -a b -0 10 -1 11 -2 12 -select * from t12; -a b -0 11 -2 12 -33 10 -select * from t2; -a b -1 21 -2 12 -3 23 -delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a); -ERROR 21000: Subquery returns more than 1 row -select * from t11; -a b -0 10 -1 11 -2 12 -select * from t12; -a b -0 11 -2 12 -33 10 -insert into t11 values (2, 12) on duplicate key update a=values(a), b=values(b); -delete from t11 where t11.b <> (select b from t2 where t11.a < t2.a); -ERROR 21000: Subquery returns more than 1 row -select * from t11; -a b -0 10 -1 11 -2 12 -select * from t11; -a b -0 10 -1 11 -2 12 -drop table t11, t12, t2; -CREATE TABLE t1 ( a int PRIMARY KEY ); -DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a; -INSERT INTO t1 VALUES (0),(1),(2); -DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a LIMIT 1; -SELECT * FROM t1; -a -0 -2 -DROP TABLE t1; -create table t1 (a int); -delete `4.t1` from t1 as `4.t1` where `4.t1`.a = 5; -delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5; -drop table t1; -create table t1(f1 int primary key); -insert into t1 values (4),(3),(1),(2); -delete from t1 where (@a:= f1) order by f1 limit 1; -select @a; -@a -1 -drop table t1; -CREATE TABLE t1 ( -`date` date , -`time` time , -`seq` int(10) unsigned NOT NULL auto_increment, -PRIMARY KEY (`seq`), -KEY `seq` (`seq`), -KEY `time` (`time`), -KEY `date` (`date`) -); -DELETE FROM t1 ORDER BY date ASC, time ASC LIMIT 1; -drop table t1; -CREATE TABLE t1 (a int not null,b int not null); -CREATE TABLE t2 (a int not null, b int not null, primary key (a,b)); -CREATE TABLE t3 (a int not null, b int not null, primary key (a,b)); -insert into t1 values (1,1),(2,1),(1,3); -insert into t2 values (1,1),(2,2),(3,3); -insert into t3 values (1,1),(2,1),(1,3); -select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b; -a b a b a b -1 1 1 1 1 1 -1 3 1 1 1 3 -2 1 2 2 2 1 -delete t2.*,t3.* from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b; -select * from t3; -a b -drop table t1,t2,t3; -create table t1(a datetime not null primary key, b int); -insert into t1 values (USEC_TO_TIME(0),1); -insert into t1 values (timestamp'1970-01-01 08:00:00',1); -ERROR 23000: Duplicate entry '1970-01-01 08:00:00.000000' for key 'PRIMARY' -select * from t1 where a is null; -a b -delete from t1 where a = null; -delete from t1 where a = timestamp'1970-01-01 08:00:00'; -select count(*) from t1; -count(*) -0 -drop table t1; -CREATE TABLE t1 (a INT); -INSERT INTO t1 VALUES (1); -DELETE FROM t1 ORDER BY x; -ERROR 42S22: Unknown column 'x' in 'order clause' -DELETE FROM t1 ORDER BY t2.x; -ERROR 42S22: Unknown column 't2.x' in 'order clause' -DELETE FROM t1 ORDER BY (SELECT x); -ERROR 42S22: Unknown column 'x' in 'field list' -DROP TABLE t1; -CREATE TABLE t1 ( -a INT -); -CREATE TABLE t2 ( -a INT -); -drop database if exists db1; -drop database if exists db2; -CREATE DATABASE db1; -CREATE TABLE db1.t1 ( -a INT -); -INSERT INTO db1.t1 (a) SELECT * FROM t1; -CREATE DATABASE db2; -CREATE TABLE db2.t1 ( -a INT -); -INSERT INTO db2.t1 (a) SELECT * FROM t2; -DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'USING t1, t2 alias WHERE t1.a = alias.a' at line 1 -DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a; -DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a; -DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a; -ERROR 42S02: Unknown table 't2' in MULTI DELETE -DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a' at line 1 -DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -DELETE FROM t1 USING t1 WHERE a = 1; -SELECT * FROM t1; -a -DELETE FROM t1 alias USING t1 alias WHERE a = 2; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'USING t1 alias WHERE a = 2' at line 1 -SELECT * FROM t1; -a -delete t1.* from db1.t1 as t1, db2.t1; -ERROR 42S02: Unknown table 't1' in MULTI DELETE -select * from t1; -a -delete db1.t1.* from db1.t1 as t1, db2.t1; -select * from db1.t1; -a -DROP TABLE t1, t2; -DROP DATABASE db1; -DROP DATABASE db2; -# -# Bug #49552 : sql_buffer_result cause crash + not found records -# in multitable delete/subquery -# -CREATE TABLE t1(a INT); -INSERT INTO t1 VALUES (1),(2),(3); -DELETE t1 FROM (SELECT SUM(a) a FROM t1) x,t1; -SELECT * FROM t1; -a -DROP TABLE t1; -End of 5.0 tests -DROP DATABASE IF EXISTS db1; -DROP DATABASE IF EXISTS db2; -DROP DATABASE IF EXISTS db3; -DROP DATABASE IF EXISTS db4; -DROP TABLE IF EXISTS t1, t2; -DROP TABLE IF EXISTS a1; -USE test; -CREATE DATABASE db1; -CREATE DATABASE db2; -CREATE TABLE db1.t1 (a INT, b INT); -INSERT INTO db1.t1 VALUES (1,1),(2,2),(3,3); -CREATE TABLE db1.t2 AS SELECT * FROM db1.t1; -CREATE TABLE db2.t1 AS SELECT * FROM db1.t2; -CREATE TABLE db2.t2 AS SELECT * FROM db2.t1; -CREATE TABLE t1 AS SELECT * FROM db2.t2; -CREATE TABLE t2 AS SELECT * FROM t1; -CREATE DATABASE db3; -USE db3; -DROP DATABASE db3; -SELECT * FROM t1; -ERROR 3D000: No database selected -DELETE a1,a2 FROM db1.t1, db2.t2; -ERROR 3D000: No database selected -DELETE a1,a2 FROM db1.t1, db2.t2; -ERROR 3D000: No database selected -DELETE a1,a2 FROM db1.t1 AS a1, db2.t2; -ERROR 3D000: No database selected -DELETE a1,a2 FROM db1.t1, db2.t2 AS a2; -ERROR 3D000: No database selected -DELETE FROM a1,a2 USING db1.t1, db2.t2; -ERROR 3D000: No database selected -DELETE FROM a1,a2 USING db1.t1, db2.t2; -ERROR 3D000: No database selected -DELETE FROM a1,a2 USING db1.t1 AS a1, db2.t2; -ERROR 3D000: No database selected -DELETE FROM a1,a2 USING db1.t1, db2.t2 AS a2; -ERROR 3D000: No database selected -DELETE a1 FROM db1.t1 AS a1, db2.t2 AS a1; -ERROR 3D000: No database selected -DELETE a1 FROM db1.a1, db2.t2 AS a1; -ERROR 42S02: Table 'db1.a1' doesn't exist -DELETE a1 FROM a1, db1.t1 AS a1; -ERROR 3D000: No database selected -DELETE t1 FROM db1.t1, db2.t1 AS a1; -DELETE t1 FROM db1.t1 AS a1, db2.t1 AS a2; -ERROR 3D000: No database selected -DELETE t1 FROM db1.t1, db2.t1; -ERROR 3D000: No database selected -USE test; -DELETE a1,a2 FROM db1.t1, db2.t2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE a1,a2 FROM db1.t1, db2.t2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE a1,a2 FROM db1.t1 AS a1, db2.t2; -ERROR 42S02: Unknown table 'a2' in MULTI DELETE -DELETE a1,a2 FROM db1.t1, db2.t2 AS a2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; -ERROR 42S02: Table 'db3.t1' doesn't exist -DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; -ERROR 42S02: Table 'db3.t1' doesn't exist -DELETE FROM a1,a2 USING db1.t1, db2.t2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE FROM a1,a2 USING db1.t1, db2.t2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE FROM a1,a2 USING db1.t1 AS a1, db2.t2; -ERROR 42S02: Unknown table 'a2' in MULTI DELETE -DELETE FROM a1,a2 USING db1.t1, db2.t2 AS a2; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; -ERROR 42S02: Table 'db3.t1' doesn't exist -DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; -ERROR 42S02: Table 'db3.t1' doesn't exist -DELETE a1 FROM db1.t1 AS a1, db2.t2 AS a1; -ERROR 42S02: Unknown table 'a1' in MULTI DELETE -DELETE a1 FROM db1.a1, db2.t2 AS a1; -ERROR 42S02: Table 'db1.a1' doesn't exist -DELETE a1 FROM a1, db1.t1 AS a1; -ERROR 42S02: Table 'test.a1' doesn't exist -DELETE t1 FROM db1.t1, db2.t1 AS a1; -DELETE t1 FROM db1.t1 AS a1, db2.t1 AS a2; -ERROR 42S02: Unknown table 't1' in MULTI DELETE -DELETE t1 FROM db1.t1, db2.t1; -ERROR 42S02: Unknown table 't1' in MULTI DELETE -DELETE t1 FROM db1.t2 AS t1, db2.t2 AS t2 WHERE t2.a = 1 AND t1.a = t2.a; -SELECT ROW_COUNT(); -ROW_COUNT() -1 -DELETE a1, a2 FROM db2.t1 AS a1, t2 AS a2 WHERE a1.a = 2 AND a2.a = 2; -SELECT ROW_COUNT(); -ROW_COUNT() -1 -DROP DATABASE db1; -DROP DATABASE db2; -DROP TABLE t1, t2; -# -# Bug#46958: Assertion in Diagnostics_area::set_ok_status, trigger, -# merge table -# -CREATE TABLE t1 ( a INT ); -CREATE TABLE t2 ( a INT ); -CREATE TABLE t3 ( a INT ); -INSERT INTO t1 VALUES (1), (2); -INSERT INTO t2 VALUES (1), (2); -INSERT INTO t3 VALUES (1), (2); -DELETE t1, t2, t3 FROM t1, t2, t3; -SELECT * FROM t1; -a -SELECT * FROM t2; -a -SELECT * FROM t3; -a -DROP TABLE t1, t2, t3; -CREATE TABLE t1 ( a INT ); -CREATE TABLE t2 ( a INT ); -CREATE TABLE t3 ( a INT ); -INSERT INTO t1 VALUES (1), (2); -INSERT INTO t2 VALUES (1), (2); -INSERT INTO t3 VALUES (1), (2); -DELETE t1, t2, t3 FROM t1, t2, t3; -SELECT * FROM t1; -a -SELECT * FROM t2; -a -SELECT * FROM t3; -a -DROP TABLE t1, t2, t3; -# -# Bug #46425 crash in Diagnostics_area::set_ok_status, -# empty statement, DELETE IGNORE -# -CREATE table t1 (i INTEGER); -INSERT INTO t1 VALUES (1); -DROP TABLE t1; -# -# Bug #53450: Crash/assertion -# 'virtual int ha_myisam::index_first(uchar*)') at assert.c:81 -# -CREATE TABLE t1 (a INT, b INT, c INT, -INDEX(a), INDEX(b), INDEX(c)); -INSERT INTO t1 VALUES (1,2,3), (4,5,6), (7,8,9); -DELETE FROM t1 WHERE a = 10 OR b = 20 ORDER BY c LIMIT 1; -DROP TABLE t1; -# -# Bug #53034: Multiple-table DELETE statements not accepting -# 'Access compatibility' syntax -# -CREATE TABLE t1 (id INT); -CREATE TABLE t2 LIKE t1; -CREATE TABLE t3 LIKE t1; -DELETE FROM t1.*, test.t2.*, a.* USING t1, t2, t3 AS a; -DROP TABLE t1, t2, t3; -End of 5.1 tests -# -# Bug#51099 Assertion in mysql_multi_delete_prepare() -# -DROP TABLE IF EXISTS t1, t2; -DROP VIEW IF EXISTS v1, v2; -CREATE TABLE t1(a INT); -CREATE TABLE t2(b INT); -CREATE VIEW v1 AS SELECT a, b FROM t1, t2; -CREATE VIEW v2 AS SELECT a FROM v1; -DROP VIEW v2, v1; -DROP TABLE t1, t2; diff --git a/test/mysql_test/test_suite/delete/t/delete_from_mysql.test b/test/mysql_test/test_suite/delete/t/delete_from_mysql.test deleted file mode 100644 index 50564dd7b..000000000 --- a/test/mysql_test/test_suite/delete/t/delete_from_mysql.test +++ /dev/null @@ -1,568 +0,0 @@ ---disable_query_log -set @@session.explicit_defaults_for_timestamp=off; ---enable_query_log - -# -# Check for problems with delete -# - ---disable_warnings -drop table if exists t1,t2,t3,t11,t12; ---enable_warnings -CREATE TABLE t1 (a int, b int, c int, primary key(a,b)); -INSERT INTO t1 VALUES (1,1,0); -#INSERT LOW_PRIORITY INTO t1 VALUES (1,2); -INSERT INTO t1 VALUES (1,2,0); -INSERT INTO t1 VALUES (1,3,0); -DELETE from t1 where a=1 limit 1; -#DELETE LOW_PRIORITY from t1 where a=1; -DELETE from t1 where a=1 and b =1; - -INSERT INTO t1 VALUES (1,1,0); -DELETE from t1 where a=1 and b=1; -DELETE from t1 where a=1 and b=2; -DELETE from t1 where a=1 and b=3; -#LOCK TABLE t1 write; -INSERT INTO t1 VALUES (1,2,0); -DELETE from t1 where a=1 and b=2; -#UNLOCK TABLES; -INSERT INTO t1 VALUES (1,2,0); -#SET AUTOCOMMIT=0; -DELETE from t1 where a=1 and b=2; -#SET AUTOCOMMIT=1; -drop table t1; - -# -# Test of delete when the delete will cause a node to disappear and reappear -# (This assumes a block size of 1024) -# - -create table t1 ( - a bigint not null, - b bigint not null default 0, - c bigint not null default 0, - d bigint not null default 0, - e bigint not null default 0, - f bigint not null default 0, - g bigint not null default 0, - h bigint not null default 0, - i bigint not null default 0, - j bigint not null default 0, - primary key (a)); -insert into t1 (a) values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23); -delete from t1 where a=26; -drop table t1; -create table t1 ( - a bigint not null, - b bigint not null default 0, - c bigint not null default 0, - d bigint not null default 0, - e bigint not null default 0, - f bigint not null default 0, - g bigint not null default 0, - h bigint not null default 0, - i bigint not null default 0, - j bigint not null default 0, - primary key (a)); -insert into t1 (a) values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23),(27); -delete from t1 where a=27; -drop table t1; - -# -# - -CREATE TABLE t1 ( - bool1 char(0) default NULL, - not_null varchar(20) NOT NULL default '', - misc integer not null, - PRIMARY KEY (not_null) -) ; - -INSERT INTO t1 VALUES (NULL,'a',4), (NULL,'b',5), (NULL,'c',6), (NULL,'d',7); - -select * from t1 where misc > 5 and bool1 is null; -delete from t1 where not_null='c'; -delete from t1 where not_null='d'; -select * from t1 where misc > 5 and bool1 is null; - -select count(*) from t1; -select count(*) from t1; -select count(*) from t1; - -drop table t1; -# -# Bug #5733: Table handler error with self-join multi-table DELETE - -create table t1 (a int not null auto_increment primary key, b char(32)); -insert into t1 (a,b) values (1,'apple'), (2,'apple'); -select * from t1; -delete t1 from t1, t1 as t2 where t1.b = t2.b and t1.a > t2.a; -select * from t1; -drop table t1; - -# IGNORE option - -create table t11 (a int NOT NULL, b int, primary key (a)); -create table t12 (a int NOT NULL, b int, primary key (a)); -create table t2 (a int NOT NULL, b int, primary key (a)); -insert into t11 values (0, 10),(1, 11),(2, 12); -insert into t12 values (33, 10),(0, 11),(2, 12); -insert into t2 values (1, 21),(2, 12),(3, 23); -select * from t11; -select * from t12; -select * from t2; --- error 1242 -delete t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a); -select * from t11; -select * from t12; -#delete ignore t11.*, t12.* from t11,t12 where t11.a = t12.a and t11.b <> (select b from t2 where t11.a < t2.a); -#select * from t11; -#select * from t12; -insert into t11 values (2, 12) on duplicate key update a=values(a), b=values(b); --- error 1242 -delete from t11 where t11.b <> (select b from t2 where t11.a < t2.a); -select * from t11; -#delete ignore from t11 where t11.b <> (select b from t2 where t11.a < t2.a); -select * from t11; -drop table t11, t12, t2; - -# -# Bug #4198: deletion and KEYREAD -# - -#create table t1 (a int, b int, unique key (a), key (b)); -#insert into t1 values (3, 3), (7, 7); -#delete t1 from t1 where a = 3; -#check table t1; -#select * from t1; -#drop table t1; - -# -# Bug #8392: delete with ORDER BY containing a direct reference to the table - -CREATE TABLE t1 ( a int PRIMARY KEY ); -DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a; -INSERT INTO t1 VALUES (0),(1),(2); -DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a LIMIT 1; -SELECT * FROM t1; -DROP TABLE t1; - -# -# Bug #21392: multi-table delete with alias table name fails with -# - -create table t1 (a int); -delete `4.t1` from t1 as `4.t1` where `4.t1`.a = 5; -delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5; -drop table t1; - -# -# Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and -# non-restricting WHERE is present. -# -create table t1(f1 int primary key); -insert into t1 values (4),(3),(1),(2); -delete from t1 where (@a:= f1) order by f1 limit 1; -select @a; -drop table t1; - -# BUG#30385 'Server crash when deleting with order by and limit' -CREATE TABLE t1 ( - `date` date , - `time` time , - `seq` int(10) unsigned NOT NULL auto_increment, - PRIMARY KEY (`seq`), - KEY `seq` (`seq`), - KEY `time` (`time`), - KEY `date` (`date`) -); -DELETE FROM t1 ORDER BY date ASC, time ASC LIMIT 1; -drop table t1; - -#--echo End of 4.1 tests - -# -# Test of multi-delete where we are not scanning the first table -# - -CREATE TABLE t1 (a int not null,b int not null); -CREATE TABLE t2 (a int not null, b int not null, primary key (a,b)); -CREATE TABLE t3 (a int not null, b int not null, primary key (a,b)); -insert into t1 values (1,1),(2,1),(1,3); -insert into t2 values (1,1),(2,2),(3,3); -insert into t3 values (1,1),(2,1),(1,3); -select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b; ---replace_regex /Plan signature: [0-9]*/Plan signature/ ---disable_result_log -#explain select * from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b; ---enable_result_log -delete t2.*,t3.* from t1,t2,t3 where t1.a=t2.a AND t2.b=t3.a and t1.b=t3.b; -# This should be empty -select * from t3; -drop table t1,t2,t3; -# -## -## Bug #8143: deleting '0000-00-00' values using IS NULL -## -# -create table t1(a datetime not null primary key, b int); -insert into t1 values (USEC_TO_TIME(0),1); ---error 1062 -insert into t1 values (timestamp'1970-01-01 08:00:00',1); -select * from t1 where a is null; -delete from t1 where a = null; -delete from t1 where a = timestamp'1970-01-01 08:00:00'; -select count(*) from t1; -drop table t1; -# -## -## Bug #26186: delete order by, sometimes accept unknown column -## -CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1); - ---error ER_BAD_FIELD_ERROR -DELETE FROM t1 ORDER BY x; - -# even columns from a table not used in query (and not even existing) ---error ER_BAD_FIELD_ERROR -DELETE FROM t1 ORDER BY t2.x; - -# subquery (as long as the subquery from is valid or DUAL) ---error ER_BAD_FIELD_ERROR -DELETE FROM t1 ORDER BY (SELECT x); - -DROP TABLE t1; - -# -# Bug #30234: Unexpected behavior using DELETE with AS and USING -# ' -CREATE TABLE t1 ( - a INT -); - -CREATE TABLE t2 ( - a INT -); - ---disable_warnings -drop database if exists db1; -drop database if exists db2; ---enable_warnings -CREATE DATABASE db1; -CREATE TABLE db1.t1 ( - a INT -); -INSERT INTO db1.t1 (a) SELECT * FROM t1; - -CREATE DATABASE db2; -CREATE TABLE db2.t1 ( - a INT -); -INSERT INTO db2.t1 (a) SELECT * FROM t2; - ---error ER_PARSE_ERROR -DELETE FROM t1 alias USING t1, t2 alias WHERE t1.a = alias.a; -DELETE FROM alias USING t1, t2 alias WHERE t1.a = alias.a; -DELETE FROM t1, alias USING t1, t2 alias WHERE t1.a = alias.a; ---error ER_UNKNOWN_TABLE -DELETE FROM t1, t2 USING t1, t2 alias WHERE t1.a = alias.a; ---error ER_PARSE_ERROR -DELETE FROM db1.t1 alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -DELETE FROM alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -DELETE FROM db2.alias USING db1.t1, db2.t1 alias WHERE db1.t1.a = alias.a; -DELETE FROM t1 USING t1 WHERE a = 1; -SELECT * FROM t1; ---error ER_PARSE_ERROR -DELETE FROM t1 alias USING t1 alias WHERE a = 2; -SELECT * FROM t1; ---error ER_UNKNOWN_TABLE -delete t1.* from db1.t1 as t1, db2.t1; -select * from t1; -delete db1.t1.* from db1.t1 as t1, db2.t1; -select * from db1.t1; -DROP TABLE t1, t2; -DROP DATABASE db1; -DROP DATABASE db2; - ---echo # ---echo # Bug #49552 : sql_buffer_result cause crash + not found records ---echo # in multitable delete/subquery ---echo # - -CREATE TABLE t1(a INT); -INSERT INTO t1 VALUES (1),(2),(3); -DELETE t1 FROM (SELECT SUM(a) a FROM t1) x,t1; - -SELECT * FROM t1; -DROP TABLE t1; - ---echo End of 5.0 tests - -# -# Bug#27525: table not found when using multi-table-deletes with aliases over -# several databas -# Bug#21148: MULTI-DELETE fails to resolve a table by alias if it's from a -# different database -# - ---disable_warnings -DROP DATABASE IF EXISTS db1; -DROP DATABASE IF EXISTS db2; -DROP DATABASE IF EXISTS db3; -DROP DATABASE IF EXISTS db4; -DROP TABLE IF EXISTS t1, t2; -DROP TABLE IF EXISTS a1; -#DROP PROCEDURE IF EXISTS count; ---enable_warnings -USE test; -CREATE DATABASE db1; -CREATE DATABASE db2; -CREATE TABLE db1.t1 (a INT, b INT); -INSERT INTO db1.t1 VALUES (1,1),(2,2),(3,3); -CREATE TABLE db1.t2 AS SELECT * FROM db1.t1; -CREATE TABLE db2.t1 AS SELECT * FROM db1.t2; -CREATE TABLE db2.t2 AS SELECT * FROM db2.t1; -CREATE TABLE t1 AS SELECT * FROM db2.t2; -CREATE TABLE t2 AS SELECT * FROM t1; - -#delimiter |; -#CREATE PROCEDURE count_rows() -#BEGIN -# SELECT COUNT(*) AS 'COUNT(db1.t1)' FROM db1.t1; -# SELECT COUNT(*) AS 'COUNT(db1.t2)' FROM db1.t2; -# SELECT COUNT(*) AS 'COUNT(db2.t1)' FROM db2.t1; -# SELECT COUNT(*) AS 'COUNT(db2.t2)' FROM db2.t2; -# SELECT COUNT(*) AS 'COUNT(test.t1)' FROM test.t1; -# SELECT COUNT(*) AS 'COUNT(test.t2)' FROM test.t2; -#END| -#delimiter ;| - -# -# Testing without a selected database -# - -CREATE DATABASE db3; -USE db3; -DROP DATABASE db3; ---error ER_NO_DB_ERROR -SELECT * FROM t1; - -# Detect missing table references - ---error ER_NO_DB_ERROR -DELETE a1,a2 FROM db1.t1, db2.t2; ---error ER_NO_DB_ERROR -DELETE a1,a2 FROM db1.t1, db2.t2; ---error ER_NO_DB_ERROR -DELETE a1,a2 FROM db1.t1 AS a1, db2.t2; ---error ER_NO_DB_ERROR -DELETE a1,a2 FROM db1.t1, db2.t2 AS a2; -#--error ER_NO_DB_ERROR -#DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; -#--error ER_NO_DB_ERROR -#DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; - ---error ER_NO_DB_ERROR -DELETE FROM a1,a2 USING db1.t1, db2.t2; ---error ER_NO_DB_ERROR -DELETE FROM a1,a2 USING db1.t1, db2.t2; ---error ER_NO_DB_ERROR -DELETE FROM a1,a2 USING db1.t1 AS a1, db2.t2; ---error ER_NO_DB_ERROR -DELETE FROM a1,a2 USING db1.t1, db2.t2 AS a2; -#--error ER_NO_DB_ERROR -#DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; -#--error ER_NO_DB_ERROR -#DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; - -# Ambiguous table references - ---error ER_NO_DB_ERROR -DELETE a1 FROM db1.t1 AS a1, db2.t2 AS a1; ---error 1146 -DELETE a1 FROM db1.a1, db2.t2 AS a1; ---error ER_NO_DB_ERROR -DELETE a1 FROM a1, db1.t1 AS a1; -DELETE t1 FROM db1.t1, db2.t1 AS a1; ---error ER_NO_DB_ERROR -DELETE t1 FROM db1.t1 AS a1, db2.t1 AS a2; ---error ER_NO_DB_ERROR -DELETE t1 FROM db1.t1, db2.t1; - -# Test all again, now with a selected database - -USE test; - -# Detect missing table references - ---error ER_UNKNOWN_TABLE -DELETE a1,a2 FROM db1.t1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE a1,a2 FROM db1.t1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE a1,a2 FROM db1.t1 AS a1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE a1,a2 FROM db1.t1, db2.t2 AS a2; ---error ER_NO_SUCH_TABLE -DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; ---error ER_NO_SUCH_TABLE -DELETE a1,a2 FROM db3.t1 AS a1, db4.t2 AS a2; - ---error ER_UNKNOWN_TABLE -DELETE FROM a1,a2 USING db1.t1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE FROM a1,a2 USING db1.t1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE FROM a1,a2 USING db1.t1 AS a1, db2.t2; ---error ER_UNKNOWN_TABLE -DELETE FROM a1,a2 USING db1.t1, db2.t2 AS a2; ---error ER_NO_SUCH_TABLE -DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; ---error ER_NO_SUCH_TABLE -DELETE FROM a1,a2 USING db3.t1 AS a1, db4.t2 AS a2; - -# Ambiguous table references - ---error ER_UNKNOWN_TABLE -DELETE a1 FROM db1.t1 AS a1, db2.t2 AS a1; ---error ER_NO_SUCH_TABLE -DELETE a1 FROM db1.a1, db2.t2 AS a1; ---error 1146 -DELETE a1 FROM a1, db1.t1 AS a1; -DELETE t1 FROM db1.t1, db2.t1 AS a1; ---error ER_UNKNOWN_TABLE -DELETE t1 FROM db1.t1 AS a1, db2.t1 AS a2; ---error ER_UNKNOWN_TABLE -DELETE t1 FROM db1.t1, db2.t1; - -# Test multiple-table cross database deletes - -DELETE t1 FROM db1.t2 AS t1, db2.t2 AS t2 WHERE t2.a = 1 AND t1.a = t2.a; -SELECT ROW_COUNT(); -#CALL count_rows(); -DELETE a1, a2 FROM db2.t1 AS a1, t2 AS a2 WHERE a1.a = 2 AND a2.a = 2; -SELECT ROW_COUNT(); -#CALL count_rows(); - -DROP DATABASE db1; -DROP DATABASE db2; -#DROP PROCEDURE count_rows; -DROP TABLE t1, t2; - ---echo # ---echo # Bug#46958: Assertion in Diagnostics_area::set_ok_status, trigger, ---echo # merge table ---echo # -CREATE TABLE t1 ( a INT ); -CREATE TABLE t2 ( a INT ); -CREATE TABLE t3 ( a INT ); - -INSERT INTO t1 VALUES (1), (2); -INSERT INTO t2 VALUES (1), (2); -INSERT INTO t3 VALUES (1), (2); - -#CREATE TRIGGER tr1 BEFORE DELETE ON t2 -#FOR EACH ROW INSERT INTO no_such_table VALUES (1); - -DELETE t1, t2, t3 FROM t1, t2, t3; - -SELECT * FROM t1; -SELECT * FROM t2; -SELECT * FROM t3; - -DROP TABLE t1, t2, t3; - -CREATE TABLE t1 ( a INT ); -CREATE TABLE t2 ( a INT ); -CREATE TABLE t3 ( a INT ); - -INSERT INTO t1 VALUES (1), (2); -INSERT INTO t2 VALUES (1), (2); -INSERT INTO t3 VALUES (1), (2); - -#CREATE TRIGGER tr1 AFTER DELETE ON t2 -#FOR EACH ROW INSERT INTO no_such_table VALUES (1); - -DELETE t1, t2, t3 FROM t1, t2, t3; - -SELECT * FROM t1; -SELECT * FROM t2; -SELECT * FROM t3; - -DROP TABLE t1, t2, t3; - ---echo # ---echo # Bug #46425 crash in Diagnostics_area::set_ok_status, ---echo # empty statement, DELETE IGNORE ---echo # - -CREATE table t1 (i INTEGER); - -INSERT INTO t1 VALUES (1); - -#--delimiter | -# -#CREATE TRIGGER tr1 AFTER DELETE ON t1 FOR EACH ROW -#BEGIN -# INSERT INTO t1 SELECT * FROM t1 AS A; -#END | -# -#--delimiter ; -#--error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG -#DELETE IGNORE FROM t1; - -DROP TABLE t1; - ---echo # ---echo # Bug #53450: Crash/assertion ---echo # 'virtual int ha_myisam::index_first(uchar*)') at assert.c:81 ---echo # - -CREATE TABLE t1 (a INT, b INT, c INT, - INDEX(a), INDEX(b), INDEX(c)); -INSERT INTO t1 VALUES (1,2,3), (4,5,6), (7,8,9); - -DELETE FROM t1 WHERE a = 10 OR b = 20 ORDER BY c LIMIT 1; - -DROP TABLE t1; - ---echo # ---echo # Bug #53034: Multiple-table DELETE statements not accepting ---echo # 'Access compatibility' syntax ---echo # - -CREATE TABLE t1 (id INT); -CREATE TABLE t2 LIKE t1; -CREATE TABLE t3 LIKE t1; - -DELETE FROM t1.*, test.t2.*, a.* USING t1, t2, t3 AS a; - -DROP TABLE t1, t2, t3; - ---echo End of 5.1 tests - - ---echo # ---echo # Bug#51099 Assertion in mysql_multi_delete_prepare() ---echo # - ---disable_warnings -DROP TABLE IF EXISTS t1, t2; -DROP VIEW IF EXISTS v1, v2; ---enable_warnings - -CREATE TABLE t1(a INT); -CREATE TABLE t2(b INT); -CREATE VIEW v1 AS SELECT a, b FROM t1, t2; -CREATE VIEW v2 AS SELECT a FROM v1; - -# This is a normal delete -#--error ER_VIEW_DELETE_MERGE_VIEW -#DELETE FROM v2; -# This is a multi table delete, check that we get the same error -# This caused the assertion. -#--error ER_VIEW_DELETE_MERGE_VIEW -#DELETE v2 FROM v2; - -DROP VIEW v2, v1; -DROP TABLE t1, t2; diff --git a/test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result b/test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result deleted file mode 100644 index 7d015f516..000000000 --- a/test/mysql_test/test_suite/expr/r/mysql/expr_inet_new.result +++ /dev/null @@ -1,711 +0,0 @@ -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 -# diff --git a/test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result b/test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result deleted file mode 100644 index 4b2bfbf09..000000000 --- a/test/mysql_test/test_suite/expr/r/mysql/expr_inet_old.result +++ /dev/null @@ -1,718 +0,0 @@ -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; diff --git a/test/mysql_test/test_suite/expr/t/expr_inet_new.test b/test/mysql_test/test_suite/expr/t/expr_inet_new.test deleted file mode 100644 index e06b20f7a..000000000 --- a/test/mysql_test/test_suite/expr/t/expr_inet_new.test +++ /dev/null @@ -1,373 +0,0 @@ ---disable_query_log -set @@session.explicit_defaults_for_timestamp=off; ---enable_query_log ---disable_warnings -drop table if exists t1,t2; ---enable_warnings - -# -# Testing of misc functions -# -select inet_ntoa(null),inet_aton(null); -select inet_ntoa(inet_aton("255.255.255.255.255.255.255.255")); -select inet_aton("255.255.255.255.255"),inet_aton("255.255.1.255"),inet_aton("0.1.255"); -select inet_ntoa(1099511627775),inet_ntoa(4294902271),inet_ntoa(511); -select inet_aton("0.255.255.255.255"); -select inet_aton("255.255.255.0000"); - -select hex(inet_aton('127')); -select hex(inet_aton('127.1')); -select hex(inet_aton('127.1.1')); - -select inet_aton("122.256"); -select inet_aton("122.226."); -select inet_aton(""); - ---echo ---echo # -- INET6_ATON: checking NULL, invalid types, out-of range values... ---echo - -SELECT INET6_ATON(NULL) IS NULL; -SELECT INET6_ATON(123) IS NULL; -SELECT INET6_ATON(123.45) IS NULL; -SELECT INET6_ATON(str_to_date('2014,2,28 09', '%Y,%m,%d %h')) IS NULL; - -SELECT INET6_ATON('1.2.3') IS NULL; -SELECT INET6_ATON('1.2.3.') IS NULL; -SELECT INET6_ATON('1..3.4') IS NULL; -SELECT INET6_ATON('-1.2.3.4') IS NULL; -SELECT INET6_ATON('1.2.3.256') IS NULL; -SELECT INET6_ATON('1.2.3.4.5') IS NULL; -SELECT INET6_ATON('0001.2.3.4') IS NULL; -SELECT INET6_ATON('0x1.2.3.4') IS NULL; -SELECT INET6_ATON('a.2.3.4') IS NULL; - -SELECT INET6_ATON('1.2.3.4:80') IS NULL; -SELECT INET6_ATON('1.2.3.4/32') IS NULL; - -SELECT INET6_ATON('oceanbase') IS NULL; - -SELECT INET6_ATON(':::') IS NULL; -SELECT INET6_ATON(':1:2:3') IS NULL; -SELECT INET6_ATON('1:2:3:') IS NULL; -SELECT INET6_ATON(':1::2:3') IS NULL; -SELECT INET6_ATON('1::2:3:') IS NULL; -SELECT INET6_ATON('::00001') IS NULL; -SELECT INET6_ATON('::00001:2') IS NULL; -SELECT INET6_ATON('::12345') IS NULL; -SELECT INET6_ATON('1020::3040::5060') IS NULL; -SELECT INET6_ATON('::ABCZ') IS NULL; - -SELECT INET6_ATON('::0x1.2.3.4') IS NULL; -SELECT INET6_ATON('::1.0x2.3.4') IS NULL; -SELECT INET6_ATON('::a.b.c.d') IS NULL; - -SELECT INET6_ATON('::FFFF:0x1.2.3.4') IS NULL; -SELECT INET6_ATON('::FFFF:1.0x2.3.4') IS NULL; -SELECT INET6_ATON('::FFFF:a.b.c.d') IS NULL; - -SELECT INET6_ATON('::1.2.3.4:ABCD') IS NULL; - ---echo # NOTE: such addresses are supported because getaddrinfo() supports them. ---echo # This is just to record the current behaviour. -SELECT HEX(INET6_ATON('::ABCD:1.2.3.4')); - ---echo ---echo # -- INET6_ATON: checking binary representation... ---echo - -SELECT HEX(INET6_ATON('0.0.0.0')); -SELECT HEX(INET6_ATON('00.00.00.00')); -SELECT HEX(INET6_ATON('000.000.000.000')); -SELECT HEX(INET6_ATON('1.2.3.4')); -SELECT HEX(INET6_ATON('01.02.03.04')); -SELECT HEX(INET6_ATON('001.002.003.004')); -SELECT HEX(INET6_ATON('255.255.255.255')); -SELECT HEX(INET6_ATON('::')); -SELECT HEX(INET6_ATON('0::0')); -SELECT HEX(INET6_ATON('1::2')); -SELECT HEX(INET6_ATON('0::')); -SELECT HEX(INET6_ATON('1::')); -SELECT HEX(INET6_ATON('::0')); -SELECT HEX(INET6_ATON('::1')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('::2:3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('1::3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('1:2::4:5:6:7:8')); -SELECT HEX(INET6_ATON('1:2:3::5:6:7:8')); -SELECT HEX(INET6_ATON('1:2:3:4::6:7:8')); -SELECT HEX(INET6_ATON('1:2:3:4:5::7:8')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6::8')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6:7::')); -SELECT HEX(INET6_ATON('0000:0000::0000:0001')); -SELECT HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); -SELECT HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); -SELECT HEX(INET6_ATON('::C0A8:0102')); -SELECT HEX(INET6_ATON('::c0a8:0102')); -SELECT HEX(INET6_ATON('::192.168.1.2')); -SELECT HEX(INET6_ATON('::FfFf:C0a8:0102')); -SELECT HEX(INET6_ATON('::ffff:c0a8:0102')); -SELECT HEX(INET6_ATON('::ffff:192.168.1.2')); -SELECT HEX(INET6_ATON('::01.2.3.4')); -SELECT HEX(INET6_ATON('::1.02.3.4')); -SELECT HEX(INET6_ATON('::1.2.03.4')); -SELECT HEX(INET6_ATON('::1.2.3.04')); -SELECT HEX(INET6_ATON('::1.2.3.00')); -SELECT HEX(INET6_ATON('::FFFF:01.2.3.4')); -SELECT HEX(INET6_ATON('::FFFF:1.02.3.4')); -SELECT HEX(INET6_ATON('::FFFF:1.2.03.4')); -SELECT HEX(INET6_ATON('::FFFF:1.2.3.04')); -SELECT HEX(INET6_ATON('::FFFF:1.2.3.00')); - ---echo ---echo # -- INET6_ATON: checking the length is either 4 or 16... ---echo - -SELECT LENGTH(INET6_ATON('0.0.0.0')); -SELECT LENGTH(INET6_ATON('255.255.255.255')); -SELECT LENGTH(INET6_ATON('::')); -SELECT LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010')); - ---echo ---echo # -- INET6_NTOA: checking NULL, invalid types, out-of range values... ---echo - -SELECT INET6_NTOA(NULL); -SELECT INET6_NTOA(123); -SELECT INET6_NTOA(123.456); -SELECT INET6_NTOA(str_to_date('2014,2,28 09', '%Y,%m,%d %h')); -SELECT INET6_NTOA(UNHEX('C0A801')); # 3 bytes -> NULL -SELECT INET6_NTOA(UNHEX('C0A80102')); # 4 bytes -> 192.168.1.2 -SELECT INET6_NTOA(UNHEX('C0A8010203')); # 5 bytes -> NULL -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F')); # 15 bytes -> NULL -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10')); # 16 bytes -> IP -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011')); # 17 bytes -> NULL - -SELECT INET6_NTOA('1234'), INET6_NTOA(BINARY('1234')); -SELECT INET6_NTOA('0123456789abcdef'), INET6_NTOA(BINARY('0123456789abcdef')); - ---echo ---echo # -- Checking double-conversion... ---echo - -SELECT INET6_NTOA(INET6_ATON('::')); -SELECT INET6_NTOA(INET6_ATON('0::0')); -SELECT INET6_NTOA(INET6_ATON('1::2')); -SELECT INET6_NTOA(INET6_ATON('0::')); -SELECT INET6_NTOA(INET6_ATON('1::')); -SELECT INET6_NTOA(INET6_ATON('::0')); -SELECT INET6_NTOA(INET6_ATON('::1')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::')); -SELECT INET6_NTOA(INET6_ATON('0000:0000::0000:0001')); -SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:1:1:255.255.255.255')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255')); -SELECT INET6_NTOA(INET6_ATON('::C0A8:0102')); -SELECT INET6_NTOA(INET6_ATON('::c0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::192.168.1.2')); -SELECT INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::ffff:c0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::ffff:192.168.1.2')); -SELECT INET6_NTOA(INET6_ATON('::01.2.3.4')); -SELECT INET6_NTOA(INET6_ATON('::1.02.3.4')); -SELECT INET6_NTOA(INET6_ATON('::1.2.03.4')); -SELECT INET6_NTOA(INET6_ATON('::1.2.3.04')); -SELECT INET6_NTOA(INET6_ATON('::1.2.3.00')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00')); - ---echo ---echo # -- Comparing INET_ATON() and INET6_ATON()... ---echo - -SELECT HEX(INET_ATON('192.168.1.2')); -SELECT HEX(INET6_ATON('192.168.1.2')); - -SELECT HEX(INET_ATON('255.255.255.255')); -SELECT HEX(INET6_ATON('255.255.255.255')); - -SELECT HEX(INET_ATON('192.168.08.2')); -SELECT HEX(INET6_ATON('192.168.08.2')); - -SELECT HEX(INET_ATON('192.168.0x8.2')); -SELECT HEX(INET6_ATON('192.168.0x8.2')); - -SELECT HEX(INET_ATON('1.2.255')); -SELECT HEX(INET6_ATON('1.2.255')); - -SELECT HEX(INET_ATON('1.2.256')); -SELECT HEX(INET6_ATON('1.2.256')); - -SELECT HEX(INET_ATON('1.0002.3.4')); -SELECT HEX(INET6_ATON('1.0002.3.4')); - -SELECT HEX(INET_ATON('1.2.3.4.5')); -SELECT HEX(INET6_ATON('1.2.3.4.5')); - ---echo ---echo # -- Checking mix of INET- and INET6- functions... ---echo - -SELECT HEX(INET6_ATON(INET_NTOA(INET_ATON('1.2.3.4')))) AS x; - ---echo ---echo # -- Checking IS_IPV4() / IS_IPV6()... ---echo - -SELECT IS_IPV4(NULL); -SELECT IS_IPV4(1); -SELECT IS_IPV4(1.0); -SELECT IS_IPV4('1.2.3.4'); -SELECT IS_IPV4('001.02.000.255'); -SELECT IS_IPV4('::1.2.0.255'); -SELECT IS_IPV4('::1'); -SELECT IS_IPV4(BINARY('1.2.3.4')); - -SELECT IS_IPV6(NULL); -SELECT IS_IPV6(1); -SELECT IS_IPV6(1.0); -SELECT IS_IPV6('1.2.3.4'); -SELECT IS_IPV6('001.02.000.255'); -SELECT IS_IPV6('::001.02.000.255'); -SELECT IS_IPV6('::1.2.0.255'); -SELECT IS_IPV6('::1'); -SELECT IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001'); -SELECT IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001')); - ---echo ---echo # -- Checking IS_IPV4_MAPPED() and IS_IPV4_COMPAT()... ---echo -SELECT IS_IPV4_MAPPED(NULL), IS_IPV4_COMPAT(NULL); -SELECT IS_IPV4_MAPPED(INET6_ATON('1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::1')), - IS_IPV4_COMPAT(INET6_ATON('::1')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::')), - IS_IPV4_COMPAT(INET6_ATON('::')); - -# NOTE: IS_IPV4_COMPAT() / IS_IPV4_MAPPED() could work with "regular strings in -# binary collation" too, but there is no way to create a "regular string" -# starting with \0. - ---echo ---echo # -- Checking IS_IPV4_COMPAT()... ---echo - ---echo ---echo # -- Working with a table... ---echo - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP TABLE IF EXISTS t2; ---enable_warnings - -CREATE TABLE t1(ip INT UNSIGNED); -CREATE TABLE t2(ip VARBINARY(16)); - ---echo - -INSERT INTO t1 VALUES - (INET_ATON('1.2.3.4')), (INET_ATON('255.255.255.255')); -SELECT INET_NTOA(ip) FROM t1; - ---echo - -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; - ---echo ---echo # test different sql mode ---echo -set sql_mode = STRICT_TRANS_TABLES; -select @@sql_mode; -DELETE FROM t2; ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.255')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.256')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2')); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.256")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.226.")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("")); -SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); ---echo -set sql_mode = STRICT_ALL_TABLES; -select @@sql_mode; -DELETE FROM t2; ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.255')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.256')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2')); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.256")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.226.")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("")); -SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); - ---echo -set sql_mode = ''; -select @@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; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); - -DROP TABLE t1; -DROP TABLE t2; - ---echo ---echo # -- Done misc test. - ---echo ---echo # ---echo # End of tests ---echo # diff --git a/test/mysql_test/test_suite/expr/t/expr_inet_old.test b/test/mysql_test/test_suite/expr/t/expr_inet_old.test deleted file mode 100644 index a86a7890e..000000000 --- a/test/mysql_test/test_suite/expr/t/expr_inet_old.test +++ /dev/null @@ -1,383 +0,0 @@ -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; - ---disable_query_log -set @@session.explicit_defaults_for_timestamp=off; ---enable_query_log ---disable_warnings -drop table if exists t1,t2; ---enable_warnings - -# -# Testing of misc functions -# -select inet_ntoa(null),inet_aton(null); -select inet_ntoa(inet_aton("255.255.255.255.255.255.255.255")); -select inet_aton("255.255.255.255.255"),inet_aton("255.255.1.255"),inet_aton("0.1.255"); -select inet_ntoa(1099511627775),inet_ntoa(4294902271),inet_ntoa(511); -select inet_aton("0.255.255.255.255"); -select inet_aton("255.255.255.0000"); - -select hex(inet_aton('127')); -select hex(inet_aton('127.1')); -select hex(inet_aton('127.1.1')); - -select inet_aton("122.256"); -select inet_aton("122.226."); -select inet_aton(""); - ---echo ---echo # -- INET6_ATON: checking NULL, invalid types, out-of range values... ---echo - -SELECT INET6_ATON(NULL) IS NULL; -SELECT INET6_ATON(123) IS NULL; -SELECT INET6_ATON(123.45) IS NULL; -SELECT INET6_ATON(str_to_date('2014,2,28 09', '%Y,%m,%d %h')) IS NULL; - -SELECT INET6_ATON('1.2.3') IS NULL; -SELECT INET6_ATON('1.2.3.') IS NULL; -SELECT INET6_ATON('1..3.4') IS NULL; -SELECT INET6_ATON('-1.2.3.4') IS NULL; -SELECT INET6_ATON('1.2.3.256') IS NULL; -SELECT INET6_ATON('1.2.3.4.5') IS NULL; -SELECT INET6_ATON('0001.2.3.4') IS NULL; -SELECT INET6_ATON('0x1.2.3.4') IS NULL; -SELECT INET6_ATON('a.2.3.4') IS NULL; - -SELECT INET6_ATON('1.2.3.4:80') IS NULL; -SELECT INET6_ATON('1.2.3.4/32') IS NULL; - -SELECT INET6_ATON('oceanbase') IS NULL; - -SELECT INET6_ATON(':::') IS NULL; -SELECT INET6_ATON(':1:2:3') IS NULL; -SELECT INET6_ATON('1:2:3:') IS NULL; -SELECT INET6_ATON(':1::2:3') IS NULL; -SELECT INET6_ATON('1::2:3:') IS NULL; -SELECT INET6_ATON('::00001') IS NULL; -SELECT INET6_ATON('::00001:2') IS NULL; -SELECT INET6_ATON('::12345') IS NULL; -SELECT INET6_ATON('1020::3040::5060') IS NULL; -SELECT INET6_ATON('::ABCZ') IS NULL; - -SELECT INET6_ATON('::0x1.2.3.4') IS NULL; -SELECT INET6_ATON('::1.0x2.3.4') IS NULL; -SELECT INET6_ATON('::a.b.c.d') IS NULL; - -SELECT INET6_ATON('::FFFF:0x1.2.3.4') IS NULL; -SELECT INET6_ATON('::FFFF:1.0x2.3.4') IS NULL; -SELECT INET6_ATON('::FFFF:a.b.c.d') IS NULL; - -SELECT INET6_ATON('::1.2.3.4:ABCD') IS NULL; - ---echo # NOTE: such addresses are supported because getaddrinfo() supports them. ---echo # This is just to record the current behaviour. -SELECT HEX(INET6_ATON('::ABCD:1.2.3.4')); - ---echo ---echo # -- INET6_ATON: checking binary representation... ---echo - -SELECT HEX(INET6_ATON('0.0.0.0')); -SELECT HEX(INET6_ATON('00.00.00.00')); -SELECT HEX(INET6_ATON('000.000.000.000')); -SELECT HEX(INET6_ATON('1.2.3.4')); -SELECT HEX(INET6_ATON('01.02.03.04')); -SELECT HEX(INET6_ATON('001.002.003.004')); -SELECT HEX(INET6_ATON('255.255.255.255')); -SELECT HEX(INET6_ATON('::')); -SELECT HEX(INET6_ATON('0::0')); -SELECT HEX(INET6_ATON('1::2')); -SELECT HEX(INET6_ATON('0::')); -SELECT HEX(INET6_ATON('1::')); -SELECT HEX(INET6_ATON('::0')); -SELECT HEX(INET6_ATON('::1')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('::2:3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('1::3:4:5:6:7:8')); -SELECT HEX(INET6_ATON('1:2::4:5:6:7:8')); -SELECT HEX(INET6_ATON('1:2:3::5:6:7:8')); -SELECT HEX(INET6_ATON('1:2:3:4::6:7:8')); -SELECT HEX(INET6_ATON('1:2:3:4:5::7:8')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6::8')); -SELECT HEX(INET6_ATON('1:2:3:4:5:6:7::')); -SELECT HEX(INET6_ATON('0000:0000::0000:0001')); -SELECT HEX(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); -SELECT HEX(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); -SELECT HEX(INET6_ATON('::C0A8:0102')); -SELECT HEX(INET6_ATON('::c0a8:0102')); -SELECT HEX(INET6_ATON('::192.168.1.2')); -SELECT HEX(INET6_ATON('::FfFf:C0a8:0102')); -SELECT HEX(INET6_ATON('::ffff:c0a8:0102')); -SELECT HEX(INET6_ATON('::ffff:192.168.1.2')); -SELECT HEX(INET6_ATON('::01.2.3.4')); -SELECT HEX(INET6_ATON('::1.02.3.4')); -SELECT HEX(INET6_ATON('::1.2.03.4')); -SELECT HEX(INET6_ATON('::1.2.3.04')); -SELECT HEX(INET6_ATON('::1.2.3.00')); -SELECT HEX(INET6_ATON('::FFFF:01.2.3.4')); -SELECT HEX(INET6_ATON('::FFFF:1.02.3.4')); -SELECT HEX(INET6_ATON('::FFFF:1.2.03.4')); -SELECT HEX(INET6_ATON('::FFFF:1.2.3.04')); -SELECT HEX(INET6_ATON('::FFFF:1.2.3.00')); - ---echo ---echo # -- INET6_ATON: checking the length is either 4 or 16... ---echo - -SELECT LENGTH(INET6_ATON('0.0.0.0')); -SELECT LENGTH(INET6_ATON('255.255.255.255')); -SELECT LENGTH(INET6_ATON('::')); -SELECT LENGTH(INET6_ATON('1020:3040:5060:7080:90A0:B0C0:D0E0:F010')); - ---echo ---echo # -- INET6_NTOA: checking NULL, invalid types, out-of range values... ---echo - -SELECT INET6_NTOA(NULL); -SELECT INET6_NTOA(123); -SELECT INET6_NTOA(123.456); -SELECT INET6_NTOA(str_to_date('2014,2,28 09', '%Y,%m,%d %h')); -SELECT INET6_NTOA(UNHEX('C0A801')); # 3 bytes -> NULL -SELECT INET6_NTOA(UNHEX('C0A80102')); # 4 bytes -> 192.168.1.2 -SELECT INET6_NTOA(UNHEX('C0A8010203')); # 5 bytes -> NULL -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F')); # 15 bytes -> NULL -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F10')); # 16 bytes -> IP -SELECT INET6_NTOA(UNHEX('0102030405060708090A0B0C0D0E0F1011')); # 17 bytes -> NULL - -SELECT INET6_NTOA('1234'), INET6_NTOA(BINARY('1234')); -SELECT INET6_NTOA('0123456789abcdef'), INET6_NTOA(BINARY('0123456789abcdef')); - ---echo ---echo # -- Checking double-conversion... ---echo - -SELECT INET6_NTOA(INET6_ATON('::')); -SELECT INET6_NTOA(INET6_ATON('0::0')); -SELECT INET6_NTOA(INET6_ATON('1::2')); -SELECT INET6_NTOA(INET6_ATON('0::')); -SELECT INET6_NTOA(INET6_ATON('1::')); -SELECT INET6_NTOA(INET6_ATON('::0')); -SELECT INET6_NTOA(INET6_ATON('::1')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('::2:3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1::3:4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2::4:5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3::5:6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4::6:7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6::8')); -SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::')); -SELECT INET6_NTOA(INET6_ATON('0000:0000::0000:0001')); -SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:1:1:255.255.255.255')); -SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0001:0001:255.255.255.255')); -SELECT INET6_NTOA(INET6_ATON('::C0A8:0102')); -SELECT INET6_NTOA(INET6_ATON('::c0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::192.168.1.2')); -SELECT INET6_NTOA(INET6_ATON('::FfFf:C0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::ffff:c0a8:0102')); -SELECT INET6_NTOA(INET6_ATON('::ffff:192.168.1.2')); -SELECT INET6_NTOA(INET6_ATON('::01.2.3.4')); -SELECT INET6_NTOA(INET6_ATON('::1.02.3.4')); -SELECT INET6_NTOA(INET6_ATON('::1.2.03.4')); -SELECT INET6_NTOA(INET6_ATON('::1.2.3.04')); -SELECT INET6_NTOA(INET6_ATON('::1.2.3.00')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:01.2.3.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.02.3.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.03.4')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.04')); -SELECT INET6_NTOA(INET6_ATON('::FFFF:1.2.3.00')); - ---echo ---echo # -- Comparing INET_ATON() and INET6_ATON()... ---echo - -SELECT HEX(INET_ATON('192.168.1.2')); -SELECT HEX(INET6_ATON('192.168.1.2')); - -SELECT HEX(INET_ATON('255.255.255.255')); -SELECT HEX(INET6_ATON('255.255.255.255')); - -SELECT HEX(INET_ATON('192.168.08.2')); -SELECT HEX(INET6_ATON('192.168.08.2')); - -SELECT HEX(INET_ATON('192.168.0x8.2')); -SELECT HEX(INET6_ATON('192.168.0x8.2')); - -SELECT HEX(INET_ATON('1.2.255')); -SELECT HEX(INET6_ATON('1.2.255')); - -SELECT HEX(INET_ATON('1.2.256')); -SELECT HEX(INET6_ATON('1.2.256')); - -SELECT HEX(INET_ATON('1.0002.3.4')); -SELECT HEX(INET6_ATON('1.0002.3.4')); - -SELECT HEX(INET_ATON('1.2.3.4.5')); -SELECT HEX(INET6_ATON('1.2.3.4.5')); - ---echo ---echo # -- Checking mix of INET- and INET6- functions... ---echo - -SELECT HEX(INET6_ATON(INET_NTOA(INET_ATON('1.2.3.4')))) AS x; - ---echo ---echo # -- Checking IS_IPV4() / IS_IPV6()... ---echo - -SELECT IS_IPV4(NULL); -SELECT IS_IPV4(1); -SELECT IS_IPV4(1.0); -SELECT IS_IPV4('1.2.3.4'); -SELECT IS_IPV4('001.02.000.255'); -SELECT IS_IPV4('::1.2.0.255'); -SELECT IS_IPV4('::1'); -SELECT IS_IPV4(BINARY('1.2.3.4')); - -SELECT IS_IPV6(NULL); -SELECT IS_IPV6(1); -SELECT IS_IPV6(1.0); -SELECT IS_IPV6('1.2.3.4'); -SELECT IS_IPV6('001.02.000.255'); -SELECT IS_IPV6('::001.02.000.255'); -SELECT IS_IPV6('::1.2.0.255'); -SELECT IS_IPV6('::1'); -SELECT IS_IPV6('0000:0000:0000:0000:0000:0000:0000:0001'); -SELECT IS_IPV6(BINARY('0000:0000:0000:0000:0000:0000:0000:0001')); - ---echo ---echo # -- Checking IS_IPV4_MAPPED() and IS_IPV4_COMPAT()... ---echo -SELECT IS_IPV4_MAPPED(NULL), IS_IPV4_COMPAT(NULL); -SELECT IS_IPV4_MAPPED(INET6_ATON('1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::FFFF:1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::FFFF:1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::ABCD:1.2.3.4')), - IS_IPV4_COMPAT(INET6_ATON('::ABCD:1.2.3.4')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::1')), - IS_IPV4_COMPAT(INET6_ATON('::1')); -SELECT IS_IPV4_MAPPED(INET6_ATON('::')), - IS_IPV4_COMPAT(INET6_ATON('::')); - -# NOTE: IS_IPV4_COMPAT() / IS_IPV4_MAPPED() could work with "regular strings in -# binary collation" too, but there is no way to create a "regular string" -# starting with \0. - ---echo ---echo # -- Checking IS_IPV4_COMPAT()... ---echo - ---echo ---echo # -- Working with a table... ---echo - ---disable_warnings -DROP TABLE IF EXISTS t1; -DROP TABLE IF EXISTS t2; ---enable_warnings - -CREATE TABLE t1(ip INT UNSIGNED); -CREATE TABLE t2(ip VARBINARY(16)); - ---echo - -INSERT INTO t1 VALUES - (INET_ATON('1.2.3.4')), (INET_ATON('255.255.255.255')); -SELECT INET_NTOA(ip) FROM t1; - ---echo - -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; - ---echo ---echo # test different sql mode ---echo -set sql_mode = STRICT_TRANS_TABLES; -select @@sql_mode; -DELETE FROM t2; ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.255')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.256')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2')); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.256")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.226.")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("")); -SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); ---echo -set sql_mode = STRICT_ALL_TABLES; -select @@sql_mode; -DELETE FROM t2; ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.0002.3.4')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.255')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('1.2.256')); ---error 1210 -INSERT INTO t2 VALUES (INET6_ATON('192.168.0x8.2')); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.256")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("122.226.")); ---error 1210 -INSERT INTO t2 VALUES (inet_aton("")); -SELECT INET6_NTOA(ip), HEX(ip), LENGTH(ip) FROM t2; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); - ---echo -set sql_mode = ''; -select @@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; - -SELECT INET6_ATON('1.0002.3.4'); -SELECT INET6_ATON(""); - -DROP TABLE t1; -DROP TABLE t2; - ---echo ---echo # -- Done misc test. - ---echo ---echo # ---echo # End of tests ---echo # - -connection sys_jianhua; -alter system set _enable_static_typing_engine = true; \ No newline at end of file diff --git a/test/mysql_test/test_suite/subquery/r/mysql/subquery_sj_firstmatch.result b/test/mysql_test/test_suite/subquery/r/mysql/subquery_sj_firstmatch.result deleted file mode 100644 index 578151b52..000000000 --- a/test/mysql_test/test_suite/subquery/r/mysql/subquery_sj_firstmatch.result +++ /dev/null @@ -1,168 +0,0 @@ -# -# certain query plans -# -drop table if exists t0, t1, t2, t3, t6, t8; -drop view if exists v1, v2, v3, v_t2, view_b, view_c; -CREATE TABLE t0(a INTEGER); -CREATE TABLE t1(a INTEGER); -INSERT INTO t1 VALUES(1); -CREATE TABLE t2(a INTEGER); -INSERT INTO t2 VALUES(5), (8); -CREATE TABLE t6(a INTEGER); -INSERT INTO t6 VALUES(7), (1), (0), (5), (1), (4); -CREATE TABLE t8(a INTEGER); -INSERT INTO t8 VALUES(1), (3), (5), (7), (9), (7), (3), (1); -EXPLAIN -SELECT * -FROM t2 AS nt2 -WHERE 1 IN (SELECT it1.a -FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); -Query Plan -========================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST| ---------------------------------------------------------- -|0 |NESTED-LOOP SEMI JOIN CARTESIAN| |2 |113 | -|1 | TABLE SCAN |nt2 |2 |37 | -|2 | MATERIAL | |1 |76 | -|3 | SUBPLAN SCAN |VIEW1|1 |75 | -|4 | NESTED-LOOP JOIN CARTESIAN | |1 |75 | -|5 | TABLE SCAN |it1 |1 |37 | -|6 | MATERIAL | |1 |39 | -|7 | TABLE SCAN |it3 |1 |38 | -========================================================= - -Outputs & filters: -------------------------------------- - 0 - output([nt2.a]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([nt2.a]), filter(nil), - access([nt2.a]), partitions(p0) - 2 - output([1]), filter(nil) - 3 - output([1]), filter(nil), - access(nil) - 4 - output([1]), filter(nil), - conds(nil), nl_params_(nil) - 5 - output([1]), filter([it1.a = 1]), - access([it1.a]), partitions(p0) - 6 - output([1]), filter(nil) - 7 - output([1]), filter([it3.a = 1]), - access([it3.a]), partitions(p0) - -SELECT * -FROM t2 AS nt2 -WHERE 1 IN (SELECT it1.a -FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); -a -5 -8 -EXPLAIN -SELECT * -FROM t2 AS nt2, t8 AS nt4 -WHERE 1 IN (SELECT it1.a -FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); -Query Plan -=========================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------------------------------ -|0 |NESTED-LOOP JOIN CARTESIAN | |16 |162 | -|1 | TABLE SCAN |nt4 |8 |38 | -|2 | MATERIAL | |2 |114 | -|3 | NESTED-LOOP SEMI JOIN CARTESIAN| |2 |113 | -|4 | TABLE SCAN |nt2 |2 |37 | -|5 | MATERIAL | |1 |76 | -|6 | SUBPLAN SCAN |VIEW1|1 |75 | -|7 | NESTED-LOOP JOIN CARTESIAN | |1 |75 | -|8 | TABLE SCAN |it1 |1 |37 | -|9 | MATERIAL | |1 |39 | -|10| TABLE SCAN |it3 |1 |38 | -=========================================================== - -Outputs & filters: -------------------------------------- - 0 - output([nt2.a], [nt4.a]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([nt4.a]), filter(nil), - access([nt4.a]), partitions(p0) - 2 - output([nt2.a]), filter(nil) - 3 - output([nt2.a]), filter(nil), - conds(nil), nl_params_(nil) - 4 - output([nt2.a]), filter(nil), - access([nt2.a]), partitions(p0) - 5 - output([1]), filter(nil) - 6 - output([1]), filter(nil), - access(nil) - 7 - output([1]), filter(nil), - conds(nil), nl_params_(nil) - 8 - output([1]), filter([it1.a = 1]), - access([it1.a]), partitions(p0) - 9 - output([1]), filter(nil) - 10 - output([1]), filter([it3.a = 1]), - access([it3.a]), partitions(p0) - -SELECT * -FROM t2 AS nt2, t8 AS nt4 -WHERE 1 IN (SELECT it1.a -FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); -a a -5 1 -8 1 -5 3 -8 3 -5 5 -8 5 -5 7 -8 7 -5 9 -8 9 -5 7 -8 7 -5 3 -8 3 -5 1 -8 1 -EXPLAIN -SELECT * -FROM t0 AS ot1, t2 AS nt3 -WHERE ot1.a IN (SELECT it2.a -FROM t1 AS it2 JOIN t8 AS it4 ON it2.a=it4.a); -Query Plan -===================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------ -|0 |NESTED-LOOP JOIN CARTESIAN| |1961 |96769| -|1 | HASH RIGHT SEMI JOIN | |981 |95345| -|2 | SUBPLAN SCAN |VIEW1|1 |78 | -|3 | HASH JOIN | |1 |78 | -|4 | TABLE SCAN |it2 |1 |36 | -|5 | TABLE SCAN |it4 |8 |38 | -|6 | TABLE SCAN |ot1 |100000 |61860| -|7 | MATERIAL | |2 |37 | -|8 | TABLE SCAN |nt3 |2 |37 | -===================================================== - -Outputs & filters: -------------------------------------- - 0 - output([ot1.a], [nt3.a]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([ot1.a]), filter(nil), - equal_conds([ot1.a = VIEW1.a]), other_conds(nil) - 2 - output([VIEW1.a]), filter(nil), - access([VIEW1.a]) - 3 - output([it2.a]), filter(nil), - equal_conds([it2.a = it4.a]), other_conds(nil) - 4 - output([it2.a]), filter(nil), - access([it2.a]), partitions(p0) - 5 - output([it4.a]), filter(nil), - access([it4.a]), partitions(p0) - 6 - output([ot1.a]), filter(nil), - access([ot1.a]), partitions(p0) - 7 - output([nt3.a]), filter(nil) - 8 - output([nt3.a]), filter(nil), - access([nt3.a]), partitions(p0) - -SELECT * -FROM t0 as ot1, t2 AS nt3 -WHERE ot1.a IN (SELECT it2.a -FROM t1 AS it2 JOIN t8 AS it4 ON it2.a=it4.a); -a a -DROP TABLE t0, t1, t2, t6, t8; diff --git a/test/mysql_test/test_suite/subquery/t/subquery_sj_firstmatch.test b/test/mysql_test/test_suite/subquery/t/subquery_sj_firstmatch.test deleted file mode 100644 index d754d5bdd..000000000 --- a/test/mysql_test/test_suite/subquery/t/subquery_sj_firstmatch.test +++ /dev/null @@ -1,108 +0,0 @@ ---disable_query_log -set @@session.explicit_defaults_for_timestamp=off; ---enable_query_log -# -# Run subquery_sj.inc with semijoin and turn off all strategies, but FirstMatch -# - -#--source include/have_semijoin.inc -#--source include/have_firstmatch.inc -#set optimizer_switch='semijoin=on,firstmatch=on'; -# -#--disable_query_log -#if (`select locate('materialization', @@optimizer_switch) > 0`) -#{ -# set optimizer_switch='materialization=off'; -#} -#if (`select locate('loosescan', @@optimizer_switch) > 0`) -#{ -# set optimizer_switch='loosescan=off'; -#} -#if (`select locate('index_condition_pushdown', @@optimizer_switch) > 0`) -#{ -# set optimizer_switch='index_condition_pushdown=off'; -#} -#if (`select locate('mrr', @@optimizer_switch) > 0`) -#{ -# set optimizer_switch='mrr=off'; -#} -#--enable_query_log -# -#--source include/subquery_sj.inc - ---echo # ---echo # certain query plans ---echo # - -#SET @@default_storage_engine='innodb'; -#SET @@optimizer_switch='semijoin=on,materialization=off,firstmatch=on,loosescan=off,block_nested_loop=off,batched_key_access=off'; ---disable_warnings -drop table if exists t0, t1, t2, t3, t6, t8; -drop view if exists v1, v2, v3, v_t2, view_b, view_c; ---enable_warnings - -CREATE TABLE t0(a INTEGER); - -CREATE TABLE t1(a INTEGER); -INSERT INTO t1 VALUES(1); - -CREATE TABLE t2(a INTEGER); -INSERT INTO t2 VALUES(5), (8); - -CREATE TABLE t6(a INTEGER); -INSERT INTO t6 VALUES(7), (1), (0), (5), (1), (4); - -CREATE TABLE t8(a INTEGER); -INSERT INTO t8 VALUES(1), (3), (5), (7), (9), (7), (3), (1); - --- disable_query_log --- disable_result_log -#ANALYZE TABLE t0; -#ANALYZE TABLE t1; -#ANALYZE TABLE t2; -#ANALYZE TABLE t6; -#ANALYZE TABLE t8; --- enable_result_log --- enable_query_log - -EXPLAIN -SELECT * -FROM t2 AS nt2 -WHERE 1 IN (SELECT it1.a - FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); - -SELECT * -FROM t2 AS nt2 -WHERE 1 IN (SELECT it1.a - FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); - -EXPLAIN -SELECT * -FROM t2 AS nt2, t8 AS nt4 -WHERE 1 IN (SELECT it1.a - FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); - -SELECT * -FROM t2 AS nt2, t8 AS nt4 -WHERE 1 IN (SELECT it1.a - FROM t1 AS it1 JOIN t6 AS it3 ON it1.a=it3.a); - -EXPLAIN -SELECT * -FROM t0 AS ot1, t2 AS nt3 -WHERE ot1.a IN (SELECT it2.a - FROM t1 AS it2 JOIN t8 AS it4 ON it2.a=it4.a); - -SELECT * -FROM t0 as ot1, t2 AS nt3 -WHERE ot1.a IN (SELECT it2.a - FROM t1 AS it2 JOIN t8 AS it4 ON it2.a=it4.a); - -DROP TABLE t0, t1, t2, t6, t8; - -#SET @@default_storage_engine=default; -#SET @@optimizer_switch=default; - - -#set optimizer_switch=default; -