procedural languages and public schema
От | Francesco Dalla Ca' |
---|---|
Тема | procedural languages and public schema |
Дата | |
Msg-id | 42D50617.6010204@cineca.it обсуждение исходный текст |
Ответы |
Re: procedural languages and public schema
|
Список | pgsql-admin |
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@cineca.it ===========================================
В списке pgsql-admin по дате отправления: