Re: Re: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: Re: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки |
Дата | |
Msg-id | 20151020124556.GA12248@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | Re: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки (Andrey Asyakin <asan999@gmail.com>) |
Список | pgsql-ru-general |
> Я по другому понял вопрос, может ли в запросе insert .. select записи > вставиться не в том порядке, в котором их возвращает select. Насколько я понял, > нет, потому что для инсерта не создается какого то особого плана, план > создается для селекта, просто вместо отправки клиенту записи пишутся в таблицу. Да вопрос именно в этом. интересно: может ли выборка секции WITH быть пересортирована в процессе выполнения другого подзапроса WITH WITH "a" AS ( SELECT .. ), "b" AS ( SELECT ... "a" ) INSERT INTO ... SELECT * FROM "a"; это первый непонятный кейз и второй может ли выборка секции WITH быть пересортирована в процессе хранения/просто выборки из нее: SELECT * FROM "a" строит же план? или всегда выберет из виртуальной таблицы в том порядке в котором выбралось? то есть в общем-то хочется понимания о том как устроено хранилище промежуточных результатов WITH: что там, plain массив или может быть например hash? > что то я не пойму насчет WITH, зачем он? если формируешь сам, чем не устраивает > INSERT TO "billing_log" > ("rollback", "sum", "txnname") > VALUES > (TRUE, -123, 'заказ 342'), > (FALSE, 10, 'заказ 342') ну тут я развернул для ясности что я хочу получить, но на практике оба значения - выборки with -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Вложения
В списке pgsql-ru-general по дате отправления: