> Я по другому понял вопрос, может ли в запросе 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