[postgis-devel] automatic BVOL on spatial columns

strk at refractions.net strk at refractions.net
Wed Jan 12 00:36:05 PST 2005


On Tue, Jan 11, 2005 at 06:15:38PM +0100, Markus Schaber wrote:
> Hi, strk,
> 
> strk at refractions.net schrieb:
> >Well, so we can't currently transport bbox caches decisions between
> >dump/reloads.
> >
> >Is it still worth giving users the power of managing it ?
> >Or should we always decide transparently when to compute a bbox ?
> >
> >I think this is the last issue before an RC1 release.
> 
> As long as there is no additional overhead in maintaining, I think we
> can leave it as an compile-time option, but clearly marked as "use at
> your own risk" or so. But I won't shed a tear to get this option
> removed, as I think it should be handled transparently.

Ok. I've finished porting all function to the two entry points
for output (PG_LWGEOM) construction, so that all of them will
use the heuristic therein enforced.

As far as nobody will explicitly call dropBBOX() everything should
be ok (the bbox cache will be present for !POINT geoms).

When users start to use dropBBOX() the cache drop will usually
only last until next editor function is called, in which case
the cache will be re-enforced by this heuristic. This is not
true for some functions that will return the input untouched
without passing trouh deserializzation/serializzation. Namely:
	force_2d on a 2d input
	force_3dm on a 3dm input
	force_3dz on a 3dz input
	force_4d on a 4d input
	?? someone else ??

For consistency I could change these as well... (force_multi() already
forces reconstruction step).

Using a TAINING strategy (which is appealing) is not that simple, as
our default behavior is not simple as "always cache bbox". So - for
example - if we expand(point) we'll find ourself with an input which
does not have a bbox cache, but doesn't tell us nothing about user 
will (did he explicitly drop it or was it just due to the system default
heuristic?).

So, basically you'll use dropBBOX() only on tables you want to shrink in
size, and you'll be able to addBBOX() to reconstruct it. If you want
to set bbox caches using the system default heuristic you'll need to
call noop(geom).

Comments and questions welcome.

--strk;


> 
> Thanks,
> Markus
> 
> --
> markus schaber | dipl. informatiker
> logi-track ag | rennweg 14-16 | ch 8001 zürich
> phone +41-43-888 62 52 | fax +41-43-888 62 53
> mailto:schabios at logi-track.com | www.logi-track.com



-- 

For standing up against patentability of software,

  Thank You, Poland!

Read the intervention:    http://kwiki.ffii.org/ConsPolon041221En
Send your thanks:         thankyoupoland.info
Read/do more:		  http://www.noepatents.org/



More information about the postgis-devel mailing list