| -- @Description Ensures that a vacuum with serializable works ok |
| -- |
| DROP TABLE IF EXISTS ao; |
| DROP TABLE IF EXISTS ao2; |
| CREATE TABLE ao (a INT, b INT) USING @amname@; |
| CREATE TABLE ao2 (a INT) USING @amname@; |
| INSERT INTO ao SELECT i as a, i as b FROM generate_series(1, 100) AS i; |
| |
| DELETE FROM ao WHERE a <= 30; |
| SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE; |
| SELECT COUNT(*) FROM ao; |
| SELECT segno, tupcount FROM gp_ao_or_aocs_seg('ao'); |
| VACUUM ao; |
| -- in case there's autovacuum worker running in the backend, the aoseg will not be dropped which has state = 2 |
| SELECT segno, tupcount FROM gp_ao_or_aocs_seg('ao') where state = 1 and tupcount > 0; |
| SELECT COUNT(*) FROM ao; |