diff options
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); |