[postgis-users] length and area in the schema

Emilia Venturato venturato at faunalia.it
Tue Jun 20 02:18:42 PDT 2006


Questo e' quello che risponde strk.
Io, ora che lo so, prima di lanciare qualsiasi funzione aggiungo public al 
search_path. E questo e' a posto.
Non mi pare che sia interessato a cambiare la cosa per gli altri.
Lo ringrazio e via?
ciao
LIa

Alle 11:15, martedì 20 giugno 2006, strk at refractions.net ha probabilmente 
scritto:
> On Tue, Jun 20, 2006 at 08:07:55AM +0200, Emilia Venturato wrote:
> > Alle 02:54, lunedì 19 giugno 2006, strk at refractions.net ha probabilmente
> >
> > scritto:
> > > On Fri, Jun 16, 2006 at 02:53:20PM +0200, Emilia Venturato wrote:
> > > > Hi all,
> > > > I use postgresql/postgis (PostgreSQL 8.1.4/ POSTGIS 1.1.2) on Debian
> > > > etch. I have database with schemas.
> > > > I found a problem with length and area functions when geometric
> > > > tables are in the schema.
> > > > It seems use different function for lenght where search_path is
> > > > limited to the schema.
> > > > I think this is misleading, as the user have problems knowing which
> > > > length and area (s)he's getting.
> > > >
> > > > Someone could help me?
> > >
> > > Do you think it would it help to have all postgis functions defined
> > > in the 'postgis' schema ? You can try this yourself by setting
> > > the first item in the search_path to 'postgis' before including
> > > the lwpostgis.sql and spatial_ref_sys.sql files.
> > >
> > > I'm actually not sure everything would work, but it's worth a try.
> >
> > I think it's a semantic problem. Having two functions with same name is
> > the problem. User can set his db to include functions in a schema, but he
> > must do that in every schema he uses.
> > Maybe  a better solution could be to use different function name.
> > Don't you think so?
>
> PostgreSQL allows functions overloading, which is there can be
> multiple functions with same name but with different argument types.
> length(geometry) is the postgis one. The only reason to NOT use
> it is it is NOT found in your search path. If I'm not wrong the
> failure case you had was with a search_path that didn't include
> the 'public' schema, where postgis is commonly installed.
> Since length(geometry) was not found it is likely that length(text)
> was run, having found that function and an implicit cast from
> geometry to text.
> A possibility could be to remove the "implicit" flag from
> the geometry to text cast, but as long as there is an implicit
> cast chain taking to a valid argument to any length() function
> this won't be enough.
> Try adding 'public' to your search_path, even at the end of
> it and see if that fixes your problem.
>
> --strk;
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users

-- 
Emilia Venturato
email+jabber: venturato at faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy



More information about the postgis-users mailing list