Skip to content

[Bug] gp_aoseg_name may return wrong value.  #215

Description

@shmiwy

Cloudberry Database version

No response

What happened

SET gp_create_table_random_default_distribution=off;
DROPTABLE IF EXISTS foo;
CREATETABLEfoo (a INT, b INT, c CHAR(128)) WITH (appendonly=true);
CREATEINDEXfoo_indexON foo(b);
INSERT INTO foo SELECT i as a, 1as b, 'hello world'as c FROM generate_series(1, 100) AS i;
SET optimizer=off;
VACUUM foo;
DELETEFROM foo WHERE a <4;
SELECTCOUNT(*) FROM foo;
SELECTcount(*) FROM pg_class WHERE relname='foo';
SELECT segno, tupcount, state FROM gp_aoseg_name('foo');
VACUUM full foo;
SELECT segno, tupcount, state FROM gp_aoseg_name('foo');
DELETEFROM foo WHERE a <12;
SELECT segno, tupcount, state FROM gp_aoseg_name('foo'); dropfunction gp_aoseg_name;

sql with gp_aoseg_name appears to return some useless rows (tupcount = 0)

gpadmin=# SELECT COUNT(*) FROM foo;
count
-------
97
(1 row)
gpadmin=#
gpadmin=# SELECT count(*) FROM pg_class WHERE relname='foo';
count
-------
1
(1 row)
gpadmin=#
gpadmin=# SELECT segno, tupcount, state FROM gp_aoseg_name('foo');
segno | tupcount | state
-------+----------+-------
1 | 100 | 1
2 | 0 | 1
3 | 0 | 1
4 | 0 | 1
(4 rows)
gpadmin=# VACUUM full foo;
VACUUM
gpadmin=# SELECT segno, tupcount, state FROM gp_aoseg_name('foo');
segno | tupcount | state
-------+----------+-------
1 | 25 | 1
2 | 72 | 1
3 | 0 | 1
4 | 0 | 1
(4 rows)
gpadmin=# DELETE FROM foo WHERE a < 12;
DELETE 8
gpadmin=# SELECT segno, tupcount, state FROM gp_aoseg_name('foo');
segno | tupcount | state
-------+----------+-------
1 | 25 | 1
2 | 72 | 1
3 | 0 | 1
4 | 0 | 1
(4 rows)

What you think should happen instead

There should be no rows with tupcount=0

How to reproduce

rerun the sql.

Operating System

centos7

Anything else

No response

Are you willing to submit PR?

  • Yes, I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Labels

type: BugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions