mirror of
https://github.com/MariaDB/server.git
synced 2026-04-25 09:45:31 +02:00
MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11.
Space for the next operation wasn't reserved in
Item_func_spatial_relate::val_str()
This commit is contained in:
parent
a659291e85
commit
ea4e8bab32
3 changed files with 46 additions and 2 deletions
|
|
@ -486,6 +486,25 @@ ST_Touches(ST_PolygonFromText('POLYGON((0 0,0 5,5 5,5 0,0 0))'),ST_PointFromText
|
|||
select ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)'));
|
||||
ST_Touches(ST_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)'))
|
||||
0
|
||||
SELECT ST_RELATE(
|
||||
ST_DIFFERENCE(
|
||||
GEOMETRYFROMTEXT('
|
||||
MULTILINESTRING(
|
||||
( 12841 36140, 8005 31007, 26555 31075, 52765 41191,
|
||||
28978 6548, 45720 32057, 53345 3221 ),
|
||||
( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ),
|
||||
( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ),
|
||||
( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ),
|
||||
( 35944 64702, 14433 23728, 49317 26241, 790 16941 )
|
||||
)
|
||||
'),
|
||||
GEOMETRYFROMTEXT('POINT(46061 13545)')
|
||||
),
|
||||
GEOMETRYFROMTEXT('POINT(4599 60359)'),
|
||||
'F*FFFF**F'
|
||||
) as relate_res;
|
||||
relate_res
|
||||
0
|
||||
DROP TABLE IF EXISTS p1;
|
||||
CREATE PROCEDURE p1(dist DOUBLE, geom TEXT)
|
||||
BEGIN
|
||||
|
|
|
|||
|
|
@ -362,5 +362,24 @@ select ST_Touches(ST_LineFromText('LINESTRING(0 0,5 5)'),ST_PointFromText('POINT
|
|||
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_PointFromText('POINT(0 0)'),ST_PointFromText('POINT(0 0)'));
|
||||
|
||||
# MDEV-12705 10.1.18-MariaDB-1~jessie - mysqld got signal 11.
|
||||
SELECT ST_RELATE(
|
||||
ST_DIFFERENCE(
|
||||
GEOMETRYFROMTEXT('
|
||||
MULTILINESTRING(
|
||||
( 12841 36140, 8005 31007, 26555 31075, 52765 41191,
|
||||
28978 6548, 45720 32057, 53345 3221 ),
|
||||
( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ),
|
||||
( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ),
|
||||
( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ),
|
||||
( 35944 64702, 14433 23728, 49317 26241, 790 16941 )
|
||||
)
|
||||
'),
|
||||
GEOMETRYFROMTEXT('POINT(46061 13545)')
|
||||
),
|
||||
GEOMETRYFROMTEXT('POINT(4599 60359)'),
|
||||
'F*FFFF**F'
|
||||
) as relate_res;
|
||||
|
||||
--source include/gis_debug.inc
|
||||
|
||||
|
|
|
|||
|
|
@ -1332,6 +1332,8 @@ static int setup_relate_func(Geometry *g1, Geometry *g2,
|
|||
}
|
||||
else
|
||||
func->repeat_expression(shape_a);
|
||||
if (func->reserve_op_buffer(1))
|
||||
return 1;
|
||||
func->add_operation(op_matrix(nc%3), 1);
|
||||
if (do_store_shapes)
|
||||
{
|
||||
|
|
@ -1502,11 +1504,13 @@ longlong Item_func_spatial_precise_rel::val_int()
|
|||
Gcalc_function::op_intersection, 2);
|
||||
func.add_operation(Gcalc_function::op_internals, 1);
|
||||
shape_a= func.get_next_expression_pos();
|
||||
if ((null_value= g1.store_shapes(&trn)))
|
||||
if ((null_value= g1.store_shapes(&trn)) ||
|
||||
func.reserve_op_buffer(1))
|
||||
break;
|
||||
func.add_operation(Gcalc_function::op_internals, 1);
|
||||
shape_b= func.get_next_expression_pos();
|
||||
if ((null_value= g2.store_shapes(&trn)))
|
||||
if ((null_value= g2.store_shapes(&trn)) ||
|
||||
func.reserve_op_buffer(1))
|
||||
break;
|
||||
func.add_operation(Gcalc_function::v_find_t |
|
||||
Gcalc_function::op_intersection, 2);
|
||||
|
|
@ -1741,6 +1745,8 @@ int Item_func_buffer::Transporter::single_point(double x, double y)
|
|||
{
|
||||
if (buffer_op == Gcalc_function::op_difference)
|
||||
{
|
||||
if (m_fn->reserve_op_buffer(1))
|
||||
return 1;
|
||||
m_fn->add_operation(Gcalc_function::op_false, 0);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue