aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2003-08-24 21:02:43 +0000
committerPeter Eisentraut <peter_e@gmx.net>2003-08-24 21:02:43 +0000
commit693aad413b16aac85fb9a4e792d84cd87778aa9e (patch)
treec97d16baac063b5d552f26ca2028372ad9e04e90
parentc3664c0c007931102727a016208ca604123622e0 (diff)
downloadpostgresql-693aad413b16aac85fb9a4e792d84cd87778aa9e.tar.gz
postgresql-693aad413b16aac85fb9a4e792d84cd87778aa9e.zip
Change warnings for non-existing or pre-existing cursors to errors.
-rw-r--r--doc/src/sgml/ref/close.sgml6
-rw-r--r--doc/src/sgml/ref/declare.sgml7
-rw-r--r--doc/src/sgml/ref/fetch.sgml4
-rw-r--r--src/backend/commands/portalcmds.c23
-rw-r--r--src/backend/utils/mmgr/portalmem.c6
-rw-r--r--src/test/regress/expected/portals.out2
6 files changed, 21 insertions, 27 deletions
diff --git a/doc/src/sgml/ref/close.sgml b/doc/src/sgml/ref/close.sgml
index c86e945a3dc..63b2f15d16c 100644
--- a/doc/src/sgml/ref/close.sgml
+++ b/doc/src/sgml/ref/close.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/close.sgml,v 1.15 2003/08/17 04:46:00 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/close.sgml,v 1.16 2003/08/24 21:02:42 petere Exp $
PostgreSQL documentation
-->
@@ -70,10 +70,10 @@ CLOSE <replaceable class="PARAMETER">cursor</replaceable>
</varlistentry>
<varlistentry>
- <term><computeroutput>WARNING: PerformPortalClose: portal "<replaceable class="PARAMETER">cursor</replaceable>" not found</computeroutput></term>
+ <term><computeroutput>ERROR: cursor "<replaceable class="PARAMETER">cursor</replaceable>" does not exist</computeroutput></term>
<listitem>
<para>
- This warning is given if <replaceable
+ Message returned if <replaceable
class="PARAMETER">cursor</replaceable> is not declared or has
already been closed.
</para>
diff --git a/doc/src/sgml/ref/declare.sgml b/doc/src/sgml/ref/declare.sgml
index 0aaf0dde43d..14ce71f4a66 100644
--- a/doc/src/sgml/ref/declare.sgml
+++ b/doc/src/sgml/ref/declare.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.24 2003/05/04 02:23:16 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.25 2003/08/24 21:02:42 petere Exp $
PostgreSQL documentation
-->
@@ -202,11 +202,10 @@ DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INS
</varlistentry>
<varlistentry>
- <term><computeroutput>WARNING: Closing pre-existing portal "<replaceable class="parameter">cursorname</replaceable>"</computeroutput></term>
+ <term><computeroutput>ERROR: cursor "<replaceable class="parameter">cursorname</replaceable>" already exists</computeroutput></term>
<listitem>
<para>
- This message is reported if a cursor with the same name already
- exists. The previous definition is discarded.
+ This error occurs if a cursor with the same name already exists.
</para>
</listitem>
</varlistentry>
diff --git a/doc/src/sgml/ref/fetch.sgml b/doc/src/sgml/ref/fetch.sgml
index 305e5fc02cc..05960eb2e0f 100644
--- a/doc/src/sgml/ref/fetch.sgml
+++ b/doc/src/sgml/ref/fetch.sgml
@@ -1,5 +1,5 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.29 2003/05/04 02:23:16 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/fetch.sgml,v 1.30 2003/08/24 21:02:43 petere Exp $
PostgreSQL documentation
-->
@@ -281,7 +281,7 @@ where <replaceable class="PARAMETER">direction</replaceable> can be empty or one
<variablelist>
<varlistentry>
- <term><computeroutput>WARNING: PerformPortalFetch: portal "<replaceable class="PARAMETER">cursor</replaceable>" not found</computeroutput></term>
+ <term><computeroutput>ERROR: cursor "<replaceable class="PARAMETER">cursor</replaceable>" does not exist</computeroutput></term>
<listitem>
<para>
There is no cursor with the specified name.
diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c
index c11b48db4c1..27cd7503c30 100644
--- a/src/backend/commands/portalcmds.c
+++ b/src/backend/commands/portalcmds.c
@@ -14,7 +14,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/portalcmds.c,v 1.23 2003/08/08 21:41:32 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/portalcmds.c,v 1.24 2003/08/24 21:02:43 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -88,10 +88,9 @@ PerformCursorOpen(DeclareCursorStmt *stmt)
/*
* Create a portal and copy the query and plan into its memory
- * context. (If a duplicate cursor name already exists, warn and drop
- * it.)
+ * context.
*/
- portal = CreatePortal(stmt->portalname, true, false);
+ portal = CreatePortal(stmt->portalname, false, false);
oldContext = MemoryContextSwitchTo(PortalGetHeapMemory(portal));
@@ -168,13 +167,10 @@ PerformPortalFetch(FetchStmt *stmt,
portal = GetPortalByName(stmt->portalname);
if (!PortalIsValid(portal))
{
- /* FIXME: shouldn't this be an ERROR? */
- ereport(WARNING,
+ ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_CURSOR),
- errmsg("portal \"%s\" does not exist", stmt->portalname)));
- if (completionTag)
- strcpy(completionTag, stmt->ismove ? "MOVE 0" : "FETCH 0");
- return;
+ errmsg("cursor \"%s\" does not exist", stmt->portalname)));
+ return; /* keep compiler happy */
}
/* Adjust dest if needed. MOVE wants destination None */
@@ -218,11 +214,10 @@ PerformPortalClose(const char *name)
portal = GetPortalByName(name);
if (!PortalIsValid(portal))
{
- ereport(WARNING,
+ ereport(ERROR,
(errcode(ERRCODE_UNDEFINED_CURSOR),
- errmsg("portal \"%s\" does not exist", name),
- errfunction("PerformPortalClose"))); /* for ecpg */
- return;
+ errmsg("cursor \"%s\" does not exist", name)));
+ return; /* keep compiler happy */
}
/*
diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c
index 3e51ad2b36c..00bf3e23d23 100644
--- a/src/backend/utils/mmgr/portalmem.c
+++ b/src/backend/utils/mmgr/portalmem.c
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/portalmem.c,v 1.61 2003/08/04 02:40:08 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/portalmem.c,v 1.62 2003/08/24 21:02:43 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -167,11 +167,11 @@ CreatePortal(const char *name, bool allowDup, bool dupSilent)
if (!allowDup)
ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_CURSOR),
- errmsg("portal \"%s\" already exists", name)));
+ errmsg("cursor \"%s\" already exists", name)));
if (!dupSilent)
ereport(WARNING,
(errcode(ERRCODE_DUPLICATE_CURSOR),
- errmsg("closing pre-existing portal \"%s\"",
+ errmsg("closing existing cursor \"%s\"",
name)));
PortalDrop(portal, false);
}
diff --git a/src/test/regress/expected/portals.out b/src/test/regress/expected/portals.out
index 245edffe543..b8f83418982 100644
--- a/src/test/regress/expected/portals.out
+++ b/src/test/regress/expected/portals.out
@@ -737,4 +737,4 @@ DECLARE foo26 CURSOR WITH HOLD FOR SELECT * FROM tenk1;
ROLLBACK;
-- should fail
FETCH FROM foo26;
-WARNING: portal "foo26" does not exist
+ERROR: cursor "foo26" does not exist