Re: Why don't we accept exponential format for integers?

From: Bill Moran <wmoran(at)potentialtech(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Josh Berkus <josh(at)agliodbs(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Why don't we accept exponential format for integers?
Date: 2010-12-17 20:16:29
Message-ID: 20101217151629.0db34887.wmoran@potentialtech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

In response to Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:

> Josh Berkus <josh(at)agliodbs(dot)com> writes:
> > postgres=# select '1e+01'::Integer
> > postgres-# ;
> > ERROR: invalid input syntax for integer: "1e+01"
>
> I have never heard of any programming system anywhere that accepts such
> a syntax for integers (assuming it distinguishes integers from other
> numbers at all). I'm not excited about being the first. Why does this
> error surprise you? It doesn't seem particularly different from arguing
> that 1.000 should be considered an integer, which strikes me as a
> seriously bad idea.

But
SELECT 1.000::Integer;
works. And so does
SELECT 1.234::Integer;
which I find just as dangerous as
SELECT '1.234e+01'::Integer;

One of the exciting (but possibly wrong) arguments in favor of this is the
fact that some programming languages will output integers in exponential
notation when the numbers are very large (PHP is the only example that
comes to mind, but it's a pretty common language) which may cause numbers
formatted thusly to be included in queries without the programmers prior
realization.

--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2010-12-17 20:24:14 Re: Why don't we accept exponential format for integers?
Previous Message Tom Lane 2010-12-17 20:15:16 Re: unlogged tables vs. GIST