Bug #31753 Buffer/area functions only return first row of set
| Submitted: | 22 Oct 2007 14:49 | Modified: | 25 Nov 2007 16:09 |
|---|---|---|---|
| Reporter: | John Powell | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: GIS | Severity: | S4 (Feature request) |
| Version: | Ver 8.42 distrib 5.1.20-beta | OS: | Linux |
| Assigned to: | Alexey Botchkov | CPU Architecture: | Any |
| Tags: | gis | ||
[24 Oct 2007 18:52]
Lenz Grimmer
For the reviewer: this report is based on a build from the mysql-5.1-wl1326 source tree. Please assign it to Holyfoot as we're currently working on improving the openGIS functionality (see http://forge.mysql.com/wiki/GIS_Functions for more info). Thanks!
[25 Nov 2007 16:09]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/38447 ChangeSet@1.2641, 2007-11-25 20:03:17+04:00, holyfoot@mysql.com +1 -0 Bug #31753 Buffer/area functions only return first row of set gcalc_result_receiver didn't clean itself properly with the ::reset call, so consequent calls of Buffer or Union functions can return garbage.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: The buffer function in conjunction with the area function only returns the first row of a set. The coordinates of any buffer after the first one look completely wrong, with only 3 points, all extremely close to 0; How to repeat: create table test(geom geometrycollection); insert into test(geomfromtext('POLYGON((0 0, 10 10, 0 8, 0 0))'); insert into test values(geomfromtext('POLYGON((1 1, 10 10, 0 8, 1 1))'); select astext(geom), area(geom),area(buffer(geom,2)) from test; +------------------------------+------------+----------------------+ | astext(geom) | area(geom) | area(buffer(geom,2)) | +------------------------------+------------+----------------------+ | POLYGON((0 0,10 10,0 8,0 0)) | 40 | 117.24167639592 | | POLYGON((1 1,10 10,0 8,1 1)) | 36 | 0 | +------------------------------+------------+----------------------+ 2 rows in set (0.00 sec) select astext(buffer(geom,1)); POLYGON((0 -1,-0.049067674327418 -0.99879545620517,-0.098017140329561 -0.9951847266722,-0.14673047445536 -0.98917650996478,-0.19509032201613 -0.98078528040323,-0.24298017990326 -0.97003125319454,-0.29028467725446 -0.95694033573221,-0.33688985339222 -0.94154406518302,-0.38268343236509 -0.92387953251129,-0.42755509343028 -0.90398929312344,-0.471396736826 -0.88192126434835,-0.51410274419322 -0.85772861000027,-0.555570......etc, etc)) |POLYGON((-1.0375421075331e-158 -8.8553075388322e+202,1.9119937773622e+42 7.3985888892284e+50,-1.0375421075331e-158 -8.8553075388322e+202))