From: Bruce Momjian Date: Sat, 6 Nov 1999 17:01:29 +0000 (+0000) Subject: Fix for recusive exit call from Massimo. X-Git-Tag: REL9_0_0~24512 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=17d819c0939cf1422a913388f6066f3a72f6159a;p=pg-rex%2Fsyncrep.git Fix for recusive exit call from Massimo. --- diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c index 2070f6fb5c..2c10a8c5a5 100644 --- a/src/backend/storage/ipc/ipc.c +++ b/src/backend/storage/ipc/ipc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.40 1999/10/10 16:53:51 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.41 1999/11/06 17:01:28 momjian Exp $ * * NOTES * @@ -115,14 +115,13 @@ proc_exit(int code) TPRINTF(TRACE_VERBOSE, "proc_exit(%d) [#%d]", code, proc_exit_inprogress); /* - * If proc_exit is called too many times something bad is happenig, so - * exit immediately. + * If proc_exit is called too many times something bad is happening, so + * exit immediately. This is crafted in two if's for a reason. */ - if (proc_exit_inprogress > 9) - { + if (proc_exit_inprogress == 9) elog(ERROR, "infinite recursion in proc_exit"); + if (proc_exit_inprogress >= 9) goto exit; - } /* ---------------- * if proc_exit_inprocess is true, then it means that we diff --git a/src/bin/psql/sql_help.h b/src/bin/psql/sql_help.h index 60d5a40147..65ca26fd36 100644 --- a/src/bin/psql/sql_help.h +++ b/src/bin/psql/sql_help.h @@ -14,10 +14,6 @@ struct _helpStruct static struct _helpStruct QL_HELP[] = { - { "TRUNCATE", - "Empty a table", - "TRUNCATE [ TABLE ] name" }, - { "ABORT", "Aborts the current transaction", "ABORT [ WORK | TRANSACTION ]" }, @@ -42,6 +38,10 @@ static struct _helpStruct QL_HELP[] = { "Gives storage clustering advice to the server", "CLUSTER indexname ON table" }, + { "COMMENT", + "Add comment to an object", + "COMMENT ON\n[\n [ DATABASE | INDEX | RULE | SEQUENCE | TABLE | TYPE | VIEW ]\n object_name |\n COLUMN table_name.column_name|\n AGGREGATE agg_name agg_type|\n FUNCTION func_name (arg1, arg2, ...)|\n OPERATOR op (leftoperand_type rightoperand_type) |\n TRIGGER trigger_name ON table_name\n] IS 'text'" }, + { "COMMIT", "Commits the current transaction", "COMMIT [ WORK | TRANSACTION ]" }, @@ -118,10 +118,6 @@ static struct _helpStruct QL_HELP[] = { "Removes the definition of an aggregate function", "DROP AGGREGATE name type" }, - { "FETCH", - "Gets rows using a cursor", - "FETCH [ selector ] [ count ] { IN | FROM } cursor\nFETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor" }, - { "DROP DATABASE", "Destroys an existing database", "DROP DATABASE name" }, @@ -170,10 +166,18 @@ static struct _helpStruct QL_HELP[] = { "Removes an existing view from a database", "DROP VIEW name" }, + { "END", + "Commits the current transaction", + "END [ WORK | TRANSACTION ]" }, + { "EXPLAIN", "Shows statement execution details", "EXPLAIN [ VERBOSE ] query" }, + { "FETCH", + "Gets rows using a cursor", + "FETCH [ selector ] [ count ] { IN | FROM } cursor\nFETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor" }, + { "GRANT", "Grants access privilege to a user, a group or all users", "GRANT privilege [, ...] ON object [, ...]\n TO { PUBLIC | GROUP group | username }" }, @@ -230,6 +234,10 @@ static struct _helpStruct QL_HELP[] = { "Shows run-time parameters for session", "SHOW keyword" }, + { "TRUNCATE", + "Empty a table", + "TRUNCATE [ TABLE ] name" }, + { "UNLISTEN", "Stop listening for notification", "UNLISTEN { notifyname | * }" }, @@ -242,14 +250,6 @@ static struct _helpStruct QL_HELP[] = { "Clean and analyze a Postgres database", "VACUUM [ VERBOSE ] [ ANALYZE ] [ table ]\nVACUUM [ VERBOSE ] ANALYZE [ ER\">tBLE> [ (column [, ...] ) ] ]" }, - { "END", - "Commits the current transaction", - "END [ WORK | TRANSACTION ]" }, - - { "COMMENT", - "Add comment to an object", - "COMMENT ON\n[\n [ DATABASE | INDEX | RULE | SEQUENCE | TABLE | TYPE | VIEW ]\n object_name |\n COLUMN table_name.column_name|\n AGGREGATE agg_name agg_type|\n FUNCTION func_name (arg1, arg2, ...)|\n OPERATOR op (leftoperand_type rightoperand_type) |\n TRIGGER trigger_name ON table_name\n] IS 'text'" }, - { NULL, NULL, NULL } /* End of list marker */ };