1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-15 19:15:29 +03:00

COPY's test for read-only transaction was backward; it prohibited COPY TO

where it should prohibit COPY FROM.  Found by Alon Goldshuv.
This commit is contained in:
Tom Lane 2005-10-03 23:43:45 +00:00
parent 4082f5e34f
commit 31d276d0ed
2 changed files with 9 additions and 3 deletions

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.235.2.32 2005/10/03 16:05:09 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.235.2.33 2005/10/03 23:43:42 tgl Exp $
--> -->
<appendix id="release"> <appendix id="release">
@ -41,6 +41,11 @@ length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
<para>In prior releases, the padding of <type>CHAR()</> was incorrect <para>In prior releases, the padding of <type>CHAR()</> was incorrect
because it only padded to the specified number of bytes without because it only padded to the specified number of bytes without
considering how many characters were stored.</para></listitem> considering how many characters were stored.</para></listitem>
<listitem><para>Fix the sense of the test for read-only transaction
in <command>COPY</></para>
<para>The code formerly prohibited <command>COPY TO</>, where it should
prohibit <command>COPY FROM</>.
</para></listitem>
<listitem><para>Fix planning problem with outer-join ON clauses that reference <listitem><para>Fix planning problem with outer-join ON clauses that reference
only the inner-side relation</para></listitem> only the inner-side relation</para></listitem>
<listitem><para>Further fixes for <literal>x FULL JOIN y ON true</> corner <listitem><para>Further fixes for <literal>x FULL JOIN y ON true</> corner

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.213.2.1 2004/01/18 02:15:57 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.213.2.2 2005/10/03 23:43:45 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -752,7 +752,8 @@ DoCopy(const CopyStmt *stmt)
rel = heap_openrv(relation, (is_from ? RowExclusiveLock : AccessShareLock)); rel = heap_openrv(relation, (is_from ? RowExclusiveLock : AccessShareLock));
/* check read-only transaction */ /* check read-only transaction */
if (XactReadOnly && !is_from && !isTempNamespace(RelationGetNamespace(rel))) if (XactReadOnly && is_from &&
!isTempNamespace(RelationGetNamespace(rel)))
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION), (errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
errmsg("transaction is read-only"))); errmsg("transaction is read-only")));