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

Merge branch '10.6' into 10.11

This commit is contained in:
Oleksandr Byelkin
2024-07-04 11:52:07 +02:00
187 changed files with 4678 additions and 4362 deletions

View File

@ -1293,11 +1293,9 @@ INSERT INTO t1 (s1) VALUES
(_ucs2 0x101C1000103A10181000103A),
(_ucs2 0x101C103910181000103A /* tea */);
# enable view-protocol after fix MDEV-27871
--disable_view_protocol
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
--disable_service_connection
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
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';
--echo #
@ -464,6 +460,7 @@ show create table t1;
drop table t1;
--disable_ps2_protocol
--disable_view_protocol
# Ensure that row_count() value is reset after drop table.
select 1;
select hex(concat(row_count()));
@ -475,6 +472,7 @@ select hex(concat(found_rows()));
create table t1 as select concat(found_rows()) as c1;
show create table t1;
drop table t1;
--enable_view_protocol
--enable_ps2_protocol
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;
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;
show create 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;
show create 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;
show create 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;
show create 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;
show create 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;
show create 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;
show create 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;
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;
show create 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;
show create 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;
show create 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;
show create 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;
show create 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;
show create 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;
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;
show create table t1;
drop table t1;
@ -894,12 +892,12 @@ create table t1 as select concat(from_unixtime(1111885200)) as c1;
show create 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;
show create 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;
show create table t1;
select * from t1;
@ -1646,9 +1644,11 @@ INSERT INTO t1 VALUES (1234567);
SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1;
SELECT GROUP_CONCAT(IF(a,a,'')) FROM t1;
SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1;
--disable_view_protocol
--enable_metadata
SELECT COALESCE(a,'') FROM t1 GROUP BY 1;
--disable_metadata
--enable_view_protocol
--echo # All columns must be VARCHAR(9) with the same length:
--disable_warnings
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;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--enable_metadata
# PS protocol gives different "Max length" value for DATETIME.
--disable_ps_protocol
--disable_view_protocol
--enable_metadata
SELECT
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(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;
--disable_metadata
--enable_view_protocol
--enable_ps_protocol
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,

View File

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

View File

@ -3,10 +3,7 @@
--echo #
SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
# enable view-protocol after fix MDEV-27871
--disable_view_protocol
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
--enable_view_protocol
SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) as exp;
CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
SHOW COLUMNS FROM t1;
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 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
--disable_warnings
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('LO','hello' collate utf8mb4_bin,2);
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2);
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2);
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2);
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin);
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin);
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2) as exp;
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2) as exp;
select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2) as exp;
select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin) as exp;
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' 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
# characters in case insensitive manner.
# Case insensitive search LIKE comparison
# was broken for multibyte characters:
select convert(_latin1'G<>nter Andr<64>' using utf8mb4) like CONVERT(_latin1'G<>NTER%' USING utf8mb4);
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);
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) as exp;
select CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) LIKE CONVERT(_koi8r'<27><><EFBFBD><EFBFBD>' USING utf8mb4) as exp;
#
# Check the following:
@ -666,6 +661,7 @@ DROP TABLE t1;
#
# Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table
#
--disable_service_connection
SET NAMES latin1;
eval CREATE TABLE t1 (
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");
DROP TABLE t1;
}
--enable_service_connection
#
# 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
#
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB);
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB));
select soundex(_utf8mb4 0xD091D092D093);
select hex(soundex(_utf8mb4 0xD091D092D093));
select soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB) as exp;
select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)) as exp;
select soundex(_utf8mb4 0xD091D092D093) as exp;
select hex(soundex(_utf8mb4 0xD091D092D093)) as exp;
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
#
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
@ -1191,6 +1188,7 @@ DROP TABLE t1;
# (see bug #16674 as well)
#
--disable_service_connection
SET NAMES latin2;
if (!$is_heap)
@ -1220,6 +1218,7 @@ SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN
DROP TABLE t1;
}
--enable_service_connection
#
# 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;
insert into t1 values ('a',1);
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
select concat(a, if(b>10, N'æ', N'ß')) from t1;
--enable_view_protocol
drop table t1;
# Conversion tests for character set introducers

View File

@ -1,17 +1,15 @@
SET SESSION character_set_connection=latin2;
SET SESSION character_set_client=cp1250;
--disable_service_connection
--echo #
--echo # Test litteral
--echo #
#enable view protocol after fix MDEV-27871 and
# it is necessary that the view protocol uses the same connection,
# not util connection
# For "--view-protocol" NULLIF('','') converts to nullif(NULL,NULL)
# in view definition and CHARSET(nullif(NULL,NULL)) returns 'binary'.
# Also view does not allow columns with the same name,
# so it uses generated names
--disable_view_protocol
SET sql_mode=@mode;
select @@sql_mode;
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('','');
--echo #
--echo # Test NCHAR litteral
--echo #
@ -33,7 +30,6 @@ SELECT N'',CHARSET(N''), N'x', CHARSET(N'x');
SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N'');
--echo #
--echo # Test CHARSET prefix litteral
--echo #
@ -63,12 +59,12 @@ SELECT '' '' '';
SELECT '' '' '',CHARSET('' '' '');
SELECT _latin1'' '' '',CHARSET(_latin1'' '' '');
SELECT N'' '' '',CHARSET(N'' '' '');
--enable_view_protocol
--echo #
--echo # UNION - implicit group by
--echo #
--disable_service_connection
SELECT 1, null
UNION
SELECT 1 , ''
@ -84,16 +80,10 @@ UNION
SELECT 1 , _cp1250 ''
ORDER BY 1;
# it is necessary that the view protocol uses the same connection,
# not util connection
--disable_view_protocol
SELECT NULLIF(_cp1250 '',_cp1250 '')
UNION
SELECT NULLIF(N'',N'');
--enable_view_protocol
--error ER_CANT_AGGREGATE_2COLLATIONS
SELECT 1 , _latin2 ''
UNION
@ -131,5 +121,4 @@ EXPLAIN EXTENDED SELECT '';
EXPLAIN EXTENDED SELECT _latin1'';
EXPLAIN EXTENDED SELECT N'';
EXPLAIN EXTENDED SELECT '' '';
--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 after fix MDEV-27871
--disable_view_protocol
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)'));
GeomFromText('POINT(5 10)')) as geom;
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('POINT(5 10)')));
GeomFromText('POINT(5 10)'))) as geom;
DROP PROCEDURE p1;
--echo #
--echo # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE
--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 # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL
--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 # 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)'),'');
#enable after fix MDEV-27871
--disable_view_protocol
SELECT ST_WITHIN(
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_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)) '),
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(
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))'),
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
# enable view-protocol after fix MDEV-27871
--disable_view_protocol
drop table t4;
create table t4 (a int);
insert into t4 values (1),(4),(3);
set @save_join_buffer_size=@@join_buffer_size;
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)
where (A.key1 < 500000 or A.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)
where (A.key1 < 500000 or A.key2 < 3)
and (B.key1 < 500000 or B.key2 < 3);
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)
where (A.key1 = 1 or A.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)
where (A.key1 = 1 or A.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)
--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?"
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
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);
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
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);
@ -353,8 +350,6 @@ set join_buffer_size= @save_join_buffer_size;
drop table t0, t1, t2, t3, t4;
--enable_view_protocol
# BUG#16166
CREATE TABLE t1 (
cola char(3) not null, colb char(3) not null, filler char(200),