diff --git a/contrib/pg_freespacemap/Makefile b/contrib/pg_freespacemap/Makefile index d794df2..09d6ff8 100644 --- a/contrib/pg_freespacemap/Makefile +++ b/contrib/pg_freespacemap/Makefile @@ -6,6 +6,8 @@ OBJS = pg_freespacemap.o EXTENSION = pg_freespacemap DATA = pg_freespacemap--1.1.sql pg_freespacemap--1.0--1.1.sql pg_freespacemap--unpackaged--1.0.sql +REGRESS = pg_freespacemap + ifdef USE_PGXS PG_CONFIG = pg_config PGXS := $(shell $(PG_CONFIG) --pgxs) diff --git a/contrib/pg_freespacemap/expected/pg_freespacemap.out b/contrib/pg_freespacemap/expected/pg_freespacemap.out new file mode 100644 index 0000000..cde954d --- /dev/null +++ b/contrib/pg_freespacemap/expected/pg_freespacemap.out @@ -0,0 +1,100 @@ +create extension pg_freespacemap; +create table t1 ( uid integer primary key, uname text not null ); +select * from pg_freespace('t1'); + blkno | avail +-------+------- +(0 rows) + +select * from pg_freespace('t1'::regclass); + blkno | avail +-------+------- +(0 rows) + +select * from pg_freespace('t1', 1); + pg_freespace +-------------- + 0 +(1 row) + +select * from pg_freespace_with_vminfo('t1'); + blkno | avail | is_all_visible +-------+-------+---------------- +(0 rows) + +select * from pg_freespace_with_vminfo('t1'::regclass); + blkno | avail | is_all_visible +-------+-------+---------------- +(0 rows) + +insert into t1 values ( 100, 'postgresql' ); +select * from pg_freespace('t1'); + blkno | avail +-------+------- + 0 | 0 +(1 row) + +select * from pg_freespace('t1', 1); + pg_freespace +-------------- + 0 +(1 row) + +select * from pg_freespace_with_vminfo('t1'); + blkno | avail | is_all_visible +-------+-------+---------------- + 0 | 0 | f +(1 row) + +select * from pg_freespace('t1_pkey'); + blkno | avail +-------+------- + 0 | 0 + 1 | 0 +(2 rows) + +select * from pg_freespace('t1_pkey', 1); + pg_freespace +-------------- + 0 +(1 row) + +select * from pg_freespace('t1_pkey', 2); + pg_freespace +-------------- + 0 +(1 row) + +select * from pg_freespace_with_vminfo('t1_pkey'); + blkno | avail | is_all_visible +-------+-------+---------------- + 0 | 0 | f + 1 | 0 | f +(2 rows) + +vacuum t1; +select * from pg_freespace('t1'); + blkno | avail +-------+------- + 0 | 8096 +(1 row) + +select * from pg_freespace_with_vminfo('t1'); + blkno | avail | is_all_visible +-------+-------+---------------- + 0 | 8096 | t +(1 row) + +select * from pg_freespace('t1_pkey'); + blkno | avail +-------+------- + 0 | 0 + 1 | 0 +(2 rows) + +select * from pg_freespace_with_vminfo('t1_pkey'); + blkno | avail | is_all_visible +-------+-------+---------------- + 0 | 0 | f + 1 | 0 | f +(2 rows) + diff --git a/contrib/pg_freespacemap/sql/pg_freespacemap.sql b/contrib/pg_freespacemap/sql/pg_freespacemap.sql new file mode 100644 index 0000000..79a458d --- /dev/null +++ b/contrib/pg_freespacemap/sql/pg_freespacemap.sql @@ -0,0 +1,29 @@ +create extension pg_freespacemap; + +create table t1 ( uid integer primary key, uname text not null ); + +select * from pg_freespace('t1'); +select * from pg_freespace('t1'::regclass); +select * from pg_freespace('t1', 1); +select * from pg_freespace_with_vminfo('t1'); +select * from pg_freespace_with_vminfo('t1'::regclass); + +insert into t1 values ( 100, 'postgresql' ); + +select * from pg_freespace('t1'); +select * from pg_freespace('t1', 1); +select * from pg_freespace_with_vminfo('t1'); + +select * from pg_freespace('t1_pkey'); +select * from pg_freespace('t1_pkey', 1); +select * from pg_freespace('t1_pkey', 2); +select * from pg_freespace_with_vminfo('t1_pkey'); + +vacuum t1; + +select * from pg_freespace('t1'); +select * from pg_freespace_with_vminfo('t1'); +select * from pg_freespace('t1_pkey'); +select * from pg_freespace_with_vminfo('t1_pkey'); + + diff --git a/contrib/pgstattuple/expected/pgstattuple.out b/contrib/pgstattuple/expected/pgstattuple.out index 44c324d..ca08834 100644 --- a/contrib/pgstattuple/expected/pgstattuple.out +++ b/contrib/pgstattuple/expected/pgstattuple.out @@ -42,3 +42,31 @@ select * from pgstatginindex('test_ginidx'); 1 | 0 | 0 (1 row) +insert into test values ( 100, '{101,201}' ); +select * from pgstattuple('test'); + table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent | all_visible_percent +-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------+--------------------- + 8192 | 1 | 57 | 0.7 | 0 | 0 | 0 | 8096 | 98.83 | 0 +(1 row) + +vacuum test; +select * from pgstattuple('test'); + table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent | all_visible_percent +-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------+--------------------- + 8192 | 1 | 57 | 0.7 | 0 | 0 | 0 | 8096 | 98.83 | 100 +(1 row) + +delete from test; +select * from pgstattuple('test'); + table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent | all_visible_percent +-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------+--------------------- + 8192 | 0 | 0 | 0 | 1 | 57 | 0.7 | 8096 | 98.83 | 0 +(1 row) + +vacuum test; +select * from pgstattuple('test'); + table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent | all_visible_percent +-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------+--------------------- + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 +(1 row) + diff --git a/contrib/pgstattuple/sql/pgstattuple.sql b/contrib/pgstattuple/sql/pgstattuple.sql index 8cb350d..90292f9 100644 --- a/contrib/pgstattuple/sql/pgstattuple.sql +++ b/contrib/pgstattuple/sql/pgstattuple.sql @@ -19,3 +19,12 @@ select pg_relpages('test_pkey'); create index test_ginidx on test using gin (b); select * from pgstatginindex('test_ginidx'); + +insert into test values ( 100, '{101,201}' ); +select * from pgstattuple('test'); +vacuum test; +select * from pgstattuple('test'); +delete from test; +select * from pgstattuple('test'); +vacuum test; +select * from pgstattuple('test');