MDEV-35062 Assertion failed in Binary_string::q_append
Reserve sufficient space in the result for q_append'ed data, as q_append does not itself reserve space like it's append counterpart.
This commit is contained in:
parent
dc9b43a71e
commit
8c2a207d58
@ -134,3 +134,6 @@ SELECT ST_ASTEXT(ST_VALIDATE( ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0
|
|||||||
should_be_null;
|
should_be_null;
|
||||||
should_be_null
|
should_be_null
|
||||||
NULL
|
NULL
|
||||||
|
SELECT ST_ASTEXT(ST_VALIDATE(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION( POLYGON( ( 5 2, 4 3, 9 8, 2 9, 1 6, 3 1, 3 1, 5 2 ) ), LINESTRING( 8 5, 0 3, 4 9, 1 8, 0 8, 5 2 ), POINT( 7 7 ), LINESTRING( 0 1, 1 6, 7 2, 3 4 ), LINESTRING( 5 2, 9 9, 4 4, 7 5, 4 6 ) ) '))) a;
|
||||||
|
a
|
||||||
|
GEOMETRYCOLLECTION(POLYGON((5 2,4 3,9 8,2 9,1 6,3 1,3 1,5 2)),LINESTRING(8 5,0 3,4 9,1 8,0 8,5 2),POINT(7 7),LINESTRING(0 1,1 6,7 2,3 4),LINESTRING(5 2,9 9,4 4,7 5,4 6))
|
||||||
|
@ -99,3 +99,5 @@ should_be_null;
|
|||||||
SELECT ST_ASTEXT(ST_VALIDATE( ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0
|
SELECT ST_ASTEXT(ST_VALIDATE( ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0
|
||||||
0),( 0.25 0.25, 1.75 0.25, 0.75 0.75, 0.25 0.75, 0.25 0.25))',4326))) AS
|
0),( 0.25 0.25, 1.75 0.25, 0.75 0.75, 0.25 0.75, 0.25 0.25))',4326))) AS
|
||||||
should_be_null;
|
should_be_null;
|
||||||
|
|
||||||
|
SELECT ST_ASTEXT(ST_VALIDATE(ST_GEOMCOLLFROMTEXT(' GEOMETRYCOLLECTION( POLYGON( ( 5 2, 4 3, 9 8, 2 9, 1 6, 3 1, 3 1, 5 2 ) ), LINESTRING( 8 5, 0 3, 4 9, 1 8, 0 8, 5 2 ), POINT( 7 7 ), LINESTRING( 0 1, 1 6, 7 2, 3 4 ), LINESTRING( 5 2, 9 9, 4 4, 7 5, 4 6 ) ) '))) a;
|
||||||
|
@ -4604,6 +4604,7 @@ int Gis_geometry_collection::make_clockwise(String *result) const
|
|||||||
!(geometry= Geometry::construct(&buffer, wkb.ptr(), wkb.length())))
|
!(geometry= Geometry::construct(&buffer, wkb.ptr(), wkb.length())))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
result->reserve(sizeof(char) + sizeof(uint32));
|
||||||
result->q_append((char) wkb_ndr);
|
result->q_append((char) wkb_ndr);
|
||||||
result->q_append((uint32) geometry->get_class_info()->m_type_id);
|
result->q_append((uint32) geometry->get_class_info()->m_type_id);
|
||||||
if (geometry->get_class_info()->m_type_id == Geometry::wkb_polygon ||
|
if (geometry->get_class_info()->m_type_id == Geometry::wkb_polygon ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user