[postgis-devel] pg_opclass and schema awareness

strk at refractions.net strk at refractions.net
Wed Apr 20 04:56:42 PDT 2005


For Chris vision Markus patch is ok, as far as it consider
USE_VERSION before attempting to call current_schema().
I suggest Markus applies his patch with that modification
in the both HEAD and 1.0 branch.
--strk;

On Tue, Apr 19, 2005 at 12:58:06PM -0700, Chris Hodgson wrote:
> I disagree. I think it is important that we allow more than one postgis 
> version to be present on the same server.
> 
> Think of a different classroom (or more importantly, workplace) scenario 
> where everyone is working on their own database applications and they 
> happen to start working with postgis at different times and so are using 
> different versions. They shouldn't each be required to run on their own 
> database server, so that they can continue working with their version of 
> postgis - that is way too much work for the server admins. They also 
> should not be required to update their applications to work with the 
> newer version of postgis just because the server admin decides to update 
> the postgis on the shared server.
> 
> I think we should leave the choice of installation up to the user - to 
> install into a specific schema, or to do a shared installation onto the 
> entire database. In fact, the two should be able to co-exists 
> peacefully, ie. Everyone has access to the public version of postgis, 
> and anyone can install their own version of postgis within their own 
> schema, and so long as their search path is setup correctly this should 
> work fine.
> 
> No-one who is running multiple versions of postgis should expect to have 
> interoperability between them - so I wouldn't worry about the 
> incompatibilities between parsers, datatypes, etc.
> 
> Just my two bits...
> Chris
> 
> >I believe that it is critical that only one PostGIS  version be 
> >allowed on a server at a time.
> >Otherwise the potentially different WKT and WKB parsers could refuse 
> >to read each others output.  Also there is no implicit cast from the 
> >my.geometry type to the your.geometry type and potentially no valid 
> >cast between the two.
> >
> >
> >WRT spatial_ref_sys and geometry_columns.  I believe that it is 
> >helpful to find these
> >through the implicit object search path and not require them to be in 
> >any particular schema.
> >
> >That way it would not be necessary to grant potentially excessive 
> >permissions to the geometry_columns table.
> >
> >I am think about a classroom setting wherein each student is directed 
> >to work within
> >a schema carrying their own userid (which would be the first component 
> >of the students search path).  Each student could have complete 
> >authority over their own parts and not
> >be able to disrupt other students work.
> >
> >
> >C.
> >
> >>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
> >>
> >>-----------------------------------------------------
> >>This message has been scanned for viruses and
> >>dangerous content for Fulton County by DefendMail, and is
> >>believed to be clean.
> >>
> >> 
> >>
> >
> >
> 
> _______________________________________________
> 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