#409 closed defect (fixed)
ST_AsSVG - degraded
| Reported by: | sdikiy | Owned by: | colivier |
|---|---|---|---|
| Priority: | critical | Milestone: | PostGIS 1.4.2 |
| Component: | postgis | Version: | 1.4.X |
| Keywords: | AsSVG | Cc: |
Description
(1)
SELECT PostGIS_Full_Version();
"POSTGIS="1.1.6" GEOS="2.2.3-CAPI-1.1.1" PROJ="Rel. 4.5.0, 22 Oct 2006" USE_STATS"
select AsText(Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry));
"GEOMETRYCOLLECTION EMPTY"
select AsSVG(Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry));
""
(2)
SELECT PostGIS_Full_Version();
"POSTGIS="1.4.0" GEOS="3.1.1-CAPI-1.6.0" PROJ="Rel. 4.6.1, 21 August 2008" USE_STATS"
select ST_AsText(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry));
"GEOMETRYCOLLECTION EMPTY"
select ST_AsSVG(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry));
ERROR: invalid memory alloc request size 4294967294
Error
ERROR: invalid memory alloc request size 4294967294
SQL state: XX000
Change History (8)
comment:1 by , 15 years ago
| Owner: | changed from to |
|---|
comment:2 by , 15 years ago
Paul,
Could you try this patch on your version ?
On my box it's fix this issue, but i did't have the same error message than yours (i don't get why you have a such high memory allocation)
Index: postgis/lwgeom_svg.c
===================================================================
--- postgis/lwgeom_svg.c (revision 5208)
+++ postgis/lwgeom_svg.c (working copy)
@@ -475,6 +475,8 @@
if ( i ) /* We have some geometries, so add space for delimiters. */
size += sizeof(";") * --i;
+ if (size == 0) size++; /* EMPTY GEOMETRYCOLLECTION */
+
return size;
}
@@ -486,6 +488,9 @@
LWGEOM_INSPECTED *subinsp;
uchar *subgeom;
+ /* EMPTY GEOMETRYCOLLECTION */
+ if (insp->ngeometries == 0) *ptr = '\0';
+
for (i=0; i<insp->ngeometries; i++)
{
if (i) ptr += sprintf(ptr, ";");
Both 1.4 and trunk are impacted
follow-up: 4 comment:3 by , 15 years ago
Friday evening side effect, i thought Paul was the initial reporter..
I just commit the fix, and related unit test in branches 1.4, 1.5 and trunk.
sdikiy is it possible for you to check with the latest 1.4 SVN branch ?
svn co http://svn.osgeo.org/postgis/branches/1.4/ postgis-1.4 cd postgis-1.4 sh autogen.sh ./configure && make export PGUSER=postgres && make check
comment:4 by , 15 years ago
Replying to colivier:
sdikiy is it possible for you to check with the latest 1.4 SVN branch ?
sorry, i have installed only windows Postrges PostGIS
comment:5 by , 15 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Ok i close the ticket in this case
Tks for the report sdikiy !
follow-up: 8 comment:6 by , 15 years ago
Sdikiy,
As Olivier, noted. Please give the windows experimental 1.4.2SVN a try. It should have this fix in it.
http://www.postgis.org/download/windows/experimental.php
You should be able to do fine by just replacing your lib/postgis-1.4.dll with the one packaged in the zip file. Back up your original postgis-1.4.dll beforehand.
comment:7 by , 15 years ago
| Milestone: | → PostGIS 1.4.2 |
|---|

select ST_AsSVG(ST_Intersection('POINT(0 0)'::geometry, 'LINESTRING ( 2 0,0 2 )'::geometry));
On POSTGIS="1.5.0SVN" GEOS="3.1.0-CAPI-1.5.0" PROJ="Rel. 4.6.1, 21 August 2008" LIBXML="2.7.3" USE_STATS
Other ST_As* function work well on same geometry