RE: Parallel INSERT (INTO ... SELECT ...)
| От | Hou, Zhijie | 
|---|---|
| Тема | RE: Parallel INSERT (INTO ... SELECT ...) | 
| Дата | |
| Msg-id | eaeb347d297b4be6b2a660b89cdffb64@G08CNEXMBPEKD05.g08.fujitsu.local обсуждение исходный текст | 
| Ответ на | Re: Parallel INSERT (INTO ... SELECT ...) (Greg Nancarrow <gregn4422@gmail.com>) | 
| Ответы | Re: Parallel INSERT (INTO ... SELECT ...) | 
| Список | pgsql-hackers | 
Hi, I took a look into the hasModifyingCTE bugfix recently, and found a possible bug case without the parallel insert patch. --------------------------------- drop table if exists test_data1; create table test_data1(a int, b int) ; insert into test_data1 select generate_series(1,1000), generate_series(1,1000); set force_parallel_mode=on; CREATE TEMP TABLE bug6051 AS select i from generate_series(1,3) as i; SELECT * FROM bug6051; CREATE RULE bug6051_ins AS ON INSERT TO bug6051 DO INSTEAD select a as i from test_data1; WITH t1 AS ( DELETE FROM bug6051 RETURNING * ) INSERT INTO bug6051 SELECT * FROM t1; ******* ***ERROR: cannot assign XIDs during a parallel operation ******* --------------------------------- I debugged it and it did have modifycte in the parsetree after rewrite. I think if we can properly set the hasModifyingCTE, we can avoid this error by not consider parallel for this. Thoughts ? Best regards, houzj
В списке pgsql-hackers по дате отправления: