Commit d594f1e5 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Removing MDEV-27871 because it is not a bug

Part 1
parent c03cb73a
#remove this include after fix MDEV-27871
--source include/no_view_protocol.inc
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
...@@ -248,7 +246,9 @@ SET sql_mode=DEFAULT; ...@@ -248,7 +246,9 @@ SET sql_mode=DEFAULT;
--echo # in Item::print_item_w_name on SELECT w/ optimizer_trace enabled --echo # in Item::print_item_w_name on SELECT w/ optimizer_trace enabled
--echo # --echo #
--disable_view_protocol
SELECT '' LIMIT 0; SELECT '' LIMIT 0;
--enable_view_protocol
--error ER_WRONG_COLUMN_NAME --error ER_WRONG_COLUMN_NAME
CREATE TABLE t1 AS SELECT ''; CREATE TABLE t1 AS SELECT '';
...@@ -320,7 +320,9 @@ create or replace table t2 (b int); ...@@ -320,7 +320,9 @@ create or replace table t2 (b int);
insert into t1 values(111111111),(-2147483648); insert into t1 values(111111111),(-2147483648);
insert into t2 values(1),(2); insert into t2 values(1),(2);
--enable_metadata --enable_metadata
--disable_view_protocol
select t1.a as a1 from t1 as t1,t2 order by t2.b,t1.a; select t1.a as a1 from t1 as t1,t2 order by t2.b,t1.a;
--enable_view_protocol
--disable_metadata --disable_metadata
drop table t1,t2; drop table t1,t2;
......
drop table if exists t1, t2; drop table if exists t1, t2;
select CASE "b" when "a" then 1 when "b" then 2 END; select CASE "b" when "a" then 1 when "b" then 2 END as exp;
CASE "b" when "a" then 1 when "b" then 2 END exp
2 2
select CASE "c" when "a" then 1 when "b" then 2 END; select CASE "c" when "a" then 1 when "b" then 2 END as exp;
CASE "c" when "a" then 1 when "b" then 2 END exp
NULL NULL
select CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END; select CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END as exp;
CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END exp
3 3
select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END; select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END as exp;
CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END exp
ok ok
select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END; select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END as exp;
CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END exp
ok ok
select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end; select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end as exp;
CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end exp
a a
select CASE when 1=0 then "true" else "false" END; select CASE when 1=0 then "true" else "false" END as exp;
CASE when 1=0 then "true" else "false" END exp
false false
select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END; select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END as exp;
CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END exp
one one
explain extended select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END; explain extended select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END as exp;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings: Warnings:
Note 1003 select case 1 when 1 then 'one' when 2 then 'two' else 'more' end AS `CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END` Note 1003 select case 1 when 1 then 'one' when 2 then 'two' else 'more' end AS `exp`
select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END; select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END as exp;
CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END exp
two two
select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0; select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0 as exp;
(CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0 exp
2 2
select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0; select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0 as exp;
(CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0 exp
2.00 2.00
select case 1/0 when "a" then "true" else "false" END; select case 1/0 when "a" then "true" else "false" END as exp;
case 1/0 when "a" then "true" else "false" END exp
false false
Warnings: Warnings:
Warning 1365 Division by 0 Warning 1365 Division by 0
select case 1/0 when "a" then "true" END; select case 1/0 when "a" then "true" END as exp;
case 1/0 when "a" then "true" END exp
NULL NULL
Warnings: Warnings:
Warning 1365 Division by 0 Warning 1365 Division by 0
select (case 1/0 when "a" then "true" END) | 0; select (case 1/0 when "a" then "true" END) | 0 as exp;
(case 1/0 when "a" then "true" END) | 0 exp
NULL NULL
Warnings: Warnings:
Warning 1365 Division by 0 Warning 1365 Division by 0
select (case 1/0 when "a" then "true" END) + 0.0; select (case 1/0 when "a" then "true" END) + 0.0 as exp;
(case 1/0 when "a" then "true" END) + 0.0 exp
NULL NULL
Warnings: Warnings:
Warning 1365 Division by 0 Warning 1365 Division by 0
select case when 1>0 then "TRUE" else "FALSE" END; select case when 1>0 then "TRUE" else "FALSE" END as exp;
case when 1>0 then "TRUE" else "FALSE" END exp
TRUE TRUE
select case when 1<0 then "TRUE" else "FALSE" END; select case when 1<0 then "TRUE" else "FALSE" END as exp;
case when 1<0 then "TRUE" else "FALSE" END exp
FALSE FALSE
create table t1 (a int); create table t1 (a int);
insert into t1 values(1),(2),(3),(4); insert into t1 values(1),(2),(3),(4);
...@@ -133,12 +133,12 @@ WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2 ...@@ -133,12 +133,12 @@ WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
END; END;
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_danish_ci,EXPLICIT), (latin1_swedish_ci,EXPLICIT) for operation 'case' ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_danish_ci,EXPLICIT), (latin1_swedish_ci,EXPLICIT) for operation 'case'
SELECT SELECT
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END, CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END as e1,
CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END, CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END as e2,
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END, CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END as e3,
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END as e4
; ;
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END e1 e2 e3 e4
1 2 1 2 1 2 1 2
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a'); CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'coalesce' ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'coalesce'
...@@ -403,8 +403,8 @@ DROP TABLE t1; ...@@ -403,8 +403,8 @@ DROP TABLE t1;
# #
# End of 10.1 test # End of 10.1 test
# #
select case 'foo' when time'10:00:00' then 'never' when '0' then 'bug' else 'ok' end; select case 'foo' when time'10:00:00' then 'never' when '0' then 'bug' else 'ok' end as exp;
case 'foo' when time'10:00:00' then 'never' when '0' then 'bug' else 'ok' end exp
ok ok
Warnings: Warnings:
Warning 1292 Truncated incorrect time value: 'foo' Warning 1292 Truncated incorrect time value: 'foo'
...@@ -434,8 +434,8 @@ Warning 1292 Truncated incorrect time value: 'foo' ...@@ -434,8 +434,8 @@ Warning 1292 Truncated incorrect time value: 'foo'
Warning 1292 Truncated incorrect time value: 'foo' Warning 1292 Truncated incorrect time value: 'foo'
Warning 1292 Truncated incorrect time value: 'foo' Warning 1292 Truncated incorrect time value: 'foo'
drop table t1; drop table t1;
select case '20:10:05' when date'2020-10-10' then 'never' when time'20:10:5' then 'ok' else 'bug' end; select case '20:10:05' when date'2020-10-10' then 'never' when time'20:10:5' then 'ok' else 'bug' end as exp;
case '20:10:05' when date'2020-10-10' then 'never' when time'20:10:5' then 'ok' else 'bug' end exp
ok ok
# #
# End of 10.2 test # End of 10.2 test
......
...@@ -2,31 +2,29 @@ ...@@ -2,31 +2,29 @@
# Testing of CASE # Testing of CASE
# #
#remove this include after fix MDEV-27871
--source include/no_view_protocol.inc
--disable_warnings --disable_warnings
drop table if exists t1, t2; drop table if exists t1, t2;
--enable_warnings --enable_warnings
select CASE "b" when "a" then 1 when "b" then 2 END; select CASE "b" when "a" then 1 when "b" then 2 END as exp;
select CASE "c" when "a" then 1 when "b" then 2 END; select CASE "c" when "a" then 1 when "b" then 2 END as exp;
select CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END; select CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END as exp;
select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END; select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END as exp;
select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END; select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END as exp;
select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end; select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end as exp;
select CASE when 1=0 then "true" else "false" END; select CASE when 1=0 then "true" else "false" END as exp;
select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END; select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END as exp;
explain extended select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END; explain extended select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END as exp;
select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END; select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END as exp;
select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0; select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0 as exp;
select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0; select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0 as exp;
select case 1/0 when "a" then "true" else "false" END; select case 1/0 when "a" then "true" else "false" END as exp;
select case 1/0 when "a" then "true" END; select case 1/0 when "a" then "true" END as exp;
select (case 1/0 when "a" then "true" END) | 0; select (case 1/0 when "a" then "true" END) | 0 as exp;
select (case 1/0 when "a" then "true" END) + 0.0; select (case 1/0 when "a" then "true" END) + 0.0 as exp;
select case when 1>0 then "TRUE" else "FALSE" END; select case when 1>0 then "TRUE" else "FALSE" END as exp;
select case when 1<0 then "TRUE" else "FALSE" END; select case when 1<0 then "TRUE" else "FALSE" END as exp;
# #
# Test bug when using GROUP BY on CASE # Test bug when using GROUP BY on CASE
...@@ -83,10 +81,10 @@ SELECT CASE _latin1'a' COLLATE latin1_general_ci ...@@ -83,10 +81,10 @@ SELECT CASE _latin1'a' COLLATE latin1_general_ci
END; END;
SELECT SELECT
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END, CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END as e1,
CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END, CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END as e2,
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END, CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END as e3,
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END as e4
; ;
# #
...@@ -297,7 +295,7 @@ DROP TABLE t1; ...@@ -297,7 +295,7 @@ DROP TABLE t1;
# #
# should not convert all values to time # should not convert all values to time
select case 'foo' when time'10:00:00' then 'never' when '0' then 'bug' else 'ok' end; select case 'foo' when time'10:00:00' then 'never' when '0' then 'bug' else 'ok' end as exp;
select 'foo' in (time'10:00:00','0'); select 'foo' in (time'10:00:00','0');
create table t1 (a time); create table t1 (a time);
...@@ -308,7 +306,7 @@ select 'foo' in (a,'0') from t1; ...@@ -308,7 +306,7 @@ select 'foo' in (a,'0') from t1;
drop table t1; drop table t1;
# first comparison should be as date, second as time # first comparison should be as date, second as time
select case '20:10:05' when date'2020-10-10' then 'never' when time'20:10:5' then 'ok' else 'bug' end; select case '20:10:05' when date'2020-10-10' then 'never' when time'20:10:5' then 'ok' else 'bug' end as exp;
--echo # --echo #
--echo # End of 10.2 test --echo # End of 10.2 test
......
...@@ -2,10 +2,6 @@ ...@@ -2,10 +2,6 @@
# Test of cast function # Test of cast function
# #
#remove this include after fix MDEV-27871
# discuss what to do with "set names binary"
--source include/no_view_protocol.inc
# For TIME->DATETIME conversion # For TIME->DATETIME conversion
SET timestamp=unix_timestamp('2001-02-03 10:20:30'); SET timestamp=unix_timestamp('2001-02-03 10:20:30');
...@@ -27,41 +23,41 @@ select cast(null as double(5,2)); ...@@ -27,41 +23,41 @@ select cast(null as double(5,2));
select cast(12.444 as double); select cast(12.444 as double);
select cast(cast("20:01:01" as time) as datetime); select cast(cast("20:01:01" as time) as datetime);
select cast(cast("8:46:06.23434" AS time) as decimal(32,10)); select cast(cast("8:46:06.23434" AS time) as decimal(32,10));
select cast(cast("2011-04-05 8:46:06.23434" AS datetime) as decimal(32,6)); select cast(cast("2011-04-05 8:46:06.23434" AS datetime) as decimal(32,6)) as exp;
--echo # --echo #
--echo # Check handling of cast with microseconds --echo # Check handling of cast with microseconds
--echo # --echo #
select cast(cast(20010203101112.121314 as double) as datetime); select cast(cast(20010203101112.121314 as double) as datetime) as exp;
select cast(cast(010203101112.12 as double) as datetime); select cast(cast(010203101112.12 as double) as datetime) as exp;
select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime); select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime) as exp;
select cast(20010203101112.121314 as datetime); select cast(20010203101112.121314 as datetime) as exp;
select cast(110203101112.121314 as datetime); select cast(110203101112.121314 as datetime) as exp;
select cast(cast(010203101112.12 as double) as datetime); select cast(cast(010203101112.12 as double) as datetime) as exp;
select cast("2011-02-03 10:11:12.123456" as datetime); select cast("2011-02-03 10:11:12.123456" as datetime) as exp;
select cast("2011-02-03 10:11:12.123456" as datetime(0)); select cast("2011-02-03 10:11:12.123456" as datetime(0)) as exp;
select cast("2011-02-03 10:11:12.123456" as datetime(5)); select cast("2011-02-03 10:11:12.123456" as datetime(5)) as exp;
select cast("2011-02-03 10:11:12.123456" as datetime(6)); select cast("2011-02-03 10:11:12.123456" as datetime(6)) as exp;
select cast("2011-02-03 10:11:12" as datetime(6)); select cast("2011-02-03 10:11:12" as datetime(6)) as exp;
select cast(cast(20010203101112.5 as double) as datetime(1)); select cast(cast(20010203101112.5 as double) as datetime(1)) as exp;
select cast(cast(010203101112.12 as double) as datetime(2)); select cast(cast(010203101112.12 as double) as datetime(2)) as exp;
select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime(6)); select cast(cast(20010203101112.121314 as decimal(32,6)) as datetime(6)) as exp;
select cast(20010203101112.121314 as datetime(6)); select cast(20010203101112.121314 as datetime(6)) as exp;
select cast(110203101112.121314 as datetime(6)); select cast(110203101112.121314 as datetime(6)) as exp;
select cast(cast(010203101112.12 as double) as datetime(6)); select cast(cast(010203101112.12 as double) as datetime(6)) as exp;
select cast("2011-02-03 10:11:12.123456" as time); select cast("2011-02-03 10:11:12.123456" as time) as exp;
select cast("2011-02-03 10:11:12.123456" as time(6)); select cast("2011-02-03 10:11:12.123456" as time(6)) as exp;
select cast("10:11:12.123456" as time); select cast("10:11:12.123456" as time) as exp;
select cast("10:11:12.123456" as time(0)); select cast("10:11:12.123456" as time(0)) as exp;
select cast("10:11:12.123456" as time(5)); select cast("10:11:12.123456" as time(5)) as exp;
select cast("10:11:12.123456" as time(6)); select cast("10:11:12.123456" as time(6)) as exp;
select cast("10:11:12" as time(6)); select cast("10:11:12" as time(6)) as exp;
select cast(cast("2011-04-05 8:46:06.123456" AS datetime) as time); select cast(cast("2011-04-05 8:46:06.123456" AS datetime) as time) as exp;
select cast(cast("2011-04-05 8:46:06.123456" AS datetime) as time(6)); select cast(cast("2011-04-05 8:46:06.123456" AS datetime) as time(6)) as exp;
select cast(cast("2011-04-05 8:46:06.123456" AS datetime(6)) as time); select cast(cast("2011-04-05 8:46:06.123456" AS datetime(6)) as time) as exp;
select cast(cast("2011-04-05 8:46:06.123456" AS datetime(6)) as time(6)); select cast(cast("2011-04-05 8:46:06.123456" AS datetime(6)) as time(6)) as exp;
# #
# Bug #28250: Run-Time Check Failure #3 - The variable 'value' is being used # Bug #28250: Run-Time Check Failure #3 - The variable 'value' is being used
...@@ -162,7 +158,10 @@ select cast(1 as double(64,63)); ...@@ -162,7 +158,10 @@ select cast(1 as double(64,63));
# #
set names binary; set names binary;
select cast(_latin1'test' as char character set latin2); select cast(_latin1'test' as char character set latin2);
#enable after MDEV-32461 fix
--disable_view_protocol
select cast(_koi8r'' as char character set cp1251); select cast(_koi8r'' as char character set cp1251);
--enable_view_protocol
create table t1 select cast(_koi8r'' as char character set cp1251) as t; create table t1 select cast(_koi8r'' as char character set cp1251) as t;
show create table t1; show create table t1;
drop table t1; drop table t1;
...@@ -170,6 +169,8 @@ drop table t1; ...@@ -170,6 +169,8 @@ drop table t1;
# #
# CAST to CHAR with/without length # CAST to CHAR with/without length
# #
#enable after MDEV-32461 fix
--disable_view_protocol
select select
cast(_latin1'ab' AS char) as c1, cast(_latin1'ab' AS char) as c1,
cast(_latin1'a ' AS char) as c2, cast(_latin1'a ' AS char) as c2,
...@@ -177,6 +178,7 @@ select ...@@ -177,6 +178,7 @@ select
cast(_latin1'a ' AS char(2)) as c4, cast(_latin1'a ' AS char(2)) as c4,
hex(cast(_latin1'a' AS char(2))) as c5; hex(cast(_latin1'a' AS char(2))) as c5;
select cast(1000 as CHAR(3)); select cast(1000 as CHAR(3));
--enable_view_protocol
SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR
create table t1 select create table t1 select
...@@ -237,12 +239,15 @@ select cast("1:2:3" as TIME) = "1:02:03"; ...@@ -237,12 +239,15 @@ select cast("1:2:3" as TIME) = "1:02:03";
# #
CREATE TABLE t1 (a enum ('aac','aab','aaa') not null); CREATE TABLE t1 (a enum ('aac','aab','aaa') not null);
INSERT INTO t1 VALUES ('aaa'),('aab'),('aac'); INSERT INTO t1 VALUES ('aaa'),('aab'),('aac');
#enable after MDEV-32461 fix
--disable_view_protocol
# these two should be in enum order # these two should be in enum order
SELECT a, CAST(a AS CHAR) FROM t1 ORDER BY CAST(a AS UNSIGNED) ; SELECT a, CAST(a AS CHAR) FROM t1 ORDER BY CAST(a AS UNSIGNED) ;
SELECT a, CAST(a AS CHAR(3)) FROM t1 ORDER BY CAST(a AS CHAR(2)), a; SELECT a, CAST(a AS CHAR(3)) FROM t1 ORDER BY CAST(a AS CHAR(2)), a;
# these two should be in alphabetic order # these two should be in alphabetic order
SELECT a, CAST(a AS UNSIGNED) FROM t1 ORDER BY CAST(a AS CHAR) ; SELECT a, CAST(a AS UNSIGNED) FROM t1 ORDER BY CAST(a AS CHAR) ;
SELECT a, CAST(a AS CHAR(2)) FROM t1 ORDER BY CAST(a AS CHAR(3)), a; SELECT a, CAST(a AS CHAR(2)) FROM t1 ORDER BY CAST(a AS CHAR(3)), a;
--enable_view_protocol
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -344,9 +349,12 @@ select cast(NULL as decimal(6)) as t1; ...@@ -344,9 +349,12 @@ select cast(NULL as decimal(6)) as t1;
# Bug #17903: cast to char results in binary # Bug #17903: cast to char results in binary
# #
set names latin1; set names latin1;
#enable after MDEV-32461 fix
--disable_view_protocol
select hex(cast('a' as char(2) binary)); select hex(cast('a' as char(2) binary));
select hex(cast('a' as binary(2))); select hex(cast('a' as binary(2)));
select hex(cast('a' as char(2) binary)); select hex(cast('a' as char(2) binary));
--enable_view_protocol
# #
# Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag. # Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag.
...@@ -476,11 +484,14 @@ drop table t1; ...@@ -476,11 +484,14 @@ drop table t1;
# #
# CAST (... BINARY) # CAST (... BINARY)
# #
#enable after MDEV-32461 fix
--disable_view_protocol
select collation(cast("a" as char(10) binary)); select collation(cast("a" as char(10) binary));
select collation(cast("a" as char(10) charset utf8 binary)); select collation(cast("a" as char(10) charset utf8 binary));
select collation(cast("a" as char(10) ascii binary)); select collation(cast("a" as char(10) ascii binary));
select collation(cast("a" as char(10) binary charset utf8)); select collation(cast("a" as char(10) binary charset utf8));
select collation(cast("a" as char(10) binary ascii)); select collation(cast("a" as char(10) binary ascii));
--enable_view_protocol
--echo # --echo #
--echo # MDEV-11030 Assertion `precision > 0' failed in decimal_bin_size --echo # MDEV-11030 Assertion `precision > 0' failed in decimal_bin_size
...@@ -762,7 +773,10 @@ INSERT INTO t1 VALUES (-1.0); ...@@ -762,7 +773,10 @@ INSERT INTO t1 VALUES (-1.0);
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;
#enable after MDEV-32461 fix
--disable_view_protocol
SELECT CAST(-1e0 AS UNSIGNED); SELECT CAST(-1e0 AS UNSIGNED);
--enable_view_protocol
CREATE TABLE t1 (a BIGINT UNSIGNED); CREATE TABLE t1 (a BIGINT UNSIGNED);
INSERT INTO t1 VALUES (-1e0); INSERT INTO t1 VALUES (-1e0);
SELECT * FROM t1; SELECT * FROM t1;
......
...@@ -641,8 +641,8 @@ check table t1 extended; ...@@ -641,8 +641,8 @@ check table t1 extended;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
drop table t1; drop table t1;
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci); select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1;
least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) f1
a a
create table t1 create table t1
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1;
...@@ -653,12 +653,11 @@ t1 CREATE TABLE `t1` ( ...@@ -653,12 +653,11 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
drop table t1; drop table t1;
select case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate select case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate
latin5_turkish_ci then 2 else 3 end; latin5_turkish_ci then 2 else 3 end as exp;
case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate exp
latin5_turkish_ci then 2 else 3 end
3 3
select concat(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci); select concat(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as exp;
concat(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) exp
abc abc
# #
# Bug#11765016 57926: ILLEGAL MIX OF COLLATIONS FOR OPERATION 'UNION' .. USING CONCAT/FUNCTION/ # Bug#11765016 57926: ILLEGAL MIX OF COLLATIONS FOR OPERATION 'UNION' .. USING CONCAT/FUNCTION/
......
#remove this include after fix MDEV-27871
--source include/no_view_protocol.inc
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
...@@ -248,16 +246,16 @@ drop table t1; ...@@ -248,16 +246,16 @@ drop table t1;
# #
# Bug#41627 Illegal mix of collations in LEAST / GREATEST / CASE # Bug#41627 Illegal mix of collations in LEAST / GREATEST / CASE
# #
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci); select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1;
create table t1 create table t1
select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate select case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate
latin5_turkish_ci then 2 else 3 end; latin5_turkish_ci then 2 else 3 end as exp;
select concat(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci); select concat(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as exp;
--echo # --echo #
......
# remove this include in 10.6 version, # remove this include in 10.6 version,
# if MDEV-27871 will be fix
--source include/no_view_protocol.inc
-- source include/have_eucjpms.inc -- source include/have_eucjpms.inc
......
...@@ -5954,13 +5954,13 @@ DROP TABLE t1; ...@@ -5954,13 +5954,13 @@ DROP TABLE t1;
# MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences
# #
set sql_mode=''; set sql_mode='';
SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)); SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) as exp;
HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) exp
3F41 3F41
Warnings: Warnings:
Warning 1300 Invalid gb2312 character string: '\xA3A' Warning 1300 Invalid gb2312 character string: '\xA3A'
SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)); SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)) as exp;
HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)) exp
3F41 3F41
Warnings: Warnings:
Warning 1300 Invalid gb2312 character string: '\xA3A' Warning 1300 Invalid gb2312 character string: '\xA3A'
......
...@@ -449,8 +449,8 @@ DROP TABLE t1; ...@@ -449,8 +449,8 @@ DROP TABLE t1;
#enable after fix MDEV-27871 #enable after fix MDEV-27871
--disable_view_protocol --disable_view_protocol
set sql_mode=''; set sql_mode='';
SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)); SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) as exp;
SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)); SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)) as exp;
set sql_mode=default; set sql_mode=default;
--enable_view_protocol --enable_view_protocol
......
...@@ -209,9 +209,6 @@ DROP TABLE t1; ...@@ -209,9 +209,6 @@ DROP TABLE t1;
--echo # WL#3664 WEIGHT_STRING --echo # WL#3664 WEIGHT_STRING
--echo # --echo #
# enable view-protocol after fix MDEV-27871
--disable_view_protocol
set names sjis; set names sjis;
--source include/weight_string.inc --source include/weight_string.inc
--source include/weight_string_l1.inc --source include/weight_string_l1.inc
...@@ -223,8 +220,6 @@ set collation_connection=sjis_bin; ...@@ -223,8 +220,6 @@ set collation_connection=sjis_bin;
--source include/weight_string_l1.inc --source include/weight_string_l1.inc
--source include/weight_string_8140.inc --source include/weight_string_8140.inc
--enable_view_protocol
--echo # --echo #
--echo # End of 5.6 tests --echo # End of 5.6 tests
--echo # --echo #
......
...@@ -7964,8 +7964,8 @@ hex(weight_string(cast(_latin1 0xDF6368 as char),25, 4,0xC0)) ...@@ -7964,8 +7964,8 @@ hex(weight_string(cast(_latin1 0xDF6368 as char),25, 4,0xC0))
# #
# Bug#33077 weight of supplementary characters is not 0xfffd # Bug#33077 weight of supplementary characters is not 0xfffd
# #
select hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci)); select hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci)) as exp;
hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci)) exp
FFFD FFFD
# #
# Bug#53064 garbled data when using utf8_german2_ci collation # Bug#53064 garbled data when using utf8_german2_ci collation
......
...@@ -552,10 +552,7 @@ set @@collation_connection=ucs2_czech_ci; ...@@ -552,10 +552,7 @@ set @@collation_connection=ucs2_czech_ci;
--echo # --echo #
--echo # Bug#33077 weight of supplementary characters is not 0xfffd --echo # Bug#33077 weight of supplementary characters is not 0xfffd
--echo # --echo #
#enable_after_fix MDEV-27871 select hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci)) as exp;
--disable_view_protocol
select hex(weight_string(_utf8mb4 0xF0908080 /* U+10000 */ collate utf8mb4_unicode_ci));
--enable_view_protocol
--echo # --echo #
--echo # Bug#53064 garbled data when using utf8_german2_ci collation --echo # Bug#53064 garbled data when using utf8_german2_ci collation
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
...@@ -747,8 +747,9 @@ DROP TABLE t1; ...@@ -747,8 +747,9 @@ DROP TABLE t1;
# #
CREATE TABLE t1 (f VARCHAR(8)); CREATE TABLE t1 (f VARCHAR(8));
INSERT INTO t1 VALUES ('foo'),('bar'); INSERT INTO t1 VALUES ('foo'),('bar');
SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) ); SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN
'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) ) BOOLEAN MODE ) ) as exp;
exp
1 1
SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ; SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ;
f1 f2 f1 f2
......
...@@ -693,11 +693,10 @@ DROP TABLE t1; ...@@ -693,11 +693,10 @@ DROP TABLE t1;
CREATE TABLE t1 (f VARCHAR(8)); CREATE TABLE t1 (f VARCHAR(8));
INSERT INTO t1 VALUES ('foo'),('bar'); INSERT INTO t1 VALUES ('foo'),('bar');
#enable after fix MDEV-27871 SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN
--disable_view_protocol BOOLEAN MODE ) ) as exp;
SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) );
--enable_view_protocol
SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ; SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ;
explain extended explain extended
SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ; SELECT 'foo' IN ( SELECT f FROM t1 GROUP BY MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE )) as f1, MATCH(f) AGAINST ( 'qux' IN BOOLEAN MODE ) as f2 from t1 ;
......
...@@ -70,10 +70,9 @@ a ...@@ -70,10 +70,9 @@ a
a a
a0.0000 a0.0000
select concat((select x from (select 'a' as x) as t1 ), select concat((select x from (select 'a' as x) as t1 ),
(select y from (select 'b' as y) as t2 )) from (select 1 union select 2 ) (select y from (select 'b' as y) as t2 )) as exp from (select 1 union select 2 )
as t3; as t3;
concat((select x from (select 'a' as x) as t1 ), exp
(select y from (select 'b' as y) as t2 ))
ab ab
ab ab
create table t1(f1 varchar(6)) charset=utf8; create table t1(f1 varchar(6)) charset=utf8;
......
...@@ -57,15 +57,10 @@ select 'a' union select concat('a', -0.0000); ...@@ -57,15 +57,10 @@ select 'a' union select concat('a', -0.0000);
# Bug#16716: subselect in concat() may lead to a wrong result # Bug#16716: subselect in concat() may lead to a wrong result
# #
#enable after fix MDEV-27871
--disable_view_protocol
select concat((select x from (select 'a' as x) as t1 ), select concat((select x from (select 'a' as x) as t1 ),
(select y from (select 'b' as y) as t2 )) from (select 1 union select 2 ) (select y from (select 'b' as y) as t2 )) as exp from (select 1 union select 2 )
as t3; as t3;
--enable_view_protocol
# End of 4.1 tests # End of 4.1 tests
# #
......
This diff is collapsed.
This diff is collapsed.
...@@ -3419,8 +3419,8 @@ DROP TABLE t1; ...@@ -3419,8 +3419,8 @@ DROP TABLE t1;
# #
# MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool) # MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
# #
SELECT CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END; SELECT CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END as exp;
CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END exp
NULL NULL
SELECT CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END; SELECT CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END;
CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END
......
...@@ -470,10 +470,7 @@ DROP TABLE t1; ...@@ -470,10 +470,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool) --echo # MDEV-9653 Assertion `length || !scale' failed in uint my_decimal_length_to_precision(uint, uint, bool)
--echo # --echo #
#enable after fix MDEV-27871 SELECT CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END as exp;
--disable_view_protocol
SELECT CASE 0 WHEN 1 THEN (CASE 2 WHEN 3 THEN NULL END) WHEN 4 THEN 5 END;
--enable_view_protocol
SELECT CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END; SELECT CASE 0 WHEN 1 THEN (COALESCE(NULL)) WHEN 4 THEN 5 END;
SELECT CASE WHEN TRUE THEN COALESCE(NULL) ELSE 4 END; SELECT CASE WHEN TRUE THEN COALESCE(NULL) ELSE 4 END;
......
...@@ -162,19 +162,9 @@ IF((ROUND(t1.a,2)=1), 2, ...@@ -162,19 +162,9 @@ IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,0)))))))))))))))))))))))))))))) + 1 IF((ROUND(t1.a,2)=1), 2,0)))))))))))))))))))))))))))))) + 1 as exp
FROM t1; FROM t1;
a IF((ROUND(t1.a,2)=1), 2, a exp
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,
IF((R
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (c LONGTEXT); CREATE TABLE t1 (c LONGTEXT);
INSERT INTO t1 VALUES(1), (2), (3), (4), ('1234567890123456789'); INSERT INTO t1 VALUES(1), (2), (3), (4), ('1234567890123456789');
......
...@@ -119,8 +119,6 @@ select if(0, 18446744073709551610, 18446744073709551610); ...@@ -119,8 +119,6 @@ select if(0, 18446744073709551610, 18446744073709551610);
CREATE TABLE t1(a DECIMAL(10,3)); CREATE TABLE t1(a DECIMAL(10,3));
#enable after fix MDEV-27871
--disable_view_protocol
# check : should be fast. more than few secs means failure. # check : should be fast. more than few secs means failure.
SELECT t1.a, SELECT t1.a,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
...@@ -152,9 +150,8 @@ SELECT t1.a, ...@@ -152,9 +150,8 @@ SELECT t1.a,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2, IF((ROUND(t1.a,2)=1), 2,
IF((ROUND(t1.a,2)=1), 2,0)))))))))))))))))))))))))))))) + 1 IF((ROUND(t1.a,2)=1), 2,0)))))))))))))))))))))))))))))) + 1 as exp
FROM t1; FROM t1;
--enable_view_protocol
DROP TABLE t1; DROP TABLE t1;
# #
......
This diff is collapsed.
This diff is collapsed.
...@@ -931,8 +931,8 @@ STDDEV_POP(ROUND(0,@A:=2009)) ...@@ -931,8 +931,8 @@ STDDEV_POP(ROUND(0,@A:=2009))
# #
CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time); CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time);
INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27'); INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27');
SELECT DISTINCT STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) FROM t1; SELECT DISTINCT STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) as exp FROM t1;
STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) exp
NULL NULL
Warnings: Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'o' Warning 1292 Truncated incorrect DOUBLE value: 'o'
......
...@@ -685,10 +685,7 @@ SELECT STDDEV_POP(ROUND(0,@A:=2009)) FROM (SELECT 1 UNION SELECT 2) fake_table; ...@@ -685,10 +685,7 @@ SELECT STDDEV_POP(ROUND(0,@A:=2009)) FROM (SELECT 1 UNION SELECT 2) fake_table;
CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time); CREATE TABLE t1 ( pk int NOT NULL, i1 int NOT NULL, d1 date NOT NULL, t1 time);
INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27'); INSERT INTO t1 VALUES (7,9,'2007-08-15','03:55:02'),(8,7,'1993-06-05','04:17:51'),(9,7,'2034-07-01','17:31:12'),(10,0,'1998-08-24','08:09:27');
#enable after fix MDEV-27871 SELECT DISTINCT STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) as exp FROM t1;
--disable_view_protocol
SELECT DISTINCT STDDEV_SAMP(EXPORT_SET(t1, -1379790335835635712, (i1 + 'o'), (MD5(d1)))) FROM t1;
--enable_view_protocol
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(128)); CREATE TABLE t1 (a VARCHAR(128));
......
...@@ -149,8 +149,8 @@ select @invoked; ...@@ -149,8 +149,8 @@ select @invoked;
@invoked @invoked
10 10
set @invoked := 0; set @invoked := 0;
select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093)); select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093)) as exp;
benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093)) exp
0 0
select @invoked; select @invoked;
@invoked @invoked
...@@ -1170,11 +1170,11 @@ INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::')) ...@@ -1170,11 +1170,11 @@ 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('0000:0000::0000:0001'));
INET6_NTOA(INET6_ATON('0000:0000::0000:0001')) INET6_NTOA(INET6_ATON('0000:0000::0000:0001'))
::1 ::1
SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')); SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')) as exp;
INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')) exp
1234:5678:9abc:def0:4321:8765:cba9:fed 1234:5678:9abc:def0:4321:8765:cba9:fed
SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')); SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')) as exp;
INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')) exp
::1 ::1
SELECT INET6_NTOA(INET6_ATON('::C0A8:0102')); SELECT INET6_NTOA(INET6_ATON('::C0A8:0102'));
INET6_NTOA(INET6_ATON('::C0A8:0102')) INET6_NTOA(INET6_ATON('::C0A8:0102'))
......
...@@ -158,10 +158,7 @@ select @invoked; ...@@ -158,10 +158,7 @@ select @invoked;
set @invoked := 0; set @invoked := 0;
--disable_ps2_protocol --disable_ps2_protocol
#enable after fix MDEV-27871 select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093)) as exp;
--disable_view_protocol
select benchmark(100, (select avg(func_26093_b(a, rand())) from table_26093));
--enable_view_protocol
--enable_ps2_protocol --enable_ps2_protocol
# Returns 1000, due to rand() preventing caching. # Returns 1000, due to rand() preventing caching.
select @invoked; select @invoked;
...@@ -952,11 +949,8 @@ SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5::7:8')); ...@@ -952,11 +949,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::8'));
SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7::')); 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('0000:0000::0000:0001'));
#enable after fix MDEV-27871 SELECT INET6_NTOA(INET6_ATON('1234:5678:9abc:def0:4321:8765:cba9:0fed')) as exp;
--disable_view_protocol SELECT INET6_NTOA(INET6_ATON('0000:0000:0000:0000:0000:0000:0000:0001')) as exp;
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'));
--enable_view_protocol
SELECT INET6_NTOA(INET6_ATON('::C0A8:0102')); SELECT INET6_NTOA(INET6_ATON('::C0A8:0102'));
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('::192.168.1.2'));
......
...@@ -17,35 +17,35 @@ extract(MICROSECOND FROM "1999-01-02 10:11:12.000123") ...@@ -17,35 +17,35 @@ extract(MICROSECOND FROM "1999-01-02 10:11:12.000123")
select date_format("1997-12-31 23:59:59.000002", "%f"); select date_format("1997-12-31 23:59:59.000002", "%f");
date_format("1997-12-31 23:59:59.000002", "%f") date_format("1997-12-31 23:59:59.000002", "%f")
000002 000002
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND) as exp;
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND) exp
2025-05-23 04:40:39.000001 2025-05-23 04:40:39.000001
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND) as exp;
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND) exp
1999-02-21 17:40:39.000001 1999-02-21 17:40:39.000001
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND) as exp;
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND) exp
1998-01-07 22:41:39.000001 1998-01-07 22:41:39.000001
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND) as exp;
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND) exp
1998-01-01 02:46:40.000001 1998-01-01 02:46:40.000001
select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND) as exp;
date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND) exp
1998-01-01 00:00:00.000001 1998-01-01 00:00:00.000001
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND) as exp;
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND) exp
1997-12-30 22:58:58.999999 1997-12-30 22:58:58.999999
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND) as exp;
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND) exp
1997-12-31 22:58:58.999999 1997-12-31 22:58:58.999999
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND) as exp;
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND) exp
1997-12-31 23:58:58.999999 1997-12-31 23:58:58.999999
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND) as exp;
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND) exp
1997-12-31 23:59:58.999999 1997-12-31 23:59:58.999999
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND) as exp;
date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND) exp
1997-12-31 23:59:59.999999 1997-12-31 23:59:59.999999
select adddate("1997-12-31 23:59:59.000001", 10); select adddate("1997-12-31 23:59:59.000001", 10);
adddate("1997-12-31 23:59:59.000001", 10) adddate("1997-12-31 23:59:59.000001", 10)
...@@ -98,47 +98,47 @@ NULL ...@@ -98,47 +98,47 @@ NULL
select makedate(100,1); select makedate(100,1);
makedate(100,1) makedate(100,1)
0100-01-01 0100-01-01
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002"); select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002") as exp;
addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002") exp
1998-01-02 01:01:01.000001 1998-01-02 01:01:01.000001
select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002"); select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002") as exp;
subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002") exp
1997-12-30 22:58:57.999999 1997-12-30 22:58:57.999999
select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") as exp;
addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") exp
NULL NULL
Warnings: Warnings:
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999' Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999'
select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") as exp;
subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") exp
NULL NULL
Warnings: Warnings:
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999' Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999'
select subtime("01:00:00.999999", "02:00:00.999998"); select subtime("01:00:00.999999", "02:00:00.999998") as exp;
subtime("01:00:00.999999", "02:00:00.999998") exp
-00:59:59.999999 -00:59:59.999999
select subtime("02:01:01.999999", "01:01:01.999999"); select subtime("02:01:01.999999", "01:01:01.999999") as exp;
subtime("02:01:01.999999", "01:01:01.999999") exp
01:00:00 01:00:00
select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002"); select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002") as exp;
timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002") exp
838:59:59.999999 838:59:59.999999
Warnings: Warnings:
Warning 1292 Truncated incorrect time value: '8807:59:59.999999' Warning 1292 Truncated incorrect time value: '8807:59:59.999999'
select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002"); select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") as exp;
timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") exp
46:58:57.999999 46:58:57.999999
select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002"); select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") as exp;
timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") exp
-24:00:00.000001 -24:00:00.000001
select timediff("1997-12-31 23:59:59.000001","23:59:59.000001"); select timediff("1997-12-31 23:59:59.000001","23:59:59.000001") as exp;
timediff("1997-12-31 23:59:59.000001","23:59:59.000001") exp
NULL NULL
select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001"); select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001") as exp;
timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001") exp
-00:00:00.000001 -00:00:00.000001
select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50"); select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50") as exp;
timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50") exp
-00:00:00.000001 -00:00:00.000001
select maketime(10,11,12); select maketime(10,11,12);
maketime(10,11,12) maketime(10,11,12)
...@@ -262,14 +262,14 @@ a ...@@ -262,14 +262,14 @@ a
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f"); select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f")
2003-01-02 10:11:12.001200 2003-01-02 10:11:12.001200
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00') as exp;
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') time('00:00:00') timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') exp
-24:00:00 00:00:00 -24:00:00 00:00:00
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00') as exp;
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00') exp
0 0
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00') as exp;
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00') exp
1 1
SELECT CAST(time('-73:42:12') AS DECIMAL); SELECT CAST(time('-73:42:12') AS DECIMAL);
CAST(time('-73:42:12') AS DECIMAL) CAST(time('-73:42:12') AS DECIMAL)
......
...@@ -13,20 +13,17 @@ select extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123"); ...@@ -13,20 +13,17 @@ select extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123");
select extract(MICROSECOND FROM "1999-01-02 10:11:12.000123"); select extract(MICROSECOND FROM "1999-01-02 10:11:12.000123");
select date_format("1997-12-31 23:59:59.000002", "%f"); select date_format("1997-12-31 23:59:59.000002", "%f");
#enable after fix MDEV-27871 select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND) as exp;
--disable_view_protocol select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND) as exp;
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND) as exp;
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND) as exp;
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND); select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND) as exp;
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND);
select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND) as exp;
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND) as exp;
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND) as exp;
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND) as exp;
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND); select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND) as exp;
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND);
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND);
--enable_view_protocol
#Date functions #Date functions
select adddate("1997-12-31 23:59:59.000001", 10); select adddate("1997-12-31 23:59:59.000001", 10);
...@@ -54,27 +51,21 @@ select makedate(100,1); ...@@ -54,27 +51,21 @@ select makedate(100,1);
#Time functions #Time functions
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002"); select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002") as exp;
select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002"); select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002") as exp;
#enable after fix MDEV-27871 select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") as exp;
--disable_view_protocol select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999") as exp;
select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); select subtime("01:00:00.999999", "02:00:00.999998") as exp;
select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999"); select subtime("02:01:01.999999", "01:01:01.999999") as exp;
--enable_view_protocol
select subtime("01:00:00.999999", "02:00:00.999998");
select subtime("02:01:01.999999", "01:01:01.999999");
# PS doesn't support fractional seconds # PS doesn't support fractional seconds
--disable_ps_protocol --disable_ps_protocol
#enable after fix MDEV-27871 select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002") as exp;
--disable_view_protocol select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") as exp;
select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002"); select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") as exp;
select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002"); select timediff("1997-12-31 23:59:59.000001","23:59:59.000001") as exp;
select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002"); select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001") as exp;
--enable_view_protocol select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50") as exp;
select timediff("1997-12-31 23:59:59.000001","23:59:59.000001");
select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001");
select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50");
--enable_ps_protocol --enable_ps_protocol
select maketime(10,11,12); select maketime(10,11,12);
...@@ -152,12 +143,9 @@ select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f"); ...@@ -152,12 +143,9 @@ select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
# #
# calculations involving negative time values ignored sign # calculations involving negative time values ignored sign
#enable after fix MDEV-27871 select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00') as exp;
--disable_view_protocol select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00') as exp;
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00'); select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00') as exp;
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
--enable_view_protocol
# show that conversion to DECIMAL no longer drops sign # show that conversion to DECIMAL no longer drops sign
SELECT CAST(time('-73:42:12') AS DECIMAL); SELECT CAST(time('-73:42:12') AS DECIMAL);
......
...@@ -88,19 +88,14 @@ INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) ...@@ -88,19 +88,14 @@ INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
8 8
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL)); CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL)) as exp;
INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), exp
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL))
8 8
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL)); CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL)) as exp;
INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), exp
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL))
8 8
End of 5.0 tests End of 5.0 tests
drop table if exists t1; drop table if exists t1;
...@@ -167,8 +162,8 @@ DROP TABLE t1, t2; ...@@ -167,8 +162,8 @@ DROP TABLE t1, t2;
# #
CREATE TABLE t1 (pk INT PRIMARY KEY); CREATE TABLE t1 (pk INT PRIMARY KEY);
INSERT INTO t1 VALUES (10),(11); INSERT INTO t1 VALUES (10),(11);
SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) FROM t1; SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) as exp FROM t1;
INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) exp
8 8
8 8
Warnings: Warnings:
......
...@@ -63,16 +63,13 @@ SELECT INTERVAL(0.0, NULL); ...@@ -63,16 +63,13 @@ SELECT INTERVAL(0.0, NULL);
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL)); SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL));
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL)); SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL));
SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#enable after fix MDEV-27871
--disable_view_protocol
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL)); CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL)) as exp;
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL)); CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL)) as exp;
--enable_view_protocol
--echo End of 5.0 tests --echo End of 5.0 tests
...@@ -108,13 +105,10 @@ DROP TABLE t1, t2; ...@@ -108,13 +105,10 @@ DROP TABLE t1, t2;
--echo # --echo #
--echo # MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types --echo # MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol
CREATE TABLE t1 (pk INT PRIMARY KEY); CREATE TABLE t1 (pk INT PRIMARY KEY);
INSERT INTO t1 VALUES (10),(11); INSERT INTO t1 VALUES (10),(11);
SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) FROM t1; SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) as exp FROM t1;
DROP TABLE t1; DROP TABLE t1;
--enable_view_protocol
--echo # --echo #
--echo # End of 5.3 tests --echo # End of 5.3 tests
......
This diff is collapsed.
This diff is collapsed.
select st_asgeojson(geomfromtext('POINT(1 1)')); select st_asgeojson(geomfromtext('POINT(1 1)')) as exp;
st_asgeojson(geomfromtext('POINT(1 1)')) exp
{"type": "Point", "coordinates": [1, 1]} {"type": "Point", "coordinates": [1, 1]}
select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')); select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')) as exp;
st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')) exp
{"type": "LineString", "coordinates": [[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]} {"type": "LineString", "coordinates": [[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]}
select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')); select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')) as exp;
st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')) exp
{"type": "Polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]} {"type": "Polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}
select st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')); select st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')) as exp;
st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')) exp
{"type": "MultiPolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]} {"type": "MultiPolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}
select st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')); select st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')) as exp;
st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')) exp
{"type": "MultiLineString", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]} {"type": "MultiLineString", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}
select st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)')); select st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)')) as exp;
st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)')) exp
{"type": "MultiPoint", "coordinates": [[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]} {"type": "MultiPoint", "coordinates": [[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]}
select st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')); select st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')) as exp;
st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')) exp
{"type": "GeometryCollection", "geometries": [{"type": "Point", "coordinates": [100, 0]}, {"type": "LineString", "coordinates": [[101, 0], [102, 1]]}]} {"type": "GeometryCollection", "geometries": [{"type": "Point", "coordinates": [100, 0]}, {"type": "LineString", "coordinates": [[101, 0], [102, 1]]}]}
SELECT st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')); SELECT st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')) as exp;
st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')) exp
POINT(1 2) POINT(1 2)
SELECT st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')); SELECT st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')) exp
LINESTRING(1 2,4 5,7 8) LINESTRING(1 2,4 5,7 8)
SELECT st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) exp
POLYGON((10 10,20 10,20 20,10 20,10 10)) POLYGON((10 10,20 10,20 20,10 20,10 10))
SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')); SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')) exp
MULTIPOINT(1 2,4 5,7 8) MULTIPOINT(1 2,4 5,7 8)
SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) exp
MULTILINESTRING((10 10,20 10,20 20,10 20,10 10)) MULTILINESTRING((10 10,20 10,20 20,10 20,10 10))
SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')) as exp;
st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')) exp
MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10))) MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))
SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')); SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')) as exp;
st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')) exp
GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1)) GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))
SELECT st_astext(st_geomfromgeojson('{"type":"point"}')); SELECT st_astext(st_geomfromgeojson('{"type":"point"}'));
st_astext(st_geomfromgeojson('{"type":"point"}')) st_astext(st_geomfromgeojson('{"type":"point"}'))
...@@ -55,27 +55,27 @@ st_astext(st_geomfromgeojson('{"type""point"}')) ...@@ -55,27 +55,27 @@ st_astext(st_geomfromgeojson('{"type""point"}'))
NULL NULL
Warnings: Warnings:
Warning 4038 Syntax error in JSON text in argument 1 to function 'st_geomfromgeojson' at position 7 Warning 4038 Syntax error in JSON text in argument 1 to function 'st_geomfromgeojson' at position 7
SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')); SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')) as exp;
st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')) exp
POINT(102 0.5) POINT(102 0.5)
SELECT st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }')); SELECT st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }')) as exp;
st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }')) exp
POINT(102 0.5) POINT(102 0.5)
SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')); SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')) as exp;
st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')) exp
GEOMETRYCOLLECTION(POINT(102 0.5)) GEOMETRYCOLLECTION(POINT(102 0.5))
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5));
ERROR HY000: Incorrect option value: '5' for function ST_GeomFromGeoJSON ERROR HY000: Incorrect option value: '5' for function ST_GeomFromGeoJSON
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',1)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',1)) as exp;
ERROR 22023: Invalid GIS data provided to function ST_GeomFromGeoJSON. ERROR 22023: Invalid GIS data provided to function ST_GeomFromGeoJSON.
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2)) as exp;
ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2)) exp
POINT(5.3 15) POINT(5.3 15)
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)) as exp;
ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)) exp
POINT(5.3 15) POINT(5.3 15)
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)) as exp;
ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)) exp
POINT(5.3 15) POINT(5.3 15)
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2); SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2);
ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2) ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2)
...@@ -107,16 +107,16 @@ a ...@@ -107,16 +107,16 @@ a
NULL NULL
Warnings: Warnings:
Warning 4076 Incorrect GeoJSON format - empty 'coordinates' array. Warning 4076 Incorrect GeoJSON format - empty 'coordinates' array.
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }"); SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }") as exp;
ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }") exp
NULL NULL
SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')); SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')) as exp;
ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')) exp
NULL NULL
Warnings: Warnings:
Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function. Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function.
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')); SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')) as exp;
ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')) exp
NULL NULL
Warnings: Warnings:
Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function. Warning 4048 Incorrect GeoJSON format specified for st_geomfromgeojson function.
......
-- source include/have_geometry.inc -- source include/have_geometry.inc
#enable after fix MDEV-27871 select st_asgeojson(geomfromtext('POINT(1 1)')) as exp;
--disable_view_protocol select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')) as exp;
select st_asgeojson(geomfromtext('POINT(1 1)')); select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')) as exp;
select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')); select st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')) as exp;
select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')); select st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')) as exp;
select st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')); select st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)')) as exp;
select st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')); select st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')) as exp;
select st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)'));
select st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')); SELECT st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')); SELECT st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')); SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')); SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}'));
SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}'));
--enable_view_protocol
SELECT st_astext(st_geomfromgeojson('{"type":"point"}')); SELECT st_astext(st_geomfromgeojson('{"type":"point"}'));
SELECT st_astext(st_geomfromgeojson('{"type":"point"')); SELECT st_astext(st_geomfromgeojson('{"type":"point"'));
SELECT st_astext(st_geomfromgeojson('{"type""point"}')); SELECT st_astext(st_geomfromgeojson('{"type""point"}'));
#enable after fix MDEV-27871 SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')) as exp;
--disable_view_protocol SELECT st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }')) as exp;
SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')); SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }'));
SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}'));
--error ER_WRONG_VALUE_FOR_TYPE --error ER_WRONG_VALUE_FOR_TYPE
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5));
--error ER_GIS_INVALID_DATA --error ER_GIS_INVALID_DATA
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',1)); SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',1)) as exp;
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2));
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3));
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4));
--enable_view_protocol SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2)) as exp;
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)) as exp;
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)) as exp;
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2); SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2);
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),1); SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),1);
...@@ -53,20 +46,15 @@ SELECT st_astext(st_geomfromgeojson('{"type": "MultiLineString","coordinates": [ ...@@ -53,20 +46,15 @@ SELECT st_astext(st_geomfromgeojson('{"type": "MultiLineString","coordinates": [
SELECT st_astext(st_geomfromgeojson('{"type": "Polygon","coordinates": []}')) as a; SELECT st_astext(st_geomfromgeojson('{"type": "Polygon","coordinates": []}')) as a;
SELECT st_astext(st_geomfromgeojson('{"type": "MultiPolygon","coordinates": []}')) as a; SELECT st_astext(st_geomfromgeojson('{"type": "MultiPolygon","coordinates": []}')) as a;
#enable after fix MDEV-27871 SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }") as exp;
--disable_view_protocol
SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }");
# #
# MDEV-25461 Assertion `je->state == JST_KEY' failed in Geometry::create_from_json. # MDEV-25461 Assertion `je->state == JST_KEY' failed in Geometry::create_from_json.
# #
SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')); SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')) as exp;
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }'));
--enable_view_protocol
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')) as exp;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #
...@@ -463,8 +463,8 @@ gc geometrycollection YES NULL ...@@ -463,8 +463,8 @@ gc geometrycollection YES NULL
gm geometry YES NULL gm geometry YES NULL
fid int(11) NO NULL fid int(11) NO NULL
DROP TABLE t1; DROP TABLE t1;
SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))); SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))) as exp;
AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))) exp
POINT(1 4) POINT(1 4)
explain extended SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)')))); explain extended SELECT AsText(GeometryFromWKB(AsWKB(GeometryFromText('POINT(1 4)'))));
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
...@@ -696,11 +696,11 @@ ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ...@@ -696,11 +696,11 @@ ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
insert into t1 values (pointfromtext('point(1,1)')); insert into t1 values (pointfromtext('point(1,1)'));
ERROR 23000: Column 'fl' cannot be null ERROR 23000: Column 'fl' cannot be null
drop table t1; drop table t1;
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000)))); select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000)))) as exp;
(asWKT(geomfromwkb((0x000000000140240000000000004024000000000000)))) exp
POINT(10 10) POINT(10 10)
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440)))); select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440)))) as exp;
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440)))) exp
POINT(10 10) POINT(10 10)
create table t1 (g GEOMETRY); create table t1 (g GEOMETRY);
select * from t1; select * from t1;
...@@ -1135,30 +1135,30 @@ NULL ...@@ -1135,30 +1135,30 @@ NULL
select envelope(0x0100000000030000000100000000000010); select envelope(0x0100000000030000000100000000000010);
envelope(0x0100000000030000000100000000000010) envelope(0x0100000000030000000100000000000010)
NULL NULL
select geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1); select geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1) as exp;
geometryn(0x0100000000070000000100000001030000000200000000000000ffff0000, 1) exp
NULL NULL
select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1); select geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1) as exp;
geometryn(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1) exp
NULL NULL
# #
# MDEV-4296 Assertion `n_linear_rings > 0' fails in Gis_polygon::centroid_xy # MDEV-4296 Assertion `n_linear_rings > 0' fails in Gis_polygon::centroid_xy
# #
SELECT Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) ))); SELECT Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) ))) as exp;
Centroid( AsBinary( LineString(Point(0,0), Point(0,0), Point(0,0) ))) exp
NULL NULL
# #
# MDEV-4295 Server crashes in get_point on a query with Area, AsBinary, MultiPoint # MDEV-4295 Server crashes in get_point on a query with Area, AsBinary, MultiPoint
# #
SELECT Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2)))); SELECT Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2)))) as exp;
Area(AsBinary(MultiPoint(Point(0,9), Point(0,1), Point(2,2)))) exp
NULL NULL
End of 5.1 tests End of 5.1 tests
select ST_AREA(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 10, 77 80), POLYGON((0 0,4 7,1 1,0 0)), POINT(20 20))')); select ST_AREA(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 10, 77 80), POLYGON((0 0,4 7,1 1,0 0)), POINT(20 20))')) as exp;
ST_AREA(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 10, 77 80), POLYGON((0 0,4 7,1 1,0 0)), POINT(20 20))')) exp
1.5 1.5
select ST_LENGTH(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 100 30, 20 30), POINT(3 3), LINESTRING(20 20, 30 20))')); select ST_LENGTH(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 100 30, 20 30), POINT(3 3), LINESTRING(20 20, 30 20))')) as exp;
ST_LENGTH(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 100 30, 20 30), POINT(3 3), LINESTRING(20 20, 30 20))')) exp
160 160
DROP DATABASE IF EXISTS gis_ogs; DROP DATABASE IF EXISTS gis_ogs;
CREATE DATABASE gis_ogs; CREATE DATABASE gis_ogs;
...@@ -1369,16 +1369,16 @@ FROM road_segments ...@@ -1369,16 +1369,16 @@ FROM road_segments
WHERE fid = 102; WHERE fid = 102;
AsText(EndPoint(centerline)) AsText(EndPoint(centerline))
POINT(44 31) POINT(44 31)
SELECT IsClosed(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) SELECT IsClosed(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) as exp
FROM named_places FROM named_places
WHERE name = 'Goose Island'; WHERE name = 'Goose Island';
IsClosed(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) exp
1 1
# Conformance Item T20 # Conformance Item T20
SELECT IsRing(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) SELECT IsRing(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) as exp
FROM named_places FROM named_places
WHERE name = 'Goose Island'; WHERE name = 'Goose Island';
IsRing(LineFromWKB(AsBinary(Boundary(boundary)),SRID(boundary))) exp
1 1
# Conformance Item T21 # Conformance Item T21
SELECT GLength(centerline) SELECT GLength(centerline)
...@@ -1477,11 +1477,10 @@ Area(shores) ...@@ -1477,11 +1477,10 @@ Area(shores)
8 8
# Conformance Item T37 # Conformance Item T37
SELECT ST_Equals(boundary, SELECT ST_Equals(boundary,
PolyFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )',1)) PolyFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )',1)) as exp
FROM named_places FROM named_places
WHERE name = 'Goose Island'; WHERE name = 'Goose Island';
ST_Equals(boundary, exp
PolyFromText('POLYGON( ( 67 13, 67 18, 59 18, 59 13, 67 13) )',1))
1 1
# Conformance Item T38 # Conformance Item T38
SELECT ST_Disjoint(centerlines, boundary) SELECT ST_Disjoint(centerlines, boundary)
...@@ -1519,11 +1518,11 @@ AND divided_routes.name = 'Route 75'; ...@@ -1519,11 +1518,11 @@ AND divided_routes.name = 'Route 75';
Crosses(road_segments.centerline, divided_routes.centerlines) Crosses(road_segments.centerline, divided_routes.centerlines)
1 1
# Conformance Item T43 # Conformance Item T43
SELECT ST_Intersects(road_segments.centerline, divided_routes.centerlines) SELECT ST_Intersects(road_segments.centerline, divided_routes.centerlines) as exp
FROM road_segments, divided_routes FROM road_segments, divided_routes
WHERE road_segments.fid = 102 WHERE road_segments.fid = 102
AND divided_routes.name = 'Route 75'; AND divided_routes.name = 'Route 75';
ST_Intersects(road_segments.centerline, divided_routes.centerlines) exp
1 1
# Conformance Item T44 # Conformance Item T44
SELECT ST_Contains(forests.boundary, named_places.boundary) SELECT ST_Contains(forests.boundary, named_places.boundary)
...@@ -1594,21 +1593,15 @@ select st_distance(geomfromtext('LINESTRING(-95.9673005697771 36.13509598461, ...@@ -1594,21 +1593,15 @@ select st_distance(geomfromtext('LINESTRING(-95.9673005697771 36.13509598461,
-95.9673057475387 36.1344478941074, -95.9673057475387 36.1344478941074,
-95.9673063519371 36.134484524621, -95.9673063519371 36.134484524621,
-95.9673049102515 36.1343976584193)'), -95.9673049102515 36.1343976584193)'),
geomfromtext('point(-95.96269500000000000000 36.14181833333330000000)')) ; geomfromtext('point(-95.96269500000000000000 36.14181833333330000000)')) as exp ;
st_distance(geomfromtext('LINESTRING(-95.9673005697771 36.13509598461, exp
-95.9673057475387 36.1344478941074,
-95.9673063519371 36.134484524621,
0.008148695928146028 0.008148695928146028
select st_distance(geomfromtext('point(-95.96269500000000000000 36.14181833333330000000)'), select st_distance(geomfromtext('point(-95.96269500000000000000 36.14181833333330000000)'),
geomfromtext('LINESTRING(-95.9673005697771 36.13509598461, geomfromtext('LINESTRING(-95.9673005697771 36.13509598461,
-95.9673057475387 36.1344478941074, -95.9673057475387 36.1344478941074,
-95.9673063519371 36.134484524621, -95.9673063519371 36.134484524621,
-95.9673049102515 36.1343976584193) ')) ; -95.9673049102515 36.1343976584193) ')) as exp ;
st_distance(geomfromtext('point(-95.96269500000000000000 36.14181833333330000000)'), exp
geomfromtext('LINESTRING(-95.9673005697771 36.13509598461,
-95.9673057475387 36.1344478941074,
-95.9673063519371 36.
0.008148695928146028 0.008148695928146028
# #
# MDEV-4310 geometry function equals hangs forever. # MDEV-4310 geometry function equals hangs forever.
...@@ -1670,13 +1663,13 @@ ENVELOPE(0x0100000000030000000100000000000010) ...@@ -1670,13 +1663,13 @@ ENVELOPE(0x0100000000030000000100000000000010)
NULL NULL
#should not crash #should not crash
SELECT SELECT
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1); GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1) as exp;
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1) exp
NULL NULL
#should not crash #should not crash
SELECT SELECT
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1); GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1) as exp;
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1) exp
NULL NULL
# #
# MDEV-3819 missing constraints for spatial column types # MDEV-3819 missing constraints for spatial column types
...@@ -1685,8 +1678,8 @@ create table t1 (pt point); ...@@ -1685,8 +1678,8 @@ create table t1 (pt point);
insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))')); insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
ERROR 22007: Incorrect POINT value: 'POLYGON((1 1,2 2,2 1,1 1))' for column `test`.`t1`.`pt` at row 1 ERROR 22007: Incorrect POINT value: 'POLYGON((1 1,2 2,2 1,1 1))' for column `test`.`t1`.`pt` at row 1
drop table t1; drop table t1;
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100)); SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100)) as exp;
st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100)) exp
GEOMETRYCOLLECTION EMPTY GEOMETRYCOLLECTION EMPTY
CREATE VIEW v1 AS SELECT POINT(1,1) AS p; CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
SHOW CREATE VIEW v1; SHOW CREATE VIEW v1;
...@@ -1824,14 +1817,14 @@ drop table t1; ...@@ -1824,14 +1817,14 @@ drop table t1;
select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')); select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'));
ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)')) ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,0 0)'))
1 1
select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,-10 -10, 0 -10, 0 0)')); select ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,-10 -10, 0 -10, 0 0)')) as exp;
ST_IsRing(ST_LineFromText('LINESTRING(0 0,0 10,10 10,-10 -10, 0 -10, 0 0)')) exp
0 0
# #
# MDEV-7514 GIS: PointOnSurface returns NULL instead of the point. # MDEV-7514 GIS: PointOnSurface returns NULL instead of the point.
# #
SELECT ST_GEOMETRYTYPE(ST_PointOnSurface(ST_PolyFromText('POLYGON((-70.916 42.1002,-70.9468 42.0946,-70.9754 42.0875,-70.9749 42.0879,-70.9759 42.0897,-70.916 42.1002))'))); SELECT ST_GEOMETRYTYPE(ST_PointOnSurface(ST_PolyFromText('POLYGON((-70.916 42.1002,-70.9468 42.0946,-70.9754 42.0875,-70.9749 42.0879,-70.9759 42.0897,-70.916 42.1002))'))) as exp;
ST_GEOMETRYTYPE(ST_PointOnSurface(ST_PolyFromText('POLYGON((-70.916 42.1002,-70.9468 42.0946,-70.9754 42.0875,-70.9749 42.0879,-70.9759 42.0897,-70.916 42.1002))'))) exp
NULL NULL
# #
# MDEV-7529 GIS: ST_Relate returns unexpected results for POINT relations # MDEV-7529 GIS: ST_Relate returns unexpected results for POINT relations
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -1735,8 +1735,8 @@ c1 c2 c3 ...@@ -1735,8 +1735,8 @@ c1 c2 c3
SELECT NULLIF(COUNT(DISTINCT c1),0) FROM t1; SELECT NULLIF(COUNT(DISTINCT c1),0) FROM t1;
NULLIF(COUNT(DISTINCT c1),0) NULLIF(COUNT(DISTINCT c1),0)
2 2
SELECT CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END FROM t1; SELECT CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END as exp FROM t1;
CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END exp
2 2
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
......
...@@ -1065,12 +1065,7 @@ SELECT CASE WHEN COUNT(c1)=0 THEN NULL ELSE COUNT(c1) END FROM t1; ...@@ -1065,12 +1065,7 @@ SELECT CASE WHEN COUNT(c1)=0 THEN NULL ELSE COUNT(c1) END FROM t1;
SELECT NULLIF(COUNT(c1)+0,0) AS c1,NULLIF(CAST(COUNT(c1) AS SIGNED),0) AS c2,NULLIF(CONCAT(COUNT(c1)),0) AS c3 FROM t1; SELECT NULLIF(COUNT(c1)+0,0) AS c1,NULLIF(CAST(COUNT(c1) AS SIGNED),0) AS c2,NULLIF(CONCAT(COUNT(c1)),0) AS c3 FROM t1;
SELECT NULLIF(COUNT(DISTINCT c1),0) FROM t1; SELECT NULLIF(COUNT(DISTINCT c1),0) FROM t1;
#enable view protocol after fix MDEV-27871 SELECT CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END as exp FROM t1;
--disable_view_protocol
SELECT CASE WHEN COUNT(DISTINCT c1)=0 THEN NULL ELSE COUNT(DISTINCT c1) END FROM t1;
--enable_view_protocol
DROP TABLE t1; DROP TABLE t1;
......
...@@ -551,7 +551,6 @@ insert into t1 values ('foo'), ('bar'); ...@@ -551,7 +551,6 @@ insert into t1 values ('foo'), ('bar');
EXPLAIN SELECT * FROM t1 WHERE a= REPEAT('a', 0); EXPLAIN SELECT * FROM t1 WHERE a= REPEAT('a', 0);
SELECT * FROM t1 WHERE a= REPEAT('a', 0); SELECT * FROM t1 WHERE a= REPEAT('a', 0);
#enable after fix MDEV-27871
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE; select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
DROP TABLE t1; DROP TABLE t1;
...@@ -582,7 +581,6 @@ create table t1 (kp1 int, kp2 int, key(kp1, kp2)); ...@@ -582,7 +581,6 @@ create table t1 (kp1 int, kp2 int, key(kp1, kp2));
insert into t1 values (1,1),(1,5),(5,1),(5,5); insert into t1 values (1,1),(1,5),(5,1),(5,5);
set optimizer_trace=1; set optimizer_trace=1;
select * from t1 force index(kp1) where (kp1=2 and kp2 >=4); select * from t1 force index(kp1) where (kp1=2 and kp2 >=4);
#enable after fix MDEV-27871
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE; select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
drop table t1; drop table t1;
...@@ -595,7 +593,6 @@ INSERT INTO t1 SELECT seq, seq from seq_1_to_10; ...@@ -595,7 +593,6 @@ INSERT INTO t1 SELECT seq, seq from seq_1_to_10;
CREATE TABLE t2(a INT, b INT, key(a)); CREATE TABLE t2(a INT, b INT, key(a));
INSERT INTO t2 SELECT seq, seq from seq_1_to_100; INSERT INTO t2 SELECT seq, seq from seq_1_to_100;
#enable after fix MDEV-27871
SET OPTIMIZER_TRACE=1; SET OPTIMIZER_TRACE=1;
EXPLAIN SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t2.b; EXPLAIN SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t2.b;
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE; select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment