3 Aug 2012 12:06
Incorrect row count estimation for 4D index
Oleg Mürk <oleg.myrk <at> gmail.com>
2012-08-03 10:06:58 GMT
2012-08-03 10:06:58 GMT
Hello,
I have a problem that Postgis 4D spatial indexes (built using
gist_geometry_ops_nd) do not estimate index lookup row count properly,
unlike 2D spatial indexes which are working OK.
The 2D query is something like:
position && ST_GeomFromText('LINESTRING(-180 -90, 180 90)', 4326)
And 4D query is something like:
position &&& ST_GeomFromText('LINESTRING(-180 -90 -10000000
-10000000, 180 90 -10000000 -10000000)', 4326)
In case of 2D query, query planner correctly understands that I am
selecting all points and avoids using the index.
In case of 4D, the result set is always estimated to be 10000 (out of
10M rows in total).
As a result of incorrect 4D query row estimation, query planner always
thinks that spatial query is highly selective and ignores other
indexes it might have used otherwise.
Is this a bug or am I missing something? I am using Postgis 2.0.1 on
Postgresql 9.1
Thanks,
Oleg
RSS Feed