[postgis-devel] pg_opclass and schema awareness

strk at refractions.net strk at refractions.net
Tue Apr 19 09:22:32 PDT 2005


Mark, I don't have time for testing this now, but I would
suggest a more general approach to this.
For example --with-schema=schemaname ?

How about spatial_ref_sys and geometry_columns ?
Should the be shared ? One of them ? None ?

--strk;

On Tue, Apr 19, 2005 at 04:46:14PM +0200, Markus Schaber wrote:
> Hi,
> 
> I just wanted to bring this issue up onto the table, as it was held back
> due to the 1.0.0 freeze. (see below)
> 
> Is this change the correct fix? Should I commit it, or is it better to
> fix all schema issues at once?
> 
> Maybe it would simply be the best to tell our users not to install
> different PostGIS versions into different schemas of the same database.
> 
> Markus
> 
> Markus Schaber schrieb:
> > Hi, strk,
> > 
> > strk at refractions.net schrieb:
> > 
> > 
> >>>It should be possible having different directories, as postgresql uses
> >>>full qualified file names. But I have to admit that you cannot simply
> >>>use "make install" unmodified.
> >>
> >>Since you pointed out... actually you can ;)
> >>LPATH=/usr/src/postgis-modified make 
> > 
> > 
> > Okay - I used a search/replace on lwpostgis.sql :-)
> > 
> > Here's the proof - two different compilations of the same postgis
> > version in two different schemas in the same database:
> > 
> > multipostgis=# select
> > schabi.postgis_lib_build_date(),schabi.postgis_version(),postgres.postgis_lib_build_date(),postgres.postgis_version();
> >  postgis_lib_build_date |            postgis_version            |
> > postgis_lib_build_date |            postgis_version
> > ------------------------+---------------------------------------+------------------------+---------------------------------------
> >  2005-03-01 17:19:32    | 1.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 |
> > 2005-03-01 17:22:27    | 1.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
> > (1 Zeile)
> > 
> > But, besides the library path, I also needed to comment out the lines
> > 640-642 of lwpostgis.sql because the subselect returned more than one row.
> > 
> > UPDATE pg_opclass
> >       SET opckeytype = (select oid from pg_type where typname = 'box2d')
> >       WHERE opcname = 'gist_geometry_ops';
> > 
> > I'm afraid that this could break the GIST indices for schema users, we
> > should constrain the subselect to current_schema(). The following should
> > do this:
> > 
> > 
> > UPDATE pg_opclass
> >     SET opckeytype = (SELECT oid FROM pg_type
> >                       WHERE typname = 'box2d'
> >                       AND typnamespace=(SELECT oid FROM pg_namespace
> >                                         WHERE nspname=current_schema()))
> >     WHERE opcname = 'gist_geometry_ops'
> >     AND opcnamespace = (SELECT oid from pg_namespace
> >                         WHERE nspname=current_schema());
> > 
> > Strk, could you verify this?
> > 
> > Markus
> 
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-devel



More information about the postgis-devel mailing list