mirror of
https://github.com/MariaDB/server.git
synced 2025-08-11 09:43:05 +03:00
Merge branch '5.5' into bb-5.5-serg
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
||||||
|
DROP VIEW IF EXISTS v1;
|
||||||
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
||||||
CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
|
CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
|
||||||
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
|
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
|
||||||
@@ -489,7 +490,7 @@ explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimpl
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select st_issimple(st_multipoint(st_point(3,6),st_point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(st_point(3,6)) AS `issimple(Point(3, 6))`
|
Note 1003 select st_issimple(st_multipoint(point(3,6),point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(point(3,6)) AS `issimple(Point(3, 6))`
|
||||||
create table t1 (a geometry not null);
|
create table t1 (a geometry not null);
|
||||||
insert into t1 values (GeomFromText('Point(1 2)'));
|
insert into t1 values (GeomFromText('Point(1 2)'));
|
||||||
insert into t1 values ('Garbage');
|
insert into t1 values ('Garbage');
|
||||||
@@ -1610,4 +1611,11 @@ drop table t1;
|
|||||||
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
||||||
st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100))
|
st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100))
|
||||||
GEOMETRYCOLLECTION EMPTY
|
GEOMETRYCOLLECTION EMPTY
|
||||||
End of 5.5 tests
|
CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
|
||||||
|
SHOW CREATE VIEW v1;
|
||||||
|
View Create View character_set_client collation_connection
|
||||||
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select point(1,1) AS `p` latin1 latin1_swedish_ci
|
||||||
|
SELECT ASTEXT(p) FROM v1;
|
||||||
|
ASTEXT(p)
|
||||||
|
POINT(1 1)
|
||||||
|
DROP VIEW v1;
|
||||||
|
11
mysql-test/r/uniques_crash-7912.result
Normal file
11
mysql-test/r/uniques_crash-7912.result
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
call mtr.add_suppression("Out of memory");
|
||||||
|
set sql_mode="";
|
||||||
|
drop table if exists t1,t2;
|
||||||
|
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||||
|
create table `t2` (`a` int not null) engine=innodb;
|
||||||
|
replace into t1 values (),();
|
||||||
|
insert into t2 values(0);
|
||||||
|
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||||
|
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||||
|
drop table t2;
|
||||||
|
drop table t1;
|
@@ -1 +0,0 @@
|
|||||||
1
|
|
@@ -1,23 +0,0 @@
|
|||||||
-- source include/have_innodb.inc
|
|
||||||
|
|
||||||
# MDEV-7055: MySQL#74664 - InnoDB: Failing assertion: len <= col->len
|
|
||||||
# || col->mtype == 5 || (col->len == 0 && col->mtype == 1) in
|
|
||||||
# file rem0rec.cc line 845
|
|
||||||
--disable_query_log
|
|
||||||
--disable_warnings
|
|
||||||
--disable_result_log
|
|
||||||
set @old_character_set=@@character_set_connection;
|
|
||||||
set character_set_connection=ucs2;
|
|
||||||
create TABLE t1 engine=innodb select if(0=0,'Y','N');
|
|
||||||
insert INTO t1 values(date_format('2001-01-01','%W'));
|
|
||||||
select * from t1;
|
|
||||||
drop table t1;
|
|
||||||
set @@character_set_connection=@old_character_set;
|
|
||||||
--enable_result_log
|
|
||||||
--enable_warnings
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
#produce something
|
|
||||||
--echo 1
|
|
||||||
|
|
||||||
|
|
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
||||||
|
DROP VIEW IF EXISTS v1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
||||||
@@ -1470,4 +1471,12 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
||||||
|
|
||||||
--echo End of 5.5 tests
|
#
|
||||||
|
# MDEV-7779 View definition changes upon creation
|
||||||
|
#
|
||||||
|
CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
|
||||||
|
SHOW CREATE VIEW v1;
|
||||||
|
SELECT ASTEXT(p) FROM v1;
|
||||||
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
# --echo End of 5.5 tests
|
||||||
|
26
mysql-test/t/uniques_crash-7912.test
Normal file
26
mysql-test/t/uniques_crash-7912.test
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# MDEV-7912
|
||||||
|
#
|
||||||
|
# multitable delete with wrongly set sort_buffer_size crashes in merge_buffers
|
||||||
|
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_debug.inc
|
||||||
|
--source include/windows.inc
|
||||||
|
|
||||||
|
call mtr.add_suppression("Out of memory");
|
||||||
|
|
||||||
|
set sql_mode="";
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1,t2;
|
||||||
|
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||||
|
create table `t2` (`a` int not null) engine=innodb;
|
||||||
|
replace into t1 values (),();
|
||||||
|
insert into t2 values(0);
|
||||||
|
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||||
|
#Either fail with EE_OUTOFMEMORY, or succeed
|
||||||
|
--error 0 , 5
|
||||||
|
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
drop table t2;
|
||||||
|
drop table t1;
|
@@ -116,7 +116,7 @@ class Item_func_point: public Item_geometry_func
|
|||||||
public:
|
public:
|
||||||
Item_func_point(Item *a, Item *b): Item_geometry_func(a, b) {}
|
Item_func_point(Item *a, Item *b): Item_geometry_func(a, b) {}
|
||||||
Item_func_point(Item *a, Item *b, Item *srid): Item_geometry_func(a, b, srid) {}
|
Item_func_point(Item *a, Item *b, Item *srid): Item_geometry_func(a, b, srid) {}
|
||||||
const char *func_name() const { return "st_point"; }
|
const char *func_name() const { return "point"; }
|
||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
Field::geometry_type get_geometry_type() const;
|
Field::geometry_type get_geometry_type() const;
|
||||||
};
|
};
|
||||||
|
@@ -607,8 +607,8 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
|
|||||||
return 1;
|
return 1;
|
||||||
if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
|
if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
|
||||||
return 1;
|
return 1;
|
||||||
ulong buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||||
if (!(merge_buffer= (uchar *) my_malloc((ulong) buff_sz, MYF(0))))
|
if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
|
||||||
return 1;
|
return 1;
|
||||||
if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
|
if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
|
||||||
res= merge(table, merge_buffer, buff_sz >= full_size * MERGEBUFF2) ;
|
res= merge(table, merge_buffer, buff_sz >= full_size * MERGEBUFF2) ;
|
||||||
@@ -737,9 +737,8 @@ bool Unique::get(TABLE *table)
|
|||||||
/* Not enough memory; Save the result to file && free memory used by tree */
|
/* Not enough memory; Save the result to file && free memory used by tree */
|
||||||
if (flush())
|
if (flush())
|
||||||
return 1;
|
return 1;
|
||||||
|
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||||
ulong buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME))))
|
||||||
if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(0))))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (merge(table, sort_buffer, FALSE))
|
if (merge(table, sort_buffer, FALSE))
|
||||||
|
@@ -830,7 +830,6 @@ rec_get_converted_size_comp_prefix_low(
|
|||||||
}
|
}
|
||||||
|
|
||||||
ut_ad(len <= col->len || col->mtype == DATA_BLOB
|
ut_ad(len <= col->len || col->mtype == DATA_BLOB
|
||||||
|| col->mtype == DATA_VARMYSQL
|
|
||||||
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
||||||
|
|
||||||
fixed_len = field->fixed_len;
|
fixed_len = field->fixed_len;
|
||||||
@@ -1258,8 +1257,7 @@ rec_convert_dtuple_to_rec_comp(
|
|||||||
*lens-- = (byte) len;
|
*lens-- = (byte) len;
|
||||||
} else {
|
} else {
|
||||||
ut_ad(len <= dtype_get_len(type)
|
ut_ad(len <= dtype_get_len(type)
|
||||||
|| dtype_get_mtype(type) == DATA_BLOB
|
|| dtype_get_mtype(type) == DATA_BLOB);
|
||||||
|| dtype_get_mtype(type) == DATA_VARMYSQL);
|
|
||||||
if (len < 128
|
if (len < 128
|
||||||
|| (dtype_get_len(type) < 256
|
|| (dtype_get_len(type) < 256
|
||||||
&& dtype_get_mtype(type) != DATA_BLOB)) {
|
&& dtype_get_mtype(type) != DATA_BLOB)) {
|
||||||
|
@@ -830,7 +830,6 @@ rec_get_converted_size_comp_prefix_low(
|
|||||||
}
|
}
|
||||||
|
|
||||||
ut_ad(len <= col->len || col->mtype == DATA_BLOB
|
ut_ad(len <= col->len || col->mtype == DATA_BLOB
|
||||||
|| col->mtype == DATA_VARMYSQL
|
|
||||||
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
||||||
|
|
||||||
fixed_len = field->fixed_len;
|
fixed_len = field->fixed_len;
|
||||||
@@ -1258,8 +1257,7 @@ rec_convert_dtuple_to_rec_comp(
|
|||||||
*lens-- = (byte) len;
|
*lens-- = (byte) len;
|
||||||
} else {
|
} else {
|
||||||
ut_ad(len <= dtype_get_len(type)
|
ut_ad(len <= dtype_get_len(type)
|
||||||
|| dtype_get_mtype(type) == DATA_BLOB
|
|| dtype_get_mtype(type) == DATA_BLOB);
|
||||||
|| dtype_get_mtype(type) == DATA_VARMYSQL);
|
|
||||||
if (len < 128
|
if (len < 128
|
||||||
|| (dtype_get_len(type) < 256
|
|| (dtype_get_len(type) < 256
|
||||||
&& dtype_get_mtype(type) != DATA_BLOB)) {
|
&& dtype_get_mtype(type) != DATA_BLOB)) {
|
||||||
|
Reference in New Issue
Block a user