Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > Tom Lane wrote:
> >> If that gives the right answer then the NUMERIC code is off the hook,
> >> and what you've got is a strange limitation on output column length.
>
> > test=> select length((pow(10::numeric, 131071))::text);
> > length
> > --------
> > 131089
> > (1 row)
>
> > Looks good. From psql I just tried:
>
> > SELECT repeat('x', 4000);
>
> > and got 4k x's, and SELECT repeat('x', 8000) returns 8k x's, so that works.
>
> Curiouser and curiouser. How about if you repeat 4k or 8k '1's? If the
1's print just fine too.
> behavior is different for letters and digits then I'd look at the column
> justification logic in psql's printing code.
Again, I checked on a stand-alone backend and saw the same failures, so
it isn't psql.
Wow, check this out:
test=> SELECT CAST (pow(10::numeric, 10000) + 1 AS TEXT)
It works fine! I have all the digits, and the trailing 1.0:
000001.0000000000000000
while SELECT pow(10::numeric, 10000) fails.
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073