Re: [pgbr-geral] error tid

2009-01-16 Por tôpico Fernando França
Bom dia a todos.

Há um tempo atrás pedi uma força a galera pois estava tenho o seguinte
erro no meu Postgres:

ERROR:  invalid input syntax for type tid: (,)

Euler me ajudou, pedindo que eu levantasse algumas informações que
ainda não consegui totalmente (meu sistema é legado), e deixei o
assunto em stand by.

Meu Postgres é 8.1.15 e tentando migrar de sistema, hoje está em um
Ubuntu (6.06.2 com kernel 2.6.15-52) e estou tentando passar pro
FreeBSD 7.1.

A minha aplicação (Deplhi 5) acessa o postgres via ODBC e esse erro
curiosamente só acontece no FreeBSD, e já tentei a instalação tanto
com pacotes pré compilados (packages) quanto compilando eu mesmo
(ports). Já tentei trocar de versão também.

O fato é que não acho que seja um problema no Postgres, na verdade, a
minha aplicação está fazendo alguma coisa errada, que nas versões do
Ubuntu (instalado via apt) ele não apita, sei lá porque.

Estou desde então pesquisando muito pelo google, e o mais satisfatório
que encontro é algo relacionado a diferença de versões de bibliotecas.
Quero descobrir o que eu (minha aplicação) está fazendo de errado para
corrigir. Temos alguns problemas como não passar cláusula FROM, que
muito tempo atrás não tinha problema e hoje é bom corrigir ou ativar o
add_missing_from, mas no caso desse erro tid não faço a menor idéia.

Como disse, desde que o Euler deu uma ajuda e não consegui retornar
algumas informações, continuei pesquisando, e fiz um teste nos 2
Postgres (Debia e FreeBA):

Peguei uma tabela aqui e executei via psql:

SELECT * FROM nextel WHERE ctid = '(,)';

O resultado no Ubuntu foi o normal (eu acho):

 id_nextel | msg_misn
---+--
(0 rows)

Agora o resultado no FreeBA foi o tal erro:

ERROR:  invalid input syntax for type tid: (,)

Ou seja, a mesma coisa que aparece na tela do windão lá quando minha
aplicação inicia (usando ODBC). Não sei se a versão do ODBC poderia
melhorar, mas já tentei outras e foi até pior.

Achei interessante pois pela primeira vez consegui mapear o tipo de
consulta que pode gerar esse erro (como o Euler estava orientando a
fazer), porém não acredito que esse tipo de objeto ctid seja utilizado
em consultas na minha aplicação (mas não tenho 100% de certeza).

Estou pesquisando um monte sobre isso mas avançando muito pouco,
gostaria de saber se vocês podem me ajudar, com alguma experiência ou
qualquer luz que ajude a diagnosticar o que faz com que o Postgres se
comporte dessa forma.

Porque caso seja algo na forma como faço as consultas no sistema,
teremos obviamente que mudar isso, mas se existir alguma opção de
compilação ou compatibilidade que possa inibir isso, talvez eu consiga
finalmente migrar meu PostgreSQL pro FreeBSD.

Muito obrigado a todos por qualquer ajuda que pintar.

--
Fernando França
Linux User #263682

CMAS/CBPDS *
DAN #2058378

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

Esta mensagem, incluindo seus anexos, contém informações legais
privilegiadas e/ou confidenciais, não podendo ser retransmitida,
arquivada,divulgada ou copiada sem autorização do remetente. Caso
tenha recebido esta mensagem por engano, por favor informe o remetente
respondendo imediatamente a este e-mail, e em seguida apague-a do seu
computador.

All information in this e-mail and attachments is confidential and
privileged. If you are not the intended addressee, please notify us
immediately by returning this e-mail and delete this message from your
computer. You should not forward, file, copy nor disclose this e-mail
to any other person without prior authorization.



2008/10/27 Euler Taveira de Oliveira eu...@timbira.com:
 Fernando França escreveu:

 Consegui refinar com ajuda do programador (desculpe a demora)
 exatamente em ordem as consultas que são executadas no momento que o
 sistema abre a central de operações (nosso software controla uma frota
 de ambulâncias). Acho que está mais fácil de entender agora.

 Mas em qual das consultas abaixo o erro ocorre? Tem como você fazer um
 passo-a-passo para verificar isso?


 --
  Euler Taveira de Oliveira
  http://www.timbira.com/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2009-01-16 Por tôpico Euler Taveira de Oliveira
Fernando França escreveu:

[Eu não tenho um FreeBSD em mãos agora, portanto, não posso testar...]

 SELECT * FROM nextel WHERE ctid = '(,)';
 
 O resultado no Ubuntu foi o normal (eu acho):
 
  id_nextel | msg_misn
 ---+--
 (0 rows)
 
 Agora o resultado no FreeBA foi o tal erro:
 
 ERROR:  invalid input syntax for type tid: (,)
 
O código não mudou muito da 8.1 para 8.3, mas tu já testou a 8.3? [Olhando o
código...] Existem 3 testes em tidin() (src/backend/utils/adt/tid.c) que podem
estar falhando; eu suspeitaria dos 2 últimos, especificamente, em strtoul() ou
strtol(). Altere as mensagens de erro e veja onde está falhando.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2009-01-16 Por tôpico Fernando França
Euler,

Tenho mais uma pista. Na verdade, consegui resolver e minha
aplicação está rodando perfeitamente no FreeBA.

Como disse estou pesquisando muito mesmo na net e encontrei e fiz o
seguinte: dentro da minha fonte de dados no gerenciador ODBC (win) eu
cliquei em Datasource e depois em Page 2.

Ali eu desmarquei a opção: Updatable cursors e salvei tudo. Funcionou assim.

Agora o ponto é: sinceramente não sei o que isso pode acarretar mais a
fundo além do óbvio que imagino ser relacionado a atualização de
cursores, se puder me esclarecer.

Vou continuar pesquisando porque quero descobrir que tipo de paramêtro
de compilação faz com que o PostgreSQL do Ubuntu (apt) não dar esse
problema. É uma boa oportunidade para me aprofundar na arquitetura do
PostgreSQL, inclusive se puder me indicar algo pra ler.

Um abraço e obrigado pela força.

--
Fernando França
Linux User #263682

CMAS/CBPDS *
DAN #2058378

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

Esta mensagem, incluindo seus anexos, contém informações legais
privilegiadas e/ou confidenciais, não podendo ser retransmitida,
arquivada,divulgada ou copiada sem autorização do remetente. Caso
tenha recebido esta mensagem por engano, por favor informe o remetente
respondendo imediatamente a este e-mail, e em seguida apague-a do seu
computador.

All information in this e-mail and attachments is confidential and
privileged. If you are not the intended addressee, please notify us
immediately by returning this e-mail and delete this message from your
computer. You should not forward, file, copy nor disclose this e-mail
to any other person without prior authorization.



2009/1/16 Euler Taveira de Oliveira eu...@timbira.com:
 Fernando França escreveu:

 [Eu não tenho um FreeBSD em mãos agora, portanto, não posso testar...]

 SELECT * FROM nextel WHERE ctid = '(,)';

 O resultado no Ubuntu foi o normal (eu acho):

  id_nextel | msg_misn
 ---+--
 (0 rows)

 Agora o resultado no FreeBA foi o tal erro:

 ERROR:  invalid input syntax for type tid: (,)

 O código não mudou muito da 8.1 para 8.3, mas tu já testou a 8.3? [Olhando o
 código...] Existem 3 testes em tidin() (src/backend/utils/adt/tid.c) que podem
 estar falhando; eu suspeitaria dos 2 últimos, especificamente, em strtoul() ou
 strtol(). Altere as mensagens de erro e veja onde está falhando.


 --
  Euler Taveira de Oliveira
  http://www.timbira.com/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2009-01-16 Por tôpico Dickson S. Guedes
Fernando França escreveu:
 Vou continuar pesquisando porque quero descobrir que tipo de paramêtro
 de compilação faz com que o PostgreSQL do Ubuntu (apt) não dar esse
 problema. É uma boa oportunidade para me aprofundar na arquitetura do
 PostgreSQL, inclusive se puder me indicar algo pra ler.
   
Ola França,

Vale lembrar que ao compilar pelo ports do FreeBSD é comum ele aplicar 
alguns patches próprios (você vê isso bem no início no make install do 
ports). Você chegou a compilar diretamente sem utilizar o ports?


[]s
Guedes

-- 
Dickson S. Guedes
Administrador de Banco de Dados
Confesol - Projeto Colmeia
Florianopolis, SC, Brasil
(48) 3322-1185, ramal: 26

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2009-01-16 Por tôpico Fernando França
Não Dickson.

Realmente não me liguei nesse aspecto. Vou olhar o que pode vir
junto com o PostgreSQL do ports e tentar compilar um from scratch.

Obrigado pela sugestão.

--
Fernando França
Linux User #263682

CMAS/CBPDS *
DAN #2058378

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

Esta mensagem, incluindo seus anexos, contém informações legais
privilegiadas e/ou confidenciais, não podendo ser retransmitida,
arquivada,divulgada ou copiada sem autorização do remetente. Caso
tenha recebido esta mensagem por engano, por favor informe o remetente
respondendo imediatamente a este e-mail, e em seguida apague-a do seu
computador.

All information in this e-mail and attachments is confidential and
privileged. If you are not the intended addressee, please notify us
immediately by returning this e-mail and delete this message from your
computer. You should not forward, file, copy nor disclose this e-mail
to any other person without prior authorization.



2009/1/16 Dickson S. Guedes gue...@cresoltec.com.br:
 Fernando França escreveu:
 Vou continuar pesquisando porque quero descobrir que tipo de paramêtro
 de compilação faz com que o PostgreSQL do Ubuntu (apt) não dar esse
 problema. É uma boa oportunidade para me aprofundar na arquitetura do
 PostgreSQL, inclusive se puder me indicar algo pra ler.

 Ola França,

 Vale lembrar que ao compilar pelo ports do FreeBSD é comum ele aplicar
 alguns patches próprios (você vê isso bem no início no make install do
 ports). Você chegou a compilar diretamente sem utilizar o ports?


 []s
 Guedes

 --
 Dickson S. Guedes
 Administrador de Banco de Dados
 Confesol - Projeto Colmeia
 Florianopolis, SC, Brasil
 (48) 3322-1185, ramal: 26

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-28 Por tôpico Carlos Antonio Pereira
Bom dia Senhores!
Estou acompanhando o tópico aqui na lista.

Bom, acho que poderia dar uma dica a respeito:
Fenrnado, você pode executar cada consulta (isoladamente) pelo console do 
PostgreSQL (na sua base FreeBSD).
Acho que assim será mais direcionado e o Euler poderá, assim, nos ajudar.

Att Carlos Antônio Pereira


- Original Message - 
  From: Euler Taveira de Oliveira 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Monday, October 27, 2008 7:37 PM
  Subject: Re: [pgbr-geral] error tid


  Fernando França escreveu:

   Consegui refinar com ajuda do programador (desculpe a demora)
   exatamente em ordem as consultas que são executadas no momento que o
   sistema abre a central de operações (nosso software controla uma frota
   de ambulâncias). Acho que está mais fácil de entender agora.
   
  Mas em qual das consultas abaixo o erro ocorre? Tem como você fazer um
  passo-a-passo para verificar isso?


  -- 
Euler Taveira de Oliveira
http://www.timbira.com/
  ___
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-28 Por tôpico Fernando França
Euler: vou fazer isso sim. Obrigado.

Pereira: de fato eu venho executando as consultas direto no FreeBSD e
não no Linux. Valeu mesmo pela ajuda chefe.

Um abraço a todos.

--
Fernando França
Linux User #263682
DAN #2058378

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

Esta mensagem, incluindo seus anexos, contém informações legais
privilegiadas e/ou confidenciais, não podendo ser retransmitida,
arquivada,divulgada ou copiada sem autorização do remetente. Caso
tenha recebido esta mensagem por engano, por favor informe o remetente
respondendo imediatamente a este e-mail, e em seguida apague-a do seu
computador.

All information in this e-mail and attachments is confidential and
privileged. If you are not the intended addressee, please notify us
immediately by returning this e-mail and delete this message from your
computer. You should not forward, file, copy nor disclose this e-mail
to any other person without prior authorization.



2008/10/27 Euler Taveira de Oliveira [EMAIL PROTECTED]:
 Fernando França escreveu:

 Consegui refinar com ajuda do programador (desculpe a demora)
 exatamente em ordem as consultas que são executadas no momento que o
 sistema abre a central de operações (nosso software controla uma frota
 de ambulâncias). Acho que está mais fácil de entender agora.

 Mas em qual das consultas abaixo o erro ocorre? Tem como você fazer um
 passo-a-passo para verificar isso?


 --
  Euler Taveira de Oliveira
  http://www.timbira.com/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-27 Por tôpico Fernando França
Euler.

Consegui refinar com ajuda do programador (desculpe a demora)
exatamente em ordem as consultas que são executadas no momento que o
sistema abre a central de operações (nosso software controla uma frota
de ambulâncias). Acho que está mais fácil de entender agora.

Existem alguns muitos problemas nesse sistema que como disse é legado,
e ainda não consegui resolver muitos dos problemas de acesso ao banco.
O que está me assustando é o fato de aparecer esse erro de tid
simplesmente trocando a plataforma.

João Paulo: se estiver lendo esse email tem como tentar me dar uma
força? Pensei em te mostrar essa situação em off, mas acho mais
produtivo na lista (vai que alguém também se depara com algo
semelhante).

Segue a consulta:

-- insere as equipes no plantao do dia
BEGIN;
insert into servico_recursos_operantes (
   cod_plantao,
   cod_rf,
   cod_base,
   cod_medico,
   medico_escalado,
   cod_auxiliar,
   cod_motorista,
   destinacao,
   tipo_recurso,
   dthinicio_plantao,
   dthtermino_plantao,
   checado,
   status,
   iniciando_plantao,
   terminando_plantao,
   plantao_concluido,
   cod5,
   ns_realizados,
   id_nextel,
   check_medico,
   check_auxiliar,
   check_motorista,
   entrada_medico,
   entrada_auxiliar,
   entrada_motorista
)

select
   servico_escala_equipes.cod_plantao,
   servico_escala_equipes.cod_rf,
   servico_recursos_fisicos.cod_base,
   case when servico_escala_equipes.cod_medico is not null then
servico_escala_equipes.cod_medico else 0 end,
   case when servico_escala_equipes.cod_medico is not null then
servico_escala_equipes.cod_medico else 0 end,
   case when servico_escala_equipes.cod_auxiliar is not null then
servico_escala_equipes.cod_auxiliar else 0 end,
   case when servico_escala_equipes.cod_motorista is not null then
servico_escala_equipes.cod_motorista else 0 end,
   servico_escala_equipes.destinacao,
   servico_escala_equipes.tipo_recurso,
   servico_escala_plantao.dthinicio,
   servico_escala_plantao.dthfim,
   false,
   '03',
   false,
   false,
   false,
   0,
   0,
   servico_recursos_fisicos.id_nextel,
   false,
   false,
   false,
   servico_escala_plantao.dthinicio,
   servico_escala_plantao.dthinicio,
   servico_escala_plantao.dthinicio

where
   servico_escala_plantao.cod_plantao = servico_escala_equipes.cod_plantao and
   servico_recursos_fisicos.cod_rf = servico_escala_equipes.cod_rf and
   current_timestamp + interval '1 hour' = servico_escala_plantao.dthinicio and
   servico_escala_equipes.fechado = false;

   -- fecha o registro da equipe que obedeceram a condicao anterior
   update servico_escala_equipes set fechado = true
   where
  fechado = false and
  servico_escala_plantao.cod_plantao =
servico_escala_equipes.cod_plantao and
  servico_recursos_fisicos.cod_rf = servico_escala_equipes.cod_rf and
  current_timestamp + interval '1 hour' = servico_escala_plantao.dthinicio;

   -- fecha o plantao no seu termino anterior
   update servico_escala_plantao set fechado = true
   where
  fechado = false and
  current_timestamp = servico_escala_plantao.dthfim;

   -- recursos com plantao finalizado e que se encontram em suas
respectivas bases e que nao estejam inoperantes, finalizar plantao
   update servico_recursos_operantes set status = '05', saida_medico =
current_timestamp, saida_auxiliar = current_timestamp, saida_motorista
= current_timestamp
   where
  status in('01','03') and current_timestamp = dthtermino_plantao;

   -- recursos com cheklist concluido e que iniciarao o plantao neste
momento e que não estejam em recursos operantes com status diferente
de 03
   update servico_recursos_operantes set status = '01',
liberacao_recurso = current_timestamp
   where
  status = '03' and checado = true and current_timestamp =
dthinicio_plantao and cod_rf not in(select cod_rf from
servico_recursos_operantes where status in('01','02', '04','05', '06',
'07'));


   -- este plantao termina nos proximos 15 minutos and status = '01'
   update servico_recursos_operantes set terminando_plantao = true
   where
  current_timestamp + interval '15 minutes'   =
dthtermino_plantao and terminando_plantao = false;

   -- este plantao inicia nos proximos 15 minutos e ainda não fora checados
   update servico_recursos_operantes set iniciando_plantao = true
   where
  current_timestamp  + interval '15 minutes' =  dthinicio_plantao
and status = '03' and checado = false and iniciando_plantao = false;

   -- despacha as remocoes agendadas para a s proximas hh:mm horas
   update servico set
  hpades = current_timestamp,
  hpaequ = null,
  usuario_dem1 = 'SISTEMA'
   where
  hpades is null and hagrem is not null and hagrem 
current_timestamp + empresa.limite_despacho_remocao;
END;

Muito obrigado,

--
Fernando França
Linux User #263682

2008/10/21 Euler Taveira de Oliveira [EMAIL PROTECTED]:
 Fernando França escreveu:

 Um exemplo de consulta que já gera o tal erro é logo após o login no
 meu sistema:

 É essa consulta que 

Re: [pgbr-geral] error tid

2008-10-21 Por tôpico ELIAS JUNIOR
Saudações,

Alguém sabe como faço para executar o pg_dump (PostgreSQL 8.3), no linux, no
crontab, sem que o mesmo peça senha no terminal??

Grato,
Elias
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-21 Por tôpico Fernando França
Elias.

Você pode executar o pg_dump no crontab de várias formas, mas depende
de como está a configuração do seu linux e seu pg_hba.conf, para
permitir os usuários se conectarem ou não, e como farão isso.

Por exemplo:

Se meu pg_hba.conf estiver assim:

# TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
host  all  postgres  127.0.0.1/32   trust

Então eu consigo me conectar a partir do próprio servidor sem
necessidade de senha, poderia então meu crontab para o usuário
postgres estar dessa forma:

00 05 * * * pg_dump -f /backup/backup.dat database

Onde o usuário postgres todo dia 5 da manhã realiza o backup.

Espero ter ajudado.

--
Fernando França
Linux User #263682

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

2008/10/21 ELIAS JUNIOR [EMAIL PROTECTED]:
 Saudações,

 Alguém sabe como faço para executar o pg_dump (PostgreSQL 8.3), no linux, no
 crontab, sem que o mesmo peça senha no terminal??

 Grato,
 Elias

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-21 Por tôpico Fernando França
Muito obrigado pela força Euler.

Bom, as versões que estou rodando são:

Ubuntu Linux 6.06.2 LTS com kernel 2.6.15-52
FreeBSD 7.0-RELEASE

Como eu disse, em ambos tenho Postgresql 8.1.13 porém no Ubuntu é
empacotado (instalado por apt-get) e no FreeBSD compilado através do
Ports.

Um exemplo de consulta que já gera o tal erro é logo após o login no
meu sistema:

###

select cast(
  case when servico.cancelado then
cast(' ' as char(8))
  else  

case when servico.classif_servico = '04' or servico.cancelado then
 case when servico.hfiser is not null then
cast(to_char(age(servico.hfiser, servico.hinsol),
  'HH24:MI:SS') as char(8))
   else
 cast(to_char(age(current_timestamp, servico.hinsol),
  'HH24:MI:SS') as char(8))
   end
   -- Todas as unidades deste atendimento estao liberadas


   when servico.classif_servico = '01' then
   case when (select count(*) from servico_recursos_utilizados
  where num_servico = servico.num_servico and 
hlimov is
null)  0 or
 (select count(*) from servico_recursos_utilizados
  where num_servico = servico.num_servico) = 0 then
 cast(to_char(
 age(current_timestamp, servico.hinsol),
  'HH24:MI:SS') as char(8))

else
 cast(to_char(
 age((select servico_recursos_utilizados.hlimov
   where 
servico_recursos_utilizados.num_servico =
servico.num_servico
  order by 
servico_recursos_utilizados.ordem desc limit 1),
  servico.hinsol),
   'HH24:MI:SS') as char(8))

   end


   when servico.classif_servico = '02' then
   -- Todas as unidades desta remocao estao liberadas
   case when (select count(*) from servico_recursos_utilizados
  where num_servico = servico.num_servico and 
hlimov is
null) = 0 then
  (select
  cast( to_char(sum(age(servico_recursos_utilizados.hlimov,

servico_recursos_utilizados.hpaequ)),
  'HH24:MI:SS') as char(8))
  where servico_recursos_utilizados.num_servico 
=
  servico.num_servico)


else
   cast(to_char(
   age(current_timestamp,
   (select 
max(servico_recursos_utilizados.hpaequ)
   where num_servico = servico.num_servico)),
  'HH24:MI:SS') as char(8))

end

end

  end
as char(8))


as total from servico where num_servico = NULL;

SELECTNOTICE:  adding missing FROM-clause entry in subquery for table
servico_recursos_utilizados

### EOF

Já tentei de tudo em se tratando de configuração, fiz um diff entre os
arquivos postgresql.conf dos 2 e não achei nada pertinente.

Um abraço e novamente obrigado.

--
Fernando França
Linux User #263682

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

On Mon, Oct 20, 2008 at 8:12 PM, Euler Taveira de Oliveira
[EMAIL PROTECTED] wrote:
 Fernando França escreveu:

 ERROR:  invalid input syntax for type tid: (,)

 Qual a consulta está gerando este erro? Quais as versões utilizadas do
 kernel do linux e do freebsd?


 --
  Euler Taveira de Oliveira
  http://www.timbira.com/
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] error tid

2008-10-21 Por tôpico Euler Taveira de Oliveira
Fernando França escreveu:

 Um exemplo de consulta que já gera o tal erro é logo após o login no
 meu sistema:
 
É essa consulta que aparece no log do postgresql juntamente com o erro
de tid? Aparentemente esta consulta não manipula tids. Qual o EXPLAIN
desta consulta?

Sugiro que acrescente o 'FROM servico_recursos_utilizados' nos locais
marcados abaixo. Depender do missing_from é horrível. Além disso sugiro
que retire esse monte de 'casts' desnecessários que só estão
atrapalhando o entendimento da consulta.

 ###
 
 select cast(
 case when servico.cancelado then
   cast(' ' as char(8))
 else  
   
   case when servico.classif_servico = '04' or servico.cancelado then
case when servico.hfiser is not null then
   cast(to_char(age(servico.hfiser, servico.hinsol),
 'HH24:MI:SS') as char(8))
  else
cast(to_char(age(current_timestamp, servico.hinsol),
 'HH24:MI:SS') as char(8))
  end
  -- Todas as unidades deste atendimento estao liberadas
   
   
  when servico.classif_servico = '01' then
  case when (select count(*) from servico_recursos_utilizados
 where num_servico = servico.num_servico and 
 hlimov is
 null)  0 or
(select count(*) from servico_recursos_utilizados
 where num_servico = servico.num_servico) = 0 then
cast(to_char(
age(current_timestamp, servico.hinsol),
 'HH24:MI:SS') as char(8))
   
   else
cast(to_char(
age((select servico_recursos_utilizados.hlimov
  ^
  where 
 servico_recursos_utilizados.num_servico =
   servico.num_servico
 order by 
 servico_recursos_utilizados.ordem desc limit 1),
 servico.hinsol),
  'HH24:MI:SS') as char(8))
   
  end
   
   
  when servico.classif_servico = '02' then
  -- Todas as unidades desta remocao estao liberadas
  case when (select count(*) from servico_recursos_utilizados
  
 where num_servico = servico.num_servico and 
 hlimov is
 null) = 0 then
 (select
 cast( to_char(sum(age(servico_recursos_utilizados.hlimov,
   
 servico_recursos_utilizados.hpaequ)),
 'HH24:MI:SS') as char(8))
   ^^
 where servico_recursos_utilizados.num_servico 
 =
 servico.num_servico)
   
   
   else
  cast(to_char(
  age(current_timestamp,
  (select 
 max(servico_recursos_utilizados.hpaequ)
^^
  where num_servico = servico.num_servico)),
 'HH24:MI:SS') as char(8))
   
   end
   
   end
   
 end
   as char(8))
   
   
   as total from servico where num_servico = NULL;
   


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] error tid

2008-10-20 Por tôpico Fernando França
Boa tarde a todos.

Gostaria de saber se alguém pode dar uma luz no seguinte problema,
qualquer pista vale:

Tenho 2 servidores rodando PostgreSQL 8.1.13, sendo 1 linux e outro
freebsd e 1 sistema legado que acessa o banco através de odbc (delphi
no windows).

Acontece que essa semana comecei a testar o desempenho do meu sistema
no servidor freebsd, onde o PostgreSQL foi compilado através do ports
mas tem configurações (postgresql.conf) idênticas ao rodando no linux
(instalado por apt).

Quando conecto a aplicação no linux, funciona tranqüilamente, porém ao
conectar no servidor freebsd, tenho o seguinte erro:

ERROR:  invalid input syntax for type tid: (,)

Pesquisei na net e achei referências muito antigas, da época do
PostgreSQL 7.3, problemas que já tinham sido aplicados patches e mais
que isso mesmo só o fonte de um arquivo de erros traduzido pelo Euler.

Como disse minha aplicação é legada e suspeito de ser a forma como ela
acessa o banco, ou alguma informação que envia. Só não entendo por que
o PostgreSQL do Linux não apita, e no FreeBSD sim.

Se alguém tiver qualquer pista eu agradeço.

Um abraço.

--
Fernando França
Linux User #263682

http://desconstruindo.eng.br
http://www.cbpf.br/~lsd
http://www.rnp.br/keyserver/pks/lookup?search=0xD41D2910

Esta mensagem, incluindo seus anexos, contém informações legais
privilegiadas e/ou confidenciais, não podendo ser retransmitida,
arquivada,divulgada ou copiada sem autorização do remetente. Caso
tenha recebido esta mensagem por engano, por favor informe o remetente
respondendo imediatamente a este e-mail, e em seguida apague-a do seu
computador.

All information in this e-mail and attachments is confidential and
privileged. If you are not the intended addressee, please notify us
immediately by returning this e-mail and delete this message from your
computer. You should not forward, file, copy nor disclose this e-mail
to any other person without prior authorization.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral