Re: Clustered table order is not preserved on insert

Поиск
Список
Период
Сортировка
От Andrus
Тема Re: Clustered table order is not preserved on insert
Дата
Msg-id e2ojqe$17e4$1@news.hub.org
обсуждение исходный текст
Ответ на Clustered table order is not preserved on insert  ("Andrus" <eetasoft@online.ee>)
Ответы Re: Clustered table order is not preserved on insert  ("Jim Buttafuoco" <jim@contactbda.com>)
Список pgsql-general
> You are never guaranteed any order in a result set unless you use
> ORDER BY in the query.

I cannot use order by since postgres must generate new values for id column.
For this case, id column must not exist in insertable table.

> Because PG treats UPDATE as DELETE + INSERT,
> the table ordering changes all the time.

This is excellent explanation! Thank you.

I changed by code so that clustering is performed after UPDATE command:

CREATE temp TABLE tempreport AS
      SELECT * FROM report
      WHERE reportname='oldr';

UPDATE tempreport SET reportname='newr';
CREATE TEMP TABLE t2 AS SELECT * FROM tempreport ORDER BY id;

ALTER TABLE t2 DROP COLUMN id;
insert into report SELECT * FROM t2;



Will DROP COLUMN preserve table clustering ?

Is it reasonable to  expect that clustered table is inserted in pyhical
order ?
Is it OK to use this code ?

Andrus.



В списке pgsql-general по дате отправления:

Предыдущее
От: Holger Zwingmann
Дата:
Сообщение: Moving a data base between differnt OS
Следующее
От: "Andrus"
Дата:
Сообщение: Re: Clustered table order is not preserved on insert