Re: [pgbr-geral] error tid
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
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
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
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
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
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
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
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
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
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
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
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
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