]> granicus.if.org Git - postgresql/commitdiff
COPY's test for read-only transaction was backward; it prohibited COPY TO
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 3 Oct 2005 23:43:09 +0000 (23:43 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 3 Oct 2005 23:43:09 +0000 (23:43 +0000)
where it should prohibit COPY FROM.  Found by Alon Goldshuv.

doc/src/sgml/release.sgml
src/backend/commands/copy.c

index f0f6d015a6c7a70173a98e8b495ee5206ce60347..d1dd6f21186c74777e5fa6af3caec5803fd5ccfd 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.387 2005/10/03 16:04:13 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.388 2005/10/03 23:43:06 tgl Exp $
 
 Typical markup:
 
@@ -2097,6 +2097,11 @@ DATABASE</></para>
 <para>This should fix recent reports of <quote>index is not a btree</>
 failures when a crash occurs shortly after <command>CREATE
 DATABASE</>.</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>Handle consecutive embedded newlines in <command>COPY</>
 CSV-mode input</para></listitem>
 <listitem><para>Fix <function>date_trunc(week)</> for dates near year
@@ -4868,6 +4873,11 @@ length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
 <para>In prior releases, the padding of <type>CHAR()</> was incorrect
 because it only padded to the specified number of bytes without
 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
 only the inner-side relation</para></listitem>
 <listitem><para>Further fixes for <literal>x FULL JOIN y ON true</> corner
index c7b98c4da6be877360175ebb390e97b7e643ec6a..cd215cb4154cf61789042dedfaf72908a24ed2a6 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.251 2005/09/24 22:54:36 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.252 2005/10/03 23:43:09 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -857,7 +857,7 @@ DoCopy(const CopyStmt *stmt)
                                                          (is_from ? RowExclusiveLock : AccessShareLock));
 
        /* check read-only transaction */
-       if (XactReadOnly && !is_from &&
+       if (XactReadOnly && is_from &&
                !isTempNamespace(RelationGetNamespace(cstate->rel)))
                ereport(ERROR,
                                (errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),