momjian@postgresql.org (Bruce Momjian - CVS) writes:
> Major improvement in CLUSTER which preserves table characteristics using
> relfilenode.
This patch is still a few bricks shy of a load. In particular,
it completely destroys TOASTed data.
regression=# create table f11 (f1 int unique, f2 text);
NOTICE: CREATE TABLE / UNIQUE will create implicit index 'f11_f1_key' for table 'f11'
CREATE TABLE
regression=# insert into f11 values(0, repeat('xyzzy', 100000));
INSERT 691177 1
regression=# select f1,length(f2) from f11;
f1 | length
----+--------
0 | 500000
(1 row)
regression=# cluster f11_f1_key on f11;
CLUSTER
regression=# select f1,length(f2) from f11;
ERROR: Relation 691181 does not exist
As-is the patch is entirely unacceptable. Ideally we should find a way
to move tuples into the new table without invoking the TOAST code at
all, but I'm not sure what that will entail.
regards, tom lane