Re: [pgbr-geral] Divisão de inteiros com resultado numeric
2012/5/22 Alexsander Rosa alexsander.r...@gmail.com Sugiro incluir alguma segurança: calcule('true; TRUNCATE tabela_importante') funciona. Fato. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Sugiro incluir alguma segurança: calcule('true; TRUNCATE tabela_importante') funciona. Em 20 de maio de 2012 10:05, Matheus de Oliveira matioli.math...@gmail.comescreveu: 2012/5/20 Anselmo Silva anselmo@gmail.com Qual versão do PostgreSQL fizeste? Resultado: ao criar a função : AVISO: uso de escape fora do padrão em cadeia de caracteres LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-... ao executá-la usando: *Calcule ('1/10')* ERRO: erro de sintaxe em ou próximo a SQL state: 42601 Context: PL/pgSQL function calcule line 4 at comando EXECUTE Não era para usar o escape por padrão. Corrigindo para funcionar em qualquer versão: CREATE OR REPLACE FUNCTION public.calcule(calculo text) RETURNS numeric LANGUAGE plpgsql AS $function$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, E'([0-9]+)([^\\.0-9])', E'\\1::numeric\\2', 'g') INTO v_result; RETURN v_result; END; $function$; Testado na 9.1. Não tive tempo ontem, mas vou explicar o que a função faz, como não testei muito pode ser que precise de ajustes. Esta função vai pegar todo número inteiro e colocar ::numeric na frente (para ver o resultado você pode usar um RAISE), em seguida dá um execute nesse resultado. Explicado a expressão regular, o padrão E'([0-9]+)([^\\.0-9])' vai procurar por caracteres de 0 a 9 seguidos de um caractere que *não* seja ponto (resumindo, um inteiro). O valor de substituição E'\\1::numeric\\2'vai trocar o inteiro por ele mesmo mais o cast para numeric, e colocar de volta o caractere que não é ponto. Se for usar isso mesmo, faça um milhão de testes e ainda use try-catch na aplicação onde estiver usando, pois o que você passar também corre o risco de estar mal-formado. Apesar que estou achando essa função interessante para ser usada em fórmulas definidas pelo usuário. Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Alexsander da Rosa http://rednaxel.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] Divisão de inteiros com resultado numeric
Qual versão do PostgreSQL fizeste? Resultado: ao criar a função : AVISO: uso de escape fora do padrão em cadeia de caracteres LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-... ao executá-la usando: *Calcule ('1/10')* ERRO: erro de sintaxe em ou próximo a SQL state: 42601 Context: PL/pgSQL function calcule line 4 at comando EXECUTE 2012/5/19 Matheus de Oliveira matioli.math...@gmail.com 2012/5/19 Matheus de Oliveira matioli.math...@gmail.com Essa função em si não parece ser uma boa prática, mas dá pra usar expressão regular pra tentar fazer o que você quer. Exemplo: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)', '\1::numeric', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql; Aviso: código não testado... Corrigindo pra aceitar valor decimal: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-9])', '\1::numeric\2', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql; ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
2012/5/20 Anselmo Silva anselmo@gmail.com Qual versão do PostgreSQL fizeste? Resultado: ao criar a função : AVISO: uso de escape fora do padrão em cadeia de caracteres LINE 1: SELECT 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-... ao executá-la usando: *Calcule ('1/10')* ERRO: erro de sintaxe em ou próximo a SQL state: 42601 Context: PL/pgSQL function calcule line 4 at comando EXECUTE Não era para usar o escape por padrão. Corrigindo para funcionar em qualquer versão: CREATE OR REPLACE FUNCTION public.calcule(calculo text) RETURNS numeric LANGUAGE plpgsql AS $function$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, E'([0-9]+)([^\\.0-9])', E'\\1::numeric\\2', 'g') INTO v_result; RETURN v_result; END; $function$; Testado na 9.1. Não tive tempo ontem, mas vou explicar o que a função faz, como não testei muito pode ser que precise de ajustes. Esta função vai pegar todo número inteiro e colocar ::numeric na frente (para ver o resultado você pode usar um RAISE), em seguida dá um execute nesse resultado. Explicado a expressão regular, o padrão E'([0-9]+)([^\\.0-9])' vai procurar por caracteres de 0 a 9 seguidos de um caractere que *não* seja ponto (resumindo, um inteiro). O valor de substituição E'\\1::numeric\\2' vai trocar o inteiro por ele mesmo mais o cast para numeric, e colocar de volta o caractere que não é ponto. Se for usar isso mesmo, faça um milhão de testes e ainda use try-catch na aplicação onde estiver usando, pois o que você passar também corre o risco de estar mal-formado. Apesar que estou achando essa função interessante para ser usada em fórmulas definidas pelo usuário. Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Essa função em si não parece ser uma boa prática, mas dá pra usar expressão regular pra tentar fazer o que você quer. Exemplo: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)', '\1::numeric', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql; Aviso: código não testado... Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
2012/5/19 Matheus de Oliveira matioli.math...@gmail.com Essa função em si não parece ser uma boa prática, mas dá pra usar expressão regular pra tentar fazer o que você quer. Exemplo: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)', '\1::numeric', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql; Aviso: código não testado... Corrigindo pra aceitar valor decimal: CREATE OR REPLACE FUNCTION CALCULE (calculo text) RETURNS NUMERIC AS $$ DECLARE v_result numeric; BEGIN EXECUTE 'SELECT ' || regexp_replace(calculo, '([0-9]+)([^\.0-9])', '\1::numeric\2', 'g') INTO v_result; RETURN v_result; END; $$ LANGUAGE plpgsql; ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Pessoal, andei lendo mais e meu resultado mais estruturado é o seguinte: CREATE FUNCTION DivIntToNum(i1 integer, i2 integer) RETURNS NUMERIC AS $BODY$ SELECT CAST($1 AS NUMERIC) / CAST($2 AS NUMERIC); $BODY$ LANGUAGE SQL; CREATE OPERATOR !/ ( leftarg = integer, rightarg = integer, procedure = DivIntToNum, commutator = !/ ); O uso do operador de divisão com resultado numeric é simples; SELECT 1 !/ 10 Aceito Críticas... Obrigado a todos pela boa discursão que tivemos sobre o assunto! Em 12 de maio de 2012 23:14, Leandro Guimarães Faria Corcete DUTRA l...@dutras.org escreveu: Le 2012-5-12 16h16, Anselmo Silva a écrit : acredito que tem uma razão para isso, que reconheço não saber Basicamente, é porque a linguagem SQL tem de ter comportamento consistente, e respeitar a definição dos tipos dos dados. Isso não é uma opção, é parte da definição da linguagem SQL. O PostgreSQL tenta seguir essa definição, que é dada pelo padrão ISO SQL mais recente. em algumas situações não é muito prático A questão de se é prático deve ser contextualizada. O SQL é prático se os programas forem claros, consistentes, com poucos erros. O tratamento estrito dos tipos de dados facilitam isso. É um contexto muito diferente daquele de uso duma calculadora. Outros sistemas fazem as conversões implícitas. Há pelo menos dois problemas com isso. Um é que cada um faz conversões de determinada maneira, inconsistente com os outros. Outro é que nem sempre o programador entende o que o sistema fez implicitamente. Para evitar esses dois problemas é que o padrão ISO SQL exige as conversões explícitas. Se o PostgreSQL as abandonasse, desviar-se-a do padrão, tornando o código menos portável, e além disso voltaria a permitir que os programadores introduzissem erros por confiarem em comportamentos implícitos mal compreendidos. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Divisão de inteiros com resultado numeric
Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas, deve ter um motivo: A divisão de números inteiros resulta em um número inteiro Meu problema é: Tendo sido dado o seguinte com base na minha função acima: SELECT CALCULE('1/10'); Gostaria de obter o resultado fracionado sem ter de tratar a string passada para converte-las em numeric antes de efetuar a operação. Já busquei em tudo que é lugar mas a resposta é a mesma: Tem de converter ao menos um dos operandos para real ou numeric... Alguém tem alguma idéia mais eficiente? -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
olhe a expressão CAST, para te auxiliar utilizando esse cálculo # http://www.postgresql.org/docs/8.3/static/sql-expressions.html Att Rodrigo Em 12 de maio de 2012 14:48, Anselmo Silva anselmo@gmail.com escreveu: Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas, deve ter um motivo: A divisão de números inteiros resulta em um número inteiro Meu problema é: Tendo sido dado o seguinte com base na minha função acima: SELECT CALCULE('1/10'); Gostaria de obter o resultado fracionado sem ter de tratar a string passada para converte-las em numeric antes de efetuar a operação. Já busquei em tudo que é lugar mas a resposta é a mesma: Tem de converter ao menos um dos operandos para real ou numeric... Alguém tem alguma idéia mais eficiente? -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- *Atenciosamente* * * *Rodrigo Della Justina* *rodrigodellajust...@gmail.com* *rodrigodellajust...@ciss.com.br* Telp: 55-46-8801-6165 *IBM DB2 Certified Database Academic* * * ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Rodrigo Della, conheço o cast. Mas, Como eu disse, não queria tratar a string. Na sua sugestão para obter meu resultado eu teria que fazer o seguinte: SELECT CAST('1' AS NUMERIC) / CAST ('10' AS NUMERIC) Considere que recebo a string já pronta. Em 12 de maio de 2012 14:58, Rodrigo Della Justina rodrigodellajust...@gmail.com escreveu: olhe a expressão CAST, para te auxiliar utilizando esse cálculo # http://www.postgresql.org/docs/8.3/static/sql-expressions.html Att Rodrigo Em 12 de maio de 2012 14:48, Anselmo Silva anselmo@gmail.comescreveu: Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas, deve ter um motivo: A divisão de números inteiros resulta em um número inteiro Meu problema é: Tendo sido dado o seguinte com base na minha função acima: SELECT CALCULE('1/10'); Gostaria de obter o resultado fracionado sem ter de tratar a string passada para converte-las em numeric antes de efetuar a operação. Já busquei em tudo que é lugar mas a resposta é a mesma: Tem de converter ao menos um dos operandos para real ou numeric... Alguém tem alguma idéia mais eficiente? -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- *Atenciosamente* * * *Rodrigo Della Justina* *rodrigodellajust...@gmail.com* *rodrigodellajust...@ciss.com.br* Telp: 55-46-8801-6165 *IBM DB2 Certified Database Academic* * * ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Le 2012-5-12 15h8, Anselmo Silva a écrit : conheço o cast. Mas, Como eu disse, não queria tratar a string Não entendi, por que não? É a coisa certa, tanto pela teoria, quanto pelo padrão ISO SQL. Não existe cálculo sobre seqüência de caracteres. Outros sistemas implementam, mas os detalhes são inconsistentes; com o CAST (), temos consistência. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Em 12 de maio de 2012 18:02, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado; Essa solução não resolve por completo expressões aritméticas. Se a expressão for, por exemplo: 5/2+5 O resultado que irá ser apresentado com aquele SELECT dinâmico é: bdteste=# select 5/2+5::numeric; ?column? -- 7 (1 row) E o resultado correto seria 7,5. Isso porque o PostgreSQL considera como inteiros os valores sem casa decimal (com ponto .) que não tenha sido definido explicitamente o tipo de dado. Para sua solução funcionar creio que não irá fugir de fazer um pequeno parser na sua expressão aritmética e separar os seus literais e sinais para recompor ela com os casts adequados e só assim usar o EXECUTE. Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Em 12/05/12, Anselmo Silvaanselmo@gmail.com escreveu: Pergunta de newbie de PostgreSQL. Pretendo fazer uma função que me faça um cálculo matemático de um text passado como parâmetro. Algo Assim: CREATE FUNCTION CALCULE (calculo text) RETURNS NUMERIC... Até aí tudo bem. Mas me deparei com uma regra que não entendi direito, mas, deve ter um motivo: A divisão de números inteiros resulta em um número inteiro Meu problema é: Tendo sido dado o seguinte com base na minha função acima: SELECT CALCULE('1/10'); Gostaria de obter o resultado fracionado sem ter de tratar a string passada para converte-las em numeric antes de efetuar a operação. Já busquei em tudo que é lugar mas a resposta é a mesma: Tem de converter ao menos um dos operandos para real ou numeric... Alguém tem alguma idéia mais eficiente? Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Em 12/05/12, Fabrízio de Royes Mellofabriziome...@gmail.com escreveu: Em 12 de maio de 2012 18:02, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado; Essa solução não resolve por completo expressões aritméticas. Se a expressão for, por exemplo: 5/2+5 O resultado que irá ser apresentado com aquele SELECT dinâmico é: bdteste=# select 5/2+5::numeric; ?column? -- 7 (1 row) E o resultado correto seria 7,5. Isso porque o PostgreSQL considera como inteiros os valores sem casa decimal (com ponto .) que não tenha sido definido explicitamente o tipo de dado. Para sua solução funcionar creio que não irá fugir de fazer um pequeno parser na sua expressão aritmética e separar os seus literais e sinais para recompor ela com os casts adequados e só assim usar o EXECUTE. Concordo. Talvez devesse ter escrito uma operação aritmética simples como o exemplificado. Não sei quais são as reais necessidades do Anselmo, pode ser que esta solução simples atenda. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Osvaldo Kussama, para a necessidade do momento eu já tinha feito um RTA do seguinte modo: EXECUTE 'SELECT ' || parametro ||'.0' INTO resultado; quase idêntico à sua sugestão (a sua leva vantagens). O que eu queria era saber se, por curiosidade, havia algo mais estruturado já pronto no próprio SGDB para isso, mas, aparentemente não há devido à minha proposta ser uma violação de alguma regra no cálculo interno que é feito quando da utilização de tais parâmetros. Em 12 de maio de 2012 18:28, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 12/05/12, Fabrízio de Royes Mellofabriziome...@gmail.com escreveu: Em 12 de maio de 2012 18:02, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Para este caso em particular (uma operação aritmética) creio que funcionaria colocar em sua função: EXECUTE 'SELECT ' || parametro ||'::numeric;' INTO resultado; Essa solução não resolve por completo expressões aritméticas. Se a expressão for, por exemplo: 5/2+5 O resultado que irá ser apresentado com aquele SELECT dinâmico é: bdteste=# select 5/2+5::numeric; ?column? -- 7 (1 row) E o resultado correto seria 7,5. Isso porque o PostgreSQL considera como inteiros os valores sem casa decimal (com ponto .) que não tenha sido definido explicitamente o tipo de dado. Para sua solução funcionar creio que não irá fugir de fazer um pequeno parser na sua expressão aritmética e separar os seus literais e sinais para recompor ela com os casts adequados e só assim usar o EXECUTE. Concordo. Talvez devesse ter escrito uma operação aritmética simples como o exemplificado. Não sei quais são as reais necessidades do Anselmo, pode ser que esta solução simples atenda. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Anselmo M. Silva ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Divisão de inteiros com resultado numeric
Le 2012-5-12 16h16, Anselmo Silva a écrit : acredito que tem uma razão para isso, que reconheço não saber Basicamente, é porque a linguagem SQL tem de ter comportamento consistente, e respeitar a definição dos tipos dos dados. Isso não é uma opção, é parte da definição da linguagem SQL. O PostgreSQL tenta seguir essa definição, que é dada pelo padrão ISO SQL mais recente. em algumas situações não é muito prático A questão de se é prático deve ser contextualizada. O SQL é prático se os programas forem claros, consistentes, com poucos erros. O tratamento estrito dos tipos de dados facilitam isso. É um contexto muito diferente daquele de uso duma calculadora. Outros sistemas fazem as conversões implícitas. Há pelo menos dois problemas com isso. Um é que cada um faz conversões de determinada maneira, inconsistente com os outros. Outro é que nem sempre o programador entende o que o sistema fez implicitamente. Para evitar esses dois problemas é que o padrão ISO SQL exige as conversões explícitas. Se o PostgreSQL as abandonasse, desviar-se-a do padrão, tornando o código menos portável, e além disso voltaria a permitir que os programadores introduzissem erros por confiarem em comportamentos implícitos mal compreendidos. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (61) 3546 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral