diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2003-01-10 22:03:30 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2003-01-10 22:03:30 +0000 |
commit | b65cd562402ed9d3206d501cc74dc38bc421b2ce (patch) | |
tree | ea76281e366d937c8d089f3029c894af33cad734 /src/backend/commands/copy.c | |
parent | b7ca9bdf187887e8e4636ecf117ffc7837f15dbe (diff) |
Read-only transactions, as defined in SQL.
Diffstat (limited to 'src/backend/commands/copy.c')
-rw-r--r-- | src/backend/commands/copy.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index fd8c6b83a82..91386eeb2cc 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.187 2002/12/15 16:17:38 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.188 2003/01/10 22:03:27 petere Exp $ * *------------------------------------------------------------------------- */ @@ -348,6 +348,10 @@ DoCopy(const CopyStmt *stmt) */ rel = heap_openrv(relation, (is_from ? RowExclusiveLock : AccessShareLock)); + /* check read-only transaction */ + if (XactReadOnly && !is_from && !isTempNamespace(RelationGetNamespace(rel))) + elog(ERROR, "transaction is read-only"); + /* Check permissions. */ aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(), required_access); |