|
11 | 11 | *script that reproduces the schema in terms of SQL that is understood
|
12 | 12 | *by PostgreSQL
|
13 | 13 | *
|
| 14 | + *Note that pg_dump runs in a serializable transaction, so it sees a |
| 15 | + *consistent snapshot of the database including system catalogs. |
| 16 | + *However, it relies in part on various specialized backend functions |
| 17 | + *like pg_get_indexdef(), and those things tend to run on SnapshotNow |
| 18 | + *time, ie they look at the currently committed state. So it is |
| 19 | + *possible to get 'cache lookup failed' error if someone performs DDL |
| 20 | + *changes while a dump is happening. The window for this sort of thing |
| 21 | + *is from the beginning of the serializable transaction to |
| 22 | + *getSchemaData() (when pg_dump acquires AccessShareLock on every |
| 23 | + *table it intends to dump). It isn't very large, but it can happen. |
| 24 | + * |
| 25 | + *http://archives.postgresql.org/pgsql-bugs/2010-02/msg00187.php |
| 26 | + * |
14 | 27 | * IDENTIFICATION
|
15 |
| - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.576 2010/03/0320:10:48 heikki Exp $ |
| 28 | + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.577 2010/03/0323:38:44 momjian Exp $ |
16 | 29 | *
|
17 | 30 | *-------------------------------------------------------------------------
|
18 | 31 | */
|
|