aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_db_change_owner
Parameters
Name
Type
Mode
new_owner
character varying
IN
in_schema
character varying
IN (DEFAULT 'public')
Definition
DECLARE object_types VARCHAR[]; object_classes VARCHAR[]; object_type record; r record; BEGIN object_types = '{type,table,table,sequence,index,view}'; object_classes = '{c,t,r,S,i,v}'; FOR object_type IN SELECT unnest(object_types) type_name, unnest(object_classes) code loop FOR r IN EXECUTE format(' select n.nspname, c.relname from pg_class c, pg_namespace n where n.oid = c.relnamespace and nspname = %L and relkind = %L',in_schema,object_type.code) loop raise notice 'Changing ownership of % %.% to %', object_type.type_name, r.nspname, r.relname, new_owner; EXECUTE format( 'alter %s %I.%I owner to %I' , object_type.type_name, r.nspname, r.relname,new_owner); END loop; END loop; FOR r IN SELECT p.proname, n.nspname, pg_catalog.pg_get_function_identity_arguments(p.oid) args FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid WHERE n.nspname = in_schema LOOP raise notice 'Changing ownership of function %.%(%) to %', r.nspname, r.proname, r.args, new_owner; EXECUTE format( 'alter function %I.%I (%s) owner to %I', r.nspname, r.proname, r.args, new_owner); END LOOP; FOR r IN SELECT * FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_ts_dict d ON d.dictnamespace = n.oid WHERE n.nspname = in_schema LOOP EXECUTE format( 'alter text search dictionary %I.%I owner to %I', r.nspname, r.dictname, new_owner ); END LOOP; END;