1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Removing MDEV-27871 from tastcases because it is not a bug

This commit is contained in:
Lena Startseva
2024-04-22 17:53:06 +07:00
parent 55db59f16d
commit 9e74a7f4f3
112 changed files with 3523 additions and 3949 deletions

View File

@ -1293,11 +1293,9 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
# enable view-protocol after fix MDEV-27871 --disable_service_connection
--disable_view_protocol SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
--enable_service_connection
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id;
--enable_view_protocol
DROP TABLE t1; DROP TABLE t1;

View File

@ -1,7 +1,3 @@
#remove this include after fix MDEV-27871
# maybe some tests need to be excluded separately after fix
--source include/no_view_protocol.inc
SET TIME_ZONE = _latin1 '+03:00'; SET TIME_ZONE = _latin1 '+03:00';
--echo # --echo #
@ -464,6 +460,7 @@ show create table t1;
drop table t1; drop table t1;
--disable_ps2_protocol --disable_ps2_protocol
--disable_view_protocol
# Ensure that row_count() value is reset after drop table. # Ensure that row_count() value is reset after drop table.
select 1; select 1;
select hex(concat(row_count())); select hex(concat(row_count()));
@ -475,6 +472,7 @@ select hex(concat(found_rows()));
create table t1 as select concat(found_rows()) as c1; create table t1 as select concat(found_rows()) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
--enable_view_protocol
--enable_ps2_protocol --enable_ps2_protocol
create table t1 as select concat(uuid_short()) as c1; create table t1 as select concat(uuid_short()) as c1;
@ -664,71 +662,71 @@ create table t1 as select concat(Dimension(GeomFromText('LINSTRING(0 0,10 10)'))
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
@ -874,7 +872,7 @@ create table t1 as select concat(sec_to_time(2378)) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
@ -894,12 +892,12 @@ create table t1 as select concat(from_unixtime(1111885200)) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;
select * from t1; select * from t1;
@ -1646,9 +1644,11 @@ INSERT INTO t1 VALUES (1234567);
SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1; SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1;
SELECT GROUP_CONCAT(IF(a,a,'')) FROM t1; SELECT GROUP_CONCAT(IF(a,a,'')) FROM t1;
SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1; SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1;
--disable_view_protocol
--enable_metadata --enable_metadata
SELECT COALESCE(a,'') FROM t1 GROUP BY 1; SELECT COALESCE(a,'') FROM t1 GROUP BY 1;
--disable_metadata --disable_metadata
--enable_view_protocol
--echo # All columns must be VARCHAR(9) with the same length: --echo # All columns must be VARCHAR(9) with the same length:
--disable_warnings --disable_warnings
CREATE TABLE t2 AS CREATE TABLE t2 AS
@ -1764,15 +1764,17 @@ SELECT
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
DROP TABLE t1; DROP TABLE t1;
--enable_metadata
# PS protocol gives different "Max length" value for DATETIME. # PS protocol gives different "Max length" value for DATETIME.
--disable_ps_protocol --disable_ps_protocol
--disable_view_protocol
--enable_metadata
SELECT SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1, DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
--disable_metadata --disable_metadata
--enable_view_protocol
--enable_ps_protocol --enable_ps_protocol
SELECT SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,

View File

@ -52,14 +52,13 @@ DROP TABLE t1;
--echo # --echo #
--echo # IF, CASE, LEAST --echo # IF, CASE, LEAST
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol eval SELECT IF('abc' COLLATE $coll = 'abc ', 'pad', 'nopad') as exp;
eval SELECT IF('abc' COLLATE $coll = 'abc ', 'pad', 'nopad'); eval SELECT CASE 'abc' COLLATE $coll WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
eval SELECT CASE 'abc' COLLATE $coll WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; eval SELECT CASE WHEN 'abc' COLLATE $coll = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
eval SELECT CASE WHEN 'abc' COLLATE $coll = 'abc ' THEN 'pad' ELSE 'nopad' END; eval SELECT HEX(LEAST('abc ' COLLATE $coll, 'abc ')) as exp;
eval SELECT HEX(LEAST('abc ' COLLATE $coll, 'abc ')); eval SELECT HEX(GREATEST('abc ' COLLATE $coll, 'abc ')) as exp;
eval SELECT HEX(GREATEST('abc ' COLLATE $coll, 'abc '));
--enable_view_protocol
--echo # --echo #
--echo # Collation mix --echo # Collation mix
--echo # --echo #

View File

@ -3,10 +3,7 @@
--echo # --echo #
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
# enable view-protocol after fix MDEV-27871 SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
--disable_view_protocol
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
--enable_view_protocol
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1; SHOW COLUMNS FROM t1;
INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');

View File

@ -2,11 +2,6 @@
# Tests with the utf8mb4 character set # Tests with the utf8mb4 character set
# #
# Tests will be skipped for the view protocol because the view protocol uses
# an additional util connection and don't use for this nessesary configurations
# Also need to resolve MDEV-27871
-- source include/no_view_protocol.inc
--source include/default_optimizer_switch.inc --source include/default_optimizer_switch.inc
--disable_warnings --disable_warnings
drop table if exists t1,t2; drop table if exists t1,t2;
@ -31,26 +26,26 @@ select locate('HE','hello' collate utf8mb4_bin);
select locate('HE','hello' collate utf8mb4_bin,2); select locate('HE','hello' collate utf8mb4_bin,2);
select locate('LO','hello' collate utf8mb4_bin,2); select locate('LO','hello' collate utf8mb4_bin,2);
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) as exp;
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) as exp;
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) as exp;
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) as exp;
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) as exp;
select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1); select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1) as exp;
select 'a' like 'a'; select 'a' like 'a';
select 'A' like 'a'; select 'A' like 'a';
select 'A' like 'a' collate utf8mb4_bin; select 'A' like 'a' collate utf8mb4_bin;
select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%'); select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') as exp;
# Bug #6040: can't retrieve records with umlaut # Bug #6040: can't retrieve records with umlaut
# characters in case insensitive manner. # characters in case insensitive manner.
# Case insensitive search LIKE comparison # Case insensitive search LIKE comparison
# was broken for multibyte characters: # was broken for multibyte characters:
select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4); select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4) as exp;
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
# #
# Check the following: # Check the following:
@ -666,6 +661,7 @@ DROP TABLE t1;
# #
# Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table # Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table
# #
--disable_service_connection
SET NAMES latin1; SET NAMES latin1;
eval CREATE TABLE t1 ( eval CREATE TABLE t1 (
id int unsigned NOT NULL auto_increment, id int unsigned NOT NULL auto_increment,
@ -682,6 +678,7 @@ SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest");
SELECT id, term FROM t1 where (list_id = 1) AND (term = "test<EFBFBD>test"); SELECT id, term FROM t1 where (list_id = 1) AND (term = "test<EFBFBD>test");
DROP TABLE t1; DROP TABLE t1;
} }
--enable_service_connection
# #
# Bug #6019 SELECT tries to use too short prefix index on utf8mb4 data # Bug #6019 SELECT tries to use too short prefix index on utf8mb4 data
@ -747,10 +744,10 @@ drop table t1;
# #
# Bug#22638 SOUNDEX broken for international characters # Bug#22638 SOUNDEX broken for international characters
# #
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
select soundex(_utf8mb4 0xD091D092D093); select soundex(_utf8mb4 0xD091D092D093) as exp;
select hex(soundex(_utf8mb4 0xD091D092D093)); select hex(soundex(_utf8mb4 0xD091D092D093)) as exp;
SET collation_connection='utf8mb4_general_ci'; SET collation_connection='utf8mb4_general_ci';
@ -786,7 +783,7 @@ drop table t1;
# #
# Bug#8385: utf8mb4_general_ci treats Cyrillic letters I and SHORT I as the same # Bug#8385: utf8mb4_general_ci treats Cyrillic letters I and SHORT I as the same
# #
select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4); select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4) as exp;
# #
# Bugs#5980: NULL requires a characterset in a union # Bugs#5980: NULL requires a characterset in a union
@ -1191,6 +1188,7 @@ DROP TABLE t1;
# (see bug #16674 as well) # (see bug #16674 as well)
# #
--disable_service_connection
SET NAMES latin2; SET NAMES latin2;
if (!$is_heap) if (!$is_heap)
@ -1220,6 +1218,7 @@ SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN
DROP TABLE t1; DROP TABLE t1;
} }
--enable_service_connection
# #
# Bug 20709: problem with utf8mb4 fields in temporary tables # Bug 20709: problem with utf8mb4 fields in temporary tables
@ -1420,8 +1419,11 @@ set names utf8mb4;
eval create table t1 (a varchar(10) character set latin1, b int) engine $engine; eval create table t1 (a varchar(10) character set latin1, b int) engine $engine;
insert into t1 values ('a',1); insert into t1 values ('a',1);
select concat(a, if(b>10, N'x', N'y')) from t1; select concat(a, if(b>10, N'x', N'y')) from t1;
#Incorrect collation in error message with view protocol
--disable_view_protocol
--error 1267 --error 1267
select concat(a, if(b>10, N'æ', N'ß')) from t1; select concat(a, if(b>10, N'æ', N'ß')) from t1;
--enable_view_protocol
drop table t1; drop table t1;
# Conversion tests for character set introducers # Conversion tests for character set introducers

View File

@ -1,17 +1,15 @@
SET SESSION character_set_connection=latin2; SET SESSION character_set_connection=latin2;
SET SESSION character_set_client=cp1250; SET SESSION character_set_client=cp1250;
--disable_service_connection
--echo # --echo #
--echo # Test litteral --echo # Test litteral
--echo # --echo #
#enable view protocol after fix MDEV-27871 and # For "--view-protocol" NULLIF('','') converts to nullif(NULL,NULL)
# it is necessary that the view protocol uses the same connection, # in view definition and CHARSET(nullif(NULL,NULL)) returns 'binary'.
# not util connection # Also view does not allow columns with the same name,
# so it uses generated names
--disable_view_protocol --disable_view_protocol
SET sql_mode=@mode; SET sql_mode=@mode;
select @@sql_mode; select @@sql_mode;
SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x');
@ -21,7 +19,6 @@ SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST
SELECT CHARSET(NULLIF('','')),NULLIF('',''); SELECT CHARSET(NULLIF('','')),NULLIF('','');
--echo # --echo #
--echo # Test NCHAR litteral --echo # Test NCHAR litteral
--echo # --echo #
@ -33,7 +30,6 @@ SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
--echo # --echo #
--echo # Test CHARSET prefix litteral --echo # Test CHARSET prefix litteral
--echo # --echo #
@ -63,12 +59,12 @@ SELECT '' '' '';
SELECT '' '' '',CHARSET('' '' ''); SELECT '' '' '',CHARSET('' '' '');
SELECT _latin1'' '' '',CHARSET(_latin1'' '' ''); SELECT _latin1'' '' '',CHARSET(_latin1'' '' '');
SELECT N'' '' '',CHARSET(N'' '' ''); SELECT N'' '' '',CHARSET(N'' '' '');
--enable_view_protocol --enable_view_protocol
--echo # --echo #
--echo # UNION - implicit group by --echo # UNION - implicit group by
--echo # --echo #
--disable_service_connection
SELECT 1, null SELECT 1, null
UNION UNION
SELECT 1 , '' SELECT 1 , ''
@ -84,16 +80,10 @@ UNION
SELECT 1 , _cp1250 '' SELECT 1 , _cp1250 ''
ORDER BY 1; ORDER BY 1;
# it is necessary that the view protocol uses the same connection,
# not util connection
--disable_view_protocol
SELECT NULLIF(_cp1250 '',_cp1250 '') SELECT NULLIF(_cp1250 '',_cp1250 '')
UNION UNION
SELECT NULLIF(N'',N''); SELECT NULLIF(N'',N'');
--enable_view_protocol
--error ER_CANT_AGGREGATE_2COLLATIONS --error ER_CANT_AGGREGATE_2COLLATIONS
SELECT 1 , _latin2 '' SELECT 1 , _latin2 ''
UNION UNION
@ -131,5 +121,4 @@ EXPLAIN EXTENDED SELECT '';
EXPLAIN EXTENDED SELECT _latin1''; EXPLAIN EXTENDED SELECT _latin1'';
EXPLAIN EXTENDED SELECT N''; EXPLAIN EXTENDED SELECT N'';
EXPLAIN EXTENDED SELECT '' ''; EXPLAIN EXTENDED SELECT '' '';
--enable_service_connection --enable_service_connection

View File

@ -119,28 +119,25 @@ CALL p1(-1, 'GeometryCollection(Point(9 9),LineString(1 5,0 0),Polygon((2 2,2 8,
--enable_query_log --enable_query_log
#enable after fix MDEV-27871
--disable_view_protocol
SELECT ST_CONTAINS( SELECT ST_CONTAINS(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)')); GeomFromText('POINT(5 10)')) as geom;
SELECT AsText(ST_UNION( SELECT AsText(ST_UNION(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)'))); GeomFromText('POINT(5 10)'))) as geom;
DROP PROCEDURE p1; DROP PROCEDURE p1;
--echo # --echo #
--echo # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE --echo # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE
--echo # --echo #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)) as geom;
--echo # --echo #
--echo # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL --echo # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL
--echo # --echo #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)) as geom;
--enable_view_protocol
--echo # --echo #
--echo # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER --echo # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER
@ -148,22 +145,19 @@ SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3
DO ST_BUFFER(ST_GEOMCOLLFROMTEXT('linestring(1 1,2 2)'),''); DO ST_BUFFER(ST_GEOMCOLLFROMTEXT('linestring(1 1,2 2)'),'');
#enable after fix MDEV-27871
--disable_view_protocol
SELECT ST_WITHIN( SELECT ST_WITHIN(
LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '), LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '),
ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '), ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))) as st;
SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))) as st;
SELECT ST_NUMINTERIORRINGS( SELECT ST_NUMINTERIORRINGS(
ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '), ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '),
SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))); SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))) as st;
SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'),
SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))); SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))) as st;
--enable_view_protocol

View File

@ -301,31 +301,28 @@ select count(*) from t0;
# Test for BUG#4177 # Test for BUG#4177
# enable view-protocol after fix MDEV-27871
--disable_view_protocol
drop table t4; drop table t4;
create table t4 (a int); create table t4 (a int);
insert into t4 values (1),(4),(3); insert into t4 values (1),(4),(3);
set @save_join_buffer_size=@@join_buffer_size; set @save_join_buffer_size=@@join_buffer_size;
set join_buffer_size= 4096; set join_buffer_size= 4096;
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 < 500000 or A.key2 < 3) where (A.key1 < 500000 or A.key2 < 3)
and (B.key1 < 500000 or B.key2 < 3); and (B.key1 < 500000 or B.key2 < 3);
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 < 500000 or A.key2 < 3) where (A.key1 < 500000 or A.key2 < 3)
and (B.key1 < 500000 or B.key2 < 3); and (B.key1 < 500000 or B.key2 < 3);
update t0 set key1=1; update t0 set key1=1;
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 = 1 or A.key2 = 1) where (A.key1 = 1 or A.key2 = 1)
and (B.key1 = 1 or B.key2 = 1); and (B.key1 = 1 or B.key2 = 1);
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 = 1 or A.key2 = 1) where (A.key1 = 1 or A.key2 = 1)
and (B.key1 = 1 or B.key2 = 1); and (B.key1 = 1 or B.key2 = 1);
@ -338,12 +335,12 @@ update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
# scan cost estimates depend on ha_myisam::ref_length) # scan cost estimates depend on ha_myisam::ref_length)
--replace_column 9 # --replace_column 9 #
--replace_result "4,4,4,4,4,4,4" X "4,4,4,4,4,4" X "i6,i7" "i6,i7?" "i6" "i6,i7?" --replace_result "4,4,4,4,4,4,4" X "4,4,4,4,4,4" X "i6,i7" "i6,i7?" "i6" "i6,i7?"
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A straight_join t0 as B from t0 as A straight_join t0 as B
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1) where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1); and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A straight_join t0 as B from t0 as A straight_join t0 as B
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1) where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1); and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
@ -353,8 +350,6 @@ set join_buffer_size= @save_join_buffer_size;
drop table t0, t1, t2, t3, t4; drop table t0, t1, t2, t3, t4;
--enable_view_protocol
# BUG#16166 # BUG#16166
CREATE TABLE t1 ( CREATE TABLE t1 (
cola char(3) not null, colb char(3) not null, filler char(200), cola char(3) not null, colb char(3) not null, filler char(200),

View File

@ -4927,20 +4927,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -5065,20 +5065,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'big5_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'big5_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'big5_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -5204,20 +5204,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -5342,20 +5342,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'big5_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'big5_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'big5_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'big5_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -1131,8 +1131,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1141,8 +1141,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1151,8 +1151,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
30 30
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1161,8 +1161,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) exp
31 31
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
@ -1171,8 +1171,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) exp
30 30
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1181,8 +1181,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(21) DEFAULT NULL `c1` varbinary(21) DEFAULT NULL
) 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 hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) exp
31 31
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1191,8 +1191,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(2) DEFAULT NULL `c1` varbinary(2) DEFAULT NULL
) 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 hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) exp
30 30
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
@ -1201,13 +1201,13 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(2) DEFAULT NULL `c1` varbinary(2) DEFAULT NULL
) 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 hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) exp
31 31
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
hex(concat(x(GeomFromText('Point(1 2)')))) exp
31 31
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1216,8 +1216,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(23) DEFAULT NULL `c1` varbinary(23) DEFAULT NULL
) 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 hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
hex(concat(y(GeomFromText('Point(1 2)')))) exp
32 32
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1226,8 +1226,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(23) DEFAULT NULL `c1` varbinary(23) DEFAULT NULL
) 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 hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) exp
31 31
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
@ -1236,8 +1236,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(23) DEFAULT NULL `c1` varbinary(23) DEFAULT NULL
) 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 hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) exp
31 31
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
@ -1246,8 +1246,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(23) DEFAULT NULL `c1` varbinary(23) DEFAULT NULL
) 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 hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
hex(concat(GeometryType(GeomFromText('Point(1 2)')))) exp
504F494E54 504F494E54
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1256,8 +1256,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(20) DEFAULT NULL `c1` varbinary(20) DEFAULT NULL
) 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 hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
hex(concat(AsText(GeomFromText('Point(1 2)')))) exp
504F494E542831203229 504F494E542831203229
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1526,8 +1526,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(10) DEFAULT NULL `c1` varbinary(10) DEFAULT NULL
) 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 hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) exp
32343A30303A3030 32343A30303A3030
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
@ -1566,8 +1566,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(19) DEFAULT NULL `c1` varbinary(19) DEFAULT NULL
) 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 hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) exp
323030332D31322D33312032303A30303A3030 323030332D31322D33312032303A30303A3030
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
@ -1576,8 +1576,8 @@ t1 CREATE TABLE `t1` (
`c1` varbinary(19) DEFAULT NULL `c1` varbinary(19) DEFAULT NULL
) 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 hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) exp
323030342D30312D30322031323A30303A3030 323030342D30312D30322031323A30303A3030
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;

View File

@ -1,7 +1,3 @@
#remove this include after fix MDEV-27871
--source include/no_view_protocol.inc
set names binary; set names binary;
--source include/ctype_numconv.inc --source include/ctype_numconv.inc
@ -234,22 +230,30 @@ SET NAMES latin1,character_set_connection=binary;
--echo # Binary format, binary result --echo # Binary format, binary result
SELECT DATE_FORMAT('2004-02-02','%W'); SELECT DATE_FORMAT('2004-02-02','%W');
SELECT HEX(DATE_FORMAT('2004-02-02','%W')); SELECT HEX(DATE_FORMAT('2004-02-02','%W'));
#Enable after fix MDEV-33936
--disable_view_protocol
SELECT DATE_FORMAT(TIME'-01:01:01','%h'); SELECT DATE_FORMAT(TIME'-01:01:01','%h');
SELECT HEX(DATE_FORMAT(TIME'-01:01:01','%h')); SELECT HEX(DATE_FORMAT(TIME'-01:01:01','%h'));
--enable_view_protocol
--echo # latin1 format, binary result --echo # latin1 format, binary result
SELECT DATE_FORMAT('2004-02-02',_latin1'%W'); SELECT DATE_FORMAT('2004-02-02',_latin1'%W');
SELECT HEX(DATE_FORMAT('2004-02-02',_latin1'%W')); SELECT HEX(DATE_FORMAT('2004-02-02',_latin1'%W'));
#Enable after fix MDEV-33936
--disable_view_protocol
SELECT DATE_FORMAT(TIME'-01:01:01',_latin1'%h'); SELECT DATE_FORMAT(TIME'-01:01:01',_latin1'%h');
SELECT HEX(DATE_FORMAT(TIME'-01:01:01',_latin1'%h')); SELECT HEX(DATE_FORMAT(TIME'-01:01:01',_latin1'%h'));
--enable_view_protocol
--echo # Binary format, latin1 result --echo # Binary format, latin1 result
SET NAMES latin1; SET NAMES latin1;
SELECT DATE_FORMAT('2004-02-02',_binary'%W'); SELECT DATE_FORMAT('2004-02-02',_binary'%W');
SELECT HEX(DATE_FORMAT('2004-02-02',_binary'%W')); SELECT HEX(DATE_FORMAT('2004-02-02',_binary'%W'));
#Enable after fix MDEV-33936
--disable_view_protocol
SELECT DATE_FORMAT(TIME'-01:01:01',_binary'%h'); SELECT DATE_FORMAT(TIME'-01:01:01',_binary'%h');
SELECT HEX(DATE_FORMAT(TIME'-01:01:01',_binary'%h')); SELECT HEX(DATE_FORMAT(TIME'-01:01:01',_binary'%h'));
--enable_view_protocol
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #

View File

@ -1543,8 +1543,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1553,8 +1553,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1563,8 +1563,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
30 30
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1573,8 +1573,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) exp
31 31
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
@ -1583,8 +1583,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) exp
30 30
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1593,8 +1593,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(21) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(21) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) exp
31 31
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1603,8 +1603,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) exp
30 30
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
@ -1613,13 +1613,13 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) exp
31 31
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
hex(concat(x(GeomFromText('Point(1 2)')))) exp
31 31
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1628,8 +1628,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
hex(concat(y(GeomFromText('Point(1 2)')))) exp
32 32
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1638,8 +1638,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) exp
31 31
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
@ -1648,8 +1648,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) exp
31 31
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
@ -1658,8 +1658,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
hex(concat(GeometryType(GeomFromText('Point(1 2)')))) exp
504F494E54 504F494E54
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1668,8 +1668,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(20) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(20) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
hex(concat(AsText(GeomFromText('Point(1 2)')))) exp
504F494E542831203229 504F494E542831203229
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1938,8 +1938,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) exp
32343A30303A3030 32343A30303A3030
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
@ -1978,8 +1978,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) exp
323030332D31322D33312032303A30303A3030 323030332D31322D33312032303A30303A3030
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
@ -1988,8 +1988,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET cp1251 COLLATE cp1251_general_ci DEFAULT NULL
) 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 hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) exp
323030342D30312D30322031323A30303A3030 323030342D30312D30322031323A30303A3030
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;

View File

@ -135,20 +135,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -273,20 +273,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'cp932_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'cp932_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'cp932_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -412,20 +412,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -550,20 +550,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'cp932_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'cp932_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'cp932_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'cp932_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -4,9 +4,6 @@
--echo # USED. --echo # USED.
--echo # --echo #
#remove this include in 10.6 version
--source include/no_view_protocol.inc
SET @old_character_set_client= @@character_set_client; SET @old_character_set_client= @@character_set_client;
SET @old_character_set_connection= @@character_set_connection; SET @old_character_set_connection= @@character_set_connection;
SET @old_character_set_results= @@character_set_results; SET @old_character_set_results= @@character_set_results;

View File

@ -34029,20 +34029,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -34167,20 +34167,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'eucjpms_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'eucjpms_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'eucjpms_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -34306,20 +34306,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -34444,20 +34444,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'eucjpms_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'eucjpms_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'eucjpms_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'eucjpms_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -25547,20 +25547,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -25685,20 +25685,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'euckr_korean_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'euckr_korean_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'euckr_korean_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -25824,20 +25824,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -25962,20 +25962,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'euckr_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'euckr_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'euckr_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'euckr_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -4617,20 +4617,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4755,20 +4755,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gb2312_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gb2312_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gb2312_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4894,20 +4894,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -5032,20 +5032,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gb2312_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gb2312_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gb2312_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gb2312_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -6085,20 +6085,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6223,20 +6223,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gbk_chinese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gbk_chinese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gbk_chinese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6362,20 +6362,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6500,20 +6500,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'gbk_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'gbk_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'gbk_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'gbk_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -446,13 +446,10 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences --echo # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol
set sql_mode=''; set sql_mode='';
SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) as exp; SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) as exp;
SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)) as exp; 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
--echo # --echo #
--echo # End of 10.1 tests --echo # End of 10.1 tests

View File

@ -518,8 +518,8 @@ SELECT '\%b' LIKE '%\%';
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR)) @@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
latin1 F7 latin1 F7
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)); SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) exp
2001-01-01 2001-01-01
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1; SHOW COLUMNS FROM t1;
@ -1852,8 +1852,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1862,8 +1862,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1872,8 +1872,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
30 30
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -1882,8 +1882,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) exp
31 31
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
@ -1892,8 +1892,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) exp
30 30
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1902,8 +1902,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(21) DEFAULT NULL `c1` varchar(21) DEFAULT NULL
) 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 hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) exp
31 31
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -1912,8 +1912,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) DEFAULT NULL `c1` varchar(2) DEFAULT NULL
) 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 hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) exp
30 30
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
@ -1922,13 +1922,13 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) DEFAULT NULL `c1` varchar(2) DEFAULT NULL
) 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 hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) exp
31 31
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
hex(concat(x(GeomFromText('Point(1 2)')))) exp
31 31
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1937,8 +1937,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) DEFAULT NULL `c1` varchar(23) DEFAULT NULL
) 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 hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
hex(concat(y(GeomFromText('Point(1 2)')))) exp
32 32
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1947,8 +1947,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) DEFAULT NULL `c1` varchar(23) DEFAULT NULL
) 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 hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) exp
31 31
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
@ -1957,8 +1957,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) DEFAULT NULL `c1` varchar(23) DEFAULT NULL
) 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 hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) exp
31 31
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
@ -1967,8 +1967,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) DEFAULT NULL `c1` varchar(23) DEFAULT NULL
) 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 hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
hex(concat(GeometryType(GeomFromText('Point(1 2)')))) exp
504F494E54 504F494E54
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -1977,8 +1977,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(20) DEFAULT NULL `c1` varchar(20) DEFAULT NULL
) 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 hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
hex(concat(AsText(GeomFromText('Point(1 2)')))) exp
504F494E542831203229 504F494E542831203229
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -2247,8 +2247,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) DEFAULT NULL `c1` varchar(10) DEFAULT NULL
) 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 hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) exp
32343A30303A3030 32343A30303A3030
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
@ -2287,8 +2287,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) DEFAULT NULL `c1` varchar(19) DEFAULT NULL
) 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 hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) exp
323030332D31322D33312032303A30303A3030 323030332D31322D33312032303A30303A3030
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
@ -2297,8 +2297,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) DEFAULT NULL `c1` varchar(19) DEFAULT NULL
) 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 hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) exp
323030342D30312D30322031323A30303A3030 323030342D30312D30322031323A30303A3030
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;
@ -8404,20 +8404,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -8542,20 +8542,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'latin1_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'latin1_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'latin1_swedish_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -8681,20 +8681,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -8819,20 +8819,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'latin1_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'latin1_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'latin1_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'latin1_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -139,8 +139,10 @@ select hex(cast(_ascii 0x7f as char(1) character set latin1));
--echo # --echo #
--echo # Bug#58022 ... like ... escape export_set ( ... ) crashes when export_set returns warnings --echo # Bug#58022 ... like ... escape export_set ( ... ) crashes when export_set returns warnings
--echo # --echo #
#view-protocol doubles warning message
--disable_view_protocol
SELECT '' LIKE '' ESCAPE EXPORT_SET(1, 1, 1, 1, ''); SELECT '' LIKE '' ESCAPE EXPORT_SET(1, 1, 1, 1, '');
--enable_view_protocol
--echo End of 5.1 tests --echo End of 5.1 tests
@ -223,6 +225,8 @@ SET NAMES latin1 COLLATE latin1_bin;
--echo # MDEV-6752 Trailing incomplete characters are not replaced to question marks on conversion --echo # MDEV-6752 Trailing incomplete characters are not replaced to question marks on conversion
--echo # --echo #
SET NAMES utf8, character_set_connection=latin1; SET NAMES utf8, character_set_connection=latin1;
--disable_service_connection
SELECT '<27>'; SELECT '<27>';
SELECT HEX('<27>'); SELECT HEX('<27>');
SELECT HEX(CAST('<27>' AS CHAR CHARACTER SET utf8)); SELECT HEX(CAST('<27>' AS CHAR CHARACTER SET utf8));
@ -241,6 +245,7 @@ INSERT IGNORE INTO t1 VALUES ('
SHOW WARNINGS; SHOW WARNINGS;
SELECT HEX(a),a FROM t1; SELECT HEX(a),a FROM t1;
DROP TABLE t1; DROP TABLE t1;
--enable_service_connection
--echo # --echo #
--echo # MDEV-7629 Regression: Bit and hex string literals changed column names in 10.0.14 --echo # MDEV-7629 Regression: Bit and hex string literals changed column names in 10.0.14

View File

@ -80,50 +80,50 @@ select * from t1 where c1='b';
c1 c1
a a
drop table t1; drop table t1;
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_ci)); SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_ci)) as exp;
hex(weight_string(_utf8mb4'a' collate utf8mb4_test_ci)) exp
120F 120F
SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_ci)) exp
314A 314A
SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)) as exp;
hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci) hex(lower(@a)) hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci) exp
F0909080 F09090A8 F0909080 F09090A8
SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)) as exp;
hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci) hex(upper(@a)) hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci) exp
F09090A8 F0909080 F09090A8 F0909080
SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)) as exp;
hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci) hex(lower(@a)) hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci) exp
E2B080 E2B0B0 E2B080 E2B0B0
SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)) as exp;
hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci) hex(upper(@a)) hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci) exp
E2B0B0 E2B080 E2B0B0 E2B080
SELECT hex(weight_string(convert(_utf32 0x61 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x61 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x61 using utf8mb4) collate utf8mb4_test_ci)) exp
120F 120F
SELECT hex(weight_string(convert(_utf32 0x62 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x62 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x62 using utf8mb4) collate utf8mb4_test_ci)) exp
120F 120F
SELECT hex(weight_string(convert(_utf32 0x10062 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10062 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x10062 using utf8mb4) collate utf8mb4_test_ci)) exp
120F 120F
SELECT hex(weight_string(convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci)) exp
30D2 30D2
SELECT hex(weight_string(convert(_utf32 0x100400 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x100400 using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_utf32 0x100400 using utf8mb4) collate utf8mb4_test_ci)) exp
30D2 30D2
SELECT hex(weight_string(_utf8mb4 0x64 collate utf8mb4_test_ci)); SELECT hex(weight_string(_utf8mb4 0x64 collate utf8mb4_test_ci)) as exp;
hex(weight_string(_utf8mb4 0x64 collate utf8mb4_test_ci)) exp
1250 1250
SELECT hex(weight_string(convert(_ucs2 0x0064017e using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0064017e using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_ucs2 0x0064017e using utf8mb4) collate utf8mb4_test_ci)) exp
1251 1251
SELECT hex(weight_string(convert(_ucs2 0x0044017e using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0044017e using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_ucs2 0x0044017e using utf8mb4) collate utf8mb4_test_ci)) exp
1251 1251
SELECT hex(weight_string(convert(_ucs2 0x0044017d using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0044017d using utf8mb4) collate utf8mb4_test_ci)) as exp;
hex(weight_string(convert(_ucs2 0x0044017d using utf8mb4) collate utf8mb4_test_ci)) exp
1251 1251
CREATE TABLE t1 ( CREATE TABLE t1 (
col1 varchar(100) character set utf8 collate utf8_test_ci col1 varchar(100) character set utf8 collate utf8_test_ci
@ -528,23 +528,23 @@ SHOW COLLATION LIKE 'utf8_phone_ci';
Collation Charset Id Default Compiled Sortlen Collation Charset Id Default Compiled Sortlen
utf8_phone_ci utf8 352 8 utf8_phone_ci utf8 352 8
SET NAMES utf8; SET NAMES utf8;
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)); SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)) as exp;
hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)) exp
0E33 0E33
SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_400_ci)); SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_400_ci)) as exp;
hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_400_ci)) exp
FFFD FFFD
SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)) as exp;
hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci) hex(lower(@a)) hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci) exp
F0909080 F0909080 F0909080 F0909080
SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)) as exp;
hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci) hex(upper(@a)) hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci) exp
F09090A8 F09090A8 F09090A8 F09090A8
SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)) as exp;
hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci) hex(lower(@a)) hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci) exp
E2B080 E2B080 E2B080 E2B080
SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)) as exp;
hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci) hex(upper(@a)) hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci) exp
E2B0B0 E2B0B0 E2B0B0 E2B0B0
# #
# WL#5624 Collation customization improvements # WL#5624 Collation customization improvements
@ -1014,9 +1014,9 @@ HEX(WEIGHT_STRING(a)) HEX(CONVERT(a USING ucs2)) HEX(a)
15D3 09B809CD E0A6B8E0A78D 15D3 09B809CD E0A6B8E0A78D
15D4 09B909CD E0A6B9E0A78D 15D4 09B909CD E0A6B9E0A78D
SELECT HEX(WEIGHT_STRING(a)) as wa, SELECT HEX(WEIGHT_STRING(a)) as wa,
GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a), BINARY a) GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a), BINARY a) as ha
FROM t1 GROUP BY a ORDER BY a; FROM t1 GROUP BY a ORDER BY a;
wa GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a), BINARY a) wa ha
15A2 0985 15A2 0985
15A3 0986 15A3 0986
15A4 0987 15A4 0987

View File

@ -3,9 +3,6 @@
--source include/have_utf16.inc --source include/have_utf16.inc
--source include/have_utf32.inc --source include/have_utf32.inc
#remove this include after fix MDEV-27871
--source include/no_view_protocol.inc
--disable_query_log --disable_query_log
call mtr.add_suppression("Charset id.*trying to replace"); call mtr.add_suppression("Charset id.*trying to replace");
--enable_query_log --enable_query_log
@ -69,25 +66,25 @@ select * from t1 where c1='b';
drop table t1; drop table t1;
# make sure utf8_test_ci is Unicode-5.0.0 # make sure utf8_test_ci is Unicode-5.0.0
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_ci)); SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_ci), hex(lower(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_ci), hex(upper(@a)) as exp;
# check that it works with supplementary characters # check that it works with supplementary characters
SELECT hex(weight_string(convert(_utf32 0x61 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x61 using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x62 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x62 using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x10062 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10062 using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x100400 using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_utf32 0x100400 using utf8mb4) collate utf8mb4_test_ci)) as exp;
# check contractions with non-ascii characters # check contractions with non-ascii characters
SELECT hex(weight_string(_utf8mb4 0x64 collate utf8mb4_test_ci)); SELECT hex(weight_string(_utf8mb4 0x64 collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_ucs2 0x0064017e using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0064017e using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_ucs2 0x0044017e using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0044017e using utf8mb4) collate utf8mb4_test_ci)) as exp;
SELECT hex(weight_string(convert(_ucs2 0x0044017d using utf8mb4) collate utf8mb4_test_ci)); SELECT hex(weight_string(convert(_ucs2 0x0044017d using utf8mb4) collate utf8mb4_test_ci)) as exp;
# #
@ -188,10 +185,12 @@ show collation like '%test%';
show collation like 'ucs2_vn_ci'; show collation like 'ucs2_vn_ci';
create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci); create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
insert into t1 values (0x0061); insert into t1 values (0x0061);
--disable_view_protocol
--enable_metadata --enable_metadata
set @@character_set_results=NULL; set @@character_set_results=NULL;
select * from t1; select * from t1;
--disable_metadata --disable_metadata
--enable_view_protocol
drop table t1; drop table t1;
# #
@ -211,12 +210,12 @@ SHOW COLLATION LIKE 'utf8_phone_ci';
SET NAMES utf8; SET NAMES utf8;
# make sure utf8mb4_test_400_ci is Unicode-4.0.0 based # make sure utf8mb4_test_400_ci is Unicode-4.0.0 based
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)); SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)) as exp;
SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_400_ci)); SELECT hex(weight_string(convert(_utf32 0x10002 using utf8mb4) collate utf8mb4_test_400_ci)) as exp;
SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x10400 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x10428 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)); SELECT hex(@a:=convert(_utf32 0x2C00 using utf8mb4) collate utf8mb4_test_400_ci), hex(lower(@a)) as exp;
SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)); SELECT hex(@a:=convert(_utf32 0x2C30 using utf8mb4) collate utf8mb4_test_400_ci), hex(upper(@a)) as exp;
--echo # --echo #
--echo # WL#5624 Collation customization improvements --echo # WL#5624 Collation customization improvements
@ -280,9 +279,14 @@ DROP TABLE t1;
SET NAMES utf8 COLLATE utf8_5624_2; SET NAMES utf8 COLLATE utf8_5624_2;
SHOW WARNINGS; SHOW WARNINGS;
# "--view-protocol" generates a dublicate error message in ctype_ldml_log.err
# In one of the following cases, the number of similar error messages is counted,
# so doubling the error causes the case to fail
--disable_view_protocol
--error ER_UNKNOWN_COLLATION --error ER_UNKNOWN_COLLATION
SELECT _utf8'test' COLLATE utf8_5624_2; SELECT _utf8'test' COLLATE utf8_5624_2;
SHOW WARNINGS; SHOW WARNINGS;
--enable_view_protocol
--echo # --echo #
--echo # WL#5624, reset before primary ignorable --echo # WL#5624, reset before primary ignorable
@ -353,7 +357,7 @@ INSERT INTO t1 VALUES
SELECT HEX(WEIGHT_STRING(a)), HEX(CONVERT(a USING ucs2)), HEX(a) SELECT HEX(WEIGHT_STRING(a)), HEX(CONVERT(a USING ucs2)), HEX(a)
FROM t1 ORDER BY a, BINARY(a); FROM t1 ORDER BY a, BINARY(a);
SELECT HEX(WEIGHT_STRING(a)) as wa, SELECT HEX(WEIGHT_STRING(a)) as wa,
GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a), BINARY a) GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a), BINARY a) as ha
FROM t1 GROUP BY a ORDER BY a; FROM t1 GROUP BY a ORDER BY a;
DROP TABLE t1; DROP TABLE t1;
@ -405,7 +409,6 @@ perl;
close(FILE); close(FILE);
EOF EOF
--echo # --echo #
--echo # MDEV-8686 A user defined collation utf8_confusables doesn't work --echo # MDEV-8686 A user defined collation utf8_confusables doesn't work
--echo # --echo #
@ -508,6 +511,7 @@ SELECT HEX(a), REPLACE(a,' ','<SP>') FROM t1 ORDER BY a DESC;
DROP TABLE t1; DROP TABLE t1;
--disable_service_connection
SET NAMES utf8 COLLATE utf8_czech_test_w2; SET NAMES utf8 COLLATE utf8_czech_test_w2;
CREATE TABLE t1 AS SELECT SPACE(10) AS c1 LIMIT 0; CREATE TABLE t1 AS SELECT SPACE(10) AS c1 LIMIT 0;
--source include/ctype_unicode_latin.inc --source include/ctype_unicode_latin.inc
@ -609,6 +613,7 @@ SELECT 'chž'< 'i';
--error ER_UNKNOWN_COLLATION --error ER_UNKNOWN_COLLATION
SELECT 'a' COLLATE utf8_czech_test_bad_w2; SELECT 'a' COLLATE utf8_czech_test_bad_w2;
--enable_service_connection
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests

File diff suppressed because it is too large Load Diff

View File

@ -218,8 +218,8 @@ DROP TABLE t1;
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR)) @@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
sjis 8180 sjis 8180
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)); SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) exp
2001-01-01 2001-01-01
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1; SHOW COLUMNS FROM t1;
@ -18839,20 +18839,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -18977,20 +18977,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'sjis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'sjis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'sjis_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -19116,20 +19116,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -19254,20 +19254,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'sjis_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'sjis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'sjis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'sjis_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -3173,20 +3173,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -3311,20 +3311,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'swe7_swedish_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'swe7_swedish_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'swe7_swedish_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -3450,20 +3450,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -3588,20 +3588,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'swe7_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'swe7_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'swe7_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'swe7_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -3961,20 +3961,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4099,20 +4099,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'tis620_thai_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'tis620_thai_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'tis620_thai_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4238,20 +4238,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4376,20 +4376,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'tis620_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'tis620_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'tis620_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'tis620_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -10021,8 +10021,8 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x1011103910191004103A1038 /* cooked rice */), (_ucs2 0x1011103910191004103A1038 /* cooked rice */),
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
id IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) id exp
1 2259 108C 1 2259 108C
2 22593ACB 1037 2 22593ACB 1037
3 22593ACC 1038 3 22593ACC 1038
@ -12597,8 +12597,8 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x1011103910191004103A1038 /* cooked rice */), (_ucs2 0x1011103910191004103A1038 /* cooked rice */),
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
id IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) id exp
1 2259 108C 1 2259 108C
2 22593ACB 1037 2 22593ACB 1037
3 22593ACC 1038 3 22593ACC 1038

View File

@ -989,8 +989,8 @@ DROP TABLE t1;
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR)) @@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
ucs2 00F7 ucs2 00F7
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)); SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) exp
2001-01-01 2001-01-01
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1; SHOW COLUMNS FROM t1;
@ -2736,8 +2736,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
0032 0032
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -2746,8 +2746,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) exp
0032 0032
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -2756,8 +2756,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
0030 0030
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -2766,8 +2766,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) exp
0031 0031
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
@ -2776,8 +2776,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) exp
0030 0030
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -2786,8 +2786,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(21) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(21) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) exp
0031 0031
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -2796,8 +2796,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) exp
0030 0030
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
@ -2806,13 +2806,13 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) exp
0031 0031
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
hex(concat(x(GeomFromText('Point(1 2)')))) exp
0031 0031
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -2821,8 +2821,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
hex(concat(y(GeomFromText('Point(1 2)')))) exp
0032 0032
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -2831,8 +2831,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) exp
0031 0031
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
@ -2841,8 +2841,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) exp
0031 0031
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
@ -2851,8 +2851,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
hex(concat(GeometryType(GeomFromText('Point(1 2)')))) exp
0050004F0049004E0054 0050004F0049004E0054
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -2861,8 +2861,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(20) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(20) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
hex(concat(AsText(GeomFromText('Point(1 2)')))) exp
0050004F0049004E005400280031002000320029 0050004F0049004E005400280031002000320029
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -3131,8 +3131,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) exp
00320034003A00300030003A00300030 00320034003A00300030003A00300030
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
@ -3171,8 +3171,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) exp
0032003000300033002D00310032002D00330031002000320030003A00300030003A00300030 0032003000300033002D00310032002D00330031002000320030003A00300030003A00300030
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
@ -3181,8 +3181,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET ucs2 COLLATE ucs2_general_ci DEFAULT NULL
) 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 hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) exp
0032003000300034002D00300031002D00300032002000310032003A00300030003A00300030 0032003000300034002D00300031002D00300032002000310032003A00300030003A00300030
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;
@ -5872,20 +5872,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -6010,20 +6010,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_general_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -6149,20 +6149,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -6287,20 +6287,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_nopad_bin', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix

View File

@ -609,6 +609,7 @@ deallocate prepare stmt;
# #
# Bug#22638 SOUNDEX broken for international characters # Bug#22638 SOUNDEX broken for international characters
# #
--disable_service_connection
set names latin1; set names latin1;
set character_set_connection=ucs2; set character_set_connection=ucs2;
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb'); select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
@ -619,6 +620,7 @@ select hex(soundex(_ucs2 0x041004110412));
# Make sure that "U+00BF INVERTED QUESTION MARK" is not considered as letter # Make sure that "U+00BF INVERTED QUESTION MARK" is not considered as letter
select hex(soundex(_ucs2 0x00BF00C0)); select hex(soundex(_ucs2 0x00BF00C0));
set names latin1; set names latin1;
--enable_service_connection
# #
# Bug #14290: character_maximum_length for text fields # Bug #14290: character_maximum_length for text fields
@ -790,10 +792,12 @@ DROP TABLE t1;
--echo # Start of 5.5 tests --echo # Start of 5.5 tests
--echo # --echo #
--disable_service_connection
SET NAMES latin1; SET NAMES latin1;
SET collation_connection=ucs2_general_ci; SET collation_connection=ucs2_general_ci;
--source include/ctype_numconv.inc --source include/ctype_numconv.inc
SET NAMES latin1; SET NAMES latin1;
--enable_service_connection
--echo # --echo #
--echo # Bug #13832953 MY_STRNXFRM_UNICODE: ASSERTION `SRC' FAILED --echo # Bug #13832953 MY_STRNXFRM_UNICODE: ASSERTION `SRC' FAILED
@ -1031,8 +1035,10 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-9178 Wrong result for CAST(CONVERT('1IJ3' USING ucs2) AS SIGNED) --echo # MDEV-9178 Wrong result for CAST(CONVERT('1IJ3' USING ucs2) AS SIGNED)
--echo # --echo #
--disable_service_connection
SET NAMES utf8; SET NAMES utf8;
SELECT CAST(CONVERT('1IJ3' USING ucs2) AS SIGNED); SELECT CAST(CONVERT('1IJ3' USING ucs2) AS SIGNED);
--enable_service_connection
--echo # --echo #
--echo # End of 10.1 tests --echo # End of 10.1 tests
@ -1066,6 +1072,7 @@ EXECUTE IMMEDIATE @stmt;
--echo # --echo #
--echo # MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions --echo # MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions
--echo # --echo #
--disable_service_connection
SET NAMES utf8, collation_connection=ucs2_bin; SET NAMES utf8, collation_connection=ucs2_bin;
SET @stmt='SELECT COLLATION(''a'')'; SET @stmt='SELECT COLLATION(''a'')';
EXECUTE IMMEDIATE @stmt; EXECUTE IMMEDIATE @stmt;
@ -1093,6 +1100,7 @@ EXECUTE IMMEDIATE @stmt;
PREPARE stmt FROM @stmt; PREPARE stmt FROM @stmt;
EXECUTE stmt; EXECUTE stmt;
DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt;
--enable_service_connection
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests

View File

@ -100,20 +100,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -238,20 +238,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -377,20 +377,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -515,20 +515,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ucs2_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ucs2_unicode_520_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix

View File

@ -46,14 +46,14 @@ locate('LO','hello' collate ujis_bin,2)
select locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3); select locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3);
locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3) locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3)
2 2
select 0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%'); select 0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%') as exp;
0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%') exp
1 1
select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%'); select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') as exp;
_ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') exp
0 0
select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin; select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin as exp;
_ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin exp
0 0
select 'a' like 'a'; select 'a' like 'a';
'a' like 'a' 'a' like 'a'
@ -2534,8 +2534,8 @@ DROP TABLE t2;
# Bug#57257 Replace(ExtractValue(...)) causes MySQL crash # Bug#57257 Replace(ExtractValue(...)) causes MySQL crash
# #
SET NAMES utf8; SET NAMES utf8;
SELECT CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis); SELECT CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis) as exp;
CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis) exp
Warnings: Warnings:
Warning 1292 Truncated incorrect INTEGER value: 'a' Warning 1292 Truncated incorrect INTEGER value: 'a'
@ -26348,20 +26348,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -26486,20 +26486,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ujis_japanese_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ujis_japanese_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ujis_japanese_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -26625,20 +26625,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -26763,20 +26763,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'ujis_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'ujis_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'ujis_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'ujis_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -35,13 +35,10 @@ select locate('HE','hello' collate ujis_bin,2);
select locate('LO','hello' collate ujis_bin,2); select locate('LO','hello' collate ujis_bin,2);
select locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3); select locate(_ujis 0xa1a3,_ujis 0xa1a2a1a3);
select 0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%'); select 0xa1a2a1a3 like concat(_binary'%',0xa2a1,_binary'%') as exp;
select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%'); select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') as exp;
# enable view-protocol after fix MDEV-27871 select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin as exp;
--disable_view_protocol
select _ujis 0xa1a2a1a3 like concat(_ujis'%',_ujis 0xa2a1, _ujis'%') collate ujis_bin;
--disable_view_protocol
select 'a' like 'a'; select 'a' like 'a';
select 'A' like 'a'; select 'A' like 'a';
@ -1221,11 +1218,8 @@ DROP TABLE t2;
--echo # --echo #
--echo # Bug#57257 Replace(ExtractValue(...)) causes MySQL crash --echo # Bug#57257 Replace(ExtractValue(...)) causes MySQL crash
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol
SET NAMES utf8; SET NAMES utf8;
SELECT CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis); SELECT CONVERT(REPLACE(EXPORT_SET('a','a','a','','a'),'00','') USING ujis) as exp;
--enable_view_protocol
set names default; set names default;
set character_set_database=@save_character_set_server; set character_set_database=@save_character_set_server;
@ -1347,8 +1341,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 ujis; set names ujis;
--source include/weight_string.inc --source include/weight_string.inc
--source include/weight_string_l1.inc --source include/weight_string_l1.inc
@ -1362,7 +1354,6 @@ set collation_connection=ujis_bin;
--source include/weight_string_A1A1.inc --source include/weight_string_A1A1.inc
--source include/weight_string_8EA1.inc --source include/weight_string_8EA1.inc
--source include/weight_string_8FA2C3.inc --source include/weight_string_8FA2C3.inc
--enable_view_protocol
--echo # --echo #
--echo # End of 5.6 tests --echo # End of 5.6 tests

View File

@ -2354,20 +2354,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -2492,20 +2492,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_general_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -2631,20 +2631,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -2769,20 +2769,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_nopad_bin', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix

View File

@ -5327,8 +5327,8 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x1011103910191004103A1038 /* cooked rice */), (_ucs2 0x1011103910191004103A1038 /* cooked rice */),
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
id IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) id exp
1 2259 108C 1 2259 108C
2 22593ACB 1037 2 22593ACB 1037
3 22593ACC 1038 3 22593ACC 1038
@ -7413,20 +7413,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -7551,20 +7551,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_unicode_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -7690,20 +7690,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix
@ -7828,20 +7828,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) exp
0061006200630020 0061006200630020
SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16_unicode_520_nopad_ci', 'abc ')) exp
00610062006300200020 00610062006300200020
# #
# Collation mix # Collation mix

View File

@ -2540,20 +2540,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) exp
6100620063002000 6100620063002000
SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) exp
61006200630020002000 61006200630020002000
# #
# Collation mix # Collation mix
@ -2678,20 +2678,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16le_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16le_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) exp
6100620063002000 6100620063002000
SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16le_general_nopad_ci', 'abc ')) exp
61006200630020002000 61006200630020002000
# #
# Collation mix # Collation mix
@ -2817,20 +2817,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) exp
6100620063002000 6100620063002000
SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) exp
61006200630020002000 61006200630020002000
# #
# Collation mix # Collation mix
@ -2955,20 +2955,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf16le_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf16le_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf16le_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) exp
6100620063002000 6100620063002000
SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf16le_nopad_bin', 'abc ')) exp
61006200630020002000 61006200630020002000
# #
# Collation mix # Collation mix

View File

@ -70,29 +70,29 @@ hex(word2)
00000420 00000420
00002004 00002004
DROP TABLE t1; DROP TABLE t1;
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')) as exp;
hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')) exp
00000421000004210000042100000421000004210000042100000421000004210000042100000420 00000421000004210000042100000421000004210000042100000421000004210000042100000420
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) as exp;
hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) exp
00000421000004220000042100000422000004210000042200000421000004220000042100000420 00000421000004220000042100000422000004210000042200000421000004220000042100000420
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) as exp;
hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) exp
00000421000004220000042300000421000004220000042300000421000004220000042300000420 00000421000004220000042300000421000004220000042300000421000004220000042300000420
SELECT hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')); SELECT hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) as exp;
hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) exp
00000420000004210000042200000423000004240000042500000426000004270000042800000429 00000420000004210000042200000423000004240000042500000426000004270000042800000429
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')) as exp;
hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')) exp
00000420000004210000042100000421000004210000042100000421000004210000042100000421 00000420000004210000042100000421000004210000042100000421000004210000042100000421
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) as exp;
hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) exp
00000420000004210000042200000421000004220000042100000422000004210000042200000421 00000420000004210000042200000421000004220000042100000422000004210000042200000421
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) as exp;
hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) exp
00000420000004210000042200000423000004210000042200000423000004210000042200000423 00000420000004210000042200000423000004210000042200000423000004210000042200000423
SELECT hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')); SELECT hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) as exp;
hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) exp
00000420000004210000042200000423000004240000042500000426000004270000042800000429 00000420000004210000042200000423000004240000042500000426000004270000042800000429
CREATE TABLE t1 SELECT CREATE TABLE t1 SELECT
LPAD(_utf32 X'0420',10,_utf32 X'0421') l, LPAD(_utf32 X'0420',10,_utf32 X'0421') l,
@ -329,11 +329,11 @@ SELECT * FROM t1 WHERE word LIKE _utf32 x'00000063000000610000005F';
word word
cat cat
DROP TABLE t1; DROP TABLE t1;
select insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066); select insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066) as exp;
insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066) exp
abc abc
select insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066); select insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066) as exp;
insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066) exp
defc defc
SET NAMES latin1; SET NAMES latin1;
CREATE TABLE t1 ( CREATE TABLE t1 (
@ -1642,8 +1642,8 @@ Warning 1260 Row 1 was cut by GROUP_CONCAT()
# #
# incorrect charset for val_str_ascii # incorrect charset for val_str_ascii
# #
SELECT '2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second; SELECT '2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second as exp;
'2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second exp
2010-10-10 10:10:10 2010-10-10 10:10:10
# #
# MDEV-5745 analyze MySQL fix for bug#12368495 # MDEV-5745 analyze MySQL fix for bug#12368495
@ -2410,20 +2410,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -2548,20 +2548,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_general_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -2687,20 +2687,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -2825,20 +2825,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_nopad_bin', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix

View File

@ -60,21 +60,15 @@ DROP TABLE t1;
# #
# Check LPAD/RPAD # Check LPAD/RPAD
# #
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0421')) as exp;
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) as exp;
SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); SELECT hex(LPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) as exp;
#enable after fix MDEV-27871 SELECT hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) as exp;
--disable_view_protocol
SELECT hex(LPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423'));
--enable_view_protocol
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0421')) as exp;
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'0000042100000422')) as exp;
SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')); SELECT hex(RPAD(_utf32 X'0420',10,_utf32 X'000004210000042200000423')) as exp;
#enable after fix MDEV-27871 SELECT hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423')) as exp;
--disable_view_protocol
SELECT hex(RPAD(_utf32 X'000004200000042100000422000004230000042400000425000004260000042700000428000004290000042A0000042B',10,_utf32 X'000004210000042200000423'));
--enable_view_protocol
CREATE TABLE t1 SELECT CREATE TABLE t1 SELECT
LPAD(_utf32 X'0420',10,_utf32 X'0421') l, LPAD(_utf32 X'0420',10,_utf32 X'0421') l,
@ -124,11 +118,8 @@ DROP TABLE t1;
# #
# Check that INSERT() works fine. # Check that INSERT() works fine.
# This invokes charpos() function. # This invokes charpos() function.
#enable after fix MDEV-27871 select insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066) as exp;
--disable_view_protocol select insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066) as exp;
select insert(_utf32 0x000000610000006200000063,10,2,_utf32 0x000000640000006500000066);
select insert(_utf32 0x000000610000006200000063,1,2,_utf32 0x000000640000006500000066);
--enable_view_protocol
####################################################### #######################################################
@ -884,10 +875,7 @@ ORDER BY l DESC;
--echo # --echo #
--echo # incorrect charset for val_str_ascii --echo # incorrect charset for val_str_ascii
--echo # --echo #
#enable after fix MDEV-27871 SELECT '2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second as exp;
--disable_view_protocol
SELECT '2010-10-10 10:10:10' + INTERVAL GeometryType(GeomFromText('POINT(1 1)')) hour_second;
--enable_view_protocol
--echo # --echo #
--echo # MDEV-5745 analyze MySQL fix for bug#12368495 --echo # MDEV-5745 analyze MySQL fix for bug#12368495

View File

@ -5347,8 +5347,8 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x1011103910191004103A1038 /* cooked rice */), (_ucs2 0x1011103910191004103A1038 /* cooked rice */),
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
id IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) id exp
1 2259 108C 1 2259 108C
2 22593ACB 1037 2 22593ACB 1037
3 22593ACC 1038 3 22593ACC 1038
@ -7433,20 +7433,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -7571,20 +7571,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_unicode_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -7710,20 +7710,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix
@ -7848,20 +7848,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf32_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf32_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) exp
00000061000000620000006300000020 00000061000000620000006300000020
SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf32_unicode_520_nopad_ci', 'abc ')) exp
0000006100000062000000630000002000000020 0000006100000062000000630000002000000020
# #
# Collation mix # Collation mix

View File

@ -63,17 +63,17 @@ select 'A' like 'a';
select 'A' like 'a' collate utf8_bin; select 'A' like 'a' collate utf8_bin;
'A' like 'a' collate utf8_bin 'A' like 'a' collate utf8_bin
0 0
select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%'); select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%') as exp;
_utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%') exp
1 1
select convert(_latin1'G<>nter Andr<64>' using utf8) like CONVERT(_latin1'G<>NTER%' USING utf8); select convert(_latin1'G<>nter Andr<64>' using utf8) like CONVERT(_latin1'G<>NTER%' USING utf8) as exp;
convert(_latin1'G\xFCnter Andr\xE9' using utf8) like CONVERT(_latin1'G\xDCNTER%' USING utf8) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) as exp;
CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) as exp;
CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8) exp
1 1
SELECT 'a' = 'a '; SELECT 'a' = 'a ';
'a' = 'a ' 'a' = 'a '
@ -924,17 +924,17 @@ select * from t1 where soundex(a) = soundex('test');
id a id a
1 Test 1 Test
drop table t1; drop table t1;
select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) exp
阅000 阅000
select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) exp
E99885303030 E99885303030
select soundex(_utf8 0xD091D092D093); select soundex(_utf8 0xD091D092D093) as exp;
soundex(_utf8 0xD091D092D093) exp
Б000 Б000
select hex(soundex(_utf8 0xD091D092D093)); select hex(soundex(_utf8 0xD091D092D093)) as exp;
hex(soundex(_utf8 0xD091D092D093)) exp
D091303030 D091303030
SET collation_connection='utf8_general_ci'; SET collation_connection='utf8_general_ci';
create table t1 select repeat('a',4000) a; create table t1 select repeat('a',4000) a;
@ -1160,8 +1160,8 @@ DROP TABLE t1;
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR)) @@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
utf8 C3B7 utf8 C3B7
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)); SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) exp
2001-01-01 2001-01-01
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1; SHOW COLUMNS FROM t1;
@ -1294,8 +1294,8 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><- -><-
-><- -><-
drop table t1; drop table t1;
select convert(_koi8r'<27>' using utf8) < convert(_koi8r'<27>' using utf8); select convert(_koi8r'<27>' using utf8) < convert(_koi8r'<27>' using utf8) as exp;
convert(_koi8r'\xC9' using utf8) < convert(_koi8r'\xCA' using utf8) exp
1 1
set names latin1; set names latin1;
create table t1 (a varchar(10)) character set utf8; create table t1 (a varchar(10)) character set utf8;
@ -3603,8 +3603,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -3613,8 +3613,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) as exp;
hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))) exp
32 32
create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -3623,8 +3623,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) as exp;
hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))) exp
30 30
create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1;
show create table t1; show create table t1;
@ -3633,8 +3633,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) as exp;
hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))) exp
31 31
create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1;
show create table t1; show create table t1;
@ -3643,8 +3643,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))) exp
30 30
create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -3653,8 +3653,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) as exp;
hex(concat(IsSimple(GeomFromText('POINT(1 1)')))) exp
31 31
create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1;
show create table t1; show create table t1;
@ -3663,8 +3663,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) as exp;
hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))) exp
30 30
create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1;
show create table t1; show create table t1;
@ -3673,13 +3673,13 @@ t1 CREATE TABLE `t1` (
`c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) as exp;
hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))) exp
31 31
create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1;
drop table t1; drop table t1;
select hex(concat(x(GeomFromText('Point(1 2)')))); select hex(concat(x(GeomFromText('Point(1 2)')))) as exp;
hex(concat(x(GeomFromText('Point(1 2)')))) exp
31 31
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -3688,8 +3688,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(y(GeomFromText('Point(1 2)')))); select hex(concat(y(GeomFromText('Point(1 2)')))) as exp;
hex(concat(y(GeomFromText('Point(1 2)')))) exp
32 32
create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -3698,8 +3698,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) as exp;
hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))) exp
31 31
create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1;
show create table t1; show create table t1;
@ -3708,8 +3708,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) as exp;
hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))) exp
31 31
create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1;
show create table t1; show create table t1;
@ -3718,8 +3718,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(23) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(GeometryType(GeomFromText('Point(1 2)')))); select hex(concat(GeometryType(GeomFromText('Point(1 2)')))) as exp;
hex(concat(GeometryType(GeomFromText('Point(1 2)')))) exp
504F494E54 504F494E54
create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -3728,8 +3728,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(AsText(GeomFromText('Point(1 2)')))); select hex(concat(AsText(GeomFromText('Point(1 2)')))) as exp;
hex(concat(AsText(GeomFromText('Point(1 2)')))) exp
504F494E542831203229 504F494E542831203229
create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1;
show create table t1; show create table t1;
@ -3998,8 +3998,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) as exp;
hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))) exp
32343A30303A3030 32343A30303A3030
create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1;
show create table t1; show create table t1;
@ -4038,8 +4038,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) as exp;
hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))) exp
323030332D31322D33312032303A30303A3030 323030332D31322D33312032303A30303A3030
create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1;
show create table t1; show create table t1;
@ -4048,8 +4048,8 @@ t1 CREATE TABLE `t1` (
`c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL `c1` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL
) 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 hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) as exp;
hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))) exp
323030342D30312D30322031323A30303A3030 323030342D30312D30322031323A30303A3030
create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1;
show create table t1; show create table t1;
@ -10784,20 +10784,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -10922,20 +10922,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_general_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -11061,20 +11061,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -11199,20 +11199,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -3,9 +3,6 @@
# Tests with the utf8 character set # Tests with the utf8 character set
# #
# Enable after fix MDEV-27904
-- source include/no_view_protocol.inc
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
let collation=utf8_unicode_ci; let collation=utf8_unicode_ci;
@ -50,15 +47,15 @@ select length(_utf8 0xD0B1), bit_length(_utf8 0xD0B1), char_length(_utf8 0xD0B1)
select 'a' like 'a'; select 'a' like 'a';
select 'A' like 'a'; select 'A' like 'a';
select 'A' like 'a' collate utf8_bin; select 'A' like 'a' collate utf8_bin;
select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%'); select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%') as exp;
# Bug #6040: can't retrieve records with umlaut # Bug #6040: can't retrieve records with umlaut
# characters in case insensitive manner. # characters in case insensitive manner.
# Case insensitive search LIKE comparison # Case insensitive search LIKE comparison
# was broken for multibyte characters: # was broken for multibyte characters:
select convert(_latin1'G<>nter Andr<64>' using utf8) like CONVERT(_latin1'G<>NTER%' USING utf8); select convert(_latin1'G<>nter Andr<64>' using utf8) like CONVERT(_latin1'G<>NTER%' USING utf8) as exp;
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) as exp;
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8) as exp;
# #
# Check the following: # Check the following:
@ -629,6 +626,7 @@ DROP TABLE t1;
# #
# Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table # Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table
# #
--disable_service_connection
SET NAMES latin1; SET NAMES latin1;
CREATE TABLE t1 ( CREATE TABLE t1 (
id int unsigned NOT NULL auto_increment, id int unsigned NOT NULL auto_increment,
@ -644,6 +642,7 @@ SELECT id, term FROM t1 where (list_id = 1) AND (term = "test
SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest"); SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest");
SELECT id, term FROM t1 where (list_id = 1) AND (term = "test<73>test"); SELECT id, term FROM t1 where (list_id = 1) AND (term = "test<73>test");
DROP TABLE t1; DROP TABLE t1;
--enable_service_connection
# #
# Bug #6019 SELECT tries to use too short prefix index on utf8 data # Bug #6019 SELECT tries to use too short prefix index on utf8 data
@ -696,10 +695,10 @@ drop table t1;
# #
# Bug#22638 SOUNDEX broken for international characters # Bug#22638 SOUNDEX broken for international characters
# #
select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
select soundex(_utf8 0xD091D092D093); select soundex(_utf8 0xD091D092D093) as exp;
select hex(soundex(_utf8 0xD091D092D093)); select hex(soundex(_utf8 0xD091D092D093)) as exp;
SET collation_connection='utf8_general_ci'; SET collation_connection='utf8_general_ci';
@ -735,7 +734,7 @@ drop table t1;
# #
# Bug#8385: utf8_general_ci treats Cyrillic letters I and SHORT I as the same # Bug#8385: utf8_general_ci treats Cyrillic letters I and SHORT I as the same
# #
select convert(_koi8r'<27>' using utf8) < convert(_koi8r'<27>' using utf8); select convert(_koi8r'<27>' using utf8) < convert(_koi8r'<27>' using utf8) as exp;
# #
# Bugs#5980: NULL requires a characterset in a union # Bugs#5980: NULL requires a characterset in a union
@ -1113,6 +1112,7 @@ DROP TABLE t1;
# (see bug #16674 as well) # (see bug #16674 as well)
# #
--disable_service_connection
SET NAMES latin2; SET NAMES latin2;
CREATE TABLE t1 ( CREATE TABLE t1 (
@ -1139,6 +1139,7 @@ ALTER TABLE t1 ADD KEY idx (tid,val(11));
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL'; SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN<4C> ADSL';
DROP TABLE t1; DROP TABLE t1;
--enable_service_connection
# #
# Bug 20709: problem with utf8 fields in temporary tables # Bug 20709: problem with utf8 fields in temporary tables
@ -1346,6 +1347,7 @@ drop table t1;
# Conversion is possible if string repertoire is ASCII. # Conversion is possible if string repertoire is ASCII.
# Conversion is not possible if the string have extended characters # Conversion is not possible if the string have extended characters
# #
--disable_service_connection
set names utf8; set names utf8;
create table t1 (a varchar(10) character set latin1, b int); create table t1 (a varchar(10) character set latin1, b int);
insert into t1 values ('a',1); insert into t1 values ('a',1);
@ -1380,6 +1382,7 @@ select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
--error 1267 --error 1267
select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1; select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
drop table t1; drop table t1;
--enable_service_connection
# #
# Bug#19960: Inconsistent results when joining # Bug#19960: Inconsistent results when joining
@ -1496,7 +1499,10 @@ SELECT HEX(RPAD(_utf8 0xD18F, 3, 0x20));
SELECT HEX(LPAD(_utf8 0xD18F, 3, 0x20)); SELECT HEX(LPAD(_utf8 0xD18F, 3, 0x20));
SELECT HEX(INSERT(_utf8 0xD18F, 2, 1, 0x20)); SELECT HEX(INSERT(_utf8 0xD18F, 2, 1, 0x20));
#Enable view-protocol after fix MDEV-33942
--disable_view_protocol
SELECT HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20)); SELECT HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20));
--enable_view_protocol
--echo # --echo #
--echo # Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI --echo # Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI
@ -1573,6 +1579,7 @@ CREATE TABLE t1 (
s3 MEDIUMTEXT CHARACTER SET utf8, s3 MEDIUMTEXT CHARACTER SET utf8,
s4 LONGTEXT CHARACTER SET utf8 s4 LONGTEXT CHARACTER SET utf8
); );
--disable_view_protocol
--enable_metadata --enable_metadata
SET NAMES utf8, @@character_set_results=NULL; SET NAMES utf8, @@character_set_results=NULL;
SELECT *, HEX(s1) FROM t1; SELECT *, HEX(s1) FROM t1;
@ -1581,6 +1588,7 @@ SELECT *, HEX(s1) FROM t1;
SET NAMES utf8; SET NAMES utf8;
SELECT *, HEX(s1) FROM t1; SELECT *, HEX(s1) FROM t1;
--disable_metadata --disable_metadata
--enable_view_protocol
CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1; CREATE TABLE t2 AS SELECT CONCAT(s1) FROM t1;
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
DROP TABLE t1, t2; DROP TABLE t1, t2;

View File

@ -100,20 +100,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -238,20 +238,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_unicode_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -377,20 +377,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -515,20 +515,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8_unicode_520_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -3665,20 +3665,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -3803,20 +3803,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_general_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_general_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_general_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -3942,20 +3942,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -4080,20 +4080,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_nopad_bin' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_nopad_bin' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_nopad_bin', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -36,23 +36,23 @@ locate('HE','hello' collate utf8mb4_bin,2)
select locate('LO','hello' collate utf8mb4_bin,2); select locate('LO','hello' collate utf8mb4_bin,2);
locate('LO','hello' collate utf8mb4_bin,2) locate('LO','hello' collate utf8mb4_bin,2)
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) exp
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) exp
0 0
select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1); select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1) as exp;
length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) char_length(_utf8mb4 0xD0B1) length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) exp
2 16 1 2 16 1
select 'a' like 'a'; select 'a' like 'a';
'a' like 'a' 'a' like 'a'
@ -63,17 +63,17 @@ select 'A' like 'a';
select 'A' like 'a' collate utf8mb4_bin; select 'A' like 'a' collate utf8mb4_bin;
'A' like 'a' collate utf8mb4_bin 'A' like 'a' collate utf8mb4_bin
0 0
select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%'); select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') as exp;
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') exp
1 1
select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4); select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4) as exp;
convert(_latin1'G\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDCNTER%' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) exp
1 1
SELECT 'a' = 'a '; SELECT 'a' = 'a ';
'a' = 'a ' 'a' = 'a '
@ -863,17 +863,17 @@ select * from t1 where soundex(a) = soundex('test');
id a id a
1 Test 1 Test
drop table t1; drop table t1;
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) exp
阅000 阅000
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) exp
E99885303030 E99885303030
select soundex(_utf8mb4 0xD091D092D093); select soundex(_utf8mb4 0xD091D092D093) as exp;
soundex(_utf8mb4 0xD091D092D093) exp
Б000 Б000
select hex(soundex(_utf8mb4 0xD091D092D093)); select hex(soundex(_utf8mb4 0xD091D092D093)) as exp;
hex(soundex(_utf8mb4 0xD091D092D093)) exp
D091303030 D091303030
SET collation_connection='utf8mb4_general_ci'; SET collation_connection='utf8mb4_general_ci';
create table t1 select repeat('a',4000) a; create table t1 select repeat('a',4000) a;
@ -1214,8 +1214,8 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><- -><-
-><- -><-
drop table t1; drop table t1;
select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4); select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4) as exp;
convert(_koi8r'\xC9' using utf8mb4) < convert(_koi8r'\xCA' using utf8mb4) exp
1 1
set names latin1; set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine heap; create table t1 (a varchar(10)) character set utf8mb4 engine heap;

View File

@ -36,23 +36,23 @@ locate('HE','hello' collate utf8mb4_bin,2)
select locate('LO','hello' collate utf8mb4_bin,2); select locate('LO','hello' collate utf8mb4_bin,2);
locate('LO','hello' collate utf8mb4_bin,2) locate('LO','hello' collate utf8mb4_bin,2)
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) exp
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) exp
0 0
select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1); select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1) as exp;
length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) char_length(_utf8mb4 0xD0B1) length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) exp
2 16 1 2 16 1
select 'a' like 'a'; select 'a' like 'a';
'a' like 'a' 'a' like 'a'
@ -63,17 +63,17 @@ select 'A' like 'a';
select 'A' like 'a' collate utf8mb4_bin; select 'A' like 'a' collate utf8mb4_bin;
'A' like 'a' collate utf8mb4_bin 'A' like 'a' collate utf8mb4_bin
0 0
select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%'); select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') as exp;
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') exp
1 1
select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4); select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4) as exp;
convert(_latin1'G\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDCNTER%' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) exp
1 1
SELECT 'a' = 'a '; SELECT 'a' = 'a ';
'a' = 'a ' 'a' = 'a '
@ -926,17 +926,17 @@ select * from t1 where soundex(a) = soundex('test');
id a id a
1 Test 1 Test
drop table t1; drop table t1;
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) exp
阅000 阅000
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) exp
E99885303030 E99885303030
select soundex(_utf8mb4 0xD091D092D093); select soundex(_utf8mb4 0xD091D092D093) as exp;
soundex(_utf8mb4 0xD091D092D093) exp
Б000 Б000
select hex(soundex(_utf8mb4 0xD091D092D093)); select hex(soundex(_utf8mb4 0xD091D092D093)) as exp;
hex(soundex(_utf8mb4 0xD091D092D093)) exp
D091303030 D091303030
SET collation_connection='utf8mb4_general_ci'; SET collation_connection='utf8mb4_general_ci';
create table t1 select repeat('a',4000) a; create table t1 select repeat('a',4000) a;
@ -1277,8 +1277,8 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><- -><-
-><- -><-
drop table t1; drop table t1;
select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4); select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4) as exp;
convert(_koi8r'\xC9' using utf8mb4) < convert(_koi8r'\xCA' using utf8mb4) exp
1 1
set names latin1; set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine InnoDB; create table t1 (a varchar(10)) character set utf8mb4 engine InnoDB;

View File

@ -1,6 +1,3 @@
# Enable after fix MDEV-27904
-- source include/no_view_protocol.inc
--source include/have_utf8mb4.inc --source include/have_utf8mb4.inc
--source include/have_innodb.inc --source include/have_innodb.inc

View File

@ -36,23 +36,23 @@ locate('HE','hello' collate utf8mb4_bin,2)
select locate('LO','hello' collate utf8mb4_bin,2); select locate('LO','hello' collate utf8mb4_bin,2);
locate('LO','hello' collate utf8mb4_bin,2) locate('LO','hello' collate utf8mb4_bin,2)
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) exp
2 2
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) exp
2 2
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) exp
0 0
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin); select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) as exp;
locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin) exp
0 0
select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1); select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1) as exp;
length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) char_length(_utf8mb4 0xD0B1) length(_utf8mb4 0xD0B1) bit_length(_utf8mb4 0xD0B1) exp
2 16 1 2 16 1
select 'a' like 'a'; select 'a' like 'a';
'a' like 'a' 'a' like 'a'
@ -63,17 +63,17 @@ select 'A' like 'a';
select 'A' like 'a' collate utf8mb4_bin; select 'A' like 'a' collate utf8mb4_bin;
'A' like 'a' collate utf8mb4_bin 'A' like 'a' collate utf8mb4_bin
0 0
select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%'); select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') as exp;
_utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%') exp
1 1
select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4); select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4) as exp;
convert(_latin1'G\xFCnter Andr\xE9' using utf8mb4) like CONVERT(_latin1'G\xDCNTER%' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) LIKE CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) exp
1 1
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4); select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
CONVERT(_koi8r'\xF7\xE1\xF3\xF1' USING utf8mb4) LIKE CONVERT(_koi8r'\xD7\xC1\xD3\xD1' USING utf8mb4) exp
1 1
SELECT 'a' = 'a '; SELECT 'a' = 'a ';
'a' = 'a ' 'a' = 'a '
@ -929,17 +929,17 @@ select * from t1 where soundex(a) = soundex('test');
id a id a
1 Test 1 Test
drop table t1; drop table t1;
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) exp
阅000 阅000
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) exp
E99885303030 E99885303030
select soundex(_utf8mb4 0xD091D092D093); select soundex(_utf8mb4 0xD091D092D093) as exp;
soundex(_utf8mb4 0xD091D092D093) exp
Б000 Б000
select hex(soundex(_utf8mb4 0xD091D092D093)); select hex(soundex(_utf8mb4 0xD091D092D093)) as exp;
hex(soundex(_utf8mb4 0xD091D092D093)) exp
D091303030 D091303030
SET collation_connection='utf8mb4_general_ci'; SET collation_connection='utf8mb4_general_ci';
create table t1 select repeat('a',4000) a; create table t1 select repeat('a',4000) a;
@ -1280,8 +1280,8 @@ concat(concat(_latin1'->',f1),_latin1'<-')
-><- -><-
-><- -><-
drop table t1; drop table t1;
select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4); select convert(_koi8r'<27>' using utf8mb4) < convert(_koi8r'<27>' using utf8mb4) as exp;
convert(_koi8r'\xC9' using utf8mb4) < convert(_koi8r'\xCA' using utf8mb4) exp
1 1
set names latin1; set names latin1;
create table t1 (a varchar(10)) character set utf8mb4 engine MyISAM; create table t1 (a varchar(10)) character set utf8mb4 engine MyISAM;

View File

@ -4031,8 +4031,8 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x1011103910191004103A1038 /* cooked rice */), (_ucs2 0x1011103910191004103A1038 /* cooked rice */),
(_ucs2 0x101C1000103A10181000103A), (_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */); (_ucs2 0x101C103910181000103A /* tea */);
SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) as exp FROM t1 ORDER BY id;
id IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) id exp
1 2259 108C 1 2259 108C
2 22593ACB 1037 2 22593ACB 1037
3 22593ACC 1038 3 22593ACC 1038
@ -6117,20 +6117,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6255,20 +6255,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6394,20 +6394,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix
@ -6532,20 +6532,20 @@ DROP TABLE t1;
# #
# IF, CASE, LEAST # IF, CASE, LEAST
# #
SELECT IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad'); SELECT IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') as exp;
IF('abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ', 'pad', 'nopad') exp
nopad nopad
SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' WHEN 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END; SELECT CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END as exp;
CASE WHEN 'abc' COLLATE 'utf8mb4_unicode_520_nopad_ci' = 'abc ' THEN 'pad' ELSE 'nopad' END exp
nopad nopad
SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')); SELECT HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(LEAST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) exp
61626320 61626320
SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')); SELECT HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) as exp;
HEX(GREATEST('abc ' COLLATE 'utf8mb4_unicode_520_nopad_ci', 'abc ')) exp
6162632020 6162632020
# #
# Collation mix # Collation mix

View File

@ -16,12 +16,11 @@ DATETIME_FORMAT %Y-%m-%d %H:%i:%s
DATE_FORMAT %d.%m.%Y DATE_FORMAT %d.%m.%Y
TIME_FORMAT %H.%i.%s TIME_FORMAT %H.%i.%s
select str_to_date(concat('15-01-2001',' 2:59:58.999'), select str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f')); concat('%d-%m-%Y',' ','%H:%i:%s.%f')) as exp;
str_to_date(concat('15-01-2001',' 2:59:58.999'), exp
concat('%d-%m-%Y',' ','%H:%i:%s.%f'))
2001-01-15 02:59:58.999000 2001-01-15 02:59:58.999000
select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T'); select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T') as exp;
STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T') exp
NULL NULL
Warnings: Warnings:
Warning 1411 Incorrect time value: '22.30.61' for function str_to_date Warning 1411 Incorrect time value: '22.30.61' for function str_to_date
@ -256,8 +255,8 @@ Tuesday 52 2001 %W %V %X 00:00:00.000000
15-01-2001 %d-%m-%Y %H:%i:%S 00:00:00.000000 15-01-2001 %d-%m-%Y %H:%i:%S 00:00:00.000000
15-01-20 %d-%m-%y 00:00:00.000000 15-01-20 %d-%m-%y 00:00:00.000000
15-2001-1 %d-%Y-%c 00:00:00.000000 15-2001-1 %d-%Y-%c 00:00:00.000000
select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')); select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')) as exp;
concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')) exp
2003-01-02 08:11:02.123456 2003-01-02 08:11:02.123456
truncate table t1; truncate table t1;
insert into t1 values insert into t1 values
@ -551,8 +550,8 @@ Thursday 01 January 2009
# Bug#58005 utf8 + get_format causes failed assertion: !str || str != Ptr' # Bug#58005 utf8 + get_format causes failed assertion: !str || str != Ptr'
# #
SET NAMES utf8; SET NAMES utf8;
SELECT LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))); SELECT LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))) as exp;
LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))) exp
% %
SET NAMES latin1; SET NAMES latin1;
# #

View File

@ -2,9 +2,6 @@
# Test of date format functions # Test of date format functions
# #
#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;
--enable_warnings --enable_warnings
@ -129,8 +126,8 @@ ORDER BY variable_name;
# #
select str_to_date(concat('15-01-2001',' 2:59:58.999'), select str_to_date(concat('15-01-2001',' 2:59:58.999'),
concat('%d-%m-%Y',' ','%H:%i:%s.%f')); concat('%d-%m-%Y',' ','%H:%i:%s.%f')) as exp;
select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T'); select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T') as exp;
create table t1 (date char(30), format char(30) not null); create table t1 (date char(30), format char(30) not null);
insert into t1 values insert into t1 values
@ -175,7 +172,7 @@ select date,format,DATE(str_to_date(date, format)) as date2 from t1;
select date,format,TIME(str_to_date(date, format)) as time from t1; select date,format,TIME(str_to_date(date, format)) as time from t1;
select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1; select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1;
# Test small bug in %f handling # Test small bug in %f handling
select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')); select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')) as exp;
# Test wrong dates or converion specifiers # Test wrong dates or converion specifiers
@ -363,7 +360,7 @@ SELECT DATE_FORMAT("2009-01-01",'%W %d %M %Y') as valid_date;
--echo # Bug#58005 utf8 + get_format causes failed assertion: !str || str != Ptr' --echo # Bug#58005 utf8 + get_format causes failed assertion: !str || str != Ptr'
--echo # --echo #
SET NAMES utf8; SET NAMES utf8;
SELECT LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))); SELECT LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))) as exp;
SET NAMES latin1; SET NAMES latin1;
--echo # --echo #

View File

@ -16,16 +16,16 @@ author VARCHAR(255) NOT NULL
INSERT INTO t2 VALUES('123', 'moi'); INSERT INTO t2 VALUES('123', 'moi');
INSERT INTO t2 VALUES('123', 'lui'); INSERT INTO t2 VALUES('123', 'lui');
INSERT INTO t2 VALUES('456', 'lui'); INSERT INTO t2 VALUES('456', 'lui');
select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) as exp
from t1 left join t2 on t2.id=t1.id; from t1 left join t2 on t2.id=t1.id;
round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) exp
0.00000 0.00000
0.00000 0.00000
0.67003 0.67003
0.00000 0.00000
select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE) select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE) as exp
from t1 left join t2 on t2.id=t1.id; from t1 left join t2 on t2.id=t1.id;
match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE) exp
0 0
0 0
1 1

View File

@ -24,13 +24,10 @@ INSERT INTO t2 VALUES('123', 'moi');
INSERT INTO t2 VALUES('123', 'lui'); INSERT INTO t2 VALUES('123', 'lui');
INSERT INTO t2 VALUES('456', 'lui'); INSERT INTO t2 VALUES('456', 'lui');
select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5) as exp
from t1 left join t2 on t2.id=t1.id; from t1 left join t2 on t2.id=t1.id;
#enable after fix MDEV-27871 select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE) as exp
--disable_view_protocol
select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
from t1 left join t2 on t2.id=t1.id; from t1 left join t2 on t2.id=t1.id;
--enable_view_protocol
drop table t1, t2; drop table t1, t2;

View File

@ -1269,8 +1269,8 @@ SELECT * FROM v1;
a GROUP_CONCAT(a ORDER BY a) a GROUP_CONCAT(a ORDER BY a)
NULL 10,20,30 NULL 10,20,30
DROP VIEW v1; DROP VIEW v1;
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30'); SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30') as exp;
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30') exp
10,20,30 10,20,30
CREATE VIEW v1 AS CREATE VIEW v1 AS
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30'); SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30');

View File

@ -950,10 +950,7 @@ SELECT * FROM (SELECT a,GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLU
SELECT * FROM v1; SELECT * FROM v1;
DROP VIEW v1; DROP VIEW v1;
#enable after fix MDEV-27871 SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30') as exp;
--disable_view_protocol
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30');
--enable_view_protocol
CREATE VIEW v1 AS CREATE VIEW v1 AS
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30'); SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP HAVING GROUP_CONCAT(a ORDER BY a)='10,20,30');
SELECT * FROM v1; SELECT * FROM v1;

View File

@ -5,8 +5,8 @@ set global innodb_stats_persistent= 1;
set global innodb_stats_persistent_sample_pages=100; set global innodb_stats_persistent_sample_pages=100;
create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB; create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
insert into t1 values (1, 3); insert into t1 values (1, 3);
select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ from t1 group by MAX_REQ; select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ as exp from t1 group by MAX_REQ;
count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ exp
1 1
select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ; select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ;
Case When Count(*) < MAX_REQ Then 1 Else 0 End Case When Count(*) < MAX_REQ Then 1 Else 0 End

View File

@ -15,10 +15,7 @@ set global innodb_stats_persistent_sample_pages=100;
create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB; create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
--enable_warnings --enable_warnings
insert into t1 values (1, 3); insert into t1 values (1, 3);
#enable after fix MDEV-27871 select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ as exp from t1 group by MAX_REQ;
--disable_view_protocol
select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ from t1 group by MAX_REQ;
--enable_view_protocol
select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ; select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ;
drop table t1; drop table t1;

View File

@ -871,15 +871,15 @@ DROP TABLE t1;
# #
# MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result # MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result
# #
SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32'); SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') as exp;
TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') exp
1 1
PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32')"; PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') as exp";
EXECUTE stmt; EXECUTE stmt;
TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') exp
1 1
EXECUTE stmt; EXECUTE stmt;
TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') exp
1 1
DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt;
# #

View File

@ -665,14 +665,11 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result --echo # MDEV-11514 IN with a mixture of TIME and DATETIME returns a wrong result
--echo # --echo #
#enable after fix MDEV-27871 SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') as exp;
--disable_view_protocol PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32') as exp";
SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32');
PREPARE stmt FROM "SELECT TIME'10:20:30' IN (102030,TIME'10:20:31',TIMESTAMP'2001-01-01 10:20:32')";
EXECUTE stmt; EXECUTE stmt;
EXECUTE stmt; EXECUTE stmt;
DEALLOCATE PREPARE stmt; DEALLOCATE PREPARE stmt;
--enable_view_protocol
--echo # --echo #
--echo # MDEV-11497 Wrong result for (int_expr IN (mixture of signed and unsigned expressions)) --echo # MDEV-11497 Wrong result for (int_expr IN (mixture of signed and unsigned expressions))

View File

@ -720,17 +720,17 @@ REGEXP_INSTR('вася','с')
2 2
SELECT REGEXP_INSTR('вася','с'); SELECT REGEXP_INSTR('вася','с');
REGEXP_INSTR('вася','с') REGEXP_INSTR('вася','с')
3 3
SELECT REGEXP_INSTR('вася','я'); SELECT REGEXP_INSTR('вася','я');
REGEXP_INSTR('вася','я') REGEXP_INSTR('вася','я')
4 4
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('в' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('в' USING koi8r)) as exp;
exp exp
1 1
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('а' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('а' USING koi8r)) as exp;
exp exp
2 2
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('с' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('с' USING koi8r)) as exp;
exp exp
3 3
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('я' USING koi8r)) as exp; SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('я' USING koi8r)) as exp;
@ -757,8 +757,8 @@ t1 CREATE TABLE `t1` (
Warning 1292 Truncated incorrect DOUBLE value: 'b' Warning 1292 Truncated incorrect DOUBLE value: 'b'
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`REGEXP_SUBSTR('abc','b')+0` double NOT NULL `REGEXP_SUBSTR('abc','b')+0` double NOT NULL
) 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 REGEXP_SUBSTR('See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*') as exp; SELECT REGEXP_SUBSTR('See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*') as exp;
@ -792,14 +792,14 @@ SELECT 'a\nb' RLIKE '(?-s)a.b';
SELECT 'a\nb' RLIKE 'a.b'; SELECT 'a\nb' RLIKE 'a.b';
'a\nb' RLIKE 'a.b' 'a\nb' RLIKE 'a.b'
1 1
SELECT 'a\nb' RLIKE '(?-s)a.b'; SELECT 'a\nb' RLIKE '(?-s)a.b';
'a\nb' RLIKE '(?-s)a.b' 'a\nb' RLIKE '(?-s)a.b'
0 0
SET default_regex_flags=DEFAULT; SET default_regex_flags=DEFAULT;
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
ERROR 42000: Regex error 'two named subpatterns have the same name (PCRE2_DUPNAMES not set) at offset 30' ERROR 42000: Regex error 'two named subpatterns have the same name (PCRE2_DUPNAMES not set) at offset 30'
SET default_regex_flags='DUPNAMES'; SET default_regex_flags='DUPNAMES';
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
exp exp
Monday Mon Monday Mon
SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp; SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
@ -850,8 +850,8 @@ SET default_regex_flags=DEFAULT;
SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2'); SELECT REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2');
REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2') REGEXP_REPLACE('abc','^(.*)(.*)$','\\1/\\2')
/abc /abc
SET default_regex_flags=DEFAULT; SET default_regex_flags=DEFAULT;
# #
# MDEV-6965 non-captured group \2 in regexp_replace # MDEV-6965 non-captured group \2 in regexp_replace
# #
SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that') as exp; SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that') as exp;

View File

@ -325,13 +325,10 @@ SELECT REGEXP_INSTR('вася','в');
SELECT REGEXP_INSTR('вася','а'); SELECT REGEXP_INSTR('вася','а');
SELECT REGEXP_INSTR('вася','с'); SELECT REGEXP_INSTR('вася','с');
SELECT REGEXP_INSTR('вася','я'); SELECT REGEXP_INSTR('вася','я');
#enable after fix MDEV-27871 SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('в' USING koi8r)) as exp;
--disable_view_protocol SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('а' USING koi8r)) as exp;
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('в' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('с' USING koi8r)) as exp;
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('а' USING koi8r)); SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('я' USING koi8r)) as exp;
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('с' USING koi8r));
SELECT REGEXP_INSTR(CONVERT('вася' USING koi8r), CONVERT('я' USING koi8r));
--enable_view_protocol
--echo # --echo #
--echo # Checking REGEXP_SUBSTR --echo # Checking REGEXP_SUBSTR
@ -351,10 +348,7 @@ CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b')+0;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
DROP TABLE t1; DROP TABLE t1;
#enable after fix MDEV-27871 SELECT REGEXP_SUBSTR('See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*') as exp;
--disable_view_protocol
SELECT REGEXP_SUBSTR('See https://mariadb.org/en/foundation/ for details', 'https?://[^/]*');
--enable_view_protocol
--echo # --echo #
--echo # MDEV-6027 RLIKE: "." no longer matching new line --echo # MDEV-6027 RLIKE: "." no longer matching new line
@ -371,16 +365,13 @@ SELECT 'a\nb' RLIKE 'a.b';
SELECT 'a\nb' RLIKE '(?-s)a.b'; SELECT 'a\nb' RLIKE '(?-s)a.b';
SET default_regex_flags=DEFAULT; SET default_regex_flags=DEFAULT;
#enable after fix MDEV-27871
--disable_view_protocol
# note that old pcre2 reports a different offset # note that old pcre2 reports a different offset
--replace_result 29 30 --replace_result 29 30
--error ER_REGEXP_ERROR --error ER_REGEXP_ERROR
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
SET default_regex_flags='DUPNAMES'; SET default_regex_flags='DUPNAMES';
SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Monday Mon','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$'); SELECT REGEXP_SUBSTR('Tuesday Tue','^((?<DN>Mon|Fri|Sun)day|(?<DN>Tue)sday).*(?P=DN)$') as exp;
--enable_view_protocol
SET default_regex_flags=DEFAULT; SET default_regex_flags=DEFAULT;
SELECT 'AB' RLIKE 'A B'; SELECT 'AB' RLIKE 'A B';
@ -416,10 +407,7 @@ SET default_regex_flags=DEFAULT;
--echo # --echo #
--echo # MDEV-6965 non-captured group \2 in regexp_replace --echo # MDEV-6965 non-captured group \2 in regexp_replace
--echo # --echo #
#enable after fix MDEV-27871 SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that') as exp;
--disable_view_protocol
SELECT REGEXP_REPLACE('1 foo and bar', '(\\d+) foo and (\\d+ )?bar', '\\1 this and \\2that');
--enable_view_protocol
--echo # --echo #
--echo # MDEV-8102 REGEXP function fails to match hex values when expression is stored as a variable --echo # MDEV-8102 REGEXP function fails to match hex values when expression is stored as a variable
@ -454,9 +442,6 @@ SELECT CAST(0xE001 AS BINARY) REGEXP @regCheck;
SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,StrataL3,November,Oscar,StrataL2,Sand,P3,P4SwitchTest,Arsys,Poppa,ExtensionMgr,Arp,Quebec,Romeo,StrataApiV2,PtReyes,Sierra,SandAcl,Arrow,Artools,BridgeTest,Tango,SandT,PAlaska,Namespace,Agent,Qos,PatchPanel,ProjectReport,Ark,Gimp,Agent,SliceAgent,Arnet,Bgp,Ale,Tommy,Central,AsicPktTestLib,Hsc,SandL3,Abuild,Pca9555,Standby,ControllerDut,CalSys,SandLib,Sb820,PointV2,BfnLib,Evpn,BfnSdk,Sflow,ManagementActive,AutoTest,GatedTest,Bgp,Sand,xinetd,BfnAgentLib,bf-utils,Hello,BfnState,Eos,Artest,Qos,Scd,ThermoMgr,Uniform,EosUtils,Eb,FanController,Central,BfnL3,BfnL2,tcp_wrappers,Victor,Environment,Route,Failover,Whiskey,Xray,Gimp,BfnFixed,Strata,SoCal,XApi,Msrp,XpProfile,tcpdump,PatchPanel,ArosTest,FhTest,Arbus,XpAcl,MacConc,XpApi,telnet,QosTest,Alpha2,BfnVlan,Stp,VxlanControllerTest,MplsAgent,Bravo2,Lanz,BfnMbb,Intf,XCtrl,Unicast,SandTunnel,L3Unicast,Ipsec,MplsTest,Rsvp,EthIntf,StageMgr,Sol,MplsUtils,Nat,Ira,P4NamespaceDut,Counters,Charlie2,Aqlc,Mlag,Power,OpenFlow,Lag,RestApi,BfdTest,strongs,Sfa,CEosUtils,Adt746,MaintenanceMode,MlagDut,EosImage,IpEth,MultiProtocol,Launcher,Max3179,Snmp,Acl,IpEthTest,PhyEee,bf-syslibs,tacc,XpL2,p4-ar-switch,p4-bf-switch,LdpTest,BfnPhy,Mirroring,Phy6,Ptp' REGEXP '^((?!\b(Strata|StrataApi|StrataApiV2)\b).)*$'); SELECT 1 FROM dual WHERE ('Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,StrataCentral,Golf,Hotel,India,Juliet,Kilo,Lima,Mike,StrataL3,November,Oscar,StrataL2,Sand,P3,P4SwitchTest,Arsys,Poppa,ExtensionMgr,Arp,Quebec,Romeo,StrataApiV2,PtReyes,Sierra,SandAcl,Arrow,Artools,BridgeTest,Tango,SandT,PAlaska,Namespace,Agent,Qos,PatchPanel,ProjectReport,Ark,Gimp,Agent,SliceAgent,Arnet,Bgp,Ale,Tommy,Central,AsicPktTestLib,Hsc,SandL3,Abuild,Pca9555,Standby,ControllerDut,CalSys,SandLib,Sb820,PointV2,BfnLib,Evpn,BfnSdk,Sflow,ManagementActive,AutoTest,GatedTest,Bgp,Sand,xinetd,BfnAgentLib,bf-utils,Hello,BfnState,Eos,Artest,Qos,Scd,ThermoMgr,Uniform,EosUtils,Eb,FanController,Central,BfnL3,BfnL2,tcp_wrappers,Victor,Environment,Route,Failover,Whiskey,Xray,Gimp,BfnFixed,Strata,SoCal,XApi,Msrp,XpProfile,tcpdump,PatchPanel,ArosTest,FhTest,Arbus,XpAcl,MacConc,XpApi,telnet,QosTest,Alpha2,BfnVlan,Stp,VxlanControllerTest,MplsAgent,Bravo2,Lanz,BfnMbb,Intf,XCtrl,Unicast,SandTunnel,L3Unicast,Ipsec,MplsTest,Rsvp,EthIntf,StageMgr,Sol,MplsUtils,Nat,Ira,P4NamespaceDut,Counters,Charlie2,Aqlc,Mlag,Power,OpenFlow,Lag,RestApi,BfdTest,strongs,Sfa,CEosUtils,Adt746,MaintenanceMode,MlagDut,EosImage,IpEth,MultiProtocol,Launcher,Max3179,Snmp,Acl,IpEthTest,PhyEee,bf-syslibs,tacc,XpL2,p4-ar-switch,p4-bf-switch,LdpTest,BfnPhy,Mirroring,Phy6,Ptp' REGEXP '^((?!\b(Strata|StrataApi|StrataApiV2)\b).)*$');
--enable_result_log --enable_result_log
--enable_warnings --enable_warnings
#enable after fix MDEV-27871
--disable_view_protocol
--enable_view_protocol
# #
# MDEV-12942 REGEXP_INSTR returns 1 when using brackets # MDEV-12942 REGEXP_INSTR returns 1 when using brackets

View File

@ -40,11 +40,11 @@ position(binary 'll' in 'hello') position('a' in binary 'hello')
select left('hello',null), right('hello',null); select left('hello',null), right('hello',null);
left('hello',null) right('hello',null) left('hello',null) right('hello',null)
NULL NULL NULL NULL
select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ; select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5);
left('hello',2) right('hello',2) substring('hello',2,2) mid('hello',1,5) left('hello',2) right('hello',2) substring('hello',2,2) mid('hello',1,5)
he lo el hello he lo el hello
select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) ; select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) as exp;
concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) exp
happy happy
select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1); select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1);
substring_index('www.tcx.se','.',-2) substring_index('www.tcx.se','.',1) substring_index('www.tcx.se','.',-2) substring_index('www.tcx.se','.',1)
@ -172,23 +172,23 @@ the king of
select substring_index('the king of the the hill','the',3); select substring_index('the king of the the hill','the',3);
substring_index('the king of the the hill','the',3) substring_index('the king of the the hill','the',3)
the king of the the king of the
select concat(':',ltrim(' left '),':',rtrim(' right '),':'); select concat(':',ltrim(' left '),':',rtrim(' right '),':') as exp;
concat(':',ltrim(' left '),':',rtrim(' right '),':') exp
:left : right: :left : right:
select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':'); select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':') as exp;
concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':') exp
:left : right: :left : right:
select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':'); select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':') as exp;
concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':') exp
:left: right: :left: right:
select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':'); select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':') as exp;
concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':') exp
:m:y:s: :m:y:s:
select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':'); select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':') as exp;
concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':') exp
:my:sql: :my:sql:
select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':'); select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':') as exp;
concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':') exp
:my:sql: :my:sql:
select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo"); select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo");
TRIM("foo" FROM "foo") TRIM("foo" FROM "foook") TRIM("foo" FROM "okfoo") TRIM("foo" FROM "foo") TRIM("foo" FROM "foook") TRIM("foo" FROM "okfoo")
@ -202,8 +202,8 @@ NULL
select concat_ws(',','',NULL,'a'); select concat_ws(',','',NULL,'a');
concat_ws(',','',NULL,'a') concat_ws(',','',NULL,'a')
,a ,a
SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"'); SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"') as exp;
CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"') exp
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc";"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc";"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es'); select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
insert('txs',2,1,'hi') insert('is ',4,0,'a') insert('txxxxt',2,4,'es') insert('txs',2,1,'hi') insert('is ',4,0,'a') insert('txxxxt',2,4,'es')
@ -216,8 +216,8 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is
def replace('aaaa','a','bbbb') 253 16 16 Y 0 39 8 def replace('aaaa','a','bbbb') 253 16 16 Y 0 39 8
replace('aaaa','a','bbbb') replace('aaaa','a','bbbb')
bbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbb
select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') ; select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') as exp;
replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') exp
this is a REAL test this is a REAL test
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb'); select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
soundex('') soundex('he') soundex('hello all folks') soundex('#3556 in bugdb') soundex('') soundex('he') soundex('hello all folks') soundex('#3556 in bugdb')
@ -312,11 +312,11 @@ NULL NULL
select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0"); select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0");
least(1,2,3) | greatest(16,32,8) least(5,4)*1 greatest(-1.0,1.0)*1 least(3,2,1)*1.0 greatest(1,1.1,1.0) least("10",9) greatest("A","B","0") least(1,2,3) | greatest(16,32,8) least(5,4)*1 greatest(-1.0,1.0)*1 least(3,2,1)*1.0 greatest(1,1.1,1.0) least("10",9) greatest("A","B","0")
33 4 1.0 1.0 1.1 9 B 33 4 1.0 1.0 1.1 9 B
select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000); select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000) as exp;
decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000) exp
1 1
select decode(encode("abcdef","monty"),"monty")="abcdef"; select decode(encode("abcdef","monty"),"monty")="abcdef" as exp;
decode(encode("abcdef","monty"),"monty")="abcdef" exp
1 1
select quote('\'\"\\test'); select quote('\'\"\\test');
quote('\'\"\\test') quote('\'\"\\test')
@ -332,11 +332,11 @@ Warning 1365 Division by 0
select length(quote(concat(char(0),"test"))); select length(quote(concat(char(0),"test")));
length(quote(concat(char(0),"test"))) length(quote(concat(char(0),"test")))
8 8
select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))) as exp;
hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))) exp
27E0E3E6E7E8EAEB27 27E0E3E6E7E8EAEB27
select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), unhex(NULL); select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), unhex(NULL) as exp;
unhex(hex("foobar")) hex(unhex("1234567890ABCDEF")) unhex("345678") unhex(NULL) unhex(hex("foobar")) hex(unhex("1234567890ABCDEF")) unhex("345678") exp
foobar 1234567890ABCDEF 4Vx NULL foobar 1234567890ABCDEF 4Vx NULL
select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456")); select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456"));
hex(unhex("1")) hex(unhex("12")) hex(unhex("123")) hex(unhex("1234")) hex(unhex("12345")) hex(unhex("123456")) hex(unhex("1")) hex(unhex("12")) hex(unhex("123")) hex(unhex("1234")) hex(unhex("12345")) hex(unhex("123456"))
@ -409,17 +409,17 @@ bugstatus int(10) unsigned default NULL,
submitter int(10) unsigned default NULL submitter int(10) unsigned default NULL
) ENGINE=MyISAM; ) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4); INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4);
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') FROM t1; SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') as exp FROM t1;
CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') exp
"Link";"1";"1";"1";"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"2001-02-28 08:40:16";"20010228084016";"0";"4" "Link";"1";"1";"1";"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"2001-02-28 08:40:16";"20010228084016";"0";"4"
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') FROM t1; SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') as exp FROM t1;
CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') exp
"Link";"1";"1";"1";"0";"4" "Link";"1";"1";"1";"0";"4"
SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) FROM t1; SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) as exp FROM t1;
CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) exp
Link";"1";"1";"1";"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"2001-02-28 08:40:16";"20010228084016";"0";"4 Link";"1";"1";"1";"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";"2001-02-28 08:40:16";"20010228084016";"0";"4
SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') from t1 group by bugdesc; SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') as exp from t1 group by bugdesc;
bugdesc REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') bugdesc exp
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
drop table t1; drop table t1;
CREATE TABLE t1 (id int(11) NOT NULL auto_increment, tmp text NOT NULL, KEY id (id)) ENGINE=MyISAM; CREATE TABLE t1 (id int(11) NOT NULL auto_increment, tmp text NOT NULL, KEY id (id)) ENGINE=MyISAM;
@ -2017,35 +2017,35 @@ hello
select insert('hello', 4294967297, 4294967297, 'hi'); select insert('hello', 4294967297, 4294967297, 'hi');
insert('hello', 4294967297, 4294967297, 'hi') insert('hello', 4294967297, 4294967297, 'hi')
hello hello
select insert('hello', -18446744073709551615, -18446744073709551615, 'hi'); select insert('hello', -18446744073709551615, -18446744073709551615, 'hi') as exp;
insert('hello', -18446744073709551615, -18446744073709551615, 'hi') exp
hello hello
Warnings: Warnings:
Warning 1916 Got overflow when converting '-18446744073709551615' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551615' to INT. Value truncated
Warning 1916 Got overflow when converting '-18446744073709551615' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551615' to INT. Value truncated
select insert('hello', 18446744073709551615, 18446744073709551615, 'hi'); select insert('hello', 18446744073709551615, 18446744073709551615, 'hi') as exp;
insert('hello', 18446744073709551615, 18446744073709551615, 'hi') exp
hello hello
select insert('hello', -18446744073709551616, -18446744073709551616, 'hi'); select insert('hello', -18446744073709551616, -18446744073709551616, 'hi') as exp;
insert('hello', -18446744073709551616, -18446744073709551616, 'hi') exp
hello hello
Warnings: Warnings:
Warning 1916 Got overflow when converting '-18446744073709551616' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551616' to INT. Value truncated
Warning 1916 Got overflow when converting '-18446744073709551616' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551616' to INT. Value truncated
select insert('hello', 18446744073709551616, 18446744073709551616, 'hi'); select insert('hello', 18446744073709551616, 18446744073709551616, 'hi') as exp;
insert('hello', 18446744073709551616, 18446744073709551616, 'hi') exp
hello hello
Warnings: Warnings:
Warning 1916 Got overflow when converting '18446744073709551616' to INT. Value truncated Warning 1916 Got overflow when converting '18446744073709551616' to INT. Value truncated
Warning 1916 Got overflow when converting '18446744073709551616' to INT. Value truncated Warning 1916 Got overflow when converting '18446744073709551616' to INT. Value truncated
select insert('hello', -18446744073709551617, -18446744073709551617, 'hi'); select insert('hello', -18446744073709551617, -18446744073709551617, 'hi') as exp;
insert('hello', -18446744073709551617, -18446744073709551617, 'hi') exp
hello hello
Warnings: Warnings:
Warning 1916 Got overflow when converting '-18446744073709551617' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551617' to INT. Value truncated
Warning 1916 Got overflow when converting '-18446744073709551617' to INT. Value truncated Warning 1916 Got overflow when converting '-18446744073709551617' to INT. Value truncated
select insert('hello', 18446744073709551617, 18446744073709551617, 'hi'); select insert('hello', 18446744073709551617, 18446744073709551617, 'hi') as exp;
insert('hello', 18446744073709551617, 18446744073709551617, 'hi') exp
hello hello
Warnings: Warnings:
Warning 1916 Got overflow when converting '18446744073709551617' to INT. Value truncated Warning 1916 Got overflow when converting '18446744073709551617' to INT. Value truncated
@ -2767,25 +2767,25 @@ CREATE TABLE t1 (a VARCHAR(20), b INT);
CREATE TABLE t2 (a VARCHAR(20), b INT); CREATE TABLE t2 (a VARCHAR(20), b INT);
INSERT INTO t1 VALUES ('ABC', 1); INSERT INTO t1 VALUES ('ABC', 1);
INSERT INTO t2 VALUES ('ABC', 1); INSERT INTO t2 VALUES ('ABC', 1);
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) as exp
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) exp
secret secret
SELECT DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) SELECT DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) as exp
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) exp
secret secret
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') as exp
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') exp
secret secret
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
TRUNCATE TABLE t2; TRUNCATE TABLE t2;
INSERT INTO t1 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); INSERT INTO t1 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1);
INSERT INTO t2 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); INSERT INTO t2 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1);
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a) SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a) as exp
FROM t2 WHERE t2.b = 1 GROUP BY t2.b; FROM t2 WHERE t2.b = 1 GROUP BY t2.b;
DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a) exp
secret secret
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
@ -3067,10 +3067,8 @@ SELECT (rpad(1.0,2048,1)) IS NOT FALSE;
1 1
SELECT ((+0) IN SELECT ((+0) IN
((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)), ((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)),
(32767.1))); (32767.1))) as exp;
((+0) IN exp
((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)),
(32767.1)))
0 0
SELECT ((rpad(1.0,2048,1)) = ('4(') ^ (0.1)); SELECT ((rpad(1.0,2048,1)) = ('4(') ^ (0.1));
((rpad(1.0,2048,1)) = ('4(') ^ (0.1)) ((rpad(1.0,2048,1)) = ('4(') ^ (0.1))
@ -5024,8 +5022,8 @@ DROP TABLE t1;
# #
# MDEV-24742 Server crashes in Charset::numchars / String::numchars # MDEV-24742 Server crashes in Charset::numchars / String::numchars
# #
SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux'); SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux') as exp;
NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux') exp
NULL NULL
# #
# Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY # Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY

View File

@ -31,14 +31,11 @@ select position(binary 'll' in 'hello'),position('a' in binary 'hello');
# strange undocumented behaviour, strict mode # strange undocumented behaviour, strict mode
# #
select left('hello',null), right('hello',null); select left('hello',null), right('hello',null);
select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ; select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5);
#enable after fix MDEV-27871 select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) as exp;
--disable_view_protocol
select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) ;
select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1); select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1);
select substring_index('www.tcx.se','tcx',1),substring_index('www.tcx.se','tcx',-1); select substring_index('www.tcx.se','tcx',1),substring_index('www.tcx.se','tcx',-1);
select substring_index('.tcx.se','.',-2),substring_index('.tcx.se','.tcx',-1); select substring_index('.tcx.se','.',-2),substring_index('.tcx.se','.tcx',-1);
--enable_view_protocol
select substring_index('aaaaaaaaa1','a',1); select substring_index('aaaaaaaaa1','a',1);
select substring_index('aaaaaaaaa1','aa',1); select substring_index('aaaaaaaaa1','aa',1);
select substring_index('aaaaaaaaa1','aa',2); select substring_index('aaaaaaaaa1','aa',2);
@ -79,32 +76,28 @@ select substring_index('the king of the the hill','the',1);
select substring_index('the king of the the hill','the',2); select substring_index('the king of the the hill','the',2);
select substring_index('the king of the the hill','the',3); select substring_index('the king of the the hill','the',3);
select concat(':',ltrim(' left '),':',rtrim(' right '),':'); select concat(':',ltrim(' left '),':',rtrim(' right '),':') as exp;
#enable after fix MDEV-27871 select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':') as exp;
--disable_view_protocol select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':') as exp;
select concat(':',trim(leading from ' left '),':',trim(trailing from ' right '),':'); select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':') as exp;
select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':'); select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':') as exp;
select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':'); select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':') as exp;
select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':');
select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':');
select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo"); select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo");
--enable_view_protocol
select concat_ws(', ','monty','was here','again'); select concat_ws(', ','monty','was here','again');
select concat_ws(NULL,'a'),concat_ws(',',NULL,''); select concat_ws(NULL,'a'),concat_ws(',',NULL,'');
select concat_ws(',','',NULL,'a'); select concat_ws(',','',NULL,'a');
#enable after fix MDEV-27871 SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"') as exp;
--disable_view_protocol
SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"');
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es'); select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
select replace('aaaa','a','b'),replace('aaaa','aa','b'),replace('aaaa','a','bb'),replace('aaaa','','b'),replace('bbbb','a','c'); select replace('aaaa','a','b'),replace('aaaa','aa','b'),replace('aaaa','a','bb'),replace('aaaa','','b'),replace('bbbb','a','c');
--disable_view_protocol
--enable_metadata --enable_metadata
select replace('aaaa','a','bbbb'); select replace('aaaa','a','bbbb');
--disable_metadata --disable_metadata
select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') ;
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
--enable_view_protocol --enable_view_protocol
select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') as exp;
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
select 'mood' sounds like 'mud'; select 'mood' sounds like 'mud';
select 'Glazgo' sounds like 'Liverpool'; select 'Glazgo' sounds like 'Liverpool';
select null sounds like 'null'; select null sounds like 'null';
@ -137,32 +130,22 @@ select rpad('abcd',7),lpad('abcd',7);
select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'); select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD');
select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0"); select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0");
#enable after fix MDEV-27871 select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000) as exp;
--disable_view_protocol select decode(encode("abcdef","monty"),"monty")="abcdef" as exp;
select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000);
--enable_view_protocol
select decode(encode("abcdef","monty"),"monty")="abcdef";
select quote('\'\"\\test'); select quote('\'\"\\test');
select quote(concat('abc\'', '\\cba')); select quote(concat('abc\'', '\\cba'));
select quote(1/0), quote('\0\Z'); select quote(1/0), quote('\0\Z');
select length(quote(concat(char(0),"test"))); select length(quote(concat(char(0),"test")));
#enable after fix MDEV-27871 select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))) as exp;
--disable_view_protocol select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), unhex(NULL) as exp;
select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235))));
select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), unhex(NULL);
--enable_view_protocol
select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456")); select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456"));
select length(unhex(md5("abrakadabra"))); select length(unhex(md5("abrakadabra")));
# #
# Bug #6564: QUOTE(NULL # Bug #6564: QUOTE(NULL
# #
#enable after fix MDEV-28651
--disable_view_protocol
select concat('a', quote(NULL)); select concat('a', quote(NULL));
--enable_view_protocol
# #
# Wrong usage of functions # Wrong usage of functions
@ -211,14 +194,11 @@ CREATE TABLE t1 (
submitter int(10) unsigned default NULL submitter int(10) unsigned default NULL
) ENGINE=MyISAM; ) ENGINE=MyISAM;
#enable after fix MDEV-27871
--disable_view_protocol
INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4); INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4);
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') FROM t1; SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter), '"') as exp FROM t1;
SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') FROM t1; SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') as exp FROM t1;
SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) FROM t1; SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified+0,bugstatus,submitter) as exp FROM t1;
SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') from t1 group by bugdesc; SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') as exp from t1 group by bugdesc;
--enable_view_protocol
drop table t1; drop table t1;
# #
@ -1135,15 +1115,12 @@ select insert('hello', -4294967296, -4294967296, 'hi');
select insert('hello', 4294967296, 4294967296, 'hi'); select insert('hello', 4294967296, 4294967296, 'hi');
select insert('hello', -4294967297, -4294967297, 'hi'); select insert('hello', -4294967297, -4294967297, 'hi');
select insert('hello', 4294967297, 4294967297, 'hi'); select insert('hello', 4294967297, 4294967297, 'hi');
#enable after fix MDEV-27871 select insert('hello', -18446744073709551615, -18446744073709551615, 'hi') as exp;
--disable_view_protocol select insert('hello', 18446744073709551615, 18446744073709551615, 'hi') as exp;
select insert('hello', -18446744073709551615, -18446744073709551615, 'hi'); select insert('hello', -18446744073709551616, -18446744073709551616, 'hi') as exp;
select insert('hello', 18446744073709551615, 18446744073709551615, 'hi'); select insert('hello', 18446744073709551616, 18446744073709551616, 'hi') as exp;
select insert('hello', -18446744073709551616, -18446744073709551616, 'hi'); select insert('hello', -18446744073709551617, -18446744073709551617, 'hi') as exp;
select insert('hello', 18446744073709551616, 18446744073709551616, 'hi'); select insert('hello', 18446744073709551617, 18446744073709551617, 'hi') as exp;
select insert('hello', -18446744073709551617, -18446744073709551617, 'hi');
select insert('hello', 18446744073709551617, 18446744073709551617, 'hi');
--enable_view_protocol
select repeat('hello', -1); select repeat('hello', -1);
select repeat('hello', -4294967295); select repeat('hello', -4294967295);
@ -1488,17 +1465,14 @@ CREATE TABLE t2 (a VARCHAR(20), b INT);
INSERT INTO t1 VALUES ('ABC', 1); INSERT INTO t1 VALUES ('ABC', 1);
INSERT INTO t2 VALUES ('ABC', 1); INSERT INTO t2 VALUES ('ABC', 1);
#enable after fix MDEV-27871 SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) as exp
--disable_view_protocol
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a)
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
SELECT DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) SELECT DECODE((SELECT ENCODE('secret', 'ABC') FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), t2.a) as exp
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b), 'ABC') as exp
FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b; FROM t1,t2 WHERE t1.b = t1.b > 0 GROUP BY t2.b;
--enable_view_protocol
TRUNCATE TABLE t1; TRUNCATE TABLE t1;
TRUNCATE TABLE t2; TRUNCATE TABLE t2;
@ -1506,11 +1480,8 @@ TRUNCATE TABLE t2;
INSERT INTO t1 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); INSERT INTO t1 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1);
INSERT INTO t2 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1); INSERT INTO t2 VALUES ('EDF', 3), ('BCD', 2), ('ABC', 1);
#enable after fix MDEV-27871 SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a) as exp
--disable_view_protocol
SELECT DECODE((SELECT ENCODE('secret', t1.a) FROM t1,t2 WHERE t1.a = t2.a GROUP BY t1.b LIMIT 1), t2.a)
FROM t2 WHERE t2.b = 1 GROUP BY t2.b; FROM t2 WHERE t2.b = 1 GROUP BY t2.b;
--enable_view_protocol
DROP TABLE t1, t2; DROP TABLE t1, t2;
@ -1676,14 +1647,11 @@ SELECT CONV(1,-2147483648,-2147483648);
--echo # Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY --echo # Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol
SELECT (rpad(1.0,2048,1)) IS NOT FALSE; SELECT (rpad(1.0,2048,1)) IS NOT FALSE;
SELECT ((+0) IN SELECT ((+0) IN
((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)), ((0b111111111111111111111111111111111111111111111111111),(rpad(1.0,2048,1)),
(32767.1))); (32767.1))) as exp;
SELECT ((rpad(1.0,2048,1)) = ('4(') ^ (0.1)); SELECT ((rpad(1.0,2048,1)) = ('4(') ^ (0.1));
--enable_view_protocol
--error 1690 --error 1690
SELECT SELECT
@ -2111,10 +2079,7 @@ DROP TABLE t1;
--echo # MDEV-24742 Server crashes in Charset::numchars / String::numchars --echo # MDEV-24742 Server crashes in Charset::numchars / String::numchars
--echo # --echo #
#enable after fix MDEV-27871 SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux') as exp;
--disable_view_protocol
SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux');
--enable_view_protocol
--echo # --echo #
--echo # Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY --echo # Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY

View File

@ -162,17 +162,17 @@ cast(cast(@a as time(2)) as time(6))
12:13:14.120000 12:13:14.120000
select CAST(@a AS DATETIME(7)); select CAST(@a AS DATETIME(7));
ERROR 42000: Too big precision 7 specified for '@`a`'. Maximum is 6 ERROR 42000: Too big precision 7 specified for '@`a`'. Maximum is 6
SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00') as exp;
CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00') exp
2011-01-02 15:00:00 2011-01-02 15:00:00
SELECT CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00') as exp;
CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00') exp
2011-01-02 15:00:00.123 2011-01-02 15:00:00.123
SELECT CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00') as exp;
CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00') exp
2011-01-02 15:00:00.123456 2011-01-02 15:00:00.123456
SELECT CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00'); SELECT CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00') as exp;
CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00') exp
2010-10-10 13:10:10.1234 2010-10-10 13:10:10.1234
create table t1 (a varchar(200)); create table t1 (a varchar(200));
insert t1 values (now(6)); insert t1 values (now(6));

View File

@ -80,13 +80,10 @@ select CAST(@a AS DATETIME(7));
# #
# CONVERT_TZ # CONVERT_TZ
# #
SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00', '+00:00', '+03:00') as exp;
SELECT CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123', '+00:00', '+03:00') as exp;
SELECT CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00'); SELECT CONVERT_TZ('2011-01-02 12:00:00.123456', '+00:00', '+03:00') as exp;
#enable after fix MDEV-27871 SELECT CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00') as exp;
--disable_view_protocol
SELECT CONVERT_TZ(CAST('2010-10-10 10:10:10.123456' AS DATETIME(4)), '+00:00', '+03:00');
--enable_view_protocol
# #
# Field::store_time() # Field::store_time()

View File

@ -238,30 +238,26 @@ dist buffer buf_area
-1 POLYGON 16.00 -1 POLYGON 16.00
SELECT ST_CONTAINS( SELECT ST_CONTAINS(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)')); GeomFromText('POINT(5 10)')) as geom;
ST_CONTAINS( geom
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)'))
0 0
SELECT AsText(ST_UNION( SELECT AsText(ST_UNION(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)'))); GeomFromText('POINT(5 10)'))) as geom;
AsText(ST_UNION( geom
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)')))
GEOMETRYCOLLECTION(POLYGON((0 0,0 5,5 5,5 0,0 0)),POLYGON((6 6,6 11,11 11,11 6,6 6)),POINT(5 10)) GEOMETRYCOLLECTION(POLYGON((0 0,0 5,5 5,5 0,0 0)),POLYGON((6 6,6 11,11 11,11 6,6 6)),POINT(5 10))
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE
# #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)) as geom;
GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)) geom
POLYGON POLYGON
# #
# Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL
# #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)) as geom;
GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)) geom
POLYGON POLYGON
# #
# Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER
@ -272,27 +268,21 @@ Warning 1292 Truncated incorrect DOUBLE value: ''
SELECT ST_WITHIN( SELECT ST_WITHIN(
LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '), LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '),
ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '), ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))) as st;
ST_WITHIN( st
LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '),
ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) ')
0 0
SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))) as st;
ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), st
ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))'))))
2 2
SELECT ST_NUMINTERIORRINGS( SELECT ST_NUMINTERIORRINGS(
ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '), ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '),
SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))); SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))) as st;
ST_NUMINTERIORRINGS( st
ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '),
SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) ')))))
0 0
SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'),
SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))); SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))) as st;
ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), st
SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) '))))
POLYGON((9 9,5 2,4 5,9 9)) POLYGON((9 9,5 2,4 5,9 9))
# #
# Start of 10.2 tests # Start of 10.2 tests

View File

@ -1,21 +1,21 @@
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')) as result;
1 ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')) 1 result
1 1 1 1
select 0, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')); select 0, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')) as result;
0 ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')) 0 result
0 0 0 0
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')) as result;
1 ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')) 1 result
1 1 1 1
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
1 ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) 1 result
1 1 1 1
select 0, ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 0, ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
0 ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) 0 result
0 0 0 0
select 1, ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))')); select 1, ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))')) as result;
1 ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))')) 1 result
1 1 1 1
create table t1 (g point); create table t1 (g point);
insert into t1 values insert into t1 values
@ -66,89 +66,89 @@ POINT(6 2)
POINT(6 6) POINT(6 6)
POINT(8 4) POINT(8 4)
DROP TABLE t1; DROP TABLE t1;
select 0, ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 0, ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
0 ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) 0 result
0 0 0 0
select 1, ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 1, ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
1 ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) 1 result
1 1 1 1
select 1, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(50 15, 15 50)')); select 1, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(50 15, 15 50)')) as result;
1 ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(50 15, 15 50)')) 1 result
1 1 1 1
select 0, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(16 16, 51 51)')); select 0, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(16 16, 51 51)')) as result;
0 ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(16 16, 51 51)')) 0 result
0 1 0 1
select 1, ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) as result;
1 ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) 1 result
1 1 1 1
select astext(ST_Union(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))); select astext(ST_Union(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) as result;
astext(ST_Union(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) result
POLYGON((0 0,1 2,2 0,0 0)) POLYGON((0 0,1 2,2 0,0 0))
select astext(ST_Intersection(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))); select astext(ST_Intersection(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) as result;
astext(ST_Intersection(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) result
POINT(1 1) POINT(1 1)
select ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')); select ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) as result;
ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) result
1 1
select ST_contains(GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)), ((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')); select ST_contains(GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)), ((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')) as result;
ST_contains(GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)), ((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')) result
0 0
select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 15, 15 15, 15 10, 10 10))')); select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 15, 15 15, 15 10, 10 10))')) as result;
ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 15, 15 15, 15 10, 10 10))')) result
1 1
select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')); select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) as result;
ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) result
0 0
select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')); select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) as result;
ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) result
1 1
select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((1 1, 1 4, 4 4, 4 1, 1 1))')); select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((1 1, 1 4, 4 4, 4 1, 1 1))')) as result;
ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((1 1, 1 4, 4 4, 4 1, 1 1))')) result
0 0
select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) result
0.7071067811865475 0.7071067811865475
select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('linestring(0 1, 1 0)')); select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('linestring(0 1, 1 0)')) as result;
ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('linestring(0 1, 1 0)')) result
0 0
select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) result
0 0
select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0),(2 2, 3 4, 4 3, 2 2))'), geomfromtext('point(3 3)')); select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0),(2 2, 3 4, 4 3, 2 2))'), geomfromtext('point(3 3)')) as result;
ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0),(2 2, 3 4, 4 3, 2 2))'), geomfromtext('point(3 3)')) result
0.4472135954999579 0.4472135954999579
select ST_DISTANCE(geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
ST_DISTANCE(geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) result
0.8944271909999159 0.8944271909999159
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))) as result;
astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))) result
POLYGON((26.47058823529412 23.823529411764707,21.951219512195124 27.439024390243905,23.855421686746986 29.819277108433734,29.289940828402365 26.36094674556213,26.47058823529412 23.823529411764707)) POLYGON((26.47058823529412 23.823529411764707,21.951219512195124 27.439024390243905,23.855421686746986 29.819277108433734,29.289940828402365 26.36094674556213,26.47058823529412 23.823529411764707))
select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))); select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))) as result;
astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))) result
MULTIPOINT(26.47058823529412 23.823529411764707,29.289940828402365 26.36094674556213,21.951219512195124 27.439024390243905,23.855421686746986 29.819277108433734) MULTIPOINT(26.47058823529412 23.823529411764707,29.289940828402365 26.36094674556213,21.951219512195124 27.439024390243905,23.855421686746986 29.819277108433734)
select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))); select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))) as result;
astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))) result
POINT(29.289940828402365 26.36094674556213) POINT(29.289940828402365 26.36094674556213)
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POINT(20 20)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POINT(20 20)'))) as result;
astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POINT(20 20)'))) result
POINT(20 20) POINT(20 20)
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200)'))) as result;
astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200)'))) result
LINESTRING(0 0,46.666666666666664 46.666666666666664) LINESTRING(0 0,46.666666666666664 46.666666666666664)
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) result
MULTILINESTRING((0 0,46.666666666666664 46.666666666666664),(8 10,45.33333333333333 47.33333333333333)) MULTILINESTRING((0 0,46.666666666666664 46.666666666666664),(8 10,45.33333333333333 47.33333333333333))
select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) result
GEOMETRYCOLLECTION(LINESTRING(-10 -10,0 0),LINESTRING(-11 -9,8 10),POLYGON((0 0,40 50,50 45,0 0)),LINESTRING(46.666666666666664 46.666666666666664,200 200,199 201,45.33333333333333 47.33333333333333)) GEOMETRYCOLLECTION(LINESTRING(-10 -10,0 0),LINESTRING(-11 -9,8 10),POLYGON((0 0,40 50,50 45,0 0)),LINESTRING(46.666666666666664 46.666666666666664,200 200,199 201,45.33333333333333 47.33333333333333))
select astext(ST_intersection(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); select astext(ST_intersection(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) as result;
astext(ST_intersection(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) result
POLYGON((0 0,0 1,0.5 0.5,0 0)) POLYGON((0 0,0 1,0.5 0.5,0 0))
select astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); select astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) as result;
astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) result
MULTIPOLYGON(((0 0,0.5 0.5,1 0,0 0)),((0.5 0.5,0 1,0 2,1 1,0.5 0.5))) MULTIPOLYGON(((0 0,0.5 0.5,1 0,0 0)),((0.5 0.5,0 1,0 2,1 1,0.5 0.5)))
select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) result
GEOMETRYCOLLECTION(LINESTRING(-10 -10,0 0),LINESTRING(-11 -9,8 10),POLYGON((0 0,40 50,50 45,0 0)),LINESTRING(46.666666666666664 46.666666666666664,200 200,199 201,45.33333333333333 47.33333333333333)) GEOMETRYCOLLECTION(LINESTRING(-10 -10,0 0),LINESTRING(-11 -9,8 10),POLYGON((0 0,40 50,50 45,0 0)),LINESTRING(46.666666666666664 46.666666666666664,200 200,199 201,45.33333333333333 47.33333333333333))
select astext(ST_buffer(geometryfromtext('point(1 1)'), 1)); select astext(ST_buffer(geometryfromtext('point(1 1)'), 1));
astext(ST_buffer(geometryfromtext('point(1 1)'), 1)) astext(ST_buffer(geometryfromtext('point(1 1)'), 1))
@ -170,26 +170,26 @@ select ST_NUMPOINTS(ST_EXTERIORRING(@buff));
ST_NUMPOINTS(ST_EXTERIORRING(@buff)) ST_NUMPOINTS(ST_EXTERIORRING(@buff))
202 202
DROP TABLE t1; DROP TABLE t1;
select st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')) as result;
st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')) result
0 0
select st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')) as result;
st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')) result
0 0
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 1)')) as result;
st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 1)')) result
1 1
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 0)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 0)')) as result;
st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 0)')) result
0 0
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 2)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 2)')) as result;
st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 2)')) result
0 0
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1.2, 1 0, 2 0, 1 1.2))')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1.2, 1 0, 2 0, 1 1.2))')) as result;
st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1.2, 1 0, 2 0, 1 1.2))')) result
0 0
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1, 1 0, 2 0, 1 1))')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1, 1 0, 2 0, 1 1))')) as result;
st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1, 1 0, 2 0, 1 1))')) result
1 1
SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 19, 59 13, 59 13, 67 13) )')) as result; SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 19, 59 13, 59 13, 67 13) )')) as result;
result result
@ -226,16 +226,14 @@ SELECT ASTEXT(TOUCHES(@a, GEOMFROMTEXT('point(0 0)'))) t;
ERROR HY000: Illegal parameter data type boolean for operation 'st_astext' ERROR HY000: Illegal parameter data type boolean for operation 'st_astext'
SELECT astext(ST_UNION ( SELECT astext(ST_UNION (
PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'), PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'),
ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))'))))); ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))'))))) as result;
astext(ST_UNION ( result
PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'),
ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))')))))
GEOMETRYCOLLECTION(POLYGON((0 0,1 9,8 2,0 0),(2 2,2 7,3 2,2 2)),LINESTRING(0.5555555555555556 5,0 5,0 0,5 0,5 1.25),LINESTRING(2 5,2.4 5)) GEOMETRYCOLLECTION(POLYGON((0 0,1 9,8 2,0 0),(2 2,2 7,3 2,2 2)),LINESTRING(0.5555555555555556 5,0 5,0 0,5 0,5 1.25),LINESTRING(2 5,2.4 5))
SELECT astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0)); SELECT astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0));
astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0)) astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0))
LINESTRING(0 0,1 1) LINESTRING(0 0,1 1)
SELECT Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5); SELECT Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5) as result;
Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5) result
78.68426 78.68426
SELECT ST_INTERSECTION(NULL, NULL); SELECT ST_INTERSECTION(NULL, NULL);
ST_INTERSECTION(NULL, NULL) ST_INTERSECTION(NULL, NULL)
@ -247,21 +245,14 @@ MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4))
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 4,2 5,3 5)), MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 4,2 5,3 5)),
((2 2,9 2,0 2,2 6,2 2)), ((2 2,9 2,0 2,2 6,2 2)),
((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)),
((9 9,6 8,7 0,9 9)))'))); ((9 9,6 8,7 0,9 9)))'))) as result;
ASTEXT(ST_INTERSECTION( result
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),
((0 5,3 5,3 0,0 0,0 1,2 1,2 2,0 2,0 5), (1 3,2 3,2 4,1 4,1 3)),
((2 2,5 2,4 4,2 8,2 2)))'),
MULTIPOLY
POLYGON((0 2,1 4,1 3,2 3,2 4,1 4,1.5 5,2 5,2 8,8 8,8 2,0 2),(4 4,4 6,6 6,6 4,4 4)) POLYGON((0 2,1 4,1 3,2 3,2 4,1 4,1.5 5,2 5,2 8,8 8,8 2,0 2),(4 4,4 6,6 6,6 4,4 4))
SELECT ROUND(ST_LENGTH(ST_UNION( SELECT ROUND(ST_LENGTH(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0), MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0),
(8 2,1 3,9 0,4 4))'), (8 2,1 3,9 0,4 4))'),
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 5,6 7,9 7,5 2,1 6,3 6))'))), 7); MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 5,6 7,9 7,5 2,1 6,3 6))'))), 7) as result;
ROUND(ST_LENGTH(ST_UNION( result
MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0),
(8 2,1 3,9 0,4 4))'),
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 5,6 7,9 7,5 2,1 6,3 6)
90.2783626 90.2783626
SELECT ST_NUMGEOMETRIES((ST_UNION(ST_UNION( SELECT ST_NUMGEOMETRIES((ST_UNION(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 0,4 2,0 2,1 5,0 3,7 0,8 5,5 8), MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 0,4 2,0 2,1 5,0 3,7 0,8 5,5 8),
@ -274,18 +265,13 @@ MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 0,9 3,2 5,3 6,3 2),
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((7 7,3 7,3 1,7 8,7 7)), MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((7 7,3 7,3 1,7 8,7 7)),
((3 5,2 4,2 5,3 5)), ((3 5,2 4,2 5,3 5)),
((7 7,8 7,3 7,7 7,7 7)), ((7 7,8 7,3 7,7 7,7 7)),
((0 5,3 5,3 4,1 4,1 3,3 3,3 0,0 0,0 5), (1 1,2 1,2 2,1 2,1 1)))')))); ((0 5,3 5,3 4,1 4,1 3,3 3,3 0,0 0,0 5), (1 1,2 1,2 2,1 2,1 1)))')))) as result;
ST_NUMGEOMETRIES((ST_UNION(ST_UNION( result
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 0,4 2,0 2,1 5,0 3,7 0,8 5,5 8),
(6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0),
192 192
SELECT Round(ST_AREA(ST_BUFFER( ST_UNION( SELECT Round(ST_AREA(ST_BUFFER( ST_UNION(
POLYGONFROMTEXT('POLYGON((7 7, 7 7, 7 4, 7 7, 7 7))'), POLYGONFROMTEXT('POLYGON((7 7, 7 7, 7 4, 7 7, 7 7))'),
POLYGONFROMTEXT('POLYGON((7 7, 4 7, 2 9, 7 6, 7 7))')), 1)), 6); POLYGONFROMTEXT('POLYGON((7 7, 4 7, 2 9, 7 6, 7 7))')), 1)), 6) as result;
Round(ST_AREA(ST_BUFFER( ST_UNION( result
POLYGONFROMTEXT('POLYGON((7 7, 7 7, 7 4, 7 7, 7 7))'),
POLYGONFROMTEXT('POLYGON((7 7, 4 7, 2 9, 7 6, 7 7))')), 1)), 6)
21.901344 21.901344
SELECT AsText(ST_UNION(MultiPolygonFromText(' SELECT AsText(ST_UNION(MultiPolygonFromText('
MULTIPOLYGON(((2 2, 2 8, 8 8, 8 2, 2 2), (4 4, 4 6, 6 6, 6 4, 4 4)), MULTIPOLYGON(((2 2, 2 8, 8 8, 8 2, 2 2), (4 4, 4 6, 6 6, 6 4, 4 4)),
@ -294,21 +280,14 @@ SELECT AsText(ST_UNION(MultiPolygonFromText('
MultiPolygonFromText(' MULTIPOLYGON(((0 0, 1 9, 4 6, 0 0)), MultiPolygonFromText(' MULTIPOLYGON(((0 0, 1 9, 4 6, 0 0)),
((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1)), ((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1)),
((7 7, 4 7, 6 3, 7 2, 7 7)), ((7 7, 4 7, 6 3, 7 2, 7 7)),
((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1))) '))); ((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1))) '))) as result;
AsText(ST_UNION(MultiPolygonFromText(' result
MULTIPOLYGON(((2 2, 2 8, 8 8, 8 2, 2 2), (4 4, 4 6, 6 6, 6 4, 4 4)),
((0 0, 8 3, 7 4, 0 0)),
((2 2, 2 8, 8 8, 8 2, 2 2), (4 4, 4 6, 6 6, 6 4, 4 4)))'),
MultiPolygonFr
POLYGON((0 0,0 5,0.5555555555555556 5,1 9,2 8,8 8,8 2,5.333333333333334 2,3 1.125,3 0,0 0),(1 1,1 1.5,1.3333333333333333 2,2 2,2 1.1428571428571428,1.75 1,1 1),(3 1.7142857142857142,3 2,3.5 2,3 1.7142857142857142),(4 4,4 6,4.5 6,5.5 4,4 4)) POLYGON((0 0,0 5,0.5555555555555556 5,1 9,2 8,8 8,8 2,5.333333333333334 2,3 1.125,3 0,0 0),(1 1,1 1.5,1.3333333333333333 2,2 2,2 1.1428571428571428,1.75 1,1 1),(3 1.7142857142857142,3 2,3.5 2,3 1.7142857142857142),(4 4,4 6,4.5 6,5.5 4,4 4))
SELECT AsText(ST_SYMDIFFERENCE( SELECT AsText(ST_SYMDIFFERENCE(
MultiLineStringFromText('MULTILINESTRING((7 7, 1 7, 8 5, 7 8, 7 7), MultiLineStringFromText('MULTILINESTRING((7 7, 1 7, 8 5, 7 8, 7 7),
(6 3, 3 4, 1 1, 9 9, 9 0, 8 4, 9 9))'), (6 3, 3 4, 1 1, 9 9, 9 0, 8 4, 9 9))'),
Envelope(GeometryFromText('MULTIPOINT(7 9, 0 0, 3 7, 1 6, 0 0)')))); Envelope(GeometryFromText('MULTIPOINT(7 9, 0 0, 3 7, 1 6, 0 0)')))) as result;
AsText(ST_SYMDIFFERENCE( result
MultiLineStringFromText('MULTILINESTRING((7 7, 1 7, 8 5, 7 8, 7 7),
(6 3, 3 4, 1 1, 9 9, 9 0, 8 4, 9 9))'),
Envelope(GeometryFromText('MULTIPOINT(7 9, 0 0, 3 7, 1 6, 0 0)'))))
GEOMETRYCOLLECTION(POLYGON((0 0,0 9,7 9,7 0,0 0)),LINESTRING(9 9,8 4,9 0,9 9),LINESTRING(7 5.285714285714286,8 5,7.25 7.25),LINESTRING(7 7,7.25 7.25),LINESTRING(7.25 7.25,7 8),LINESTRING(7.25 7.25,9 9)) GEOMETRYCOLLECTION(POLYGON((0 0,0 9,7 9,7 0,0 0)),LINESTRING(9 9,8 4,9 0,9 9),LINESTRING(7 5.285714285714286,8 5,7.25 7.25),LINESTRING(7 7,7.25 7.25),LINESTRING(7.25 7.25,7 8),LINESTRING(7.25 7.25,9 9))
SELECT AsText(ST_UNION( SELECT AsText(ST_UNION(
MultiPolygonFromText('MULTIPOLYGON(((9 9, 7 9, 1 1, 9 9)), MultiPolygonFromText('MULTIPOLYGON(((9 9, 7 9, 1 1, 9 9)),
@ -316,50 +295,38 @@ MultiPolygonFromText('MULTIPOLYGON(((9 9, 7 9, 1 1, 9 9)),
((0 0, 7 5, 9 6, 0 0)), ((0 0, 7 5, 9 6, 0 0)),
((7 7, 5 7, 1 5, 7 1, 7 7)))'), ((7 7, 5 7, 1 5, 7 1, 7 7)))'),
MultiPolygonFromText('MULTIPOLYGON(((2 2, 2 2, 1 5, 2 7, 2 2)), MultiPolygonFromText('MULTIPOLYGON(((2 2, 2 2, 1 5, 2 7, 2 2)),
((0 5, 3 5, 3 0, 0 0, 0 5), (1 1, 2 1, 2 4, 1 4, 1 1)))'))); ((0 5, 3 5, 3 0, 0 0, 0 5), (1 1, 2 1, 2 4, 1 4, 1 1)))'))) as result;
AsText(ST_UNION( result
MultiPolygonFromText('MULTIPOLYGON(((9 9, 7 9, 1 1, 9 9)),
((2 2, 1 2, 3 3, 2 2, 2 2)),
((0 0, 7 5, 9 6, 0 0)),
POLYGON((0 0,0 5,1 5,2 7,2 5.5,5 7,5.5 7,7 9,9 9,7 7,7 5,9 6,7 4.666666666666667,7 1,4.25 2.833333333333333,3 2,3 0,0 0),(1 1,1 4,1.3333333333333333 4,1.8571428571428572 2.4285714285714284,1 2,1.75 2,1 1,2 2,2 1.4285714285714284,1.4 1,1 1),(1.5 1,2 1.3333333333333333,2 1,1.5 1),(3 2.142857142857143,3 3,3.4 3.4,4.1034482758620685 2.9310344827586206,3 2.142857142857143)) POLYGON((0 0,0 5,1 5,2 7,2 5.5,5 7,5.5 7,7 9,9 9,7 7,7 5,9 6,7 4.666666666666667,7 1,4.25 2.833333333333333,3 2,3 0,0 0),(1 1,1 4,1.3333333333333333 4,1.8571428571428572 2.4285714285714284,1 2,1.75 2,1 1,2 2,2 1.4285714285714284,1.4 1,1 1),(1.5 1,2 1.3333333333333333,2 1,1.5 1),(3 2.142857142857143,3 3,3.4 3.4,4.1034482758620685 2.9310344827586206,3 2.142857142857143))
SELECT AsText( ST_INTERSECTION( SELECT AsText( ST_INTERSECTION(
LinestringFromText('LINESTRING( 3 5, 2 5, 2 4, 3 4, 3 5 ) ') , LinestringFromText('LINESTRING( 3 5, 2 5, 2 4, 3 4, 3 5 ) ') ,
LinestringFromText('LINESTRING( 3 5, 2 4, 2 5, 3 5 ) ') LinestringFromText('LINESTRING( 3 5, 2 4, 2 5, 3 5 ) ')
)); )) as result;
AsText( ST_INTERSECTION( result
LinestringFromText('LINESTRING( 3 5, 2 5, 2 4, 3 4, 3 5 ) ') ,
LinestringFromText('LINESTRING( 3 5, 2 4, 2 5, 3 5 ) ')
))
LINESTRING(2 4,2 5,3 5) LINESTRING(2 4,2 5,3 5)
SELECT AsText( ST_UNION( SELECT AsText( ST_UNION(
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 7 5 , 2 0 , 2 2 ) ) ') , PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 7 5 , 2 0 , 2 2 ) ) ') ,
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 3 3 , 2 5 , 2 2 ) ) ') ) ); PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 3 3 , 2 5 , 2 2 ) ) ') ) ) as result;
AsText( ST_UNION( result
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 7 5 , 2 0 , 2 2 ) ) ') ,
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 3 3 , 2 5 , 2 2 ) ) ') ) )
POLYGON((2 0,2 5,3 3,3 2,7 5,2 0)) POLYGON((2 0,2 5,3 3,3 2,7 5,2 0))
SELECT AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), GeometryFromText('LINESTRING(3 3, 4 4)'))); SELECT AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), GeometryFromText('LINESTRING(3 3, 4 4)'))) as result;
AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), GeometryFromText('LINESTRING(3 3, 4 4)'))) result
GEOMETRYCOLLECTION EMPTY GEOMETRYCOLLECTION EMPTY
SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))); SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))) as result;
AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))) result
GEOMETRYCOLLECTION(POINT(8 1),LINESTRING(2 4,2 5,3 5,3 4,2 4)) GEOMETRYCOLLECTION(POINT(8 1),LINESTRING(2 4,2 5,3 5,3 4,2 4))
SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING(
(4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')); (4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')) as result;
ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( result
(4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))'))
1 1
SELECT AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYGONFROMTEXT('POLYGON((2 2, 7 2, 4 2, 2 0, 2 2))'))); SELECT AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYGONFROMTEXT('POLYGON((2 2, 7 2, 4 2, 2 0, 2 2))'))) as result;
AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYGONFROMTEXT('POLYGON((2 2, 7 2, 4 2, 2 0, 2 2))'))) result
GEOMETRYCOLLECTION(POLYGON((2 0,2 2,3 2,3 6,12 9,3 0,3 1,2 0)),LINESTRING(5 2,7 2)) GEOMETRYCOLLECTION(POLYGON((2 0,2 2,3 2,3 6,12 9,3 0,3 1,2 0)),LINESTRING(5 2,7 2))
SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER(ST_UNION( SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 2 5, 7 6, 1 8),(0 0 ,1 6 ,0 1, 8 9, 2 4, 6 1, 3 5, 4 8), (9 3, 5 4, 1 8, 4 2, 5 8, 3 0))' ) , MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 2 5, 7 6, 1 8),(0 0 ,1 6 ,0 1, 8 9, 2 4, 6 1, 3 5, 4 8), (9 3, 5 4, 1 8, 4 2, 5 8, 3 0))' ) ,
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 3 1, 2 7, 4 2, 6 2, 1 5))') MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 3 1, 2 7, 4 2, 6 2, 1 5))')
), 16))); ), 16))) as result;
ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER(ST_UNION( result
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 2 5, 7 6, 1 8),(0 0 ,1 6 ,0 1, 8 9, 2 4, 6 1, 3 5, 4 8), (9 3, 5 4, 1 8, 4 2, 5 8, 3 0))' ) ,
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 3 1, 2 7, 4 2, 6 2
278 278
SELECT ST_NUMGEOMETRIES(ST_DIFFERENCE ( SELECT ST_NUMGEOMETRIES(ST_DIFFERENCE (
ST_UNION ( ST_UNION (
@ -372,10 +339,8 @@ MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' )
) )
), ),
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 9 , 1 3 , 7 3 , 8 5 ) , ( 5 0 , 8 1 , 2 0 , 7 4 , 1 0 ) , ( 9 2 , 5 2 , 6 5 , 8 8 , 0 2 ) , ( 0 8 , 3 9 , 4 0 , 1 0 ) , ( 0 0 , 7 6 , 8 3 , 0 0 ) ) ' ) MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 9 , 1 3 , 7 3 , 8 5 ) , ( 5 0 , 8 1 , 2 0 , 7 4 , 1 0 ) , ( 9 2 , 5 2 , 6 5 , 8 8 , 0 2 ) , ( 0 8 , 3 9 , 4 0 , 1 0 ) , ( 0 0 , 7 6 , 8 3 , 0 0 ) ) ' )
)); )) as result;
ST_NUMGEOMETRIES(ST_DIFFERENCE ( result
ST_UNION (
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 4 , 5 0 , 2 9 , 6 2 , 0 2 ) , ( 4 3 , 5 6 , 9 4 , 0 7 , 7 2 , 2 0 , 8 2 ) , ( 5 0 , 1 5 , 3 7 , 7 7 ) , ( 2 3 , 9 5 , 2 0 , 8 1 ) , ( 0 9 , 9 3 , 2 8 , 8 1 , 9 4 )
125 125
SELECT ASTEXT(ST_DIFFERENCE ( SELECT ASTEXT(ST_DIFFERENCE (
POLYGONFROMTEXT( ' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ' ) , POLYGONFROMTEXT( ' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ' ) ,
@ -389,21 +354,14 @@ GEOMETRYFROMTEXT( ' MULTILINESTRING( ( 3 7 , 7 3 , 5 8 , 4 8 ) , ( 3 2 , 5 0 , 9
) )
) )
) )
)); )) as result;
ASTEXT(ST_DIFFERENCE ( result
POLYGONFROMTEXT( ' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ' ) ,
ST_UNION (
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ' ) ,
ST_SYMDIFFERENCE (
MULTILINESTRINGFROMTEX
POLYGON((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)) POLYGON((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4))
SELECT ST_NUMGEOMETRIES(ST_UNION ( SELECT ST_NUMGEOMETRIES(ST_UNION (
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 0 8 , 1 9 , 5 7 , 2 8 , 5 8 , 6 7 ) , ( 4 5 , 8 4 , 0 3 , 5 1 ) , ( 6 8 , 2 7 , 1 6 , 9 9 , 7 2 ) , ( 9 5 , 2 8 , 1 2 , 9 6 , 2 0 ) ) ' ) , MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 0 8 , 1 9 , 5 7 , 2 8 , 5 8 , 6 7 ) , ( 4 5 , 8 4 , 0 3 , 5 1 ) , ( 6 8 , 2 7 , 1 6 , 9 9 , 7 2 ) , ( 9 5 , 2 8 , 1 2 , 9 6 , 2 0 ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 7 7 , 2 7, 6 8, 7 1 , 7 7 ) ) ) ' ) MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 7 7 , 2 7, 6 8, 7 1 , 7 7 ) ) ) ' )
)); )) as result;
ST_NUMGEOMETRIES(ST_UNION ( result
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 0 8 , 1 9 , 5 7 , 2 8 , 5 8 , 6 7 ) , ( 4 5 , 8 4 , 0 3 , 5 1 ) , ( 6 8 , 2 7 , 1 6 , 9 9 , 7 2 ) , ( 9 5 , 2 8 , 1 2 , 9 6 , 2 0 ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (
50 50
SELECT ST_BUFFER ( SELECT ST_BUFFER (
LINESTRINGFROMTEXT( ' LINESTRING( 5 4 , 3 8 , 2 6 , 5 5 , 7 9 ) ' ) , LINESTRINGFROMTEXT( ' LINESTRING( 5 4 , 3 8 , 2 6 , 5 5 , 7 9 ) ' ) ,
@ -414,49 +372,50 @@ MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' ) MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' )
) )
) )
) ; ) as result;
ST_BUFFER ( result
LINESTRINGFROMTEXT( ' LINESTRING( 5 4 , 3 8 , 2 6 , 5 5 , 7 9 ) ' ) , NULL
ST_DISTANCE ( SELECT ST_DISTANCE (
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 4, 2 5, 3 5) ) , ( (3 5, 2 5, 2 4, 3 4, 3 5) ) , ( ( 0 0 , 8 3 , 9 5 , 0 0 ) ) ) ' ) ,
ST_DIFFERENCE ( ST_DIFFERENCE (
MULTIPOL MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' )
),
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 4, 2 5, 3 5) ) , ( (3 5, 2 5, 2 4, 3 4, 3 5) ) , ( ( 0 0 , 8 3 , 9 5 , 0 0 ) ) ) ' )
) as result;
result
NULL NULL
SELECT ST_DISTANCE ( ST_DIFFERENCE ( MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) , MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' ) ), MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 4, 2 5, 3 5) ) , ( (3 5, 2 5, 2 4, 3 4, 3 5) ) , ( ( 0 0 , 8 3 , 9 5 , 0 0 ) ) ) ' ) ) ; SELECT ASTEXT(ST_INTERSECTION( GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(7 7,5.33333333333333 7),LINESTRING(5.33333333333333 7,0 7,5 8,5.33333333333333 7),LINESTRING(5.33333333333333 7,7 2,7 7),POLYGON((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5)))'), geomETRYFROMTEXT(' MULTILINESTRING( ( 5 1 , 3 7 , 6 1 , 7 0 ) , ( 1 6 , 8 5 , 7 5 , 5 6 ) )') )) as result;
ST_DISTANCE ( ST_DIFFERENCE ( MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) , MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , result
NULL
SELECT ASTEXT(ST_INTERSECTION( GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(7 7,5.33333333333333 7),LINESTRING(5.33333333333333 7,0 7,5 8,5.33333333333333 7),LINESTRING(5.33333333333333 7,7 2,7 7),POLYGON((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5)))'), geomETRYFROMTEXT(' MULTILINESTRING( ( 5 1 , 3 7 , 6 1 , 7 0 ) , ( 1 6 , 8 5 , 7 5 , 5 6 ) )') ));
ASTEXT(ST_INTERSECTION( GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(7 7,5.33333333333333 7),LINESTRING(5.33333333333333 7,0 7,5 8,5.33333333333333 7),LINESTRING(5.33333333333333 7,7 2,7 7),POLYGON((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))
MULTIPOINT(7 5,7 5.142857142857142,5.899999999999998 5.300000000000001,5.799999999999997 5.600000000000001,3 7) MULTIPOINT(7 5,7 5.142857142857142,5.899999999999998 5.300000000000001,5.799999999999997 5.600000000000001,3 7)
SELECT ST_CROSSES( GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 4, 2 5, 3 5) ) ') , POLYGONFROMTEXT(' POLYGON((2 4,3 4,3 5,2 5,2 4)) ')); SELECT ST_CROSSES( GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 4, 2 5, 3 5) ) ') , POLYGONFROMTEXT(' POLYGON((2 4,3 4,3 5,2 5,2 4)) ')) as result;
ST_CROSSES( GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 4, 2 5, 3 5) ) ') , POLYGONFROMTEXT(' POLYGON((2 4,3 4,3 5,2 5,2 4)) ')) result
0 0
SELECT ST_WITHIN( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 2 0 , 1 0, 2 4 , 0 4, 0 5) ) ') , POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 1 4 , 1 3 , 3 3 , 3 0 , 0 0 , 0 5), ( 1 1 , 2 1 , 2 2 , 1 2 , 1 1 ) ) ') ); SELECT ST_WITHIN( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 2 0 , 1 0, 2 4 , 0 4, 0 5) ) ') , POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 1 4 , 1 3 , 3 3 , 3 0 , 0 0 , 0 5), ( 1 1 , 2 1 , 2 2 , 1 2 , 1 1 ) ) ') ) as result;
ST_WITHIN( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 2 0 , 1 0, 2 4 , 0 4, 0 5) ) ') , POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 1 4 , 1 3 , 3 3 , 3 0 , 0 0 , 0 5), ( 1 1 , 2 1 , 2 2 , 1 2 , 1 1 ) ) ') ) result
0 0
SELECT ST_WITHIN( POINTFROMTEXT(' POINT(1 2 ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( (0 5, 3 5, 3 0, 0 0, 0 5), ( 1 1 , 2 1 , 2 4, 1 4, 1 1 ) ) ) ')); SELECT ST_WITHIN( POINTFROMTEXT(' POINT(1 2 ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( (0 5, 3 5, 3 0, 0 0, 0 5), ( 1 1 , 2 1 , 2 4, 1 4, 1 1 ) ) ) ')) as result;
ST_WITHIN( POINTFROMTEXT(' POINT(1 2 ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( (0 5, 3 5, 3 0, 0 0, 0 5), ( 1 1 , 2 1 , 2 4, 1 4, 1 1 ) ) ) ')) result
1 1
select ST_ASTEXT(envelope(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION EMPTY'))); select ST_ASTEXT(envelope(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION EMPTY'))) as result;
ST_ASTEXT(envelope(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION EMPTY'))) result
GEOMETRYCOLLECTION EMPTY GEOMETRYCOLLECTION EMPTY
SELECT ST_EQUALS( GEOMETRYFROMTEXT(' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') , GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ); SELECT ST_EQUALS( GEOMETRYFROMTEXT(' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') , GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ) as result;
ST_EQUALS( GEOMETRYFROMTEXT(' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') , GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ) result
0 0
SELECT ST_TOUCHES( GEOMETRYFROMTEXT(' LINESTRING( 1 1 , 1 4 , 5 0 , 8 3 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ') ); SELECT ST_TOUCHES( GEOMETRYFROMTEXT(' LINESTRING( 1 1 , 1 4 , 5 0 , 8 3 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ') ) as result;
ST_TOUCHES( GEOMETRYFROMTEXT(' LINESTRING( 1 1 , 1 4 , 5 0 , 8 3 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ') ) result
0 0
SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT(' MULTIPOINT( 5 8 , 5 2 , 1 8 , 3 0 , 3 0 , 7 8 ) ') ); SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT(' MULTIPOINT( 5 8 , 5 2 , 1 8 , 3 0 , 3 0 , 7 8 ) ') ) as result;
ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT(' MULTIPOINT( 5 8 , 5 2 , 1 8 , 3 0 , 3 0 , 7 8 ) ') ) result
0 0
SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT('MULTIPOINT( 4 0 , 6 9 , 5 1, 1 4 )') ); SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT('MULTIPOINT( 4 0 , 6 9 , 5 1, 1 4 )') ) as result;
ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT('MULTIPOINT( 4 0 , 6 9 , 5 1, 1 4 )') ) result
1 1
SELECT ST_WITHIN( MULTIPOINTFROMTEXT(' MULTIPOINT( 2 9 , 2 9 , 4 9 , 9 1 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ')); SELECT ST_WITHIN( MULTIPOINTFROMTEXT(' MULTIPOINT( 2 9 , 2 9 , 4 9 , 9 1 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ')) as result;
ST_WITHIN( MULTIPOINTFROMTEXT(' MULTIPOINT( 2 9 , 2 9 , 4 9 , 9 1 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ')) result
0 0
SELECT ST_INTERSECTS( GeomFromText('MULTILINESTRING( ( 4030 3045 , 3149 2461 , 3004 3831 , 3775 2976 ) )') , GeomFromText('LINESTRING(3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29,3039.07 3175.05,3039.07 3175.05,3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29)') ); SELECT ST_INTERSECTS( GeomFromText('MULTILINESTRING( ( 4030 3045 , 3149 2461 , 3004 3831 , 3775 2976 ) )') , GeomFromText('LINESTRING(3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29,3039.07 3175.05,3039.07 3175.05,3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29)') ) as result;
ST_INTERSECTS( GeomFromText('MULTILINESTRING( ( 4030 3045 , 3149 2461 , 3004 3831 , 3775 2976 ) )') , GeomFromText('LINESTRING(3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29,3039.07 3175.05,3039.07 3175.05,3058.41 3187.91,3081.52 3153.19, result
1 1
SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0 -3.0, SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0 -3.0,
-2.910427500435995 0.727606875108998, -2.910427500435995 0.727606875108998,
@ -464,26 +423,20 @@ SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0
7.664100588675687 1.503849116986468, 7.664100588675687 1.503849116986468,
1.664100588675687 -2.496150883013531, 1.664100588675687 -2.496150883013531,
0.0 -3.0 0.0 -3.0
))' ), 3 ))); ))' ), 3 ))) as result;
ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0 -3.0, result
-2.910427500435995 0.727606875108998,
-0.910427500435995 8.727606875108998,
7.664100588675687 1.503849116986468,
1.664100588675687 -2.496150883013531,
0.0 -3.0
))' ),
136 136
select astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1)); select astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1)) as result;
astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1)) result
GEOMETRYCOLLECTION EMPTY GEOMETRYCOLLECTION EMPTY
select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT(0 0)')) as result;
ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT(0 0)')) result
1 1
select ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')) as result;
ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')) result
1 1
select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')) as result;
ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')) result
0 0
SELECT ST_RELATE( SELECT ST_RELATE(
ST_DIFFERENCE( ST_DIFFERENCE(
@ -750,30 +703,26 @@ dist buffer buf_area
-1 POLYGON 16.00 -1 POLYGON 16.00
SELECT ST_CONTAINS( SELECT ST_CONTAINS(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)')); GeomFromText('POINT(5 10)')) as geom;
ST_CONTAINS( geom
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)'))
0 0
SELECT AsText(ST_UNION( SELECT AsText(ST_UNION(
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)'))); GeomFromText('POINT(5 10)'))) as geom;
AsText(ST_UNION( geom
GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'),
GeomFromText('POINT(5 10)')))
GEOMETRYCOLLECTION(POLYGON((0 0,0 5,5 5,5 0,0 0)),POLYGON((6 6,6 11,11 11,11 6,6 6)),POINT(5 10)) GEOMETRYCOLLECTION(POLYGON((0 0,0 5,5 5,5 0,0 0)),POLYGON((6 6,6 11,11 11,11 6,6 6)),POINT(5 10))
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE
# #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)) as geom;
GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)) geom
POLYGON POLYGON
# #
# Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL
# #
SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)); SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)) as geom;
GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)) geom
POLYGON POLYGON
# #
# Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER
@ -784,27 +733,21 @@ Warning 1292 Truncated incorrect DOUBLE value: ''
SELECT ST_WITHIN( SELECT ST_WITHIN(
LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '), LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '),
ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '), ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))) as st;
ST_WITHIN( st
LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '),
ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) ')
0 0
SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '),
ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))); ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))) as st;
ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), st
ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))'))))
2 2
SELECT ST_NUMINTERIORRINGS( SELECT ST_NUMINTERIORRINGS(
ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '), ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '),
SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))); SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))) as st;
ST_NUMINTERIORRINGS( st
ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '),
SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) ')))))
0 0
SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'),
SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))); SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))) as st;
ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), st
SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) '))))
POLYGON((9 9,5 2,4 5,9 9)) POLYGON((9 9,5 2,4 5,9 9))
# #
# MDEV-13467 Feature request: Support for ST_Distance_Sphere() # MDEV-13467 Feature request: Support for ST_Distance_Sphere()
@ -832,74 +775,74 @@ ERROR 22023: Invalid GIS data provided to function ST_Distance_Sphere.
SELECT ST_DISTANCE_SPHERE(1, 1, NULL); SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
ST_DISTANCE_SPHERE(1, 1, NULL) ST_DISTANCE_SPHERE(1, 1, NULL)
NULL NULL
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
ERROR HY000: Internal error: st_distance_sphere ERROR HY000: Internal error: st_distance_sphere
# Test Points and radius # Test Points and radius
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) result
157249.0357231545 157249.0357231545
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) result
157225.0865419108 157225.0865419108
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) result
0.024682056391766436 0.024682056391766436
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Internal error: Radius must be greater than zero.
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Internal error: Radius must be greater than zero.
# Test longitude/lattitude # Test longitude/lattitude
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) result
157225.0865419108 157225.0865419108
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(2 1)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(2 1)')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(2 1)')), 10) result
222355.4901806686 222355.4901806686
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) result
222389.3645969269 222389.3645969269
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(2 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(2 1)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(2 1)')) result
157249.0357231545 157249.0357231545
# Test Points - Multipoints # Test Points - Multipoints
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1)')) result
157249.0357231545 157249.0357231545
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 1)'), ST_GEOMFROMTEXT('POINT(0 0)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 1)'), ST_GEOMFROMTEXT('POINT(0 0)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 1)'), ST_GEOMFROMTEXT('POINT(0 0)')) result
157249.0357231545 157249.0357231545
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)')) result
157249.0357231545 157249.0357231545
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)')) result
157249.0357231545 157249.0357231545
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)'), 1) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)'), 1) result
0.024682056391766436 0.024682056391766436
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)'), 1) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)'), 1) result
0.024682056391766436 0.024682056391766436
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1, 3 4)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1, 3 4)'), 1) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1, 3 4)'), 1) result
0.024682056391766436 0.024682056391766436
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1,5 6)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1,5 6)'), 1) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1,5 6)'), 1) result
0.024682056391766436 0.024682056391766436
# Test Multipoints - Multipoints # Test Multipoints - Multipoints
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')) as result;
ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')) result
0 0
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')), 10) result
314282.5644496733 314282.5644496733
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) result
314282.5644496733 314282.5644496733
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) as result;
TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) result
0.04933028646581131 0.04933028646581131
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
ERROR HY000: Internal error: Radius must be greater than zero. ERROR HY000: Internal error: Radius must be greater than zero.
set @pt1 = ST_GeomFromText('POINT(190 -30)'); set @pt1 = ST_GeomFromText('POINT(190 -30)');
set @pt2 = ST_GeomFromText('POINT(-30 50)'); set @pt2 = ST_GeomFromText('POINT(-30 50)');

View File

@ -9,15 +9,12 @@
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
--enable_warnings --enable_warnings
#enable after fix MDEV-27871 select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')) as result;
--disable_view_protocol select 0, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')) as result;
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 0,20 20,0 20,0 0))'), GeomFromText('POLYGON((10 10,30 10,30 30,10 30,10 10))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')) as result;
select 0, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 40, 40 50, 20 70, 10 40))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POINT(10 10)')); select 0, ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
select 1, ST_Intersects(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')); select 1, ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))')) as result;
select 0, ST_Within(GeomFromText('POLYGON((0 0,20 10,10 30, 0 0))'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))'));
select 1, ST_Within(GeomFromText('POLYGON((1 1,20 10,10 30, 1 1))'), GeomFromText('POLYGON((0 0,30 5,10 40, 0 0))'));
--enable_view_protocol
create table t1 (g point); create table t1 (g point);
insert into t1 values insert into t1 values
@ -38,53 +35,49 @@ select astext(g) from t1 where ST_Contains(GeomFromText('POLYGON((5 1, 7 1, 7 7,
DROP TABLE t1; DROP TABLE t1;
#enable after fix MDEV-27871 select 0, ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
--disable_view_protocol select 1, ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))')) as result;
select 0, ST_Within(GeomFromText('LINESTRING(15 15, 50 50, 60 60)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))'));
select 1, ST_Within(GeomFromText('LINESTRING(15 15, 16 16)'), GeomFromText('POLYGON((10 10,30 20,20 40, 10 10))'));
select 1, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(50 15, 15 50)')); select 1, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(50 15, 15 50)')) as result;
select 0, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(16 16, 51 51)')); select 0, ST_Intersects(GeomFromText('LINESTRING(15 15, 50 50)'), GeomFromText('LINESTRING(16 16, 51 51)')) as result;
select 1, ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')); select 1, ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) as result;
select astext(ST_Union(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))); select astext(ST_Union(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) as result;
select astext(ST_Intersection(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))); select astext(ST_Intersection(geometryfromtext('point(1 1)'), geometryfromtext('polygon((0 0, 2 0, 1 2, 0 0))'))) as result;
select ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')); select ST_Intersects(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')) as result;
select ST_contains(GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)), ((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')); select ST_contains(GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)), ((6 6, 6 11, 11 11, 11 6, 6 6)))'), GeomFromText('POINT(5 10)')) as result;
select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 15, 15 15, 15 10, 10 10))')); select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 15, 15 15, 15 10, 10 10))')) as result;
select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')); select ST_Disjoint(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) as result;
select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')); select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((10 10, 10 4, 4 4, 4 10, 10 10))')) as result;
select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((1 1, 1 4, 4 4, 4 1, 1 1))')); select ST_Overlaps(GeomFromText('POLYGON((0 0, 0 5, 5 5, 5 0, 0 0))'), GeomFromText('POLYGON((1 1, 1 4, 4 4, 4 1, 1 1))')) as result;
# Distance tests # Distance tests
select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('linestring(0 1, 1 0)')); select ST_DISTANCE(geomfromtext('polygon((0 0, 1 2, 2 1, 0 0))'), geomfromtext('linestring(0 1, 1 0)')) as result;
select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0))'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0),(2 2, 3 4, 4 3, 2 2))'), geomfromtext('point(3 3)')); select ST_DISTANCE(geomfromtext('polygon((0 0, 3 6, 6 3, 0 0),(2 2, 3 4, 4 3, 2 2))'), geomfromtext('point(3 3)')) as result;
select ST_DISTANCE(geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')); select ST_DISTANCE(geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), geomfromtext('polygon((2 2, 3 4, 4 3, 2 2))')) as result;
# Operations tests # Operations tests
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))) as result;
select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))); select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))) as result;
select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))); select astext(ST_Intersection(GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))) as result;
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POINT(20 20)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('POINT(20 20)'))) as result;
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200)'))) as result;
--replace_result 7.999999999999999 8 --replace_result 7.999999999999999 8
select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_Intersection(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
--replace_result 7.999999999999999 8 --replace_result 7.999999999999999 8
select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
select astext(ST_intersection(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); select astext(ST_intersection(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) as result;
select astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); select astext(ST_symdifference(geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))) as result;
--replace_result 7.999999999999999 8 --replace_result 7.999999999999999 8
select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select astext(ST_UNION(GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))) as result;
--enable_view_protocol
# Buffer() tests # Buffer() tests
--replace_result 0012045437948276 00120454379482759 --replace_result 0012045437948276 00120454379482759
@ -103,25 +96,20 @@ select ST_NUMPOINTS(ST_EXTERIORRING(@buff));
# cleanup # cleanup
DROP TABLE t1; DROP TABLE t1;
#enable after fix MDEV-27871
--disable_view_protocol
#Touches tests #Touches tests
select st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('point(0 0)'), geomfromtext('point(1 1)')) as result;
select st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('point(1 1)'), geomfromtext('point(1 1)')) as result;
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 1)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 1)')) as result;
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 0)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 0)')) as result;
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 2)')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('point(1 2)')) as result;
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1.2, 1 0, 2 0, 1 1.2))')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1.2, 1 0, 2 0, 1 1.2))')) as result;
select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1, 1 0, 2 0, 1 1))')); select st_touches(geomfromtext('polygon((0 0, 2 2, 0 4, 0 0))'), geomfromtext('polygon((1 1, 1 0, 2 0, 1 1))')) as result;
#Equals test #Equals test
SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 19, 59 13, 59 13, 67 13) )')) as result; SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 19, 59 13, 59 13, 67 13) )')) as result;
SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 18, 59 13, 59 13, 67 13) )')) as result; SELECT ST_Equals(PolyFromText('POLYGON((67 13, 67 18, 67 18, 59 18, 59 13, 67 13) )'),PolyFromText('POLYGON((67 13, 67 18, 59 18, 59 13, 59 13, 67 13) )')) as result;
SELECT ST_Equals(PointFromText('POINT (12 13)'),PointFromText('POINT (12 13)')) as result; SELECT ST_Equals(PointFromText('POINT (12 13)'),PointFromText('POINT (12 13)')) as result;
--enable_view_protocol
--echo # --echo #
--echo # BUG#11755628/47429: INTERSECTION FUNCTION CRASHED MYSQLD --echo # BUG#11755628/47429: INTERSECTION FUNCTION CRASHED MYSQLD
--echo # BUG#11759650/51979: UNION/INTERSECTION OF POLYGONS CRASHES MYSQL --echo # BUG#11759650/51979: UNION/INTERSECTION OF POLYGONS CRASHES MYSQL
@ -150,30 +138,19 @@ SELECT ASTEXT(TOUCHES(@a, GEOMFROMTEXT('point(0 0)'))) t;
# bug #801243 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION # bug #801243 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION
#enable after fix MDEV-27871
--disable_view_protocol
SELECT astext(ST_UNION ( SELECT astext(ST_UNION (
PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'), PolyFromText('POLYGON(( 2 2 ,3 2,2 7,2 2),( 0 0,8 2,1 9,0 0))'),
ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))'))))); ExteriorRing( Envelope( MultiLineStringFromText('MULTILINESTRING((3 4,5 3),(3 0,0 5))'))))) as result;
--enable_view_protocol
#bug 801189 ST_BUFFER asserts if radius = 0 #bug 801189 ST_BUFFER asserts if radius = 0
SELECT astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0)); SELECT astext(ST_BUFFER(LineStringFromText('LINESTRING(0 0,1 1)'),0));
#enable after fix MDEV-27871
--disable_view_protocol
#bug 801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT #bug 801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
SELECT Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5); SELECT Round(ST_Area(ST_BUFFER(MultipointFromText('MULTIPOINT(7 7,3 7,7 2,7 4 ,7 7)'), 3)), 5) as result;
--enable_view_protocol
#bug 801212 Assertion with ST_INTERSECTION on NULL values #bug 801212 Assertion with ST_INTERSECTION on NULL values
SELECT ST_INTERSECTION(NULL, NULL); SELECT ST_INTERSECTION(NULL, NULL);
#enable after fix MDEV-27871
--disable_view_protocol
#bug 804305 Crash in wkb_get_double with ST_INTERSECTION #bug 804305 Crash in wkb_get_double with ST_INTERSECTION
SELECT ASTEXT(ST_INTERSECTION( SELECT ASTEXT(ST_INTERSECTION(
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)), MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),
@ -182,14 +159,14 @@ SELECT ASTEXT(ST_INTERSECTION(
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 4,2 5,3 5)), MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 4,2 5,3 5)),
((2 2,9 2,0 2,2 6,2 2)), ((2 2,9 2,0 2,2 6,2 2)),
((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)),
((9 9,6 8,7 0,9 9)))'))); ((9 9,6 8,7 0,9 9)))'))) as result;
#bug 804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection #bug 804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
SELECT ROUND(ST_LENGTH(ST_UNION( SELECT ROUND(ST_LENGTH(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0), MULTILINESTRINGFROMTEXT('MULTILINESTRING((6 2,4 0,3 5,3 6,4 3,6 4,3 9,0 7,3 7,8 4,2 9,5 0),
(8 2,1 3,9 0,4 4))'), (8 2,1 3,9 0,4 4))'),
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 5,6 7,9 7,5 2,1 6,3 6))'))), 7); MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 5,6 7,9 7,5 2,1 6,3 6))'))), 7) as result;
SELECT ST_NUMGEOMETRIES((ST_UNION(ST_UNION( SELECT ST_NUMGEOMETRIES((ST_UNION(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 0,4 2,0 2,1 5,0 3,7 0,8 5,5 8), MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 0,4 2,0 2,1 5,0 3,7 0,8 5,5 8),
@ -202,13 +179,13 @@ SELECT ST_NUMGEOMETRIES((ST_UNION(ST_UNION(
MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((7 7,3 7,3 1,7 8,7 7)), MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((7 7,3 7,3 1,7 8,7 7)),
((3 5,2 4,2 5,3 5)), ((3 5,2 4,2 5,3 5)),
((7 7,8 7,3 7,7 7,7 7)), ((7 7,8 7,3 7,7 7,7 7)),
((0 5,3 5,3 4,1 4,1 3,3 3,3 0,0 0,0 5), (1 1,2 1,2 2,1 2,1 1)))')))); ((0 5,3 5,3 4,1 4,1 3,3 3,3 0,0 0,0 5), (1 1,2 1,2 2,1 2,1 1)))')))) as result;
#bug #805860 Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sinco #bug #805860 Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sinco
SELECT Round(ST_AREA(ST_BUFFER( ST_UNION( SELECT Round(ST_AREA(ST_BUFFER( ST_UNION(
POLYGONFROMTEXT('POLYGON((7 7, 7 7, 7 4, 7 7, 7 7))'), POLYGONFROMTEXT('POLYGON((7 7, 7 7, 7 4, 7 7, 7 7))'),
POLYGONFROMTEXT('POLYGON((7 7, 4 7, 2 9, 7 6, 7 7))')), 1)), 6); POLYGONFROMTEXT('POLYGON((7 7, 4 7, 2 9, 7 6, 7 7))')), 1)), 6) as result;
#bug #804259 Second assertion in Gis_geometry_collection::init_from_opresult #bug #804259 Second assertion in Gis_geometry_collection::init_from_opresult
@ -220,7 +197,7 @@ SELECT AsText(ST_UNION(MultiPolygonFromText('
MultiPolygonFromText(' MULTIPOLYGON(((0 0, 1 9, 4 6, 0 0)), MultiPolygonFromText(' MULTIPOLYGON(((0 0, 1 9, 4 6, 0 0)),
((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1)), ((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1)),
((7 7, 4 7, 6 3, 7 2, 7 7)), ((7 7, 4 7, 6 3, 7 2, 7 7)),
((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1))) '))); ((0 5, 3 5, 3 4, 1 4, 1 3, 3 3, 3 0, 0 0, 0 5), (1 1, 2 1, 2 2, 1 2, 1 1))) '))) as result;
#bug 801217 Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple #bug 801217 Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple
@ -228,7 +205,7 @@ MultiPolygonFromText(' MULTIPOLYGON(((0 0, 1 9, 4 6, 0 0)),
SELECT AsText(ST_SYMDIFFERENCE( SELECT AsText(ST_SYMDIFFERENCE(
MultiLineStringFromText('MULTILINESTRING((7 7, 1 7, 8 5, 7 8, 7 7), MultiLineStringFromText('MULTILINESTRING((7 7, 1 7, 8 5, 7 8, 7 7),
(6 3, 3 4, 1 1, 9 9, 9 0, 8 4, 9 9))'), (6 3, 3 4, 1 1, 9 9, 9 0, 8 4, 9 9))'),
Envelope(GeometryFromText('MULTIPOINT(7 9, 0 0, 3 7, 1 6, 0 0)')))); Envelope(GeometryFromText('MULTIPOINT(7 9, 0 0, 3 7, 1 6, 0 0)')))) as result;
#bug 804266 Memory corruption/valgrind warning/crash in move_hole() with ST_UNION #bug 804266 Memory corruption/valgrind warning/crash in move_hole() with ST_UNION
@ -238,34 +215,34 @@ SELECT AsText(ST_UNION(
((0 0, 7 5, 9 6, 0 0)), ((0 0, 7 5, 9 6, 0 0)),
((7 7, 5 7, 1 5, 7 1, 7 7)))'), ((7 7, 5 7, 1 5, 7 1, 7 7)))'),
MultiPolygonFromText('MULTIPOLYGON(((2 2, 2 2, 1 5, 2 7, 2 2)), MultiPolygonFromText('MULTIPOLYGON(((2 2, 2 2, 1 5, 2 7, 2 2)),
((0 5, 3 5, 3 0, 0 0, 0 5), (1 1, 2 1, 2 4, 1 4, 1 1)))'))); ((0 5, 3 5, 3 0, 0 0, 0 5), (1 1, 2 1, 2 4, 1 4, 1 1)))'))) as result;
#bug 802376 ST_INTERSECTION returns wrong result on two overlapping linestrings in maria-5.3-gis #bug 802376 ST_INTERSECTION returns wrong result on two overlapping linestrings in maria-5.3-gis
SELECT AsText( ST_INTERSECTION( SELECT AsText( ST_INTERSECTION(
LinestringFromText('LINESTRING( 3 5, 2 5, 2 4, 3 4, 3 5 ) ') , LinestringFromText('LINESTRING( 3 5, 2 5, 2 4, 3 4, 3 5 ) ') ,
LinestringFromText('LINESTRING( 3 5, 2 4, 2 5, 3 5 ) ') LinestringFromText('LINESTRING( 3 5, 2 4, 2 5, 3 5 ) ')
)); )) as result;
#bug 801560 ST_UNION of adjacent polygons includes extra line in maria-5.3-gis #bug 801560 ST_UNION of adjacent polygons includes extra line in maria-5.3-gis
SELECT AsText( ST_UNION( SELECT AsText( ST_UNION(
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 7 5 , 2 0 , 2 2 ) ) ') , PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 7 5 , 2 0 , 2 2 ) ) ') ,
PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 3 3 , 2 5 , 2 2 ) ) ') ) ); PolygonFromText(' POLYGON( ( 2 2 , 3 2 , 3 3 , 2 5 , 2 2 ) ) ') ) ) as result;
#bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis #bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis
SELECT AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), GeometryFromText('LINESTRING(3 3, 4 4)'))); SELECT AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), GeometryFromText('LINESTRING(3 3, 4 4)'))) as result;
#bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis #bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis
SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))); SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))) as result;
#bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis #bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis
SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING(
(4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')); (4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')) as result;
#bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis #bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis
SELECT AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYGONFROMTEXT('POLYGON((2 2, 7 2, 4 2, 2 0, 2 2))'))); SELECT AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYGONFROMTEXT('POLYGON((2 2, 7 2, 4 2, 2 0, 2 2))'))) as result;
#bug 841622 Assertion `t->rp->type == Gcalc_function::shape_line' failed in Gcalc_operation_reducer::end_line in maria-5.3-gis #bug 841622 Assertion `t->rp->type == Gcalc_function::shape_line' failed in Gcalc_operation_reducer::end_line in maria-5.3-gis
@ -273,7 +250,7 @@ SELECT AsText(ST_UNION(POLYGONFROMTEXT('POLYGON((12 9, 3 6, 3 0, 12 9))'), POLYG
SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER(ST_UNION( SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER(ST_UNION(
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 2 5, 7 6, 1 8),(0 0 ,1 6 ,0 1, 8 9, 2 4, 6 1, 3 5, 4 8), (9 3, 5 4, 1 8, 4 2, 5 8, 3 0))' ) , MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 2 5, 7 6, 1 8),(0 0 ,1 6 ,0 1, 8 9, 2 4, 6 1, 3 5, 4 8), (9 3, 5 4, 1 8, 4 2, 5 8, 3 0))' ) ,
MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 3 1, 2 7, 4 2, 6 2, 1 5))') MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 4, 3 1, 2 7, 4 2, 6 2, 1 5))')
), 16))); ), 16))) as result;
#bug 841625 Assertion `m_poly_borders->next' failed in Gcalc_operation_reducer::count_slice in maria-5.3-gis #bug 841625 Assertion `m_poly_borders->next' failed in Gcalc_operation_reducer::count_slice in maria-5.3-gis
@ -288,7 +265,7 @@ SELECT ST_NUMGEOMETRIES(ST_DIFFERENCE (
) )
), ),
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 9 , 1 3 , 7 3 , 8 5 ) , ( 5 0 , 8 1 , 2 0 , 7 4 , 1 0 ) , ( 9 2 , 5 2 , 6 5 , 8 8 , 0 2 ) , ( 0 8 , 3 9 , 4 0 , 1 0 ) , ( 0 0 , 7 6 , 8 3 , 0 0 ) ) ' ) MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 9 , 1 3 , 7 3 , 8 5 ) , ( 5 0 , 8 1 , 2 0 , 7 4 , 1 0 ) , ( 9 2 , 5 2 , 6 5 , 8 8 , 0 2 ) , ( 0 8 , 3 9 , 4 0 , 1 0 ) , ( 0 0 , 7 6 , 8 3 , 0 0 ) ) ' )
)); )) as result;
#bug 841745 ssertion `!sp0->is_bottom()' failed in Gcalc_scan_iterator::find_intersections in maria-5.3-gis #bug 841745 ssertion `!sp0->is_bottom()' failed in Gcalc_scan_iterator::find_intersections in maria-5.3-gis
@ -304,13 +281,13 @@ SELECT ASTEXT(ST_DIFFERENCE (
) )
) )
) )
)); )) as result;
#bug 841773 Assertion `t0->rp->type == t1->rp->type' failed in Gcalc_operation_reducer::end_couple in maria-5.3-gis #bug 841773 Assertion `t0->rp->type == t1->rp->type' failed in Gcalc_operation_reducer::end_couple in maria-5.3-gis
SELECT ST_NUMGEOMETRIES(ST_UNION ( SELECT ST_NUMGEOMETRIES(ST_UNION (
MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 0 8 , 1 9 , 5 7 , 2 8 , 5 8 , 6 7 ) , ( 4 5 , 8 4 , 0 3 , 5 1 ) , ( 6 8 , 2 7 , 1 6 , 9 9 , 7 2 ) , ( 9 5 , 2 8 , 1 2 , 9 6 , 2 0 ) ) ' ) , MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 0 8 , 1 9 , 5 7 , 2 8 , 5 8 , 6 7 ) , ( 4 5 , 8 4 , 0 3 , 5 1 ) , ( 6 8 , 2 7 , 1 6 , 9 9 , 7 2 ) , ( 9 5 , 2 8 , 1 2 , 9 6 , 2 0 ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 7 7 , 2 7, 6 8, 7 1 , 7 7 ) ) ) ' ) MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 7 7 , 2 7, 6 8, 7 1 , 7 7 ) ) ) ' )
)); )) as result;
#bug 841662 Third assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos #bug 841662 Third assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos
SELECT ST_BUFFER ( SELECT ST_BUFFER (
@ -322,47 +299,53 @@ SELECT ST_BUFFER (
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' ) MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' )
) )
) )
) ; ) as result;
SELECT ST_DISTANCE ( ST_DIFFERENCE ( MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) , MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' ) ), MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 4, 2 5, 3 5) ) , ( (3 5, 2 5, 2 4, 3 4, 3 5) ) , ( ( 0 0 , 8 3 , 9 5 , 0 0 ) ) ) ' ) ) ; SELECT ST_DISTANCE (
ST_DIFFERENCE (
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' ) ,
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) , ( ( 0 0 , 3 8 , 9 4 , 0 0 ) ) ) ' )
),
MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( (3 5, 2 4, 2 5, 3 5) ) , ( (3 5, 2 5, 2 4, 3 4, 3 5) ) , ( ( 0 0 , 8 3 , 9 5 , 0 0 ) ) ) ' )
) as result;
#bug 848939 Wrong result with ST_INTERSECTION between linestrings and a polygon in 5.3-gis #bug 848939 Wrong result with ST_INTERSECTION between linestrings and a polygon in 5.3-gis
SELECT ASTEXT(ST_INTERSECTION( GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(7 7,5.33333333333333 7),LINESTRING(5.33333333333333 7,0 7,5 8,5.33333333333333 7),LINESTRING(5.33333333333333 7,7 2,7 7),POLYGON((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5)))'), geomETRYFROMTEXT(' MULTILINESTRING( ( 5 1 , 3 7 , 6 1 , 7 0 ) , ( 1 6 , 8 5 , 7 5 , 5 6 ) )') )); SELECT ASTEXT(ST_INTERSECTION( GEOMETRYFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(7 7,5.33333333333333 7),LINESTRING(5.33333333333333 7,0 7,5 8,5.33333333333333 7),LINESTRING(5.33333333333333 7,7 2,7 7),POLYGON((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5)))'), geomETRYFROMTEXT(' MULTILINESTRING( ( 5 1 , 3 7 , 6 1 , 7 0 ) , ( 1 6 , 8 5 , 7 5 , 5 6 ) )') )) as result;
#bug 855485 ST_CROSSES returns different result than PostGIS for overlapping polygons #bug 855485 ST_CROSSES returns different result than PostGIS for overlapping polygons
SELECT ST_CROSSES( GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 4, 2 5, 3 5) ) ') , POLYGONFROMTEXT(' POLYGON((2 4,3 4,3 5,2 5,2 4)) ')); SELECT ST_CROSSES( GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 4, 2 5, 3 5) ) ') , POLYGONFROMTEXT(' POLYGON((2 4,3 4,3 5,2 5,2 4)) ')) as result;
#bug 855487 ST_WITHIN returns wrong result for partially overlapping polygons #bug 855487 ST_WITHIN returns wrong result for partially overlapping polygons
SELECT ST_WITHIN( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 2 0 , 1 0, 2 4 , 0 4, 0 5) ) ') , POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 1 4 , 1 3 , 3 3 , 3 0 , 0 0 , 0 5), ( 1 1 , 2 1 , 2 2 , 1 2 , 1 1 ) ) ') ); SELECT ST_WITHIN( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 2 0 , 1 0, 2 4 , 0 4, 0 5) ) ') , POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 4, 1 4 , 1 3 , 3 3 , 3 0 , 0 0 , 0 5), ( 1 1 , 2 1 , 2 2 , 1 2 , 1 1 ) ) ') ) as result;
#bug 855492 ST_WITHIN returns TRUE on point on the edge of a polygon #bug 855492 ST_WITHIN returns TRUE on point on the edge of a polygon
SELECT ST_WITHIN( POINTFROMTEXT(' POINT(1 2 ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( (0 5, 3 5, 3 0, 0 0, 0 5), ( 1 1 , 2 1 , 2 4, 1 4, 1 1 ) ) ) ')); SELECT ST_WITHIN( POINTFROMTEXT(' POINT(1 2 ) ') , MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( (0 5, 3 5, 3 0, 0 0, 0 5), ( 1 1 , 2 1 , 2 4, 1 4, 1 1 ) ) ) ')) as result;
#bug 855497 ST_ENVELOPE of GEOMETRYCOLLECTION EMPTY returns NULL and not GEOMETRYCOLLECTION EMPTY #bug 855497 ST_ENVELOPE of GEOMETRYCOLLECTION EMPTY returns NULL and not GEOMETRYCOLLECTION EMPTY
select ST_ASTEXT(envelope(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION EMPTY'))); select ST_ASTEXT(envelope(ST_GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION EMPTY'))) as result;
#bug 855503 ST_EQUALS reports TRUE between a POLYGON and a MULTILINESTRING #bug 855503 ST_EQUALS reports TRUE between a POLYGON and a MULTILINESTRING
SELECT ST_EQUALS( GEOMETRYFROMTEXT(' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') , GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ); SELECT ST_EQUALS( GEOMETRYFROMTEXT(' MULTILINESTRING( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') , GEOMETRYFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ) as result;
#bug 855505 ST_TOUCHES reports TRUE for intersecting polygon and linestring #bug 855505 ST_TOUCHES reports TRUE for intersecting polygon and linestring
SELECT ST_TOUCHES( GEOMETRYFROMTEXT(' LINESTRING( 1 1 , 1 4 , 5 0 , 8 3 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ') ); SELECT ST_TOUCHES( GEOMETRYFROMTEXT(' LINESTRING( 1 1 , 1 4 , 5 0 , 8 3 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ') ) as result;
#bug 857051 ST_EQUALS returns TRUE on two nonidentical MULTIPOINTs #bug 857051 ST_EQUALS returns TRUE on two nonidentical MULTIPOINTs
SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT(' MULTIPOINT( 5 8 , 5 2 , 1 8 , 3 0 , 3 0 , 7 8 ) ') ); SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT(' MULTIPOINT( 5 8 , 5 2 , 1 8 , 3 0 , 3 0 , 7 8 ) ') ) as result;
SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT('MULTIPOINT( 4 0 , 6 9 , 5 1, 1 4 )') ); SELECT ST_EQUALS( MULTIPOINTFROMTEXT(' MULTIPOINT( 5 1 , 6 9 , 1 4 , 4 0 ) ') , MULTIPOINTFROMTEXT('MULTIPOINT( 4 0 , 6 9 , 5 1, 1 4 )') ) as result;
#bug 857050 ST_WITHIN returns wrong result with MULTIPOINT and POLYGON #bug 857050 ST_WITHIN returns wrong result with MULTIPOINT and POLYGON
SELECT ST_WITHIN( MULTIPOINTFROMTEXT(' MULTIPOINT( 2 9 , 2 9 , 4 9 , 9 1 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ')); SELECT ST_WITHIN( MULTIPOINTFROMTEXT(' MULTIPOINT( 2 9 , 2 9 , 4 9 , 9 1 ) ') , POLYGONFROMTEXT(' POLYGON( ( 2 2 , 2 8 , 8 8 , 8 2 , 2 2 ) , ( 4 4 , 4 6 , 6 6 , 6 4 , 4 4 ) ) ')) as result;
#bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs #bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
SELECT ST_INTERSECTS( GeomFromText('MULTILINESTRING( ( 4030 3045 , 3149 2461 , 3004 3831 , 3775 2976 ) )') , GeomFromText('LINESTRING(3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29,3039.07 3175.05,3039.07 3175.05,3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29)') ); SELECT ST_INTERSECTS( GeomFromText('MULTILINESTRING( ( 4030 3045 , 3149 2461 , 3004 3831 , 3775 2976 ) )') , GeomFromText('LINESTRING(3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29,3039.07 3175.05,3039.07 3175.05,3058.41 3187.91,3081.52 3153.19,3042.99 3127.57,3019.89 3162.29)') ) as result;
#bug 977201 ST_BUFFER fails with the negative D. TODO - check the result deeper. #bug 977201 ST_BUFFER fails with the negative D. TODO - check the result deeper.
# select ASTEXT(ST_BUFFER(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 10, 77 80), POLYGON((0 0,4 7,1 1,0 0)), POINT(20 20))'), -3)); # select ASTEXT(ST_BUFFER(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION(LINESTRING(100 100, 31 10, 77 80), POLYGON((0 0,4 7,1 1,0 0)), POINT(20 20))'), -3));
@ -374,15 +357,15 @@ SELECT ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0
7.664100588675687 1.503849116986468, 7.664100588675687 1.503849116986468,
1.664100588675687 -2.496150883013531, 1.664100588675687 -2.496150883013531,
0.0 -3.0 0.0 -3.0
))' ), 3 ))); ))' ), 3 ))) as result;
# MDEV-5615 crash in Gcalc_function::add_operation # MDEV-5615 crash in Gcalc_function::add_operation
select astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1)); select astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1)) as result;
# MDEV-7925 Inconsistent behavior of ST_Touches with a POINT as one of arguments # MDEV-7925 Inconsistent behavior of ST_Touches with a POINT as one of arguments
select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT(0 0)')) as result;
select ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText('POINT(0 0)')) as result;
select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')); select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)')) as result;
# MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11. # MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11.
SELECT ST_RELATE( SELECT ST_RELATE(
@ -403,8 +386,6 @@ SELECT ST_RELATE(
'F*FFFF**F' 'F*FFFF**F'
) as relate_res; ) as relate_res;
--enable_view_protocol
# MDEV-18920 Prepared statements with st_convexhull hang and eat 100% cpu. # MDEV-18920 Prepared statements with st_convexhull hang and eat 100% cpu.
prepare s from 'do st_convexhull(st_aswkb(multipoint(point(-11702,15179),point(-5031,27960),point(-30557,11158),point(-27804,30314))))'; prepare s from 'do st_convexhull(st_aswkb(multipoint(point(-11702,15179),point(-5031,27960),point(-30557,11158),point(-27804,30314))))';
execute s; execute s;
@ -442,45 +423,41 @@ SELECT ST_DISTANCE_SPHERE(1, 1, 3);
SELECT ST_DISTANCE_SPHERE(1, 1, NULL); SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
# Wrong geometry # Wrong geometry
--error ER_INTERNAL_ERROR --error ER_INTERNAL_ERROR
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
#enable after fix MDEV-27871
--disable_view_protocol
--echo # Test Points and radius --echo # Test Points and radius
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) as result;
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) as result;
--error ER_INTERNAL_ERROR --error ER_INTERNAL_ERROR
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
--error ER_INTERNAL_ERROR --error ER_INTERNAL_ERROR
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
--echo # Test longitude/lattitude --echo # Test longitude/lattitude
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(2 1)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(2 1)')), 10) as result;
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(2 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('POINT(2 1)')) as result;
--echo # Test Points - Multipoints --echo # Test Points - Multipoints
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1)')) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 1)'), ST_GEOMFROMTEXT('POINT(0 0)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 1)'), ST_GEOMFROMTEXT('POINT(0 0)')) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)')) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)')) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(1 1,2 2)'), 1) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2,1 1)'), 1) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1, 3 4)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1, 3 4)'), 1) as result;
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1,5 6)'), 1); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('MULTIPOINT(2 2, 1 1,5 6)'), 1) as result;
--echo # Test Multipoints - Multipoints --echo # Test Multipoints - Multipoints
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')) as result;
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(3 4,8 9 )')), 10) as result;
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) as result;
# make bb x86 happy # make bb x86 happy
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17); SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) as result;
--error ER_INTERNAL_ERROR --error ER_INTERNAL_ERROR
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0); SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
--enable_view_protocol
# Longitude out of range [-180,180] # Longitude out of range [-180,180]
set @pt1 = ST_GeomFromText('POINT(190 -30)'); set @pt1 = ST_GeomFromText('POINT(190 -30)');

View File

@ -371,47 +371,47 @@ create table t4 (a int);
insert into t4 values (1),(4),(3); insert into t4 values (1),(4),(3);
set @save_join_buffer_size=@@join_buffer_size; set @save_join_buffer_size=@@join_buffer_size;
set join_buffer_size= 4096; set join_buffer_size= 4096;
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 < 500000 or A.key2 < 3) where (A.key1 < 500000 or A.key2 < 3)
and (B.key1 < 500000 or B.key2 < 3); and (B.key1 < 500000 or B.key2 < 3);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1010 Using sort_union(i1,i2); Using where 1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1010 Using sort_union(i1,i2); Using where
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1010 Using sort_union(i1,i2); Using where; Using join buffer (flat, BNL join) 1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1010 Using sort_union(i1,i2); Using where; Using join buffer (flat, BNL join)
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 < 500000 or A.key2 < 3) where (A.key1 < 500000 or A.key2 < 3)
and (B.key1 < 500000 or B.key2 < 3); and (B.key1 < 500000 or B.key2 < 3);
max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) exp
10240 10240
update t0 set key1=1; update t0 set key1=1;
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 = 1 or A.key2 = 1) where (A.key1 = 1 or A.key2 = 1)
and (B.key1 = 1 or B.key2 = 1); and (B.key1 = 1 or B.key2 = 1);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1021 Using union(i1,i2); Using where 1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1021 Using union(i1,i2); Using where
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1021 Using union(i1,i2); Using where; Using join buffer (flat, BNL join) 1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1021 Using union(i1,i2); Using where; Using join buffer (flat, BNL join)
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A force index(i1,i2), t0 as B force index (i1,i2) from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
where (A.key1 = 1 or A.key2 = 1) where (A.key1 = 1 or A.key2 = 1)
and (B.key1 = 1 or B.key2 = 1); and (B.key1 = 1 or B.key2 = 1);
max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) exp
8194 8194
alter table t0 add filler1 char(200), add filler2 char(200), add filler3 char(200); alter table t0 add filler1 char(200), add filler2 char(200), add filler3 char(200);
update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500; update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A straight_join t0 as B from t0 as A straight_join t0 as B
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1) where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1); and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where 1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where; Using join buffer (flat, BNL join) 1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where; Using join buffer (flat, BNL join)
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) as exp
from t0 as A straight_join t0 as B from t0 as A straight_join t0 as B
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1) where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1); and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5) exp
8186 8186
set join_buffer_size= @save_join_buffer_size; set join_buffer_size= @save_join_buffer_size;
drop table t0, t1, t2, t3, t4; drop table t0, t1, t2, t3, t4;

View File

@ -917,7 +917,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -925,12 +925,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage hash_ALL PRIMARY #hash#PRIMARY 33 world.Country.Code,const 984 Using where; Using join buffer (flat, BNLH join) 1 SIMPLE CountryLanguage hash_ALL PRIMARY #hash#PRIMARY 33 world.Country.Code,const 984 Using where; Using join buffer (flat, BNLH join)
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4
@ -1117,7 +1117,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -1125,12 +1125,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage hash_ALL PRIMARY #hash#PRIMARY 33 world.Country.Code,const 984 Using where; Using join buffer (flat, BNLH join) 1 SIMPLE CountryLanguage hash_ALL PRIMARY #hash#PRIMARY 33 world.Country.Code,const 984 Using where; Using join buffer (flat, BNLH join)
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4
@ -1376,7 +1376,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -1384,12 +1384,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4
@ -1573,7 +1573,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -1581,12 +1581,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4
@ -1770,7 +1770,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -1778,12 +1778,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan 1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4
@ -1967,7 +1967,7 @@ Klaipeda
?iauliai ?iauliai
Panevezys Panevezys
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
@ -1975,12 +1975,12 @@ Country.Population > 10000000;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan 1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
Name IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) Name epx
Australia 81.2 Australia 81.2
United Kingdom 97.3 United Kingdom 97.3
Canada 60.4 Canada 60.4

View File

@ -411,24 +411,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
show variables like 'join_buffer_size'; show variables like 'join_buffer_size';
set join_cache_level=4; set join_cache_level=4;
show variables like 'join_cache_level'; show variables like 'join_cache_level';
@ -470,24 +465,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
--replace_column 9 # --replace_column 9 #
EXPLAIN EXPLAIN
SELECT Country.Name, Country.Population, City.Name, City.Population SELECT Country.Name, Country.Population, City.Name, City.Population
@ -558,24 +548,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
set join_cache_level=6; set join_cache_level=6;
show variables like 'join_cache_level'; show variables like 'join_cache_level';
@ -616,24 +601,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
set join_cache_level=7; set join_cache_level=7;
show variables like 'join_cache_level'; show variables like 'join_cache_level';
@ -674,24 +654,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
set join_cache_level=8; set join_cache_level=8;
show variables like 'join_cache_level'; show variables like 'join_cache_level';
@ -732,23 +707,19 @@ SELECT Name FROM City
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
City.Population > 100000; City.Population > 100000;
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage) as epx
FROM Country LEFT JOIN CountryLanguage ON FROM Country LEFT JOIN CountryLanguage ON
(CountryLanguage.Country=Country.Code AND Language='English') (CountryLanguage.Country=Country.Code AND Language='English')
WHERE WHERE
Country.Population > 10000000; Country.Population > 10000000;
--enable_view_protocol
set join_buffer_size=256; set join_buffer_size=256;
show variables like 'join_buffer_size'; show variables like 'join_buffer_size';

View File

@ -9165,9 +9165,9 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t3 const PRIMARY NULL NULL NULL 1 Impossible ON condition 1 SIMPLE t3 const PRIMARY NULL NULL NULL 1 Impossible ON condition
1 SIMPLE t2 const PRIMARY NULL NULL NULL 1 Impossible ON condition 1 SIMPLE t2 const PRIMARY NULL NULL NULL 1 Impossible ON condition
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 1 SIMPLE t1 ALL NULL NULL NULL NULL 10
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.mark_join_nest_as_const')) select JSON_DETAILED(JSON_EXTRACT(trace, '$**.mark_join_nest_as_const')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
JSON_DETAILED(JSON_EXTRACT(trace, '$**.mark_join_nest_as_const')) jd
[ [
{ {
"members": "members":
@ -9190,9 +9190,9 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 10 Using where 1 PRIMARY t0 ALL NULL NULL NULL NULL 10 Using where
1 PRIMARY <derived3> ref key0 key0 4 test.t0.a 2 FirstMatch(t0) 1 PRIMARY <derived3> ref key0 key0 4 test.t0.a 2 FirstMatch(t0)
3 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used 3 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) jd
[ [
{ {
"item": "t0.a in (1,2,3,4,5,6)", "item": "t0.a in (1,2,3,4,5,6)",
@ -9243,9 +9243,9 @@ json_detailed(json_extract(trace, '$**.in_to_subquery_conversion'))
explain select * from t0 where a in (1,2,3,4,5,a+1); explain select * from t0 where a in (1,2,3,4,5,a+1);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) jd
[ [
{ {
"item": "t0.a in (1,2,3,4,5,t0.a + 1)", "item": "t0.a in (1,2,3,4,5,t0.a + 1)",
@ -9256,9 +9256,9 @@ json_detailed(json_extract(trace, '$**.in_to_subquery_conversion'))
explain select * from t0 where a in ('1','2','3','4','5','6'); explain select * from t0 where a in ('1','2','3','4','5','6');
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) jd
[ [
{ {
"item": "t0.a in ('1','2','3','4','5','6')", "item": "t0.a in ('1','2','3','4','5','6')",

View File

@ -833,11 +833,8 @@ insert into t3 select a,a from t0;
explain explain
select * from t1 left join (t2 join t3 on t3.pk=1000) on t2.a=t1.a and t2.pk is null; select * from t1 left join (t2 join t3 on t3.pk=1000) on t2.a=t1.a and t2.pk is null;
#enable after fix MDEV-27871 select JSON_DETAILED(JSON_EXTRACT(trace, '$**.mark_join_nest_as_const')) as jd
--disable_view_protocol
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.mark_join_nest_as_const'))
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
--enable_view_protocol
drop table t0, t1, t2, t3; drop table t0, t1, t2, t3;
@ -845,8 +842,6 @@ drop table t0, t1, t2, t3;
--echo # MDEV-23767: IN-to-subquery conversion is not visible in optimizer trace --echo # MDEV-23767: IN-to-subquery conversion is not visible in optimizer trace
--echo # --echo #
#enable after fix MDEV-27871
--disable_view_protocol
create table t0 (a int); create table t0 (a int);
INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@ -855,21 +850,20 @@ set in_predicate_conversion_threshold=3;
explain select * from t0 where a in (1,2,3,4,5,6); explain select * from t0 where a in (1,2,3,4,5,6);
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
explain select * from t0 where a in (1,2,3,4,5,a+1); explain select * from t0 where a in (1,2,3,4,5,a+1);
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
explain select * from t0 where a in ('1','2','3','4','5','6'); explain select * from t0 where a in ('1','2','3','4','5','6');
select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) select json_detailed(json_extract(trace, '$**.in_to_subquery_conversion')) as jd
from information_schema.optimizer_trace; from information_schema.optimizer_trace;
set in_predicate_conversion_threshold=@tmp; set in_predicate_conversion_threshold=@tmp;
drop table t0; drop table t0;
--enable_view_protocol
--echo # --echo #
--echo # MDEV-29298: INSERT ... SELECT Does not produce an optimizer trace --echo # MDEV-29298: INSERT ... SELECT Does not produce an optimizer trace

View File

@ -1532,9 +1532,9 @@ INSERT INTO t1 (a) VALUES (1), (2);
INSERT INTO t2 (a,b) VALUES (1,2), (2,3); INSERT INTO t2 (a,b) VALUES (1,2), (2,3);
INSERT INTO t3 (c) VALUES (1), (2); INSERT INTO t3 (c) VALUES (1), (2);
SELECT SELECT
(SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) (SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) as exp
FROM t3; FROM t3;
(SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) exp
2 2
NULL NULL
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
@ -3631,7 +3631,7 @@ WHERE
t2.key1 = t1.a and t2.key1 IS NOT NULL t2.key1 = t1.a and t2.key1 IS NOT NULL
ORDER BY ORDER BY
t2.key2 ASC t2.key2 ASC
LIMIT 1) LIMIT 1) as exp
from t1; from t1;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 1 PRIMARY t1 ALL NULL NULL NULL NULL 10
@ -3643,15 +3643,9 @@ WHERE
t2.key1 = t1.a and t2.key1 IS NOT NULL t2.key1 = t1.a and t2.key1 IS NOT NULL
ORDER BY ORDER BY
t2.key2 ASC t2.key2 ASC
LIMIT 1) LIMIT 1) as exp
from t1; from t1;
(SELECT concat(id, '-', key1, '-', col1) exp
FROM t2
WHERE
t2.key1 = t1.a and t2.key1 IS NOT NULL
ORDER BY
t2.key2 ASC
LIMIT 1)
900-0-123456 900-0-123456
901-1-123456 901-1-123456
902-2-123456 902-2-123456

View File

@ -3,11 +3,6 @@
# Testing ORDER BY # Testing ORDER BY
# #
# Tests will be skipped for the view protocol because the view protocol creates
# an additional util connection and other statistics data
# Check after fix MDEV-27871, possible this include can be removed
--source include/no_view_protocol.inc
call mtr.add_suppression("Sort aborted.*"); call mtr.add_suppression("Sort aborted.*");
--disable_warnings --disable_warnings
@ -830,6 +825,7 @@ INSERT INTO t1 SELECT a +64, b +64 FROM t1;
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a; EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
--disable_view_protocol
--disable_query_log --disable_query_log
--let $q = `show status like 'Created_tmp_tables';` --let $q = `show status like 'Created_tmp_tables';`
eval set @tmp_tables_before = eval set @tmp_tables_before =
@ -848,6 +844,7 @@ eval set @tmp_tables_after =
--enable_query_log --enable_query_log
SELECT @tmp_tables_after = @tmp_tables_before ; SELECT @tmp_tables_after = @tmp_tables_before ;
--enable_view_protocol
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a; EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
@ -894,7 +891,7 @@ INSERT INTO t2 (a,b) VALUES (1,2), (2,3);
INSERT INTO t3 (c) VALUES (1), (2); INSERT INTO t3 (c) VALUES (1), (2);
SELECT SELECT
(SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) (SELECT t1.a FROM t1, t2 WHERE t1.a = t2.b AND t2.a = t3.c ORDER BY t1.a) as exp
FROM t3; FROM t3;
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
@ -1464,6 +1461,7 @@ SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0;
SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 10 OFFSET 10; SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 10 OFFSET 10;
SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0 OFFSET 10; SELECT * FROM t1 WHERE f1>10 ORDER BY f2, f0 LIMIT 0 OFFSET 10;
--disable_view_protocol
--disable_ps2_protocol --disable_ps2_protocol
################ ################
## Test with SQL_CALC_FOUND_ROWS ## Test with SQL_CALC_FOUND_ROWS
@ -1512,6 +1510,7 @@ WHERE t1.f2>20
ORDER BY tmp.f1, f0 LIMIT 30 OFFSET 30; ORDER BY tmp.f1, f0 LIMIT 30 OFFSET 30;
SELECT FOUND_ROWS(); SELECT FOUND_ROWS();
--enable_ps2_protocol --enable_ps2_protocol
--enable_view_protocol
################ ################
## Test views ## Test views
@ -1885,6 +1884,7 @@ insert into t1
analyze table t1; analyze table t1;
--enable_result_log --enable_result_log
--disable_view_protocol
--disable_ps2_protocol --disable_ps2_protocol
explain explain
select b, count(*) num_cnt from t1 select b, count(*) num_cnt from t1
@ -1906,6 +1906,7 @@ select b, count(*) num_cnt from t1
--enable_result_log --enable_result_log
show status like '%Handler_read%'; show status like '%Handler_read%';
--enable_ps2_protocol --enable_ps2_protocol
--enable_view_protocol
drop table t0, t1; drop table t0, t1;
@ -2004,9 +2005,11 @@ WHERE f1 = ANY ( SELECT f1
WHERE t3a.f3 < f1 OR t3b.f3 != f1 ) WHERE t3a.f3 < f1 OR t3b.f3 != f1 )
ORDER BY field; ORDER BY field;
--disable_view_protocol
eval $q1; eval $q1;
eval $q2; eval $q2;
eval EXPLAIN EXTENDED $q2; eval EXPLAIN EXTENDED $q2;
--enable_view_protocol
DROP TABLE t1,t2,t3; DROP TABLE t1,t2,t3;
@ -2401,7 +2404,7 @@ let $query= select
t2.key1 = t1.a and t2.key1 IS NOT NULL t2.key1 = t1.a and t2.key1 IS NOT NULL
ORDER BY ORDER BY
t2.key2 ASC t2.key2 ASC
LIMIT 1) LIMIT 1) as exp
from t1; from t1;
--echo # here type should show ref not index --echo # here type should show ref not index

View File

@ -84,7 +84,7 @@ select id, generate_random_string(a), generate_random_string(b) from t2;
set sort_buffer_size=262144*10; set sort_buffer_size=262144*10;
analyze format=json select id DIV 100 as x, analyze format=json select id DIV 100 as x,
MD5(group_concat(substring(names,1,3), substring(address,1,3) MD5(group_concat(substring(names,1,3), substring(address,1,3)
order by id)) order by id)) as md5
FROM t3 FROM t3
GROUP BY x; GROUP BY x;
ANALYZE ANALYZE
@ -121,11 +121,10 @@ ANALYZE
flush status; flush status;
select id DIV 100 as x, select id DIV 100 as x,
MD5(group_concat(substring(names,1,3), substring(address,1,3) MD5(group_concat(substring(names,1,3), substring(address,1,3)
order by id)) order by id)) as md5
FROM t3 FROM t3
GROUP BY x; GROUP BY x;
x MD5(group_concat(substring(names,1,3), substring(address,1,3) x md5
order by id))
0 3d24cb0237caf81aa74a2dddf367ac23 0 3d24cb0237caf81aa74a2dddf367ac23
1 618f9b8b6cefaa268dcb5477eece5e90 1 618f9b8b6cefaa268dcb5477eece5e90
2 fbfe93cc7713f852852f66e578d999aa 2 fbfe93cc7713f852852f66e578d999aa
@ -241,7 +240,7 @@ set sort_buffer_size=default;
set sort_buffer_size=32768; set sort_buffer_size=32768;
analyze format=json select id DIV 100 as x, analyze format=json select id DIV 100 as x,
MD5(group_concat(substring(names,1,3), substring(address,1,3) MD5(group_concat(substring(names,1,3), substring(address,1,3)
order by id)) order by id)) as md5
FROM t3 FROM t3
GROUP BY x; GROUP BY x;
ANALYZE ANALYZE
@ -279,11 +278,10 @@ ANALYZE
flush status; flush status;
select id DIV 100 as x, select id DIV 100 as x,
MD5(group_concat(substring(names,1,3), substring(address,1,3) MD5(group_concat(substring(names,1,3), substring(address,1,3)
order by id)) order by id)) as md5
FROM t3 FROM t3
GROUP BY x; GROUP BY x;
x MD5(group_concat(substring(names,1,3), substring(address,1,3) x md5
order by id))
0 3d24cb0237caf81aa74a2dddf367ac23 0 3d24cb0237caf81aa74a2dddf367ac23
1 618f9b8b6cefaa268dcb5477eece5e90 1 618f9b8b6cefaa268dcb5477eece5e90
2 fbfe93cc7713f852852f66e578d999aa 2 fbfe93cc7713f852852f66e578d999aa

View File

@ -100,7 +100,7 @@ select id, generate_random_string(a), generate_random_string(b) from t2;
let $query= select id DIV 100 as x, let $query= select id DIV 100 as x,
MD5(group_concat(substring(names,1,3), substring(address,1,3) MD5(group_concat(substring(names,1,3), substring(address,1,3)
order by id)) order by id)) as md5
FROM t3 FROM t3
GROUP BY x; GROUP BY x;
@ -112,12 +112,9 @@ set sort_buffer_size=262144*10;
--source include/analyze-format.inc --source include/analyze-format.inc
eval analyze format=json $query; eval analyze format=json $query;
flush status; flush status;
# Enable view-protocol after fix MDEV-27871
--disable_view_protocol
--disable_ps2_protocol --disable_ps2_protocol
eval $query; eval $query;
--enable_ps2_protocol --enable_ps2_protocol
--enable_view_protocol
show status like '%sort%'; show status like '%sort%';
set sort_buffer_size=default; set sort_buffer_size=default;
@ -129,12 +126,9 @@ set sort_buffer_size=32768;
--source include/analyze-format.inc --source include/analyze-format.inc
eval analyze format=json $query; eval analyze format=json $query;
flush status; flush status;
# Enable view-protocol after fix MDEV-27871
--disable_view_protocol
--disable_ps2_protocol --disable_ps2_protocol
eval $query; eval $query;
--enable_ps2_protocol --enable_ps2_protocol
--enable_view_protocol
show status like '%sort%'; show status like '%sort%';
set sort_buffer_size=default; set sort_buffer_size=default;

View File

@ -556,8 +556,8 @@ DROP TABLE IF EXISTS t1;
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE; SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE
22:10:00 22:10:00
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE; SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE as time;
STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE time
22:01:00 22:01:00
SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
"1997-12-31 23:59:59" + INTERVAL 1 SECOND "1997-12-31 23:59:59" + INTERVAL 1 SECOND
@ -1087,35 +1087,35 @@ DROP TABLE t1;
# Subquery, one row, ROLLUP # Subquery, one row, ROLLUP
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10); INSERT INTO t1 VALUES (10);
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) as exp;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) exp
NULL NULL
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) as exp;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) exp
10 10
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) as exp FROM t1;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) exp
NULL NULL
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) as exp FROM t1;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) exp
10 10
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP);
ERROR 21000: Subquery returns more than 1 row ERROR 21000: Subquery returns more than 1 row
@ -1145,27 +1145,27 @@ DROP TABLE t1;
# Subquery, multiple rows, ROLLUP # Subquery, multiple rows, ROLLUP
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30); INSERT INTO t1 VALUES (10),(20),(30);
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
10 10
10 10
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
10 10
10 10
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1; SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) exp
10 10
10 10
10 10
@ -1819,12 +1819,8 @@ SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
1 1
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) as exp;
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT exp
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT
1 1
# #
# MDEV-17693 Shift/reduce conflicts for NAMES,ROLE,PASSWORD in the option_value_no_option_type grammar # MDEV-17693 Shift/reduce conflicts for NAMES,ROLE,PASSWORD in the option_value_no_option_type grammar

View File

@ -694,10 +694,7 @@ DROP TABLE IF EXISTS t1;
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE; SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
#enable view protocol after fix MDEV-27871 SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE as time;
--disable_view_protocol
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE;
--enable_view_protocol
SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
SELECT 1 + INTERVAL(1,0,1,2) + 1; SELECT 1 + INTERVAL(1,0,1,2) + 1;
@ -1189,22 +1186,16 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10); INSERT INTO t1 VALUES (10);
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) as exp;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) as exp;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
#enable view protocol after fix MDEV-27871 SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
--disable_view_protocol SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) as exp FROM t1;
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) as exp FROM t1;
--enable_view_protocol SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) FROM t1; SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) FROM t1; SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
#enable view protocol after fix MDEV-27871
--disable_view_protocol
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
--enable_view_protocol
--error ER_SUBQUERY_NO_1_ROW --error ER_SUBQUERY_NO_1_ROW
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP);
@ -1238,18 +1229,12 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30); INSERT INTO t1 VALUES (10),(20),(30);
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
#enable view protocol after fix MDEV-27871 SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp;
--disable_view_protocol SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1); SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
--enable_view_protocol SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) as exp FROM t1;
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
#enable view protocol after fix MDEV-27871
--disable_view_protocol
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
--enable_view_protocol
--error ER_SUBQUERY_NO_1_ROW --error ER_SUBQUERY_NO_1_ROW
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP); SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP);
@ -1569,8 +1554,6 @@ DROP PROCEDURE p1;
--echo # MDEV-16697: Fix difference between 32bit/windows and 64bit --echo # MDEV-16697: Fix difference between 32bit/windows and 64bit
--echo # systems in allowed select nest level --echo # systems in allowed select nest level
--echo # --echo #
#enable view protocol after fix MDEV-27871
--disable_view_protocol
SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
@ -1580,8 +1563,7 @@ DROP PROCEDURE p1;
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
(SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT
1 1
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) as exp;
--enable_view_protocol
--echo # --echo #
--echo # MDEV-17693 Shift/reduce conflicts for NAMES,ROLE,PASSWORD in the option_value_no_option_type grammar --echo # MDEV-17693 Shift/reduce conflicts for NAMES,ROLE,PASSWORD in the option_value_no_option_type grammar

View File

@ -1627,13 +1627,13 @@ Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20'; SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20' as exp;
str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20' exp
1 1
Warnings: Warnings:
Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: ''
SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND ''; SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '' as exp;
str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '' exp
NULL NULL
Warnings: Warnings:
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date

View File

@ -1265,11 +1265,8 @@ SELECT str_to_date('2007-20-00', '%Y-%m-%d') >= '2007/10/20' AND
str_to_date('2007-20-00', '%Y-%m-%d') <= ''; str_to_date('2007-20-00', '%Y-%m-%d') <= '';
--enable_view_protocol --enable_view_protocol
#enable after fix MDEV-27871 SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20' as exp;
--disable_view_protocol SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '' as exp;
SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20';
SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '';
--enable_view_protocol
SELECT str_to_date('', '%Y-%m-%d'); SELECT str_to_date('', '%Y-%m-%d');

View File

@ -1630,13 +1630,13 @@ Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date
SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20'; SELECT str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20' as exp;
str_to_date('2007-10-00', '%Y-%m-%d') BETWEEN '' AND '2007/10/20' exp
1 1
Warnings: Warnings:
Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: ''
SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND ''; SELECT str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '' as exp;
str_to_date('2007-20-00', '%Y-%m-%d') BETWEEN '2007/10/20' AND '' exp
NULL NULL
Warnings: Warnings:
Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date Warning 1411 Incorrect datetime value: '2007-20-00' for function str_to_date

View File

@ -21,8 +21,8 @@ CREATE INDEX CMFLDRPARNT_IDX ON t1 (PARENTID);
INSERT INTO t1 VALUES("0c9aab05b15048c59bc35c8461507deb", "System", "System", "2003-06-05 16:30:00", "The system content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "9c9aab05b15048c59bc35c8461507deb", "1"); INSERT INTO t1 VALUES("0c9aab05b15048c59bc35c8461507deb", "System", "System", "2003-06-05 16:30:00", "The system content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "9c9aab05b15048c59bc35c8461507deb", "1");
INSERT INTO t1 VALUES("2f6161e879db43c1a5b82c21ddc49089", "Default", "System", "2003-06-09 10:52:02", "The default content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "03eea05112b845949f3fd03278b5fe43", "1"); INSERT INTO t1 VALUES("2f6161e879db43c1a5b82c21ddc49089", "Default", "System", "2003-06-09 10:52:02", "The default content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "03eea05112b845949f3fd03278b5fe43", "1");
INSERT INTO t1 VALUES("c373e9f5ad0791724315444553544200", "AddDocumentTest", "admin", "2003-06-09 10:51:25", "Movie Reviews", "0", "2003-06-09 10:51:25", "admin", "0", "2f6161e879db43c1a5b82c21ddc49089", "03eea05112b845949f3fd03278b5fe43", NULL); INSERT INTO t1 VALUES("c373e9f5ad0791724315444553544200", "AddDocumentTest", "admin", "2003-06-09 10:51:25", "Movie Reviews", "0", "2003-06-09 10:51:25", "admin", "0", "2f6161e879db43c1a5b82c21ddc49089", "03eea05112b845949f3fd03278b5fe43", NULL);
SELECT 'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1'); SELECT 'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1') as exp;
'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1') exp
0 0
drop table t1; drop table t1;
create table t1 (a int) engine=innodb; create table t1 (a int) engine=innodb;
@ -58,8 +58,8 @@ FOREIGN KEY (yod_id) REFERENCES t3(yod_id)
INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t3 VALUES (1,1),(2,2),(3,3); INSERT INTO t3 VALUES (1,1),(2,2),(3,3);
INSERT INTO t2 VALUES (1,1),(2,2),(3,3); INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) FROM t1 p1; SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) as result FROM t1 p1;
processor_id (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) processor_id result
1 1 1 1
2 2 2 2
3 3 3 3
@ -199,15 +199,9 @@ WHERE rs.t1_id=
(SELECT lt.t1_id (SELECT lt.t1_id
FROM t1 lt FROM t1 lt
WHERE lt.t3_id=a.t3_id) WHERE lt.t3_id=a.t3_id)
ORDER BY b DESC LIMIT 1) ORDER BY b DESC LIMIT 1) as exp
from t3 AS a; from t3 AS a;
(SELECT rs.t2_id exp
FROM t2 rs
WHERE rs.t1_id=
(SELECT lt.t1_id
FROM t1 lt
WHERE lt.t3_id=a.t3_id)
ORDER BY b DESC LIMIT 1)
NULL NULL
DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p1;
create procedure p1() create procedure p1()
@ -643,15 +637,8 @@ WHERE
a IS NOT NULL a IS NOT NULL
GROUP BY GROUP BY
(SELECT NULL from dual WHERE a = 1) (SELECT NULL from dual WHERE a = 1)
); ) as exp;
1 IN ( exp
SELECT NULL
FROM t1
WHERE
a IS NOT NULL
GROUP BY
(SELECT NULL from dual WHERE a = 1)
)
0 0
drop table t1; drop table t1;
# Testcase from MDEV-26164 # Testcase from MDEV-26164
@ -671,8 +658,8 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2); INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (3),(4); INSERT INTO t1 VALUES (3),(4);
SELECT 1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1))); SELECT 1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1))) as exp;
1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1))) exp
1 1
drop table t1,t2; drop table t1,t2;
# #

View File

@ -31,10 +31,7 @@ CREATE INDEX CMFLDRPARNT_IDX ON t1 (PARENTID);
INSERT INTO t1 VALUES("0c9aab05b15048c59bc35c8461507deb", "System", "System", "2003-06-05 16:30:00", "The system content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "9c9aab05b15048c59bc35c8461507deb", "1"); INSERT INTO t1 VALUES("0c9aab05b15048c59bc35c8461507deb", "System", "System", "2003-06-05 16:30:00", "The system content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "9c9aab05b15048c59bc35c8461507deb", "1");
INSERT INTO t1 VALUES("2f6161e879db43c1a5b82c21ddc49089", "Default", "System", "2003-06-09 10:52:02", "The default content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "03eea05112b845949f3fd03278b5fe43", "1"); INSERT INTO t1 VALUES("2f6161e879db43c1a5b82c21ddc49089", "Default", "System", "2003-06-09 10:52:02", "The default content repository folder.", "3", "2003-06-05 16:30:00", "System", "0", NULL, "03eea05112b845949f3fd03278b5fe43", "1");
INSERT INTO t1 VALUES("c373e9f5ad0791724315444553544200", "AddDocumentTest", "admin", "2003-06-09 10:51:25", "Movie Reviews", "0", "2003-06-09 10:51:25", "admin", "0", "2f6161e879db43c1a5b82c21ddc49089", "03eea05112b845949f3fd03278b5fe43", NULL); INSERT INTO t1 VALUES("c373e9f5ad0791724315444553544200", "AddDocumentTest", "admin", "2003-06-09 10:51:25", "Movie Reviews", "0", "2003-06-09 10:51:25", "admin", "0", "2f6161e879db43c1a5b82c21ddc49089", "03eea05112b845949f3fd03278b5fe43", NULL);
#enable after fix MDEV-27871 SELECT 'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1') as exp;
--disable_view_protocol
SELECT 'c373e9f5ad0791a0dab5444553544200' IN(SELECT t1.FOLDERID FROM t1 WHERE t1.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t1.FOLDERNAME = 'Level1');
--enable_view_protocol
drop table t1; drop table t1;
# #
@ -71,10 +68,7 @@ CREATE TABLE t2 (
INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t3 VALUES (1,1),(2,2),(3,3); INSERT INTO t3 VALUES (1,1),(2,2),(3,3);
INSERT INTO t2 VALUES (1,1),(2,2),(3,3); INSERT INTO t2 VALUES (1,1),(2,2),(3,3);
#enable after fix MDEV-27871 SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) as result FROM t1 p1;
--disable_view_protocol
SELECT distinct p1.processor_id, (SELECT y.yod_id FROM t1 p2, t2 y WHERE p2.processor_id = p1.processor_id and p2.processor_id = y.processor_id) FROM t1 p1;
--enable_view_protocol
drop table t2,t1,t3; drop table t2,t1,t3;
# #
@ -212,8 +206,6 @@ CREATE TABLE `t3` (
`t3_id` int NOT NULL `t3_id` int NOT NULL
); );
INSERT INTO `t3` VALUES (3); INSERT INTO `t3` VALUES (3);
#enable after fix MDEV-27871
--disable_view_protocol
select select
(SELECT rs.t2_id (SELECT rs.t2_id
FROM t2 rs FROM t2 rs
@ -221,9 +213,8 @@ select
(SELECT lt.t1_id (SELECT lt.t1_id
FROM t1 lt FROM t1 lt
WHERE lt.t3_id=a.t3_id) WHERE lt.t3_id=a.t3_id)
ORDER BY b DESC LIMIT 1) ORDER BY b DESC LIMIT 1) as exp
from t3 AS a; from t3 AS a;
--enable_view_protocol
# repeat above query in SP # repeat above query in SP
--disable_warnings --disable_warnings
DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p1;
@ -639,8 +630,6 @@ set character_set_connection=@save_character_set_connection;
--echo # MDEV-26047: MariaDB server crash at Item_subselect::init_expr_cache_tracker --echo # MDEV-26047: MariaDB server crash at Item_subselect::init_expr_cache_tracker
--echo # --echo #
CREATE TABLE t1 (a int) engine=innodb; CREATE TABLE t1 (a int) engine=innodb;
#enable abter fix MDEV-27871
--disable_view_protocol
SELECT 1 IN ( SELECT 1 IN (
SELECT NULL SELECT NULL
FROM t1 FROM t1
@ -648,8 +637,7 @@ SELECT 1 IN (
a IS NOT NULL a IS NOT NULL
GROUP BY GROUP BY
(SELECT NULL from dual WHERE a = 1) (SELECT NULL from dual WHERE a = 1)
); ) as exp;
--enable_view_protocol
drop table t1; drop table t1;
--echo # Testcase from MDEV-26164 --echo # Testcase from MDEV-26164
@ -671,10 +659,7 @@ CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1),(2); INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (b INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (3),(4); INSERT INTO t1 VALUES (3),(4);
#enable after fix MDEV-27871 SELECT 1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1))) as exp;
--disable_view_protocol
SELECT 1 IN (SELECT a FROM t1 LEFT JOIN t2 ON (a = b AND EXISTS (SELECT * FROM t1)));
--enable_view_protocol
drop table t1,t2; drop table t1,t2;
--echo # --echo #

View File

@ -2894,16 +2894,15 @@ INSERT INTO t2 VALUES (1000,6,2);
set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,in_to_exists=off'; set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,in_to_exists=off';
EXPLAIN EXPLAIN
SELECT (f1, f2, f3) NOT IN SELECT (f1, f2, f3) NOT IN
(SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) as exp
FROM t2; FROM t2;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1 1 PRIMARY t2 system NULL NULL NULL NULL 1
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 Using filesort 2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 Using filesort
SELECT (f1, f2, f3) NOT IN SELECT (f1, f2, f3) NOT IN
(SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) as exp
FROM t2; FROM t2;
(f1, f2, f3) NOT IN exp
(SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3)
1 1
drop table t1, t2; drop table t1, t2;
# #

View File

@ -192,19 +192,15 @@ INSERT INTO t2 VALUES (1000,6,2);
set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,in_to_exists=off'; set @@optimizer_switch='materialization=on,partial_match_rowid_merge=on,partial_match_table_scan=off,in_to_exists=off';
#enable after fix MDEV-27871
--disable_view_protocol
EXPLAIN EXPLAIN
SELECT (f1, f2, f3) NOT IN SELECT (f1, f2, f3) NOT IN
(SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) as exp
FROM t2; FROM t2;
SELECT (f1, f2, f3) NOT IN SELECT (f1, f2, f3) NOT IN
(SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) (SELECT COUNT(DISTINCT f2), f1, f3 FROM t1 GROUP BY f1, f3) as exp
FROM t2; FROM t2;
--enable_view_protocol
drop table t1, t2; drop table t1, t2;
--echo # --echo #

View File

@ -2,18 +2,18 @@ drop table if exists t1, t2;
drop function if exists f1; drop function if exists f1;
create table t1 (ts timestamp); create table t1 (ts timestamp);
set time_zone='+00:00'; set time_zone='+00:00';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) exp
0 0
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
set time_zone='+10:30'; set time_zone='+10:30';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) exp
-37800 -37800
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
set time_zone='-10:00'; set time_zone='-10:00';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) exp
36000 36000
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
select * from t1; select * from t1;
@ -239,20 +239,20 @@ tz convert_tz('2003-12-31 00:00:00',tz,'UTC') convert_tz('2003-12-31 00:00:00','
MET 2003-12-30 23:00:00 2003-12-31 01:00:00 MET 2003-12-30 23:00:00 2003-12-31 01:00:00
UTC 2003-12-31 00:00:00 2003-12-31 00:00:00 UTC 2003-12-31 00:00:00 2003-12-31 00:00:00
drop table t1; drop table t1;
select convert_tz('2003-12-31 04:00:00', NULL, 'UTC'); select convert_tz('2003-12-31 04:00:00', NULL, 'UTC') as exp;
convert_tz('2003-12-31 04:00:00', NULL, 'UTC') exp
NULL NULL
select convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC'); select convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC') as exp;
convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC') exp
NULL NULL
select convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone'); select convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone') as exp;
convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone') exp
NULL NULL
select convert_tz('2003-12-31 04:00:00', 'MET', NULL); select convert_tz('2003-12-31 04:00:00', 'MET', NULL) as exp;
convert_tz('2003-12-31 04:00:00', 'MET', NULL) exp
NULL NULL
select convert_tz( NULL, 'MET', 'UTC'); select convert_tz( NULL, 'MET', 'UTC') as exp;
convert_tz( NULL, 'MET', 'UTC') exp
NULL NULL
create table t1 (ts timestamp); create table t1 (ts timestamp);
set timestamp=1000000000; set timestamp=1000000000;
@ -326,8 +326,8 @@ SET timestamp=DEFAULT;
# #
# MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ # MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ
# #
SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' ); SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' ) as exp;
CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' ) exp
NULL NULL
# #
# End of 5.3 tests # End of 5.3 tests

View File

@ -12,26 +12,21 @@ drop function if exists f1;
# #
create table t1 (ts timestamp); create table t1 (ts timestamp);
#enable after fix MDEV-27871
--disable_view_protocol
set time_zone='+00:00'; set time_zone='+00:00';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
set time_zone='+10:30'; set time_zone='+10:30';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
set time_zone='-10:00'; set time_zone='-10:00';
select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()); select unix_timestamp(utc_timestamp())-unix_timestamp(current_timestamp()) as exp;
insert into t1 (ts) values ('2003-03-30 02:30:00'); insert into t1 (ts) values ('2003-03-30 02:30:00');
# Here we will get different results # Here we will get different results
select * from t1; select * from t1;
--enable_view_protocol
drop table t1; drop table t1;
@ -192,17 +187,12 @@ insert into t1 (tz) values ('MET'), ('UTC');
select tz, convert_tz('2003-12-31 00:00:00',tz,'UTC'), convert_tz('2003-12-31 00:00:00','UTC',tz) from t1 order by tz; select tz, convert_tz('2003-12-31 00:00:00',tz,'UTC'), convert_tz('2003-12-31 00:00:00','UTC',tz) from t1 order by tz;
drop table t1; drop table t1;
#enable after fix MDEV-27871
--disable_view_protocol
# Parameters to CONVERT_TZ() what should give NULL # Parameters to CONVERT_TZ() what should give NULL
select convert_tz('2003-12-31 04:00:00', NULL, 'UTC'); select convert_tz('2003-12-31 04:00:00', NULL, 'UTC') as exp;
select convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC'); select convert_tz('2003-12-31 04:00:00', 'SomeNotExistingTimeZone', 'UTC') as exp;
select convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone'); select convert_tz('2003-12-31 04:00:00', 'MET', 'SomeNotExistingTimeZone') as exp;
select convert_tz('2003-12-31 04:00:00', 'MET', NULL); select convert_tz('2003-12-31 04:00:00', 'MET', NULL) as exp;
select convert_tz( NULL, 'MET', 'UTC'); select convert_tz( NULL, 'MET', 'UTC') as exp;
--enable_view_protocol
# #
# Test for bug #4508 "CONVERT_TZ() function with new time zone as param # Test for bug #4508 "CONVERT_TZ() function with new time zone as param
@ -315,12 +305,7 @@ SET timestamp=DEFAULT;
--echo # MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ --echo # MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ
--echo # --echo #
#enable after fix MDEV-27871 SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' ) as exp;
--disable_view_protocol
SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' );
--enable_view_protocol
--echo # --echo #
--echo # End of 5.3 tests --echo # End of 5.3 tests

View File

@ -184,17 +184,17 @@ a
2006-06-06 15:55:55 2006-06-06 15:55:55
DROP PREPARE s; DROP PREPARE s;
DROP TABLE t1; DROP TABLE t1;
SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)); SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)) as exp;
CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)) exp
20060810.000000 20060810.000000
SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)); SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)) as exp;
CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)) exp
20060810101112.000000 20060810101112.000000
SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6)); SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6)) as exp;
CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6)) exp
20060810101112.000014 20060810101112.000014
SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)); SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)) as exp;
CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)) exp
101112.098700 101112.098700
set @org_mode=@@sql_mode; set @org_mode=@@sql_mode;
create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03'); create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
@ -351,26 +351,26 @@ select f1 from t1 where ('1',f1) in (('1','01-01-01'),('1','2001-1-1 0:0:0'),('1
f1 f1
2001-01-01 2001-01-01
drop table t1,t2,t3; drop table t1,t2,t3;
select least(cast('01-01-01' as date), '01-01-02'); select least(cast('01-01-01' as date), '01-01-02') as exp;
least(cast('01-01-01' as date), '01-01-02') exp
2001-01-01 2001-01-01
select greatest(cast('01-01-01' as date), '01-01-02'); select greatest(cast('01-01-01' as date), '01-01-02') as exp;
greatest(cast('01-01-01' as date), '01-01-02') exp
2001-01-02 2001-01-02
select least(cast('01-01-01' as date), '01-01-02') + 0; select least(cast('01-01-01' as date), '01-01-02') + 0 as exp;
least(cast('01-01-01' as date), '01-01-02') + 0 exp
20010101 20010101
select greatest(cast('01-01-01' as date), '01-01-02') + 0; select greatest(cast('01-01-01' as date), '01-01-02') + 0 as exp;
greatest(cast('01-01-01' as date), '01-01-02') + 0 exp
20010102 20010102
select least(cast('01-01-01' as datetime), '01-01-02') + 0; select least(cast('01-01-01' as datetime), '01-01-02') + 0 as exp;
least(cast('01-01-01' as datetime), '01-01-02') + 0 exp
20010101000000 20010101000000
select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed); select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed) as exp;
cast(least(cast('01-01-01' as datetime), '01-01-02') as signed) exp
20010101000000 20010101000000
select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2)); select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2)) as exp;
cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2)) exp
20010101000000.00 20010101000000.00
DROP PROCEDURE IF EXISTS test27759 ; DROP PROCEDURE IF EXISTS test27759 ;
CREATE PROCEDURE test27759() CREATE PROCEDURE test27759()
@ -627,21 +627,21 @@ ERROR 42000: Invalid default value for 'da'
create table t1 (t time default '916:00:00 a'); create table t1 (t time default '916:00:00 a');
ERROR 42000: Invalid default value for 't' ERROR 42000: Invalid default value for 't'
set @@sql_mode= @org_mode; set @@sql_mode= @org_mode;
SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) exp
20060810101112.0123450 20060810101112.0123450
Warnings: Warnings:
Note 1292 Truncated incorrect datetime value: '2006-08-10 10:11:12.0123450' Note 1292 Truncated incorrect datetime value: '2006-08-10 10:11:12.0123450'
SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) exp
20060810101112.0123450 20060810101112.0123450
Warnings: Warnings:
Note 1292 Truncated incorrect datetime value: '00000002006-000008-0000010 000010:0000011:00000012.0123450' Note 1292 Truncated incorrect datetime value: '00000002006-000008-0000010 000010:0000011:00000012.0123450'
SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)) exp
20060810101112.0123450 20060810101112.0123450
SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)) as exp;
CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)) exp
20080729104251.1234560 20080729104251.1234560
Warnings: Warnings:
Note 1292 Truncated incorrect datetime value: '2008-07-29T10:42:51.1234567' Note 1292 Truncated incorrect datetime value: '2008-07-29T10:42:51.1234567'
@ -685,8 +685,8 @@ drop table t1,t2;
# #
# MDEV-4634 Crash in CONVERT_TZ # MDEV-4634 Crash in CONVERT_TZ
# #
SELECT CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5'); SELECT CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5') as exp;
CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5') exp
NULL NULL
Warnings: Warnings:
Warning 1292 Incorrect datetime value: '2022-00-00 00:00:00' Warning 1292 Incorrect datetime value: '2022-00-00 00:00:00'
@ -951,8 +951,8 @@ CAST(CAST('00:00:00.000001' AS TIME(6)) AS DATETIME(6))
SELECT CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME); SELECT CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME);
CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME) CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME)
0000-00-00 10:20:30 0000-00-00 10:20:30
SELECT CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6)); SELECT CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6)) as exp;
CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6)) exp
0000-00-00 00:00:00.000001 0000-00-00 00:00:00.000001
SET old_mode=DEFAULT; SET old_mode=DEFAULT;
SET sql_mode=DEFAULT; SET sql_mode=DEFAULT;

View File

@ -138,13 +138,10 @@ DROP TABLE t1;
# #
# Bug 19491 (CAST DATE AS DECIMAL returns incorrect result # Bug 19491 (CAST DATE AS DECIMAL returns incorrect result
# #
SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)); SELECT CAST(CAST('2006-08-10' AS DATE) AS DECIMAL(20,6)) as exp;
#enable after fix MDEV-27871 SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)) as exp;
--disable_view_protocol SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6)) as exp;
SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) AS DECIMAL(20,6)); SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6)) as exp;
SELECT CAST(CAST('2006-08-10 10:11:12' AS DATETIME(6)) + INTERVAL 14 MICROSECOND AS DECIMAL(20,6));
SELECT CAST(CAST('10:11:12.098700' AS TIME(6)) AS DECIMAL(20,6));
--disable_view_protocol
# #
# Test of storing datetime into date fields # Test of storing datetime into date fields
@ -246,16 +243,13 @@ drop table t1,t2,t3;
# #
# Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions. # Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
# #
select least(cast('01-01-01' as date), '01-01-02'); select least(cast('01-01-01' as date), '01-01-02') as exp;
select greatest(cast('01-01-01' as date), '01-01-02'); select greatest(cast('01-01-01' as date), '01-01-02') as exp;
select least(cast('01-01-01' as date), '01-01-02') + 0; select least(cast('01-01-01' as date), '01-01-02') + 0 as exp;
select greatest(cast('01-01-01' as date), '01-01-02') + 0; select greatest(cast('01-01-01' as date), '01-01-02') + 0 as exp;
select least(cast('01-01-01' as datetime), '01-01-02') + 0; select least(cast('01-01-01' as datetime), '01-01-02') + 0 as exp;
select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed); select cast(least(cast('01-01-01' as datetime), '01-01-02') as signed) as exp;
#enable after fix MDEV-27871 select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2)) as exp;
--disable_view_protocol
select cast(least(cast('01-01-01' as datetime), '01-01-02') as decimal(16,2));
--enable_view_protocol
--disable_warnings --disable_warnings
DROP PROCEDURE IF EXISTS test27759 ; DROP PROCEDURE IF EXISTS test27759 ;
--enable_warnings --enable_warnings
@ -447,27 +441,23 @@ create table t1 (da date default '1962-03-32 23:33:34', dt datetime default '196
create table t1 (t time default '916:00:00 a'); create table t1 (t time default '916:00:00 a');
set @@sql_mode= @org_mode; set @@sql_mode= @org_mode;
#enable after fix MDEV-27871
--disable_view_protocol
# #
# Bug #42146 - DATETIME fractional seconds parse error # Bug #42146 - DATETIME fractional seconds parse error
# #
# show we trucate microseconds from the right -- special case: leftmost is 0 # show we trucate microseconds from the right -- special case: leftmost is 0
SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('2006-08-10 10:11:12.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
# show that we ignore leading zeroes for all other fields # show that we ignore leading zeroes for all other fields
SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.0123450' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
# once more with feeling (but no warnings) # once more with feeling (but no warnings)
SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('00000002006-000008-0000010 000010:0000011:00000012.012345' AS DATETIME(6)) AS DECIMAL(30,7)) as exp;
# #
# Bug #38435 - LONG Microseconds cause MySQL to fail a CAST to DATETIME or DATE # Bug #38435 - LONG Microseconds cause MySQL to fail a CAST to DATETIME or DATE
# #
# show we truncate microseconds from the right # show we truncate microseconds from the right
SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)); SELECT CAST(CAST('2008-07-29T10:42:51.1234567' AS DateTime(6)) AS DECIMAL(30,7)) as exp;
--enable_view_protocol
--echo # --echo #
--echo # Bug#59173: Failure to handle DATE(TIME) values where Year, Month or --echo # Bug#59173: Failure to handle DATE(TIME) values where Year, Month or
@ -510,10 +500,7 @@ drop table t1,t2;
--echo # --echo #
--echo # MDEV-4634 Crash in CONVERT_TZ --echo # MDEV-4634 Crash in CONVERT_TZ
--echo # --echo #
#enable after fix MDEV-27871 SELECT CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5') as exp;
--disable_view_protocol
SELECT CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+7:5');
--enable_view_protocol
--echo # --echo #
--echo # MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value --echo # MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value
@ -674,10 +661,7 @@ SELECT CAST(TIME'00:00:00.000001' AS DATETIME(6));
SELECT CAST(CAST('10:20:30' AS TIME) AS DATETIME); SELECT CAST(CAST('10:20:30' AS TIME) AS DATETIME);
SELECT CAST(CAST('00:00:00.000001' AS TIME(6)) AS DATETIME(6)); SELECT CAST(CAST('00:00:00.000001' AS TIME(6)) AS DATETIME(6));
SELECT CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME); SELECT CAST(CAST(TIMESTAMP'0000-00-00 10:20:30' AS TIME) AS DATETIME);
#enable after fix MDEV-27871 SELECT CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6)) as exp;
--disable_view_protocol
SELECT CAST(CAST(TIMESTAMP'0000-00-00 00:00:00.000001' AS TIME(6)) AS DATETIME(6));
--enable_view_protocol
SET old_mode=DEFAULT; SET old_mode=DEFAULT;
SET sql_mode=DEFAULT; SET sql_mode=DEFAULT;

View File

@ -912,8 +912,8 @@ select * from t1;
col1 col1
-9223372036854775808 -9223372036854775808
drop table t1; drop table t1;
select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15)); select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15)) as exp;
cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15)) exp
0.000000000100000 0.000000000100000
select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3; select ln(14000) c1, convert(ln(14000),decimal(5,3)) c2, cast(ln(14000) as decimal(5,3)) c3;
c1 c2 c3 c1 c2 c3
@ -1527,9 +1527,8 @@ f1
99999999999999999999999999999.999999999999999999999999999999999999 99999999999999999999999999999.999999999999999999999999999999999999
DROP TABLE t1; DROP TABLE t1;
select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 * select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
1.01500000 * 1.01500000 * 0.99500000); 1.01500000 * 1.01500000 * 0.99500000) as exp;
(1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 * exp
1.01500000 * 1.01500000 * 0.99500000)
0.81298807395367312459230693948000000000 0.81298807395367312459230693948000000000
create table t1 as select 5.05 / 0.014; create table t1 as select 5.05 / 0.014;
Warnings: Warnings:
@ -2460,8 +2459,8 @@ drop table t1;
# decimal_bin_size And Assertion `scale >= 0 && precision > 0 && scale <= precision' # decimal_bin_size And Assertion `scale >= 0 && precision > 0 && scale <= precision'
# failed in decimal_bin_size_inline/decimal_bin_size. # failed in decimal_bin_size_inline/decimal_bin_size.
# #
SELECT AVG(DISTINCT 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001); SELECT AVG(DISTINCT 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) as exp;
AVG(DISTINCT 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 exp
0.00000000000000000000000000000000000000 0.00000000000000000000000000000000000000
CREATE TABLE t1 AS SELECT NULL AS v1; CREATE TABLE t1 AS SELECT NULL AS v1;
SELECT 1 FROM t1 GROUP BY v1 ORDER BY AVG ( from_unixtime ( '' ) ) ; SELECT 1 FROM t1 GROUP BY v1 ORDER BY AVG ( from_unixtime ( '' ) ) ;

View File

@ -952,10 +952,7 @@ drop table t1;
# #
# Bug #10891 (converting to decimal crashes server) # Bug #10891 (converting to decimal crashes server)
# #
#enable after fix MDEV-27871 select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15)) as exp;
--disable_view_protocol
select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15));
--enable_view_protocol
# #
# Bug #11708 (conversion to decimal fails in decimal part) # Bug #11708 (conversion to decimal fails in decimal part)
@ -1245,15 +1242,11 @@ DROP TABLE t1;
# #
# Bug #36270: incorrect calculation result - works in 4.1 but not in 5.0 or 5.1 # Bug #36270: incorrect calculation result - works in 4.1 but not in 5.0 or 5.1
# #
#enable after fix MDEV-27871
--disable_view_protocol
# show that if we need to truncate the scale of an operand, we pick the # show that if we need to truncate the scale of an operand, we pick the
# right one (that is, we discard the least significant decimal places) # right one (that is, we discard the least significant decimal places)
select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 * select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
1.01500000 * 1.01500000 * 0.99500000); 1.01500000 * 1.01500000 * 0.99500000) as exp;
--enable_view_protocol
# #
# Bug #31616 div_precision_increment description looks wrong # Bug #31616 div_precision_increment description looks wrong
@ -1924,10 +1917,8 @@ drop table t1;
--echo # decimal_bin_size And Assertion `scale >= 0 && precision > 0 && scale <= precision' --echo # decimal_bin_size And Assertion `scale >= 0 && precision > 0 && scale <= precision'
--echo # failed in decimal_bin_size_inline/decimal_bin_size. --echo # failed in decimal_bin_size_inline/decimal_bin_size.
--echo # --echo #
#enable after fix MDEV-27871 SELECT AVG(DISTINCT 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) as exp;
--disable_view_protocol
SELECT AVG(DISTINCT 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001);
--enable_view_protocol
CREATE TABLE t1 AS SELECT NULL AS v1; CREATE TABLE t1 AS SELECT NULL AS v1;
SELECT 1 FROM t1 GROUP BY v1 ORDER BY AVG ( from_unixtime ( '' ) ) ; SELECT 1 FROM t1 GROUP BY v1 ORDER BY AVG ( from_unixtime ( '' ) ) ;
DROP TABLE t1; DROP TABLE t1;

View File

@ -1099,11 +1099,9 @@ select
a, a,
count(col1) over (order by a count(col1) over (order by a
range between 0.1 preceding range between 0.1 preceding
and 0.1 following) and 0.1 following) as count
from t1; from t1;
a count(col1) over (order by a a count
range between 0.1 preceding
and 0.1 following)
0.450 3 0.450 3
0.500 3 0.500 3
0.550 3 0.550 3
@ -1249,33 +1247,33 @@ insert into t1 values (1,1,'foo');
insert into t1 values (2,2,'bar'); insert into t1 values (2,2,'bar');
select select
count(*) over (order by a,b count(*) over (order by a,b
range between unbounded preceding and current row) range between unbounded preceding and current row) as count
from t1; from t1;
ERROR HY000: RANGE-type frame requires ORDER BY clause with single sort key ERROR HY000: RANGE-type frame requires ORDER BY clause with single sort key
select select
count(*) over (order by c count(*) over (order by c
range between unbounded preceding and current row) range between unbounded preceding and current row) as count
from t1; from t1;
ERROR HY000: Numeric datatype is required for RANGE-type frame ERROR HY000: Numeric datatype is required for RANGE-type frame
select select
count(*) over (order by a count(*) over (order by a
range between 'abcd' preceding and current row) range between 'abcd' preceding and current row) as count
from t1; from t1;
ERROR HY000: Numeric datatype is required for RANGE-type frame ERROR HY000: Numeric datatype is required for RANGE-type frame
select select
count(*) over (order by a count(*) over (order by a
range between current row and 'foo' following) range between current row and 'foo' following) as count
from t1; from t1;
ERROR HY000: Numeric datatype is required for RANGE-type frame ERROR HY000: Numeric datatype is required for RANGE-type frame
# Try range frame with invalid bounds # Try range frame with invalid bounds
select select
count(*) over (order by a count(*) over (order by a
rows between 0.5 preceding and current row) rows between 0.5 preceding and current row) as count
from t1; from t1;
ERROR HY000: Integer is required for ROWS-type frame ERROR HY000: Integer is required for ROWS-type frame
select select
count(*) over (order by a count(*) over (order by a
rows between current row and 3.14 following) rows between current row and 3.14 following) as count
from t1; from t1;
ERROR HY000: Integer is required for ROWS-type frame ERROR HY000: Integer is required for ROWS-type frame
# #
@ -1284,29 +1282,27 @@ ERROR HY000: Integer is required for ROWS-type frame
select select
count(*) over (order by a count(*) over (order by a
rows between 1 preceding and 1 following rows between 1 preceding and 1 following
exclude current row) exclude current row) as count
from t1; from t1;
ERROR HY000: Frame exclusion is not supported yet ERROR HY000: Frame exclusion is not supported yet
select select
count(*) over (order by a count(*) over (order by a
range between 1 preceding and 1 following range between 1 preceding and 1 following
exclude ties) exclude ties) as count
from t1; from t1;
ERROR HY000: Frame exclusion is not supported yet ERROR HY000: Frame exclusion is not supported yet
select select
count(*) over (order by a count(*) over (order by a
range between 1 preceding and 1 following range between 1 preceding and 1 following
exclude group) exclude group) as count
from t1; from t1;
ERROR HY000: Frame exclusion is not supported yet ERROR HY000: Frame exclusion is not supported yet
select select
count(*) over (order by a count(*) over (order by a
rows between 1 preceding and 1 following rows between 1 preceding and 1 following
exclude no others) exclude no others) as count
from t1; from t1;
count(*) over (order by a count
rows between 1 preceding and 1 following
exclude no others)
2 2
2 2
drop table t1; drop table t1;
@ -1602,10 +1598,10 @@ insert into t1 values
# Check using counters # Check using counters
flush status; flush status;
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by b) rank() over (partition by c order by b) as rank_b
from t1; from t1;
rank() over (partition by c order by a) rank() over (partition by c order by b) rank_a rank_b
1 3 1 3
2 2 2 2
3 1 3 1
@ -1618,10 +1614,10 @@ Sort_rows 6
Sort_scan 2 Sort_scan 2
flush status; flush status;
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_b
from t1; from t1;
rank() over (partition by c order by a) rank() over (partition by c order by a) rank_a rank_b
1 1 1 1
2 2 2 2
3 3 3 3
@ -1634,8 +1630,8 @@ Sort_rows 3
Sort_scan 1 Sort_scan 1
explain format=json explain format=json
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_b
from t1; from t1;
EXPLAIN EXPLAIN
{ {
@ -1686,8 +1682,8 @@ EXPLAIN
} }
explain format=json explain format=json
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
count(*) over (partition by c) count(*) over (partition by c) as count_c
from t1; from t1;
EXPLAIN EXPLAIN
{ {
@ -1712,8 +1708,8 @@ EXPLAIN
} }
explain format=json explain format=json
select select
count(*) over (partition by c), count(*) over (partition by c) as count_c,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_a
from t1; from t1;
EXPLAIN EXPLAIN
{ {
@ -1842,18 +1838,18 @@ insert into t1 values (1, 3, 4);
insert into t1 values (1, 4, 8); insert into t1 values (1, 4, 8);
select select
pk, a, pk, a,
sum(a) over (order by pk rows between 0 preceding and current row) sum(a) over (order by pk rows between 0 preceding and current row) as sum
from t1; from t1;
pk a sum(a) over (order by pk rows between 0 preceding and current row) pk a sum
1 1 1 1 1 1
2 2 2 2 2 2
3 4 4 3 4 4
4 8 8 4 8 8
select select
pk, a, pk, a,
sum(a) over (order by pk rows between 1 preceding and 0 preceding) sum(a) over (order by pk rows between 1 preceding and 0 preceding) as sum
from t1; from t1;
pk a sum(a) over (order by pk rows between 1 preceding and 0 preceding) pk a sum
1 1 1 1 1 1
2 2 3 2 2 3
3 4 6 3 4 6
@ -1864,9 +1860,9 @@ insert into t1 values (200, 3, 4);
insert into t1 values (200, 4, 8); insert into t1 values (200, 4, 8);
select select
part_id, pk, a, part_id, pk, a,
sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) as sum
from t1; from t1;
part_id pk a sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) part_id pk a sum
1 1 1 1 1 1 1 1
1 2 2 2 1 2 2 2
1 3 4 4 1 3 4 4
@ -1877,9 +1873,9 @@ part_id pk a sum(a) over (partition by part_id order by pk rows between 0 preced
200 4 8 8 200 4 8 8
select select
part_id, pk, a, part_id, pk, a,
sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) as sum
from t1; from t1;
part_id pk a sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) part_id pk a sum
1 1 1 1 1 1 1 1
1 2 2 3 1 2 2 3
1 3 4 6 1 3 4 6
@ -1904,8 +1900,8 @@ insert into t1 values
(2000, 3), (2000, 3),
(2000, 3), (2000, 3),
(2000, 3); (2000, 3);
select rank() over (partition by part_id order by a) from t1; select rank() over (partition by part_id order by a) as rank from t1;
rank() over (partition by part_id order by a) rank
1 1
2 2
2 2
@ -1915,14 +1911,14 @@ rank() over (partition by part_id order by a)
3 3
3 3
3 3
select distinct rank() over (partition by part_id order by a) from t1; select distinct rank() over (partition by part_id order by a) as rank from t1;
rank() over (partition by part_id order by a) rank
1 1
2 2
4 4
3 3
explain format=json explain format=json
select distinct rank() over (partition by part_id order by a) from t1; select distinct rank() over (partition by part_id order by a) as rank from t1;
EXPLAIN EXPLAIN
{ {
"query_block": { "query_block": {
@ -2002,11 +1998,8 @@ INSERT INTO `orders` VALUES (59940,238);
SELECT o_custkey, avg(o_custkey) OVER (PARTITION BY abs(o_custkey) SELECT o_custkey, avg(o_custkey) OVER (PARTITION BY abs(o_custkey)
ORDER BY o_custkey ORDER BY o_custkey
RANGE BETWEEN 15 FOLLOWING RANGE BETWEEN 15 FOLLOWING
AND 15 FOLLOWING) from orders; AND 15 FOLLOWING) as avg from orders;
o_custkey avg(o_custkey) OVER (PARTITION BY abs(o_custkey) o_custkey avg
ORDER BY o_custkey
RANGE BETWEEN 15 FOLLOWING
AND 15 FOLLOWING)
238 NULL 238 NULL
242 NULL 242 NULL
DROP table orders; DROP table orders;
@ -2218,15 +2211,15 @@ a
NULL NULL
NULL NULL
NULL NULL
SELECT ifnull(((t.a) / CASE WHEN sum(t.a) over(partition by t.b) =0 then null else null end) ,0) from t; SELECT ifnull(((t.a) / CASE WHEN sum(t.a) over(partition by t.b) =0 then null else null end) ,0) as result from t;
ifnull(((t.a) / CASE WHEN sum(t.a) over(partition by t.b) =0 then null else null end) ,0) result
0.00000000000000 0.00000000000000
0.00000000000000 0.00000000000000
0.00000000000000 0.00000000000000
SELECT sum(t.a) over (partition by t.b order by a), SELECT sum(t.a) over (partition by t.b order by a),
sqrt(ifnull((sum(t.a) over (partition by t.b order by a)), 0)) sqrt(ifnull((sum(t.a) over (partition by t.b order by a)), 0)) as sum
from t; from t;
sum(t.a) over (partition by t.b order by a) sqrt(ifnull((sum(t.a) over (partition by t.b order by a)), 0)) sum(t.a) over (partition by t.b order by a) sum
0.0000000000 0 0.0000000000 0
1.0000000000 1 1.0000000000 1
3.0000000000 1.7320508075688772 3.0000000000 1.7320508075688772
@ -2401,9 +2394,9 @@ INSERT INTO t1 VALUES
(1,1000), (2,1100), (3,1800), (4,1500), (5,1700), (6,1200), (1,1000), (2,1100), (3,1800), (4,1500), (5,1700), (6,1200),
(7,2000), (8,2100), (9,1600); (7,2000), (8,2100), (9,1600);
SELECT id, sum(a) OVER (PARTITION BY id SELECT id, sum(a) OVER (PARTITION BY id
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as sum
FROM t1; FROM t1;
id sum(a) OVER (PARTITION BY id id sum
1 1000 1 1000
2 1100 2 1100
3 1800 3 1800
@ -2413,10 +2406,9 @@ id sum(a) OVER (PARTITION BY id
7 2000 7 2000
8 2100 8 2100
9 1600 9 1600
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) SELECT id, sum(a) OVER (ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as sum
SELECT id, sum(a) OVER (ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
FROM t1; FROM t1;
id sum(a) OVER (ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) id sum
1 14000 1 14000
2 13000 2 13000
3 5900 3 5900
@ -3151,8 +3143,8 @@ DROP TABLE t1;
# #
CREATE TABLE t1 (c CHAR(8)) ENGINE=MyISAM; CREATE TABLE t1 (c CHAR(8)) ENGINE=MyISAM;
INSERT IGNORE INTO t1 VALUES ('foo'); INSERT IGNORE INTO t1 VALUES ('foo');
SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1); SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1) as result;
('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1) result
0 0
DROP TABLE t1; DROP TABLE t1;
# #
@ -3185,8 +3177,8 @@ DROP TABLE t1;
# #
CREATE TABLE t1 (dt DATETIME); CREATE TABLE t1 (dt DATETIME);
INSERT INTO t1 VALUES ('2017-05-17'); INSERT INTO t1 VALUES ('2017-05-17');
SELECT MAX(dt) OVER (ORDER BY dt ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) FROM t1; SELECT MAX(dt) OVER (ORDER BY dt ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) as result FROM t1;
MAX(dt) OVER (ORDER BY dt ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) result
NULL NULL
DROP TABLE t1; DROP TABLE t1;
# #

View File

@ -2,9 +2,6 @@
# Window Functions Tests # Window Functions Tests
# #
--source include/no_valgrind_without_big.inc --source include/no_valgrind_without_big.inc
#remove this include after fix MDEV-27871, MDEV-27938
--source include/no_view_protocol.inc
--source include/have_sequence.inc --source include/have_sequence.inc
--disable_warnings --disable_warnings
@ -694,7 +691,7 @@ select
a, a,
count(col1) over (order by a count(col1) over (order by a
range between 0.1 preceding range between 0.1 preceding
and 0.1 following) and 0.1 following) as count
from t1; from t1;
drop table t1; drop table t1;
@ -787,38 +784,38 @@ insert into t1 values (2,2,'bar');
--error ER_RANGE_FRAME_NEEDS_SIMPLE_ORDERBY --error ER_RANGE_FRAME_NEEDS_SIMPLE_ORDERBY
select select
count(*) over (order by a,b count(*) over (order by a,b
range between unbounded preceding and current row) range between unbounded preceding and current row) as count
from t1; from t1;
--error ER_WRONG_TYPE_FOR_RANGE_FRAME --error ER_WRONG_TYPE_FOR_RANGE_FRAME
select select
count(*) over (order by c count(*) over (order by c
range between unbounded preceding and current row) range between unbounded preceding and current row) as count
from t1; from t1;
--error ER_WRONG_TYPE_FOR_RANGE_FRAME --error ER_WRONG_TYPE_FOR_RANGE_FRAME
select select
count(*) over (order by a count(*) over (order by a
range between 'abcd' preceding and current row) range between 'abcd' preceding and current row) as count
from t1; from t1;
--error ER_WRONG_TYPE_FOR_RANGE_FRAME --error ER_WRONG_TYPE_FOR_RANGE_FRAME
select select
count(*) over (order by a count(*) over (order by a
range between current row and 'foo' following) range between current row and 'foo' following) as count
from t1; from t1;
--echo # Try range frame with invalid bounds --echo # Try range frame with invalid bounds
--error ER_WRONG_TYPE_FOR_ROWS_FRAME --error ER_WRONG_TYPE_FOR_ROWS_FRAME
select select
count(*) over (order by a count(*) over (order by a
rows between 0.5 preceding and current row) rows between 0.5 preceding and current row) as count
from t1; from t1;
--error ER_WRONG_TYPE_FOR_ROWS_FRAME --error ER_WRONG_TYPE_FOR_ROWS_FRAME
select select
count(*) over (order by a count(*) over (order by a
rows between current row and 3.14 following) rows between current row and 3.14 following) as count
from t1; from t1;
--echo # --echo #
@ -829,28 +826,28 @@ from t1;
select select
count(*) over (order by a count(*) over (order by a
rows between 1 preceding and 1 following rows between 1 preceding and 1 following
exclude current row) exclude current row) as count
from t1; from t1;
--error ER_FRAME_EXCLUSION_NOT_SUPPORTED --error ER_FRAME_EXCLUSION_NOT_SUPPORTED
select select
count(*) over (order by a count(*) over (order by a
range between 1 preceding and 1 following range between 1 preceding and 1 following
exclude ties) exclude ties) as count
from t1; from t1;
--error ER_FRAME_EXCLUSION_NOT_SUPPORTED --error ER_FRAME_EXCLUSION_NOT_SUPPORTED
select select
count(*) over (order by a count(*) over (order by a
range between 1 preceding and 1 following range between 1 preceding and 1 following
exclude group) exclude group) as count
from t1; from t1;
# EXCLUDE NO OTHERS means 'don't exclude anything' # EXCLUDE NO OTHERS means 'don't exclude anything'
select select
count(*) over (order by a count(*) over (order by a
rows between 1 preceding and 1 following rows between 1 preceding and 1 following
exclude no others) exclude no others) as count
from t1; from t1;
drop table t1; drop table t1;
@ -1027,24 +1024,24 @@ insert into t1 values
flush status; flush status;
--sorted_result --sorted_result
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by b) rank() over (partition by c order by b) as rank_b
from t1; from t1;
show status like '%sort%'; show status like '%sort%';
flush status; flush status;
--sorted_result --sorted_result
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_b
from t1; from t1;
show status like '%sort%'; show status like '%sort%';
# Check using EXPLAIN FORMAT=JSON # Check using EXPLAIN FORMAT=JSON
explain format=json explain format=json
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_b
from t1; from t1;
explain format=json explain format=json
@ -1055,14 +1052,14 @@ from t1;
explain format=json explain format=json
select select
rank() over (partition by c order by a), rank() over (partition by c order by a) as rank_a,
count(*) over (partition by c) count(*) over (partition by c) as count_c
from t1; from t1;
explain format=json explain format=json
select select
count(*) over (partition by c), count(*) over (partition by c) as count_c,
rank() over (partition by c order by a) rank() over (partition by c order by a) as rank_a
from t1; from t1;
drop table t1; drop table t1;
@ -1137,12 +1134,12 @@ insert into t1 values (1, 4, 8);
select select
pk, a, pk, a,
sum(a) over (order by pk rows between 0 preceding and current row) sum(a) over (order by pk rows between 0 preceding and current row) as sum
from t1; from t1;
select select
pk, a, pk, a,
sum(a) over (order by pk rows between 1 preceding and 0 preceding) sum(a) over (order by pk rows between 1 preceding and 0 preceding) as sum
from t1; from t1;
insert into t1 values (200, 1, 1); insert into t1 values (200, 1, 1);
@ -1151,12 +1148,12 @@ insert into t1 values (200, 3, 4);
insert into t1 values (200, 4, 8); insert into t1 values (200, 4, 8);
select select
part_id, pk, a, part_id, pk, a,
sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) as sum
from t1; from t1;
select select
part_id, pk, a, part_id, pk, a,
sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) as sum
from t1; from t1;
drop table t1; drop table t1;
@ -1177,10 +1174,10 @@ insert into t1 values
(2000, 3), (2000, 3),
(2000, 3); (2000, 3);
select rank() over (partition by part_id order by a) from t1; select rank() over (partition by part_id order by a) as rank from t1;
select distinct rank() over (partition by part_id order by a) from t1; select distinct rank() over (partition by part_id order by a) as rank from t1;
explain format=json explain format=json
select distinct rank() over (partition by part_id order by a) from t1; select distinct rank() over (partition by part_id order by a) as rank from t1;
drop table t1; drop table t1;
@ -1237,7 +1234,7 @@ INSERT INTO `orders` VALUES (59940,238);
SELECT o_custkey, avg(o_custkey) OVER (PARTITION BY abs(o_custkey) SELECT o_custkey, avg(o_custkey) OVER (PARTITION BY abs(o_custkey)
ORDER BY o_custkey ORDER BY o_custkey
RANGE BETWEEN 15 FOLLOWING RANGE BETWEEN 15 FOLLOWING
AND 15 FOLLOWING) from orders; AND 15 FOLLOWING) as avg from orders;
DROP table orders; DROP table orders;
--echo # --echo #
@ -1374,9 +1371,9 @@ insert into t(a,b) values(1,1);
insert into t(a,b) values(2,1); insert into t(a,b) values(2,1);
insert into t(a,b) values(0,1); insert into t(a,b) values(0,1);
SELECT (CASE WHEN sum(t.a) over (partition by t.b)=0 THEN null ELSE null END) AS a FROM t; SELECT (CASE WHEN sum(t.a) over (partition by t.b)=0 THEN null ELSE null END) AS a FROM t;
SELECT ifnull(((t.a) / CASE WHEN sum(t.a) over(partition by t.b) =0 then null else null end) ,0) from t; SELECT ifnull(((t.a) / CASE WHEN sum(t.a) over(partition by t.b) =0 then null else null end) ,0) as result from t;
SELECT sum(t.a) over (partition by t.b order by a), SELECT sum(t.a) over (partition by t.b order by a),
sqrt(ifnull((sum(t.a) over (partition by t.b order by a)), 0)) sqrt(ifnull((sum(t.a) over (partition by t.b order by a)), 0)) as sum
from t; from t;
drop table t; drop table t;
@ -1460,11 +1457,11 @@ INSERT INTO t1 VALUES
--sorted_result --sorted_result
SELECT id, sum(a) OVER (PARTITION BY id SELECT id, sum(a) OVER (PARTITION BY id
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as sum
FROM t1; FROM t1;
--sorted_result --sorted_result
SELECT id, sum(a) OVER (ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) SELECT id, sum(a) OVER (ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as sum
FROM t1; FROM t1;
DROP TABLE t1; DROP TABLE t1;
@ -1613,9 +1610,11 @@ select b, max(i+20) over (partition by b) as f
from (select i+10 as i, b from t1) as tt from (select i+10 as i, b from t1) as tt
order by i; order by i;
--disable_view_protocol
select max(i), max(i), sum(i), count(i) select max(i), max(i), sum(i), count(i)
from t1 as tt from t1 as tt
group by b; group by b;
--enable_view_protocol
select max(i), min(sum(i)) over (partition by count(i)) f select max(i), min(sum(i)) over (partition by count(i)) f
from t1 as tt from t1 as tt
@ -1629,9 +1628,11 @@ select max(i+10), min(sum(i)+10) over (partition by count(i)) f
from t1 as tt from t1 as tt
group by b; group by b;
--disable_view_protocol
select max(i), max(i), sum(i), count(i) select max(i), max(i), sum(i), count(i)
from (select i+10 as i, b from t1) as tt from (select i+10 as i, b from t1) as tt
group by b; group by b;
--enable_view_protocol
select max(i), min(sum(i)) over (partition by count(i)) f select max(i), min(sum(i)) over (partition by count(i)) f
from (select i+10 as i, b from t1) as tt from (select i+10 as i, b from t1) as tt
@ -1946,7 +1947,7 @@ DROP TABLE t1;
--echo # --echo #
CREATE TABLE t1 (c CHAR(8)) ENGINE=MyISAM; CREATE TABLE t1 (c CHAR(8)) ENGINE=MyISAM;
INSERT IGNORE INTO t1 VALUES ('foo'); INSERT IGNORE INTO t1 VALUES ('foo');
SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1); SELECT ('bar',1) IN ( SELECT c, ROW_NUMBER() OVER (PARTITION BY c) FROM t1) as result;
DROP TABLE t1; DROP TABLE t1;
--echo # --echo #
@ -1977,7 +1978,7 @@ DROP TABLE t1;
CREATE TABLE t1 (dt DATETIME); CREATE TABLE t1 (dt DATETIME);
INSERT INTO t1 VALUES ('2017-05-17'); INSERT INTO t1 VALUES ('2017-05-17');
SELECT MAX(dt) OVER (ORDER BY dt ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) FROM t1; SELECT MAX(dt) OVER (ORDER BY dt ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) as result FROM t1;
DROP TABLE t1; DROP TABLE t1;
--echo # --echo #
@ -2767,6 +2768,8 @@ FROM t1
GROUP BY nullif(id, 15532); GROUP BY nullif(id, 15532);
drop table t1; drop table t1;
#Dublicate warnings
--disable_view_protocol
CREATE TABLE t1 ( a char(25), b text); CREATE TABLE t1 ( a char(25), b text);
INSERT INTO t1 VALUES ('foo','bar'); INSERT INTO t1 VALUES ('foo','bar');
@ -2778,6 +2781,7 @@ GROUP BY
LEFT((SYSDATE()), 'foo') LEFT((SYSDATE()), 'foo')
WITH ROLLUP; WITH ROLLUP;
drop table t1; drop table t1;
--enable_view_protocol
--echo # --echo #
--echo # --echo #

View File

@ -32,9 +32,9 @@ insert into t1 values
(125 , 6, 1, NULL), (125 , 6, 1, NULL),
(126 , 6, 1, NULL), (126 , 6, 1, NULL),
(127 , 6, 1, NULL); (127 , 6, 1, NULL);
select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as avg
from t1; from t1;
pk a b avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) pk a b avg
101 0 10 10.0000 101 0 10 10.0000
102 0 10 10.0000 102 0 10 10.0000
103 1 10 10.0000 103 1 10 10.0000
@ -62,9 +62,9 @@ pk a b avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FO
125 6 1 1.0000 125 6 1 1.0000
126 6 1 1.0000 126 6 1 1.0000
127 6 1 1.0000 127 6 1 1.0000
select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as avg
from t1; from t1;
pk a c avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) pk a c avg
101 0 1.1 1.6 101 0 1.1 1.6
102 0 2.1 1.6 102 0 2.1 1.6
103 1 3.1 3.5999999999999996 103 1 3.1 3.5999999999999996

View File

@ -35,14 +35,11 @@ insert into t1 values
(126 , 6, 1, NULL), (126 , 6, 1, NULL),
(127 , 6, 1, NULL); (127 , 6, 1, NULL);
#enable after fix MDEV-27871
--disable_view_protocol
--sorted_result --sorted_result
select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as avg
from t1; from t1;
--sorted_result --sorted_result
select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as avg
from t1; from t1;
--enable_view_protocol
drop table t1; drop table t1;

View File

@ -19,10 +19,10 @@ sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES NO PASSES SORT_MERGE_PASSES NO PASSES
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -32,10 +32,10 @@ sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES WITH PASSES SORT_MERGE_PASSES WITH PASSES
include/diff_tables.inc [t21, t22] include/diff_tables.inc [t21, t22]
drop table t21, t22; drop table t21, t22;
@ -51,10 +51,10 @@ sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES NO PASSES SORT_MERGE_PASSES NO PASSES
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -66,10 +66,10 @@ sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES WITH PASSES SORT_MERGE_PASSES WITH PASSES
include/diff_tables.inc [t21, t22] include/diff_tables.inc [t21, t22]
drop table t21, t22; drop table t21, t22;
@ -85,10 +85,10 @@ sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES NO PASSES SORT_MERGE_PASSES NO PASSES
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -99,10 +99,10 @@ sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_
from from
t10; t10;
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end variable_name result
SORT_MERGE_PASSES WITH PASSES SORT_MERGE_PASSES WITH PASSES
include/diff_tables.inc [t21, t22] include/diff_tables.inc [t21, t22]
drop table t21, t22; drop table t21, t22;

View File

@ -28,13 +28,10 @@ select
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -43,13 +40,10 @@ select
sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B sum(b) over (order by a rows between 2 preceding and 2 following) as SUM_B
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
let $diff_tables= t21, t22; let $diff_tables= t21, t22;
source include/diff_tables.inc; source include/diff_tables.inc;
@ -66,13 +60,10 @@ select
sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3 sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -83,13 +74,10 @@ select
sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3 sum(b) over (order by a rows between 20 preceding and 20 following) as SUM_B3
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
let $diff_tables= t21, t22; let $diff_tables= t21, t22;
source include/diff_tables.inc; source include/diff_tables.inc;
@ -106,13 +94,10 @@ select
sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1 sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
set sort_buffer_size=1024; set sort_buffer_size=1024;
flush status; flush status;
@ -122,13 +107,10 @@ select
sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1 sum(b) over (order by a range between 5000 preceding and 5000 following) as SUM_B1
from from
t10; t10;
#enable after fix MDEV-27871
--disable_view_protocol
select variable_name, select variable_name,
case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end as result
from information_schema.session_status from information_schema.session_status
where variable_name like 'Sort_merge_passes'; where variable_name like 'Sort_merge_passes';
--enable_view_protocol
let $diff_tables= t21, t22; let $diff_tables= t21, t22;
source include/diff_tables.inc; source include/diff_tables.inc;

View File

@ -75,9 +75,9 @@ pk a nth_value(pk, pk) over (partition by a order by pk) nth_value(pk, a + 1) ov
11 2 NULL 9 11 2 NULL 9
select pk, select pk,
a, a,
nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) as nth
from t1; from t1;
pk a nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) pk a nth
1 0 1 1 0 1
2 0 1 2 0 1
3 0 2 3 0 2
@ -91,21 +91,21 @@ pk a nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding
11 2 10 11 2 10
select pk, select pk,
a, a,
nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth1,
nth_value(a, 2) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 2) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth2,
nth_value(a, 3) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 3) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth3,
nth_value(a, 4) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 4) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth4,
nth_value(a, 5) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 5) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth5,
nth_value(a, 6) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 6) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth6,
nth_value(a, 7) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 7) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth7,
nth_value(a, 8) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 8) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth8,
nth_value(a, 9) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 9) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth9,
nth_value(a, 10) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 10) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth10,
nth_value(a, 11) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 11) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth11,
nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth12
from t1 from t1
order by pk asc; order by pk asc;
pk a nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 2) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 3) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 4) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 5) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 6) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 7) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 8) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 9) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 10) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 11) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) pk a nth1 nth2 nth3 nth4 nth5 nth6 nth7 nth8 nth9 nth10 nth11 nth12
1 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL 1 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL
2 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL 2 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL
3 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL 3 0 0 0 0 1 1 1 NULL NULL NULL NULL NULL NULL

View File

@ -42,32 +42,26 @@ select pk,
from t1 from t1
order by pk asc; order by pk asc;
#enable after fix MDEV-27871
--disable_view_protocol
select pk, select pk,
a, a,
nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) nth_value(pk, 1) over (partition by a order by pk ROWS between 1 preceding and 1 following) as nth
from t1; from t1;
--enable_view_protocol
#enable after fix MDEV-28535
--disable_view_protocol
select pk, select pk,
a, a,
nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 1) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth1,
nth_value(a, 2) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 2) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth2,
nth_value(a, 3) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 3) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth3,
nth_value(a, 4) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 4) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth4,
nth_value(a, 5) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 5) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth5,
nth_value(a, 6) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 6) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth6,
nth_value(a, 7) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 7) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth7,
nth_value(a, 8) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 8) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth8,
nth_value(a, 9) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 9) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth9,
nth_value(a, 10) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 10) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth10,
nth_value(a, 11) over (order by a RANGE BETWEEN 1 preceding and 1 following), nth_value(a, 11) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth11,
nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) nth_value(a, 12) over (order by a RANGE BETWEEN 1 preceding and 1 following) as nth12
from t1 from t1
order by pk asc; order by pk asc;
--enable_view_protocol
drop table t1; drop table t1;

View File

@ -396,9 +396,9 @@ select t1.a from t1 where pk = 13;
a a
1 1
select pk, a, b, select pk, a, b,
ntile((select a from t1 where pk=13)) over (partition by b order by pk) ntile((select a from t1 where pk=13)) over (partition by b order by pk) as ntile
from t1; from t1;
pk a b ntile((select a from t1 where pk=13)) over (partition by b order by pk) pk a b ntile
11 0 10 1 11 0 10 1
12 0 10 1 12 0 10 1
13 1 10 1 13 1 10 1
@ -411,7 +411,7 @@ pk a b ntile((select a from t1 where pk=13)) over (partition by b order by pk)
20 4 20 1 20 4 20 1
explain explain
select pk, a, b, select pk, a, b,
ntile((select a from t1 where pk=13)) over (partition by b order by pk) ntile((select a from t1 where pk=13)) over (partition by b order by pk) as ntile
from t1; from t1;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using temporary 1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using temporary

Some files were not shown because too many files have changed in this diff Show More