Thread: Vacuum freeze help

Vacuum freeze help

From
Ben Kammer
Date:
Hello,

I have a postgresql 9.5.4 cluster and was testing with vacuum freeze. I expected the value of xmin to be set to '2' when I vacuum a particular table with the VACUUM FREEZE command. But for some reason this doesn't happen. Here is my small test:

test=# create table t1 (col1 int, col2 int);
CREATE TABLE
test=# insert into t1 values (1,2), (3,4);
INSERT 0 2
test=# select xmin, xmax, * from t1;
 xmin | xmax | col1 | col2 
------+------+------+------
 1845 |    0 |    1 |    2
 1845 |    0 |    3 |    4
(2 rows)

test=# vacuum freeze t1;
VACUUM
test=# select xmin, xmax, * from t1;
 xmin | xmax | col1 | col2 
------+------+------+------
 1845 |    0 |    1 |    2
 1845 |    0 |    3 |    4
(2 rows)
 
As you can see from the results of the last select statement the value of xmin is 1845 instead of 2 which I expected it to be. On my 9.0 cluster this works fine. Has this behavior of postgresql been changed since 9.0? Can anyone explain this?


Ben.



Re: Vacuum freeze help

From
Tom Lane
Date:
Ben Kammer <b_a_kammer@yahoo.co.uk> writes:
> I have a postgresql 9.5.4 cluster and was testing with vacuum freeze. I
> expected the value of xmin to be set to '2' when I vacuum a particular
> table with the VACUUM FREEZE command.

That doesn't happen anymore; freezing just sets an info bit that indicates
that the xmin should be treated as old.

            regards, tom lane