*
*
* 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
*
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
static struct _helpStruct QL_HELP[] = {
- { "TRUNCATE",
- "Empty a table",
- "TRUNCATE [ TABLE ] name" },
-
{ "ABORT",
"Aborts the current transaction",
"ABORT [ WORK | TRANSACTION ]" },
"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 ]" },
"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" },
"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 }" },
"Shows run-time parameters for session",
"SHOW keyword" },
+ { "TRUNCATE",
+ "Empty a table",
+ "TRUNCATE [ TABLE ] name" },
+
{ "UNLISTEN",
"Stop listening for notification",
"UNLISTEN { notifyname | * }" },
"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 */
};