Fix subtransaction behavior for large objects, temp namespace, files,
Tom Lane <tgl@sss.pgh.pa.us>
Fix subtransaction behavior for large objects, temp namespace, files, password/group files. Also allow read-only subtransactions of a read-write parent, but not vice versa. These are the reasonably noncontroversial parts of Alvaro's recent mop-up patch, plus further work on large objects to minimize use of the TopTransactionResourceOwner.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/transam/xact.c | modified | +65 −16 |
| src/backend/catalog/namespace.c | modified | +40 −7 |
| src/backend/commands/user.c | modified | +71 −22 |
| src/backend/libpq/be-fsstubs.c | modified | +57 −16 |
| src/backend/storage/file/fd.c | modified | +150 −59 |
| src/backend/storage/large_object/inv_api.c | modified | +86 −36 |
| src/backend/storage/lmgr/lmgr.c | modified | +8 −8 |
| src/backend/utils/cache/inval.c | modified | +3 −3 |
| src/backend/utils/misc/guc.c | modified | +10 −5 |
| src/backend/utils/time/tqual.c | modified | +54 −11 |
| src/bin/psql/tab-complete.c | modified | +2 −2 |
| src/include/catalog/namespace.h | modified | +3 −1 |
| src/include/commands/user.h | modified | +3 −1 |
| src/include/libpq/be-fsstubs.h | modified | +5 −3 |
| src/include/storage/fd.h | modified | +3 −1 |
| src/include/storage/large_object.h | modified | +10 −12 |
| src/include/utils/inval.h | modified | +2 −2 |