procedural languages and public schema

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What are the implications between the use of a pl language and the public schema?

When i use createlang on a database without the public schema (dropped for safety reason), createlang fail with the sequent error

...
postgres@pc-dba:~> createlang -d prova2 plpgsql --echo
SELECT oid FROM pg_language WHERE lanname = 'plpgsql';
SELECT oid FROM pg_proc WHERE proname = 'plpgsql_call_handler' AND prorettype = 'pg_catalog.language_handler'::regtype AND pronargs = 0; SELECT oid FROM pg_proc WHERE proname = 'plpgsql_validator' AND proargtypes[0] = 'pg_catalog.oid'::regtype AND pronargs = 1; CREATE FUNCTION "plpgsql_call_handler" () RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C; CREATE FUNCTION "plpgsql_validator" (oid) RETURNS void AS '$libdir/plpgsql' LANGUAGE C; CREATE TRUSTED LANGUAGE "plpgsql" HANDLER "plpgsql_call_handler" VALIDATOR "plpgsql_validator"; createlang: language installation failed: ERROR: no schema has been selected to create in
postgres@pc-dba:~>
...

If i recreate the public schema (as default) the createlang perform without error.

The client 'createlang' attempt to create 2 functions on the public schema:
plxxx_call_handler
plxxx_validator

these function have got respectively null acl list, from pg_proc:

prova2=# select pg_proc.oid, proname, nspname, proacl from pg_proc, pg_namespace where pg_namespace.nspname='public' and pg_namespace.oid=pronamespace;
 oid   |       proname        | nspname | proacl
--------+----------------------+---------+--------
571455 | plpgsql_call_handler | public  |
571456 | plpgsql_validator    | public  |
(2 rows)

prova2=#

Can i create languages functions on a different schema?
This schema must be accessible for all db user? With which privileges (only usage)? What's the mean of the proacl column for these functions relatively to TRUSTED|UNTRUSTED create language clause?

===========================================

	 CINECA  Via Magnanelli 6/3
   40033 Casalecchio di Reno (Bologna)

	  Settore Gestione Sistemi

           Francesco Dalla Ca'
       Email  f.dallaca@xxxxxxxxx
===========================================



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux