postgresql 9.0.3: parallel restore fails with comments on indices
От | Arnd Hannemann |
---|---|
Тема | postgresql 9.0.3: parallel restore fails with comments on indices |
Дата | |
Msg-id | 4D5E3264.7060705@credativ.de обсуждение исходный текст |
Ответы |
Re: postgresql 9.0.3: parallel restore fails with comments on indices
|
Список | pgsql-bugs |
Hi, postgres version: 9.0.3 OS: debian squeeze 64bit if pg_restore is used with -jN it fails if the dump has comments on indices. Steps to reproduce (db testdb): CREATE DATABASE testdb; \c testdb CREATE TABLE tab (id INT); INSERT INTO tab VALUES (1); CREATE INDEX idx ON tab USING btree (id); COMMENT ON INDEX idx IS 'first index'; (pgsql-pg_9.0.3)aha@abt:~/bin$ pg_restore --version pg_restore (PostgreSQL) 9.0.3 (pgsql-pg_9.0.3)aha@abt:~/bin$ pg_dump -F c testdb > testdb.pg_dump (pgsql-pg_9.0.3)aha@abt:~/bin$ pg_restore -j2 -c -d testdb testdb.pg_dump ERROR: relation "idx" does not exist STATEMENT: COMMENT ON INDEX idx IS 'first index'; pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 1784; 0 0 COMMENT INDEX idx aha pg_restore: [archiver (db)] could not execute query: ERROR: relation "idx" does not exist Command was: COMMENT ON INDEX idx IS 'first index'; WARNING: errors ignored on restore: 1 (pgsql-pg_9.0.3)aha@abt:~/bin$ pg_restore -c -d testdb testdb.pg_dump (pgsql-pg_9.0.3)aha@abt:~/bin$ echo $? 0 The problem seems to be a false assumption in pg_backup_archiver.c: 3200 for (next_work_item = AH->toc->next; next_work_item != AH->toc; next_work_item = next_work_item->next) 3201 { 3202 /* Non-PRE_DATA items are just ignored for now */ 3203 if (next_work_item->section == SECTION_DATA || 3204 next_work_item->section == SECTION_POST_DATA) 3205 continue; 3206 3207 ahlog(AH, 1, "processing item %d %s %s\n", 3208 next_work_item->dumpId, 3209 next_work_item->desc, next_work_item->tag); 3210 3211 (void) restore_toc_entry(AH, next_work_item, ropt, false); 3212 3213 /* there should be no touch of ready_list here, so pass NULL */ 3214 reduce_dependencies(AH, next_work_item, NULL); 3215 } Comments are in SECTION_NONE so they get restored here regardless of dependencies, which is obviously wrong because the comment on an INDEX depends on the INDEX itself and the INDEX is in SECTION_POST_DATA Best regards Arnd -- Arnd Hannemann credativ GmbH, HRB Mönchengladbach 12080 Hohenzollernstr. 133, 41061 Mönchengladbach Geschäftsführung: Dr. Michael Meskes, Jörg Folz
В списке pgsql-bugs по дате отправления: