Olá Jose,

Fuçando um pouco fora da limitada documentação do PostgreSQL, em versões
anteriores à 8.4, pode-se converter o tipo ctid para um tipo utilizável
através da função tidout() e mais algumas gambiarras.

O código-raimunda equivalente ao que passei, que assim codificado funciona em
versões anteriores do PostgreSQL fica:

select * 
from SUATABELA
where (
cast(
  substring(
  encode(cstring_send(tidout(ctid)),'escape'),
  2,
  position(',' in rtrim( encode(cstring_send(tidout(ctid)),'escape') ))-2 )
  as int) * 199+
cast(
  substring(
  encode(cstring_send(tidout(ctid)),'escape'),
  position(',' in encode(cstring_send(tidout(ctid)),'escape'))+1,
  length(rtrim(encode(cstring_send(tidout(ctid)),'escape'))) - position(',' in
encode(cstring_send(tidout(ctid)),'escape'))-1 )
  as int) )
% 10=1


Atenciosamente,

Mozart Hasse


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a