- $result = $conn->query( "CREATE SCHEMA $safeschema AUTHORIZATION $safeuser" );
- if( !$result ) {
- $status->fatal( 'config-install-pg-schema-failed', $user, $schema );
- }
- } else {
- $safeschema2 = $conn->addQuotes( $schema );
- $SQL = "SELECT 'GRANT ALL ON '||pg_catalog.quote_ident(relname)||' TO $safeuser;'\n".
- "FROM pg_catalog.pg_class p, pg_catalog.pg_namespace n\n" .
- "WHERE relnamespace = n.oid AND n.nspname = $safeschema2\n" .
- "AND p.relkind IN ('r','S','v')\n";
- $SQL .= "UNION\n";
- $SQL .= "SELECT 'GRANT ALL ON FUNCTION '||pg_catalog.quote_ident(proname)||'('||\n".
- "pg_catalog.oidvectortypes(p.proargtypes)||') TO $safeuser;'\n" .
- "FROM pg_catalog.pg_proc p, pg_catalog.pg_namespace n\n" .
- "WHERE p.pronamespace = n.oid AND n.nspname = $safeschema2";
- $conn->query( "SET search_path = $safeschema" );
- $res = $conn->query( $SQL );