Olá Evandro,

Não encontrei nada de que precise na pg_class, mas obrigado pela dica. ;)

Quanto a colocar algo na tabela, meu problema é saber se ela existe, 
para que caso ela não exista eu a crie, lembrando que não possso 
simplesmente recria-la a cada momento com o DROP IF EXIST, por causa das 
procedures que procuram através de OIDS.

Obrigado pela ajuda.

Daniel Cordeiro
Evandro Ricardo Silvestre escreveu:
> Daniel,
>
>  Não sei como você poderá identificar a seção. Dê uma lida nisso: 
> http://www.postgresql.org/docs/8.2/static/catalog-pg-class.html e veja 
> se alguma coluna retorna a seção que deseja, pelo que vi não tem nada 
> do que deseja.
> Você não colocar algum identificador da seção na tabela temporaria? 
> Tipo colocar no nome dela!?
>
> Att
>
> Evandro
>
> Daniel Cordeiro wrote:
>> Olá Everaldo,
>>
>> Obrigado pela ajuda, infelismente não funcionou como eu esperava.
>>
>> Eu preciso saber se a tabela da minha sessão foi criado, mas o que 
>> acontece é que a consulta que você me passou vai me mostrar a tabela 
>> temporária de todas as sessões. E não somente a minha.
>>
>> Na verdade, o que acontece comigo é que como uso um sistema web com um 
>> número muito alto de requisições, preciso manter minha conexão 
>> persistente. A cada recarregamneto da tela, eu tenho que ver se a tabela 
>> temporária existe (ou caso a conexão tenha se expirado), se não 
>> exisitir, eu a crio e preencho com informações baśicas recolhidas da 
>> sessão do PHP.
>>
>> Eu estava fazendo o trabalho sempre removendo e recriando as funções com 
>> o comando DROP IF EXIST, só que eu não sabia que as procedures quando 
>> são executadas na seção, são na verdade COMPILADAS no momento da sua 
>> primeira execução, de tal forma que as informações da tabela que ele 
>> extrai são registrados na procedure através dos OIDS. Como os OIDS mudam 
>> porque eu sempre recriava a tabela temporária, mas a seção não era 
>> expirada, não consequia realizar as operações que desejava porque dava 
>> um erro, pois a procedure procurava os dados em um OID inexistente.
>>
>> Como as vezes eu não sei quando a seção foi expirada, não tem como eu 
>> ficar a cada requisição removendo e recriando a tabela, mas o espaço 
>> ocupado não é meu problema.
>>
>>
>> Muito obrigado pela sua ajuda.
>>
>> Daniel Cordeiro
>>
>> Evandro Ricardo Silvestre escreveu:
>>   
>>> Daniel,
>>>
>>> Tente o seguinte:
>>>
>>>  SELECT a.relname AS tabela
>>>            FROM pg_class a
>>>           WHERE (a.relkind = 'r') and relnamespace <> 2200
>>>
>>> Vai te retornar todas as tabelas temporárias.
>>>
>>> Sinceramente, não confio em fazer acesso a tabelas temporárias do jeito 
>>> que deseja fazer! Particularmente prefiro apagar a tabela temporária 
>>> sempre após o uso, para não ocupar espaço!
>>>
>>> Att
>>>
>>> Evandro
>>>
>>> Daniel Cordeiro wrote:
>>>   
>>>     
>>>> Olá a todos mais uma vez,
>>>>
>>>> Além do problema das conexões, gostaria de saber como descubro  a tabela 
>>>> temporária que esta ativa na seção corrente, pois gostaria de gravar 
>>>> algumas informações nesta tabela temporária ( carregadas da seção do 
>>>> PHP) para interagir diretamente através de gatilhos e procedures que se 
>>>> baseam nestas informações ( e assim, tirando a necessidade de se passar 
>>>> parâmetros para as procedures).
>>>>
>>>> Estou usando PostGreSQL 8.2, e a única  coisa que vi nesta versão é como 
>>>> deletar a tabela com a comando DROP TABLE IF EXISTS.
>>>>
>>>> Procurando pelas tabelas do sistema, eu encontrei a tabela com o 
>>>> sequinte comando:
>>>>
>>>> =#SELECT schemaname,tablename from pg_tables where tablename = 'teste';
>>>>
>>>> O problema é que ela me retorna todas as tabelas temporárias de todas as 
>>>> sessões ativas, da sequinte forma:
>>>>
>>>>      schemaname | tablename
>>>>     ------------+-----------
>>>>      pg_temp_1  | teste
>>>>      pg_temp_2  | teste
>>>>
>>>>
>>>> Gostaria de uma forma de descobrir se uma determinada tabela temporária 
>>>> existe na MINHA SESSAO CORRENTE, para que, caso não exista, eu possa 
>>>> cria-la na minha conexão persistente.
>>>>
>>>>
>>>> Desde já agradeço e espero poder contribuir com o grupo tanto quanto ele 
>>>> me ajuda.
>>>>
>>>> Daniel Cordeiro
>>>>
>>>>   
>>>>     
>>>>       
>>> _______________________________________________
>>> Grupo de Usuários do PostgreSQL no Brasil
>>> Antes de perguntar consulte o manual
>>> http://pgdocptbr.sourceforge.net/
>>>
>>> Para editar suas opções ou sair da lista acesse a página da lista em:
>>> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>>>
>>>
>>>
>>>   
>>>     
>>
>>
>>   
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios


-- 
/* "O único lugar aonde o sucesso vem antes do trabalho é no dicionário". 
(Albert Einstein) */

+--------------------------------------------------------------------------+
| Daniel Cordeiro de Morais Neto                                           |
| [EMAIL PROTECTED]                                                            |
| Administrador de Redes                                                   |
| ADM Soluções em Informática LTDA                                         |
| www.admsi.com.br                                                         |
| F. (083)244-0757                                                         |
| Debian User - 453 - Sarge                                                |
| Gentoo User                                                              |
+--------------------------------------------------------------------------+ 

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a