mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Code review for SELECT INTO STRICT patch: use saner choices of error
SQLSTATEs, fix some documentation problems.
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
*
|
||||
* Copyright (c) 2003-2006, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/utils/errcodes.h,v 1.19 2006/03/05 15:59:07 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/utils/errcodes.h,v 1.20 2006/06/16 23:29:26 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -331,6 +331,8 @@
|
||||
/* Class P0 - PL/pgSQL Error (PostgreSQL-specific error class) */
|
||||
#define ERRCODE_PLPGSQL_ERROR MAKE_SQLSTATE('P','0', '0','0','0')
|
||||
#define ERRCODE_RAISE_EXCEPTION MAKE_SQLSTATE('P','0', '0','0','1')
|
||||
#define ERRCODE_NO_DATA_FOUND MAKE_SQLSTATE('P','0', '0','0','2')
|
||||
#define ERRCODE_TOO_MANY_ROWS MAKE_SQLSTATE('P','0', '0','0','3')
|
||||
|
||||
/* Class XX - Internal Error (PostgreSQL-specific error class) */
|
||||
/* (this is for "can't-happen" conditions and software bugs) */
|
||||
|
@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.92 2006/06/15 18:02:22 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.93 2006/06/16 23:29:26 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -157,7 +157,6 @@ static void check_labels(const char *start_label,
|
||||
%token K_ELSE
|
||||
%token K_ELSIF
|
||||
%token K_END
|
||||
%token K_STRICT
|
||||
%token K_EXCEPTION
|
||||
%token K_EXECUTE
|
||||
%token K_EXIT
|
||||
@ -187,6 +186,7 @@ static void check_labels(const char *start_label,
|
||||
%token K_RETURN_NEXT
|
||||
%token K_REVERSE
|
||||
%token K_SELECT
|
||||
%token K_STRICT
|
||||
%token K_THEN
|
||||
%token K_TO
|
||||
%token K_TYPE
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.172 2006/06/16 18:42:23 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.173 2006/06/16 23:29:27 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1721,7 +1721,7 @@ exec_stmt_select(PLpgSQL_execstate *estate, PLpgSQL_stmt_select *stmt)
|
||||
{
|
||||
if (stmt->strict)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_NO_DATA),
|
||||
(errcode(ERRCODE_NO_DATA_FOUND),
|
||||
errmsg("query returned no rows")));
|
||||
|
||||
/* set the target to NULL(s) */
|
||||
@ -1732,7 +1732,7 @@ exec_stmt_select(PLpgSQL_execstate *estate, PLpgSQL_stmt_select *stmt)
|
||||
|
||||
if (n > 1 && stmt->strict)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_CARDINALITY_VIOLATION),
|
||||
(errcode(ERRCODE_TOO_MANY_ROWS),
|
||||
errmsg("query returned more than one row")));
|
||||
|
||||
/*
|
||||
|
@ -9,7 +9,7 @@
|
||||
*
|
||||
* Copyright (c) 2003-2006, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/plerrcodes.h,v 1.8 2006/06/15 18:02:22 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/plerrcodes.h,v 1.9 2006/06/16 23:29:27 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -711,6 +711,14 @@
|
||||
"raise_exception", ERRCODE_RAISE_EXCEPTION
|
||||
},
|
||||
|
||||
{
|
||||
"no_data_found", ERRCODE_NO_DATA_FOUND
|
||||
},
|
||||
|
||||
{
|
||||
"too_many_rows", ERRCODE_TOO_MANY_ROWS
|
||||
},
|
||||
|
||||
{
|
||||
"internal_error", ERRCODE_INTERNAL_ERROR
|
||||
},
|
||||
@ -722,13 +730,3 @@
|
||||
{
|
||||
"index_corrupted", ERRCODE_INDEX_CORRUPTED
|
||||
},
|
||||
|
||||
{
|
||||
"no_data_found", ERRCODE_NO_DATA
|
||||
},
|
||||
|
||||
{
|
||||
"too_many_rows", ERRCODE_CARDINALITY_VIOLATION
|
||||
},
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.51 2006/06/15 18:02:22 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.52 2006/06/16 23:29:27 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -129,7 +129,6 @@ else { return K_ELSE; }
|
||||
elseif { return K_ELSIF; }
|
||||
elsif { return K_ELSIF; }
|
||||
end { return K_END; }
|
||||
strict { return K_STRICT; }
|
||||
exception { return K_EXCEPTION; }
|
||||
execute { return K_EXECUTE; }
|
||||
exit { return K_EXIT; }
|
||||
@ -158,6 +157,7 @@ return { return K_RETURN; }
|
||||
reverse { return K_REVERSE; }
|
||||
row_count { return K_ROW_COUNT; }
|
||||
select { return K_SELECT; }
|
||||
strict { return K_STRICT; }
|
||||
then { return K_THEN; }
|
||||
to { return K_TO; }
|
||||
type { return K_TYPE; }
|
||||
|
Reference in New Issue
Block a user