[postgis-users] Postgis Lean
David Blasby
dblasby at refractions.net
Wed Dec 17 15:28:10 PST 2003
Ralph Mason wrote:
> It would also shrink an index by some
> as well.
No - the index size will be the same. The index is actually based on a
2D bounding box and link to the actual geometry. The index size is
directly proportial to the number of geometries being indexed, not on
the size of the geometry.
Apart from that, you're right, you could save most of those bytes.
Unfortunately, it would actually be a lot of work to change all the
postgis functions to understand what you're doing.
As an easier alternative, you could create a new type based on WKB.
Internal storage would be like:
<xmin (double)>
<xmax (double)>
<ymin (double)>
<ymax (double)>
<SRID> (optional)
<WKB>
This is enough information to allow it to be indexed. If you look at
the postgis GiST indexing code, you'll see its fairly abstract - all you
really need to do is convert your geometry into a BOX. That information
is at the top of my example geometry above.
Since postgis already has PostGIS->WKB and WKB->PostGIS, you can easily
create a conversion function from postgis-> new geometry type and back.
You'll be able to do things like:
SELECT length(my_new_geometry_column) FROM table;
and postgresql will automatically convert your new geometry to a postgis
geometry and returns its length. This is slow, but you get all the
postgis functionality for free.
dave
More information about the postgis-users
mailing list