Re: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer - Mailing list pgsql-hackers

From Takahiro Itagaki
Subject Re: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer
Date
Msg-id 20100608093007.91F4.52131E4D@oss.ntt.co.jp
Whole thread Raw
In response to pgstatindex still throws ERROR: value "3220078592" is out of range for type integer  (Dave Cramer <pg@fastcrypt.com>)
Responses Re: pgstatindex still throws ERROR: value "3220078592" is out of range for type integer
List pgsql-hackers
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




pgsql-hackers by date:

Previous
From: KaiGai Kohei
Date:
Subject: Re: [PATCH] Fix leaky VIEWs for RLS
Next
From: Andrew Dunstan
Date:
Subject: Re: Working with PostgreSQL enums in C code