Vacuum full GTT, cluster GTT is already supported in global_temporary_table_v24-pg13.patch.
Here , it is skipping GTT
postgres=# \c foo
You are now connected to database "foo" as user "tushar".
foo=# create global temporary table g123( c1 int) ;
CREATE TABLE
foo=# \q
[tushar@localhost bin]$ ./vacuumdb --full foo
vacuumdb: vacuuming database "foo"
WARNING: skipping vacuum global temp table "g123" because storage is not initialized for current session
The message was inappropriate at some point, so I removed it.
Thanks Wenjing. Please see -if this below behavior is correct
X terminal -
postgres=# create global temp table foo1(n int); CREATE TABLE postgres=# insert into foo1 values (generate_series(1,10)); INSERT 0 10 postgres=# vacuum full ; VACUUM
Y Terminal -
[tushar@localhost bin]$ ./vacuumdb -f postgres vacuumdb: vacuuming database "postgres" WARNING: global temp table oldest relfrozenxid 3276 is the oldest in the entire db DETAIL: The oldest relfrozenxid in pg_class is 3277 HINT: If they differ greatly, please consider cleaning up the data in global temp table. WARNING: global temp table oldest relfrozenxid 3276 is the oldest in the entire db DETAIL: The oldest relfrozenxid in pg_class is 3277 HINT: If they differ greatly, please consider cleaning up the data in global temp table.
I improved the logic of the warning message so that when the gap between relfrozenxid of GTT is small,