WITH wms_monitor_log AS (
INSERT INTO
data_monitoring_wms (doctype)
VALUES
('Income') RETURNING id),
wms_monitor_log_dale as (
INSERT into
data_monitoring_wms_dale (fk1187, fk1158)
SELECT
wml.id,
1052
FROM
wms_monitor_log wml RETURNING fk1187 as log_id)
INSERT into data_monitoring_wms_dale (fk1187, fk1184)
SELECT wmldale.log_id, 100 FROM wms_monitor_log_dale wmldale
union
SELECT wmldale.log_id, 200 FROM wms_monitor_log_dale wmldale
union
SELECT wmldale.log_id, 300 FROM wms_monitor_log_dale wmldale
Я бы предположил, что CTE wms_monitor_log_dale будет вызываться 3 раза. Но на самом деле это называется только один раз. Это из-за какой-то оптимизации плана в пост-прогрессе или результат всегда будет одинаковым?