postgres 9.2.2 point conversion from polygon doesn't always give accurate center

From: Colin Dunklau <colin(dot)dunklau(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: postgres 9.2.2 point conversion from polygon doesn't always give accurate center
Date: 2013-02-01 17:54:08
Message-ID: CAMTx_3Aa-JYja-=yUqtRQ92DNLVrbmrFBEySPV2h1sMwZZaDJw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hello! I believe I've found a bug in the type conversion process from
polygon to point.

In the documentation found here
http://www.postgresql.org/docs/9.2/interactive/functions-geometry.html,

Table 9-32 claims that running the point() function on a polygon
returns the "center of polygon". This is not the case for some
polygons, as shown below.

I'm running postgres 9.2.2, on Mac 10.8. This is a fresh install of
Postgres.app from http://postgresapp.com/ :

frink:~ cdunklau$ psql
psql (9.2.2)
Type "help" for help.

For the below two queries, I expect to get a result of (0.5, 0.5).

cdunklau=# select point( polygon '((0,0),(0,1),(1,1),(0,1))');
point
-------------
(0.25,0.75)
(1 row)

cdunklau=# select point( polygon '((0,0),(1,0),(1,1),(1,0))');
point
-------------
(0.75,0.25)
(1 row)

The conversion does indeed work as expected for other polygons:

cdunklau=# select point( polygon '((-1,-1),(-1,1),(1,1),(1,-1))');
point
-------
(0,0)
(1 row)

Please let me know if you have problems reproducing this error, or if
I can assist in any way to isolate the problem. I had hoped to use the
type conversion to replace center-finding application logic, but it
appears I'll need to keep the application logic at least until this
bug is fixed.

Best regards,

Colin Dunklau

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2013-02-01 19:41:26 Re: BUG #7819: missing chunk number 0 for toast value 1235919 in pg_toast_35328
Previous Message morgan.huot 2013-02-01 15:49:22 BUG #7845: Error (0x00002747/10055) and Srv Error id: 2019