Обсуждение: BUG #15950: pg_freespace.avail is 0
The following bug has been logged on the website:
Bug reference: 15950
Logged by: Daniel Adeniji
Email address: daniel_adeniji@hotmail.com
PostgreSQL version: 11.4
Operating system: Windows 10
Description:
Issued the query pasted below :-
===============================
with cteSetting
(
name
, setting
)
as
(
select
name
, setting::integer
from pg_catalog.pg_settings
where name = 'block_size'
)
SELECT
tblN.nspname
as "schema"
, tblC.relname
, avg(tblC.relpages)::int
as relpages
, avg(tblC.reltuples)::int
as reltuples
, count(*) as cnt
, pg_size_pretty
(
cast
(
avg(tblPGFS.avail) as bigint
)
)
as "Av. freespace size"
/*
max(cteSBS.setting)
as "blockSize"
*/
, round
(
100
* avg
(
tblPGFS.avail
)
/
(
avg(cteSBS.setting)::int
)
,2
) as "Av. freespace ratio"
FROM pg_catalog.pg_class tblC
join pg_catalog.pg_namespace tblN
on tblC.relnamespace = tblN.oid
inner join pg_freespace(tblC.oid) tblPGFS
on TRUE
inner join cteSetting cteSBS
on cteSBS.name = 'block_size'
where tblC.relkind = 'r'
and tblN.nspname not in
(
'information_schema'
, 'pg_catalog'
)
GROUP BY
tblN.nspname
, tblC.relname
ORDER BY
tblN.nspname
, tblC.relname
;
Result :-
=========
1) pg_freespace.avail is 0
On Mon, Aug 12, 2019 at 2:08 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 15950
Logged by: Daniel Adeniji
Email address: daniel_adeniji@hotmail.com
PostgreSQL version: 11.4
Operating system: Windows 10
Description:
Issued the query pasted below :-
...
Result :-
=========
1) pg_freespace.avail is 0
Your query didn't even return pg_freespace.avail. It returned some convoluted thing that might depend on it.
Why is this a bug? Why is 0 wrong? What should it be instead? If pg_freespace.avail is wrong, why not how a query that shows that, rather than something else tangentially related to it? What is the actual output of the query you do show?
Cheers,
Jeff
Jeff :-
Sorry that I did not provide ore information.
I was hoping the issue will be easy to re-create.
Here are the steps to re create :-
- I Created a table
- Added records to it
- Updated and deleted records, hoping to create free pages
I have documented same here :-
PostgreSQL :- Create free pages in Table
Best,
Daniel Adeniji
From: Daniel Adeniji <daniel_adeniji@hotmail.com>
Sent: Monday, August 12, 2019 2:04 PM
To: Jeff Janes <jeff.janes@gmail.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #15950: pg_freespace.avail is 0
Sent: Monday, August 12, 2019 2:04 PM
To: Jeff Janes <jeff.janes@gmail.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #15950: pg_freespace.avail is 0
Jeff :-
Sorry :-
Here are the steps to re create :-
- I Created a table
- Added records to it
- Updated and deleted records, hoping to create free pages
I have documented same here.
PostgreSQL :- Create free pages in Table
Sorry it is my first time creating a bug/issue and I am not really used to the forum.
Best,
Daniel Adeniji
Daniel Adeniji
From: Jeff Janes <jeff.janes@gmail.com>
Sent: Monday, August 12, 2019 1:38 PM
To: daniel_adeniji@hotmail.com <daniel_adeniji@hotmail.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #15950: pg_freespace.avail is 0
Sent: Monday, August 12, 2019 1:38 PM
To: daniel_adeniji@hotmail.com <daniel_adeniji@hotmail.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #15950: pg_freespace.avail is 0
On Mon, Aug 12, 2019 at 2:08 PM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 15950
Logged by: Daniel Adeniji
Email address: daniel_adeniji@hotmail.com
PostgreSQL version: 11.4
Operating system: Windows 10
Description:
Issued the query pasted below :-
...
Result :-
=========
1) pg_freespace.avail is 0
Your query didn't even return pg_freespace.avail. It returned some convoluted thing that might depend on it.
Why is this a bug? Why is 0 wrong? What should it be instead? If pg_freespace.avail is wrong, why not how a query that shows that, rather than something else tangentially related to it? What is the actual output of the query you do show?
Cheers,
Jeff