Обсуждение: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer

Поиск
Список
Период
Сортировка

pgstatindex still throws ERROR: value "3220078592" is out of range for type integer

От
Dave Cramer
Дата:
I noted on line 169 that max_avail is still an int ? Where else would
it be having problems ?

Dave


Re: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer

От
Takahiro Itagaki
Дата:
Dave Cramer <pg@fastcrypt.com> wrote:

> I noted on line 169 that max_avail is still an int ? Where else would
> it be having problems ?

It should not a problem because the local variable only stores byte
size in a page. It will be at most only BLCKSZ (=8192).

I wonder why you had "ERROR: value ... is out of range for type integer"
message because we don't use any integer data types for sizes in
pgstatindex. The error should have been thrown by SQL typin functions
rather than C routines.

CREATE OR REPLACE FUNCTION pgstatindex(IN relname text,   OUT version INT,   OUT tree_level INT,   OUT index_size
BIGINT,  OUT root_block_no BIGINT,   OUT internal_pages BIGINT,   OUT leaf_pages BIGINT,   OUT empty_pages BIGINT,
OUTdeleted_pages BIGINT,   OUT avg_leaf_density FLOAT8,   OUT leaf_fragmentation FLOAT8)
 
AS 'MODULE_PATHNAME', 'pgstatindex'
LANGUAGE C STRICT;

Regards,
---
Takahiro Itagaki
NTT Open Source Software Center




Re: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer

От
Dave Cramer
Дата:
On Mon, Jun 7, 2010 at 8:30 PM, Takahiro Itagaki
<itagaki.takahiro@oss.ntt.co.jp> wrote:
>
> Dave Cramer <pg@fastcrypt.com> wrote:
>
>> I noted on line 169 that max_avail is still an int ? Where else would
>> it be having problems ?
>
> It should not a problem because the local variable only stores byte
> size in a page. It will be at most only BLCKSZ (=8192).
>
> I wonder why you had "ERROR: value ... is out of range for type integer"
> message because we don't use any integer data types for sizes in
> pgstatindex. The error should have been thrown by SQL typin functions
> rather than C routines.
>
Takahiro,

Yes, this was the problem. I patched the C code but did not change the
functions.

Thanks,

Dave