Olá,

2009/12/2 Jean Carlos Danese <[email protected]>

> A funcção do link: 
> http://www.mail-archive.com/[email protected]/msg17154.html
>
> CREATE OR REPLACE FUNCTION change_owner(oldOWNER TEXT, newOWNER TEXT)
>
> RETURNS boolean AS $$
> DECLARE
>   comando TEXT;
>   lista   RECORD;
> BEGIN
>   comando := 'ALTER SCHEMA ' || quote_ident(oldOWNER) || ' OWNER TO ' ||
> quote_ident(newOWNER);
>   EXECUTE comando;
>
>
Você sabe o que está acontecendo aqui neste ponto? Você está passando como
nome do esquema o nome do usuário atual. É isso mesmo que você quer?

>
>   FOR lista IN
>     SELECT pg_namespace.nspname,
>            pg_class.relname,
>            pg_class.relkind
>       FROM pg_namespace
>            JOIN pg_class ON pg_namespace.oid=pg_class.relnamespace
>      WHERE pg_namespace.nspname=oldOWNER
>
>        AND pg_class.relkind IN ('r','v','S')
>   LOOP
>     IF lista.relkind = 'S' AND CAST((SELECT COALESCE(setting,0) FROM
> pg_settings WHERE name = 'server_version_num') AS INTEGER) >= 80400 THEN
>
>
Não entendi este teste aqui. Para que ele serve?

>       comando := 'ALTER SEQUENCE ' || quote_ident(lista.nspname) || '.' ||
> quote_ident(lista.relname) || ' OWNER TO ' || quote_ident(newOWNER);
>       RAISE NOTICE '%', comando;
>     ELSE
>
>       comando := 'ALTER TABLE ' || quote_ident(lista.nspname) || '.' ||
> quote_ident(lista.relname) || ' OWNER TO ' || quote_ident(newOWNER);
>
>       RAISE NOTICE '%', comando;
>     END IF;
>
>     EXECUTE comando;
>   END LOOP;
>
>   IF FOUND THEN
>     RETURN TRUE;
>   END IF;
>   RETURN FALSE;
> END;
> $$
> LANGUAGE 'plpgsql'
> IMMUTABLE
> RETURNS FALSE ON NULL INPUT;
>
>
>
> 2009/12/2 JotaComm <[email protected]>
>
> Olá,
>>
>>
>>
>> 2009/12/2 Jean Carlos Danese <[email protected]>
>>
>>
>>> http://www.mail-archive.com/[email protected]/msg17154.html
>>>
>>> A função foi executada e não retornou nenhum erro, porem não mudou o dono
>>> das tabelas, talvez seja algo que fiz de errado ou deixei de fazer.
>>>
>>
>> Primeiro. Qual a função que você executou? Você pode postar aqui o código
>> da função, sem isso fica dificil pois existem várias maneiras de fazer. Uma
>> das causas pode ser que as tabelas estejam num esquema diferente do qual
>> você especificou ou derrepente o usuário que você especificou não existe. O
>> ideal é você postar aqui o código da função que você executou. Sem estas
>> informações é dificil ajudar.
>>
>>>
>>> Poderia descrever o procedimento para a execução da função?
>>>
>>> 2009/12/1 JotaComm <[email protected]>
>>>
>>> Olá, Jean
>>>>
>>>> 2009/12/1 Jean Carlos Danese <[email protected]>
>>>>
>>>> Outro dia vi um questionamento sobre como alterar o dono de todas as
>>>>> tabelas do banco de dados vi as solução e achei interessante, mas na hora 
>>>>> de
>>>>> executar as coisas não derão muito certo, após algumas tentativas resolvi
>>>>> tentar outra maneira de resolver, que ficou assim:
>>>>>
>>>>
>>>> Como assim as coisas não deram muito certo na hora de executar? Poderia
>>>> dar um exemplo do que deu errado?
>>>>
>>>>>
>>>>> -- altera todas as tabelas com dono jean para dono postgres
>>>>>
>>>>> UPDATE pg_class SET relowner=(select oid from pg_roles where
>>>>> rolname='postgres') WHERE relowner=(select oid from pg_roles where
>>>>> rolname='jean');
>>>>>
>>>>
>>>> Acredito essa não ser a solução mais adequada, principalmente por fazer
>>>> uma alteração do catálogo e neste momento todo o cuidado é pouco.
>>>>
>>>>>
>>>>> Essa solução me pareceu mais simples.
>>>>> _______________________________________________
>>>>> pgbr-geral mailing list
>>>>> [email protected]
>>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>>
>>>>>
>>>>
>>>> []s
>>>> --
>>>> JotaComm
>>>> http://jotacomm.wordpress.com
>>>>
>>>> _______________________________________________
>>>> pgbr-geral mailing list
>>>> [email protected]
>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>
>>>>
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>> []s
>> --
>> JotaComm
>> http://jotacomm.wordpress.com
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a