From 8080ac74d5414d79f729ddcceac0f8a7f089b980 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 18 Jun 2002 17:56:41 +0000 Subject: [PATCH] Wrap long gram.y lines. --- src/backend/parser/gram.y | 443 ++++++++++++++++++++++++-------------- 1 file changed, 278 insertions(+), 165 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 8affd233ed..f7e6fb84e2 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.329 2002/06/18 17:27:57 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.330 2002/06/18 17:56:41 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -132,21 +132,26 @@ static void doNegateFloat(Value *v); } %type stmt, schema_stmt, - AlterDatabaseSetStmt, AlterGroupStmt, AlterSchemaStmt, AlterTableStmt, - AlterUserStmt, AlterUserSetStmt, AnalyzeStmt, - ClosePortalStmt, ClusterStmt, CommentStmt, ConstraintsSetStmt, - CopyStmt, CreateAsStmt, CreateDomainStmt, CreateGroupStmt, CreatePLangStmt, - CreateSchemaStmt, CreateSeqStmt, CreateStmt, CreateAssertStmt, CreateTrigStmt, - CreateUserStmt, CreatedbStmt, CursorStmt, DefineStmt, DeleteStmt, - DropGroupStmt, DropPLangStmt, DropSchemaStmt, DropStmt, DropAssertStmt, DropTrigStmt, - DropRuleStmt, DropUserStmt, DropdbStmt, ExplainStmt, FetchStmt, - GrantStmt, IndexStmt, InsertStmt, ListenStmt, LoadStmt, LockStmt, - NotifyStmt, OptimizableStmt, CreateFunctionStmt, ReindexStmt, - RemoveAggrStmt, RemoveFuncStmt, RemoveOperStmt, - RenameStmt, RevokeStmt, RuleActionStmt, RuleActionStmtOrEmpty, - RuleStmt, SelectStmt, TransactionStmt, TruncateStmt, - UnlistenStmt, UpdateStmt, VacuumStmt, VariableResetStmt, - VariableSetStmt, VariableShowStmt, ViewStmt, CheckPointStmt + AlterDatabaseSetStmt, AlterGroupStmt, AlterSchemaStmt, + AlterTableStmt, AlterUserStmt, AlterUserSetStmt, + AnalyzeStmt, ClosePortalStmt, ClusterStmt, CommentStmt, + ConstraintsSetStmt, CopyStmt, CreateAsStmt, + CreateDomainStmt, CreateGroupStmt, CreatePLangStmt, + CreateSchemaStmt, CreateSeqStmt, CreateStmt, + CreateAssertStmt, CreateTrigStmt, CreateUserStmt, + CreatedbStmt, CursorStmt, DefineStmt, DeleteStmt, + DropGroupStmt, DropPLangStmt, DropSchemaStmt, DropStmt, + DropAssertStmt, DropTrigStmt, DropRuleStmt, + DropUserStmt, DropdbStmt, ExplainStmt, FetchStmt, + GrantStmt, IndexStmt, InsertStmt, ListenStmt, LoadStmt, + LockStmt, NotifyStmt, OptimizableStmt, + CreateFunctionStmt, ReindexStmt, RemoveAggrStmt, + RemoveFuncStmt, RemoveOperStmt, RenameStmt, RevokeStmt, + RuleActionStmt, RuleActionStmtOrEmpty, RuleStmt, + SelectStmt, TransactionStmt, TruncateStmt, + UnlistenStmt, UpdateStmt, VacuumStmt, + VariableResetStmt, VariableSetStmt, VariableShowStmt, + ViewStmt, CheckPointStmt %type select_no_parens, select_with_parens, select_clause, simple_select @@ -316,69 +321,82 @@ static void doNegateFloat(Value *v); /* ordinary key words in alphabetical order */ %token ABORT_TRANS, ABSOLUTE, ACCESS, ACTION, ADD, AFTER, - AGGREGATE, ALL, ALTER, ANALYSE, ANALYZE, AND, ANY, AS, ASC, ASSERTION, - AT, AUTHORIZATION, + AGGREGATE, ALL, ALTER, ANALYSE, ANALYZE, AND, ANY, AS, ASC, + ASSERTION, AT, AUTHORIZATION, BACKWARD, BEFORE, BEGIN_TRANS, BETWEEN, BIGINT, BINARY, BIT, BOTH, BOOLEAN, BY, - CACHE, CALLED, CASCADE, CASE, CAST, CHAIN, CHAR_P, CHARACTER, - CHARACTERISTICS, CHECK, CHECKPOINT, CLOSE, CLUSTER, COALESCE, COLLATE, - COLUMN, COMMENT, COMMIT, COMMITTED, CONSTRAINT, CONSTRAINTS, COPY, - CREATE, CREATEDB, CREATEUSER, CROSS, CURRENT_DATE, CURRENT_TIME, + CACHE, CALLED, CASCADE, CASE, CAST, CHAIN, CHAR_P, + CHARACTER, CHARACTERISTICS, CHECK, CHECKPOINT, CLOSE, + CLUSTER, COALESCE, COLLATE, COLUMN, COMMENT, COMMIT, + COMMITTED, CONSTRAINT, CONSTRAINTS, COPY, CREATE, CREATEDB, + CREATEUSER, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, CYCLE, - DATABASE, DAY_P, DEC, DECIMAL, DECLARE, DEFAULT, DEFERRABLE, DEFERRED, - DEFINER, DELETE_P, DELIMITERS, DESC, DISTINCT, DO, DOMAIN_P, DOUBLE, DROP, + DATABASE, DAY_P, DEC, DECIMAL, DECLARE, DEFAULT, + DEFERRABLE, DEFERRED, DEFINER, DELETE_P, DELIMITERS, DESC, + DISTINCT, DO, DOMAIN_P, DOUBLE, DROP, - EACH, ELSE, ENCODING, ENCRYPTED, END_TRANS, ESCAPE, EXCEPT, EXCLUSIVE, - EXECUTE, EXISTS, EXPLAIN, EXTERNAL, EXTRACT, + EACH, ELSE, ENCODING, ENCRYPTED, END_TRANS, ESCAPE, EXCEPT, + EXCLUSIVE, EXECUTE, EXISTS, EXPLAIN, EXTERNAL, EXTRACT, - FALSE_P, FETCH, FLOAT_P, FOR, FORCE, FOREIGN, FORWARD, FREEZE, FROM, - FULL, FUNCTION, + FALSE_P, FETCH, FLOAT_P, FOR, FORCE, FOREIGN, FORWARD, + FREEZE, FROM, FULL, FUNCTION, GET, GLOBAL, GRANT, GROUP_P, + HANDLER, HAVING, HOUR_P, - ILIKE, IMMEDIATE, IMMUTABLE, IMPLICIT, IN_P, INCREMENT, INDEX, INHERITS, - INITIALLY, INNER_P, INOUT, INPUT, INSENSITIVE, INSERT, INSTEAD, INT, - INTEGER, INTERSECT, INTERVAL, INTO, INVOKER, IS, ISNULL, ISOLATION, + ILIKE, IMMEDIATE, IMMUTABLE, IMPLICIT, IN_P, INCREMENT, + INDEX, INHERITS, INITIALLY, INNER_P, INOUT, INPUT, + INSENSITIVE, INSERT, INSTEAD, INT, INTEGER, INTERSECT, + INTERVAL, INTO, INVOKER, IS, ISNULL, ISOLATION, JOIN, KEY, - LANCOMPILER, LANGUAGE, LEADING, LEFT, LEVEL, LIKE, LIMIT, LISTEN, - LOAD, LOCAL, LOCALTIME, LOCALTIMESTAMP, LOCATION, LOCK_P, + LANCOMPILER, LANGUAGE, LEADING, LEFT, LEVEL, LIKE, LIMIT, + LISTEN, LOAD, LOCAL, LOCALTIME, LOCALTIMESTAMP, LOCATION, + LOCK_P, MATCH, MAXVALUE, MINUTE_P, MINVALUE, MODE, MONTH_P, MOVE, NAMES, NATIONAL, NATURAL, NCHAR, NEW, NEXT, NO, NOCREATEDB, - NOCREATEUSER, NONE, NOT, NOTHING, NOTIFY, NOTNULL, NULL_P, NULLIF, - NUMERIC, + NOCREATEUSER, NONE, NOT, NOTHING, NOTIFY, NOTNULL, NULL_P, + NULLIF, NUMERIC, + + OF, OFF, OFFSET, OIDS, OLD, ON, ONLY, OPERATOR, OPTION, OR, + ORDER, OUT_P, OUTER_P, OVERLAPS, OVERLAY, OWNER, - OF, OFF, OFFSET, OIDS, OLD, ON, ONLY, OPERATOR, OPTION, OR, ORDER, - OUT_P, OUTER_P, OVERLAPS, OVERLAY, OWNER, + PARTIAL, PASSWORD, PATH_P, PENDANT, PLACING, POSITION, + PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, + PROCEDURAL, - PARTIAL, PASSWORD, PATH_P, PENDANT, PLACING, POSITION, PRECISION, PRIMARY, - PRIOR, PRIVILEGES, PROCEDURE, PROCEDURAL, + READ, REAL, REFERENCES, REINDEX, RELATIVE, RENAME, REPLACE, + RESET, RESTRICT, RETURNS, REVOKE, RIGHT, ROLLBACK, ROW, + RULE, - READ, REAL, REFERENCES, REINDEX, RELATIVE, RENAME, REPLACE, RESET, - RESTRICT, RETURNS, REVOKE, RIGHT, ROLLBACK, ROW, RULE, + SCHEMA, SCROLL, SECOND_P, SECURITY, SELECT, SEQUENCE, + SERIALIZABLE, SESSION, SESSION_USER, SET, SETOF, SHARE, + SHOW, SIMILAR, SMALLINT, SOME, STABLE, START, STATEMENT, + STATISTICS, STDIN, STDOUT, STORAGE, STRICT, SUBSTRING, + SYSID, - SCHEMA, SCROLL, SECOND_P, SECURITY, SELECT, SEQUENCE, SERIALIZABLE, - SESSION, SESSION_USER, SET, SETOF, SHARE, SHOW, SIMILAR, SMALLINT, SOME, - STABLE, START, STATEMENT, STATISTICS, STDIN, STDOUT, STORAGE, STRICT, - SUBSTRING, SYSID, + TABLE, TEMP, TEMPLATE, TEMPORARY, THEN, TIME, TIMESTAMP, + TO, TOAST, TRAILING, TRANSACTION, TRIGGER, TRIM, TRUE_P, + TRUNCATE, TRUSTED, TYPE_P, - TABLE, TEMP, TEMPLATE, TEMPORARY, THEN, TIME, TIMESTAMP, TO, TOAST, - TRAILING, TRANSACTION, TRIGGER, TRIM, TRUE_P, TRUNCATE, TRUSTED, TYPE_P, + UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UNLISTEN, UNTIL, + UPDATE, USAGE, USER, USING, - UNENCRYPTED, UNION, UNIQUE, UNKNOWN, UNLISTEN, UNTIL, UPDATE, USAGE, - USER, USING, + VACUUM, VALID, VALIDATOR, VALUES, VARCHAR, VARYING, + VERBOSE, VERSION, VIEW, VOLATILE, - VACUUM, VALID, VALIDATOR, VALUES, VARCHAR, VARYING, VERBOSE, VERSION, VIEW, VOLATILE, WHEN, WHERE, WITH, WITHOUT, WORK, + YEAR_P, + ZONE /* The grammar thinks these are keywords, but they are not in the keywords.c @@ -412,7 +430,7 @@ static void doNegateFloat(Value *v); %left Op OPERATOR /* multi-character ops and user-defined operators */ %nonassoc NOTNULL %nonassoc ISNULL -%nonassoc IS NULL_P TRUE_P FALSE_P UNKNOWN /* sets precedence for IS NULL, etc */ +%nonassoc IS NULL_P TRUE_P FALSE_P UNKNOWN /* sets precedence for IS NULL, etc */ %left '+' '-' %left '*' '/' '%' %left '^' @@ -758,7 +776,7 @@ CreateSchemaStmt: CREATE SCHEMA OptSchemaName AUTHORIZATION UserId OptSchemaEltList { CreateSchemaStmt *n = makeNode(CreateSchemaStmt); - /* One can omit the schema name or the authorization id... */ + /* One can omit the schema name or the authorization id. */ if ($3 != NULL) n->schemaname = $3; else @@ -955,7 +973,7 @@ zone_value: { if (($3 & ~(MASK(HOUR) | MASK(MINUTE))) != 0) elog(ERROR, - "Time zone interval must be HOUR or HOUR TO MINUTE"); + "Time zone interval must be HOUR or HOUR TO MINUTE"); n->typename->typmod = ((($3 & 0x7FFF) << 16) | 0xFFFF); } $$ = (Node *)n; @@ -971,7 +989,7 @@ zone_value: { if (($6 & ~(MASK(HOUR) | MASK(MINUTE))) != 0) elog(ERROR, - "Time zone interval must be HOUR or HOUR TO MINUTE"); + "Time zone interval must be HOUR or HOUR TO MINUTE"); n->typename->typmod = ((($6 & 0x7FFF) << 16) | $3); } else @@ -1114,8 +1132,11 @@ AlterTableStmt: n->def = $6; $$ = (Node *)n; } - /* ALTER TABLE ALTER [COLUMN] {SET DEFAULT |DROP DEFAULT} */ - | ALTER TABLE relation_expr ALTER opt_column ColId alter_column_default + /* ALTER TABLE ALTER [COLUMN] + * {SET DEFAULT |DROP DEFAULT} + */ + | ALTER TABLE relation_expr ALTER opt_column + ColId alter_column_default { AlterTableStmt *n = makeNode(AlterTableStmt); n->subtype = 'T'; @@ -1124,8 +1145,11 @@ AlterTableStmt: n->def = $7; $$ = (Node *)n; } - /* ALTER TABLE ALTER [COLUMN] DROP NOT NULL */ - | ALTER TABLE relation_expr ALTER opt_column ColId DROP NOT NULL_P + /* ALTER TABLE ALTER [COLUMN] + * DROP NOT NULL + */ + | ALTER TABLE relation_expr ALTER opt_column + ColId DROP NOT NULL_P { AlterTableStmt *n = makeNode(AlterTableStmt); n->subtype = 'N'; @@ -1133,8 +1157,11 @@ AlterTableStmt: n->name = $6; $$ = (Node *)n; } - /* ALTER TABLE ALTER [COLUMN] SET NOT NULL */ - | ALTER TABLE relation_expr ALTER opt_column ColId SET NOT NULL_P + /* ALTER TABLE ALTER [COLUMN] + * SET NOT NULL + */ + | ALTER TABLE relation_expr ALTER opt_column ColId + SET NOT NULL_P { AlterTableStmt *n = makeNode(AlterTableStmt); n->subtype = 'O'; @@ -1142,8 +1169,11 @@ AlterTableStmt: n->name = $6; $$ = (Node *)n; } - /* ALTER TABLE ALTER [COLUMN] SET STATISTICS */ - | ALTER TABLE relation_expr ALTER opt_column ColId SET STATISTICS Iconst + /* ALTER TABLE ALTER [COLUMN] + * SET STATISTICS + */ + | ALTER TABLE relation_expr ALTER opt_column ColId + SET STATISTICS Iconst { AlterTableStmt *n = makeNode(AlterTableStmt); n->subtype = 'S'; @@ -1152,8 +1182,11 @@ AlterTableStmt: n->def = (Node *) makeInteger($9); $$ = (Node *)n; } - /* ALTER TABLE ALTER [COLUMN] SET STORAGE */ - | ALTER TABLE relation_expr ALTER opt_column ColId SET STORAGE ColId + /* ALTER TABLE ALTER [COLUMN] + * SET STORAGE + */ + | ALTER TABLE relation_expr ALTER opt_column ColId + SET STORAGE ColId { AlterTableStmt *n = makeNode(AlterTableStmt); n->subtype = 'M'; @@ -1162,7 +1195,9 @@ AlterTableStmt: n->def = (Node *) makeString($9); $$ = (Node *)n; } - /* ALTER TABLE DROP [COLUMN] {RESTRICT|CASCADE} */ + /* ALTER TABLE DROP [COLUMN] + * {RESTRICT|CASCADE} + */ | ALTER TABLE relation_expr DROP opt_column ColId drop_behavior { AlterTableStmt *n = makeNode(AlterTableStmt); @@ -1181,7 +1216,9 @@ AlterTableStmt: n->def = $5; $$ = (Node *)n; } - /* ALTER TABLE DROP CONSTRAINT {RESTRICT|CASCADE} */ + /* ALTER TABLE DROP CONSTRAINT + * {RESTRICT|CASCADE} + */ | ALTER TABLE relation_expr DROP CONSTRAINT name drop_behavior { AlterTableStmt *n = makeNode(AlterTableStmt); @@ -1327,7 +1364,8 @@ copy_null: WITH NULL_P AS Sconst { $$ = $4; } * *****************************************************************************/ -CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptWithOids +CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' + OptInherit OptWithOids { CreateStmt *n = makeNode(CreateStmt); $4->istemp = $2; @@ -1350,12 +1388,14 @@ OptTemp: TEMPORARY { $$ = TRUE; } | LOCAL TEMP { $$ = TRUE; } | GLOBAL TEMPORARY { - elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); + elog(ERROR, + "GLOBAL TEMPORARY TABLE is not currently supported"); $$ = TRUE; } | GLOBAL TEMP { - elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); + elog(ERROR, + "GLOBAL TEMPORARY TABLE is not currently supported"); $$ = TRUE; } | /*EMPTY*/ { $$ = FALSE; } @@ -1392,8 +1432,9 @@ columnDef: ColId Typename ColQualList opt_collate n->constraints = $3; if ($4 != NULL) - elog(NOTICE, "CREATE TABLE / COLLATE %s not yet implemented" - "; clause ignored", $4); + elog(NOTICE, + "CREATE TABLE / COLLATE %s not yet implemented; " + "clause ignored", $4); $$ = (Node *)n; } @@ -1627,7 +1668,8 @@ ConstraintElem: n->keys = $4; $$ = (Node *)n; } - | FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list + | FOREIGN KEY '(' columnList ')' REFERENCES qualified_name + opt_column_list key_match key_actions ConstraintAttributeSpec { FkConstraint *n = makeNode(FkConstraint); @@ -1681,18 +1723,20 @@ key_actions: | /*EMPTY*/ { $$ = 0; } ; -key_delete: ON DELETE_P key_reference { $$ = $3 << FKCONSTR_ON_DELETE_SHIFT; } +key_delete: ON DELETE_P key_reference + { $$ = $3 << FKCONSTR_ON_DELETE_SHIFT; } ; -key_update: ON UPDATE key_reference { $$ = $3 << FKCONSTR_ON_UPDATE_SHIFT; } +key_update: ON UPDATE key_reference + { $$ = $3 << FKCONSTR_ON_UPDATE_SHIFT; } ; key_reference: - NO ACTION { $$ = FKCONSTR_ON_KEY_NOACTION; } - | RESTRICT { $$ = FKCONSTR_ON_KEY_RESTRICT; } - | CASCADE { $$ = FKCONSTR_ON_KEY_CASCADE; } - | SET NULL_P { $$ = FKCONSTR_ON_KEY_SETNULL; } - | SET DEFAULT { $$ = FKCONSTR_ON_KEY_SETDEFAULT; } + NO ACTION { $$ = FKCONSTR_ON_KEY_NOACTION; } + | RESTRICT { $$ = FKCONSTR_ON_KEY_RESTRICT; } + | CASCADE { $$ = FKCONSTR_ON_KEY_CASCADE; } + | SET NULL_P { $$ = FKCONSTR_ON_KEY_SETNULL; } + | SET DEFAULT { $$ = FKCONSTR_ON_KEY_SETDEFAULT; } ; OptInherit: INHERITS '(' qualified_name_list ')' { $$ = $3; } @@ -1873,7 +1917,8 @@ opt_trusted: * Work around by using name and dotted_name separately. */ handler_name: - name { $$ = makeList1(makeString($1)); } + name + { $$ = makeList1(makeString($1)); } | dotted_name { $$ = $1; } ; @@ -2038,7 +2083,8 @@ ConstraintAttributeSpec: | ConstraintDeferrabilitySpec ConstraintTimeSpec { if ($1 == 0 && $2 != 0) - elog(ERROR, "INITIALLY DEFERRED constraint must be DEFERRABLE"); + elog(ERROR, + "INITIALLY DEFERRED constraint must be DEFERRABLE"); $$ = $1 | $2; } | ConstraintTimeSpec @@ -2051,7 +2097,8 @@ ConstraintAttributeSpec: | ConstraintTimeSpec ConstraintDeferrabilitySpec { if ($2 == 0 && $1 != 0) - elog(ERROR, "INITIALLY DEFERRED constraint must be DEFERRABLE"); + elog(ERROR, + "INITIALLY DEFERRED constraint must be DEFERRABLE"); $$ = $1 | $2; } | /*EMPTY*/ @@ -2090,7 +2137,8 @@ DropTrigStmt: *****************************************************************************/ CreateAssertStmt: - CREATE ASSERTION name CHECK '(' a_expr ')' ConstraintAttributeSpec + CREATE ASSERTION name CHECK '(' a_expr ')' + ConstraintAttributeSpec { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = $3; @@ -2182,10 +2230,10 @@ def_elem: ColLabel '=' def_arg ; /* Note: any simple identifier will be returned as a type name! */ -def_arg: func_return { $$ = (Node *)$1; } - | all_Op { $$ = (Node *)makeString($1); } - | NumericOnly { $$ = (Node *)$1; } - | Sconst { $$ = (Node *)makeString($1); } +def_arg: func_return { $$ = (Node *)$1; } + | all_Op { $$ = (Node *)makeString($1); } + | NumericOnly { $$ = (Node *)$1; } + | Sconst { $$ = (Node *)makeString($1); } ; @@ -2220,8 +2268,8 @@ any_name_list: | any_name_list ',' any_name { $$ = lappend($1, $3); } ; -any_name: ColId { $$ = makeList1(makeString($1)); } - | dotted_name { $$ = $1; } +any_name: ColId { $$ = makeList1(makeString($1)); } + | dotted_name { $$ = $1; } ; /***************************************************************************** @@ -2263,7 +2311,8 @@ CommentStmt: n->comment = $6; $$ = (Node *) n; } - | COMMENT ON AGGREGATE func_name '(' aggr_argtype ')' IS comment_text + | COMMENT ON AGGREGATE func_name '(' aggr_argtype ')' + IS comment_text { CommentStmt *n = makeNode(CommentStmt); n->objtype = AGGREGATE; @@ -2281,7 +2330,8 @@ CommentStmt: n->comment = $7; $$ = (Node *) n; } - | COMMENT ON OPERATOR any_operator '(' oper_argtypes ')' IS comment_text + | COMMENT ON OPERATOR any_operator '(' oper_argtypes ')' + IS comment_text { CommentStmt *n = makeNode(CommentStmt); n->objtype = OPERATOR; @@ -2352,7 +2402,8 @@ FetchStmt: FETCH direction fetch_how_many from_in name if ($2 == RELATIVE) { if ($3 == 0) - elog(ERROR,"FETCH / RELATIVE at current position is not supported"); + elog(ERROR, + "FETCH / RELATIVE at current position is not supported"); $2 = FORWARD; } if ($3 < 0) @@ -2479,7 +2530,8 @@ direction: FORWARD { $$ = FORWARD; } | RELATIVE { $$ = RELATIVE; } | ABSOLUTE { - elog(NOTICE,"FETCH / ABSOLUTE not supported, using RELATIVE"); + elog(NOTICE, + "FETCH / ABSOLUTE not supported, using RELATIVE"); $$ = RELATIVE; } ; @@ -2487,7 +2539,8 @@ direction: FORWARD { $$ = FORWARD; } fetch_how_many: Iconst { $$ = $1; } | '-' Iconst { $$ = - $2; } - | ALL { $$ = 0; /* 0 means fetch all tuples*/ } + /* 0 means fetch all tuples*/ + | ALL { $$ = 0; } | NEXT { $$ = 1; } | PRIOR { $$ = -1; } ; @@ -2503,7 +2556,8 @@ from_in: IN_P {} * *****************************************************************************/ -GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option +GrantStmt: GRANT privileges ON privilege_target TO grantee_list + opt_grant_grant_option { GrantStmt *n = makeNode(GrantStmt); n->is_grant = true; @@ -2515,7 +2569,8 @@ GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_ } ; -RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target FROM grantee_list +RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target + FROM grantee_list { GrantStmt *n = makeNode(GrantStmt); n->is_grant = false; @@ -2529,9 +2584,9 @@ RevokeStmt: REVOKE opt_revoke_grant_option privileges ON privilege_target FROM g /* either ALL [PRIVILEGES] or a list of individual privileges */ -privileges: privilege_list { $$ = $1; } - | ALL { $$ = makeListi1(ACL_ALL_RIGHTS); } - | ALL PRIVILEGES { $$ = makeListi1(ACL_ALL_RIGHTS); } +privileges: privilege_list { $$ = $1; } + | ALL { $$ = makeListi1(ACL_ALL_RIGHTS); } + | ALL PRIVILEGES { $$ = makeListi1(ACL_ALL_RIGHTS); } ; privilege_list: @@ -2613,7 +2668,7 @@ grantee_list: grantee: ColId { PrivGrantee *n = makeNode(PrivGrantee); - /* This hack lets us avoid reserving PUBLIC as a keyword */ + /* This hack lets us avoid reserving PUBLIC as a keyword*/ if (strcmp($1, "public") == 0) n->username = NULL; else @@ -2838,12 +2893,14 @@ func_arg: opt_arg func_type opt_arg: IN_P { $$ = FALSE; } | OUT_P { - elog(ERROR, "CREATE FUNCTION / OUT parameters are not supported"); + elog(ERROR, + "CREATE FUNCTION / OUT parameters are not supported"); $$ = TRUE; } | INOUT { - elog(ERROR, "CREATE FUNCTION / INOUT parameters are not supported"); + elog(ERROR, + "CREATE FUNCTION / INOUT parameters are not supported"); $$ = FALSE; } ; @@ -2961,8 +3018,11 @@ createfunc_opt_item: } ; -func_as: Sconst { $$ = makeList1(makeString($1)); } - | Sconst ',' Sconst { $$ = makeList2(makeString($1), makeString($3)); } +func_as: Sconst { $$ = makeList1(makeString($1)); } + | Sconst ',' Sconst + { + $$ = makeList2(makeString($1), makeString($3)); + } ; opt_definition: @@ -3021,14 +3081,19 @@ oper_argtypes: { elog(ERROR,"parser: argument type missing (use NONE for unary operators)"); } - | Typename ',' Typename { $$ = makeList2($1, $3); } - | NONE ',' Typename /* left unary */ { $$ = makeList2(NULL, $3); } - | Typename ',' NONE /* right unary */ { $$ = makeList2($1, NULL); } + | Typename ',' Typename + { $$ = makeList2($1, $3); } + | NONE ',' Typename /* left unary */ + { $$ = makeList2(NULL, $3); } + | Typename ',' NONE /* right unary */ + { $$ = makeList2($1, NULL); } ; any_operator: - all_Op { $$ = makeList1(makeString($1)); } - | ColId '.' any_operator { $$ = lcons(makeString($1), $3); } + all_Op + { $$ = makeList1(makeString($1)); } + | ColId '.' any_operator + { $$ = lcons(makeString($1), $3); } ; @@ -3732,7 +3797,8 @@ insert_rest: insert_column_list: insert_column_item { $$ = makeList1($1); } - | insert_column_list ',' insert_column_item { $$ = lappend($1, $3); } + | insert_column_list ',' insert_column_item + { $$ = lappend($1, $3); } ; insert_column_item: @@ -3773,18 +3839,18 @@ LockStmt: LOCK_P opt_table qualified_name_list opt_lock } ; -opt_lock: IN_P lock_type MODE { $$ = $2; } - | /*EMPTY*/ { $$ = AccessExclusiveLock; } +opt_lock: IN_P lock_type MODE { $$ = $2; } + | /*EMPTY*/ { $$ = AccessExclusiveLock; } ; -lock_type: ACCESS SHARE { $$ = AccessShareLock; } - | ROW SHARE { $$ = RowShareLock; } - | ROW EXCLUSIVE { $$ = RowExclusiveLock; } - | SHARE UPDATE EXCLUSIVE { $$ = ShareUpdateExclusiveLock; } - | SHARE { $$ = ShareLock; } - | SHARE ROW EXCLUSIVE { $$ = ShareRowExclusiveLock; } - | EXCLUSIVE { $$ = ExclusiveLock; } - | ACCESS EXCLUSIVE { $$ = AccessExclusiveLock; } +lock_type: ACCESS SHARE { $$ = AccessShareLock; } + | ROW SHARE { $$ = RowShareLock; } + | ROW EXCLUSIVE { $$ = RowExclusiveLock; } + | SHARE UPDATE EXCLUSIVE { $$ = ShareUpdateExclusiveLock; } + | SHARE { $$ = ShareLock; } + | SHARE ROW EXCLUSIVE { $$ = ShareRowExclusiveLock; } + | EXCLUSIVE { $$ = ExclusiveLock; } + | ACCESS EXCLUSIVE { $$ = AccessExclusiveLock; } ; @@ -3998,13 +4064,15 @@ OptTempTableName: } | GLOBAL TEMPORARY opt_table qualified_name { - elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); + elog(ERROR, + "GLOBAL TEMPORARY TABLE is not currently supported"); $$ = $4; $$->istemp = true; } | GLOBAL TEMP opt_table qualified_name { - elog(ERROR, "GLOBAL TEMPORARY TABLE is not currently supported"); + elog(ERROR, + "GLOBAL TEMPORARY TABLE is not currently supported"); $$ = $4; $$->istemp = true; } @@ -4076,13 +4144,15 @@ select_limit: { $$ = makeList2($2, NULL); } | LIMIT select_limit_value ',' select_offset_value /* Disabled because it was too confusing, bjm 2002-02-18 */ - { elog(ERROR, "LIMIT #,# syntax not supported.\n\tUse separate LIMIT and OFFSET clauses."); } + { elog(ERROR, + "LIMIT #,# syntax not supported.\n\tUse separate LIMIT and OFFSET clauses."); } ; opt_select_limit: select_limit { $$ = $1; } - | /* EMPTY */ { $$ = makeList2(NULL,NULL); } + | /* EMPTY */ + { $$ = makeList2(NULL,NULL); } ; select_limit_value: @@ -4469,7 +4539,8 @@ func_table: func_name '(' ')' where_clause: WHERE a_expr { $$ = $2; } - | /*EMPTY*/ { $$ = NULL; /* no qualifiers */ } + /* no qualifiers */ + | /*EMPTY*/ { $$ = NULL; } ; @@ -4524,7 +4595,8 @@ SimpleTypename: { $$ = $1; if (($3 < 0) || ($3 > MAX_INTERVAL_PRECISION)) - elog(ERROR, "INTERVAL(%d) precision must be between %d and %d", + elog(ERROR, + "INTERVAL(%d) precision must be between %d and %d", $3, 0, MAX_INTERVAL_PRECISION); $$->typmod = ((($5 & 0x7FFF) << 16) | $3); } @@ -4608,13 +4680,15 @@ Numeric: INT opt_float: '(' Iconst ')' { if ($2 < 1) - elog(ERROR, "precision for FLOAT must be at least 1"); + elog(ERROR, + "precision for FLOAT must be at least 1"); else if ($2 < 7) $$ = SystemTypeName("float4"); else if ($2 < 16) $$ = SystemTypeName("float8"); else - elog(ERROR, "precision for FLOAT must be less than 16"); + elog(ERROR, + "precision for FLOAT must be less than 16"); } | /*EMPTY*/ { @@ -4626,10 +4700,12 @@ opt_numeric: '(' Iconst ',' Iconst ')' { if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION) - elog(ERROR, "NUMERIC precision %d must be between 1 and %d", + elog(ERROR, + "NUMERIC precision %d must be between 1 and %d", $2, NUMERIC_MAX_PRECISION); if ($4 < 0 || $4 > $2) - elog(ERROR, "NUMERIC scale %d must be between 0 and precision %d", + elog(ERROR, + "NUMERIC scale %d must be between 0 and precision %d", $4,$2); $$ = (($2 << 16) | $4) + VARHDRSZ; @@ -4637,7 +4713,8 @@ opt_numeric: | '(' Iconst ')' { if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION) - elog(ERROR, "NUMERIC precision %d must be between 1 and %d", + elog(ERROR, + "NUMERIC precision %d must be between 1 and %d", $2, NUMERIC_MAX_PRECISION); $$ = ($2 << 16) + VARHDRSZ; @@ -4653,10 +4730,12 @@ opt_decimal: '(' Iconst ',' Iconst ')' { if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION) - elog(ERROR, "DECIMAL precision %d must be between 1 and %d", + elog(ERROR, + "DECIMAL precision %d must be between 1 and %d", $2, NUMERIC_MAX_PRECISION); if ($4 < 0 || $4 > $2) - elog(ERROR, "DECIMAL scale %d must be between 0 and precision %d", + elog(ERROR, + "DECIMAL scale %d must be between 0 and precision %d", $4,$2); $$ = (($2 << 16) | $4) + VARHDRSZ; @@ -4664,7 +4743,8 @@ opt_decimal: | '(' Iconst ')' { if ($2 < 1 || $2 > NUMERIC_MAX_PRECISION) - elog(ERROR, "DECIMAL precision %d must be between 1 and %d", + elog(ERROR, + "DECIMAL precision %d must be between 1 and %d", $2, NUMERIC_MAX_PRECISION); $$ = ($2 << 16) + VARHDRSZ; @@ -4809,8 +4889,10 @@ ConstDatetime: */ $$->timezone = $5; if (($3 < 0) || ($3 > MAX_TIMESTAMP_PRECISION)) - elog(ERROR, "TIMESTAMP(%d)%s precision must be between %d and %d", - $3, ($5 ? " WITH TIME ZONE": ""), 0, MAX_TIMESTAMP_PRECISION); + elog(ERROR, + "TIMESTAMP(%d)%s precision must be between %d and %d", + $3, ($5 ? " WITH TIME ZONE": ""), 0, + MAX_TIMESTAMP_PRECISION); $$->typmod = $3; } | TIMESTAMP opt_timezone @@ -4839,8 +4921,10 @@ ConstDatetime: else $$ = SystemTypeName("time"); if (($3 < 0) || ($3 > MAX_TIME_PRECISION)) - elog(ERROR, "TIME(%d)%s precision must be between %d and %d", - $3, ($5 ? " WITH TIME ZONE": ""), 0, MAX_TIME_PRECISION); + elog(ERROR, + "TIME(%d)%s precision must be between %d and %d", + $3, ($5 ? " WITH TIME ZONE": ""), 0, + MAX_TIME_PRECISION); $$->typmod = $3; } | TIME opt_timezone @@ -4874,13 +4958,20 @@ opt_interval: | HOUR_P { $$ = MASK(HOUR); } | MINUTE_P { $$ = MASK(MINUTE); } | SECOND_P { $$ = MASK(SECOND); } - | YEAR_P TO MONTH_P { $$ = MASK(YEAR) | MASK(MONTH); } - | DAY_P TO HOUR_P { $$ = MASK(DAY) | MASK(HOUR); } - | DAY_P TO MINUTE_P { $$ = MASK(DAY) | MASK(HOUR) | MASK(MINUTE); } - | DAY_P TO SECOND_P { $$ = MASK(DAY) | MASK(HOUR) | MASK(MINUTE) | MASK(SECOND); } - | HOUR_P TO MINUTE_P { $$ = MASK(HOUR) | MASK(MINUTE); } - | HOUR_P TO SECOND_P { $$ = MASK(HOUR) | MASK(MINUTE) | MASK(SECOND); } - | MINUTE_P TO SECOND_P { $$ = MASK(MINUTE) | MASK(SECOND); } + | YEAR_P TO MONTH_P + { $$ = MASK(YEAR) | MASK(MONTH); } + | DAY_P TO HOUR_P + { $$ = MASK(DAY) | MASK(HOUR); } + | DAY_P TO MINUTE_P + { $$ = MASK(DAY) | MASK(HOUR) | MASK(MINUTE); } + | DAY_P TO SECOND_P + { $$ = MASK(DAY) | MASK(HOUR) | MASK(MINUTE) | MASK(SECOND); } + | HOUR_P TO MINUTE_P + { $$ = MASK(HOUR) | MASK(MINUTE); } + | HOUR_P TO SECOND_P + { $$ = MASK(HOUR) | MASK(MINUTE) | MASK(SECOND); } + | MINUTE_P TO SECOND_P + { $$ = MASK(MINUTE) | MASK(SECOND); } | /*EMPTY*/ { $$ = -1; } ; @@ -4915,7 +5006,8 @@ row_expr: '(' row_descriptor ')' IN_P select_with_parens n->subselect = $6; $$ = (Node *)n; } - | '(' row_descriptor ')' qual_all_Op sub_type select_with_parens %prec Op + | '(' row_descriptor ')' qual_all_Op sub_type select_with_parens + %prec Op { SubLink *n = makeNode(SubLink); n->lefthand = $2; @@ -4928,7 +5020,8 @@ row_expr: '(' row_descriptor ')' IN_P select_with_parens n->subselect = $6; $$ = (Node *)n; } - | '(' row_descriptor ')' qual_all_Op select_with_parens %prec Op + | '(' row_descriptor ')' qual_all_Op select_with_parens + %prec Op { SubLink *n = makeNode(SubLink); n->lefthand = $2; @@ -4941,7 +5034,8 @@ row_expr: '(' row_descriptor ')' IN_P select_with_parens n->subselect = $5; $$ = (Node *)n; } - | '(' row_descriptor ')' qual_all_Op '(' row_descriptor ')' %prec Op + | '(' row_descriptor ')' qual_all_Op '(' row_descriptor ')' + %prec Op { $$ = makeRowExpr($4, $2, $6); } @@ -4996,12 +5090,14 @@ MathOp: '+' { $$ = "+"; } | '=' { $$ = "="; } ; -qual_Op: Op { $$ = makeList1(makeString($1)); } +qual_Op: Op + { $$ = makeList1(makeString($1)); } | OPERATOR '(' any_operator ')' { $$ = $3; } ; qual_all_Op: - all_Op { $$ = makeList1(makeString($1)); } + all_Op + { $$ = makeList1(makeString($1)); } | OPERATOR '(' any_operator ')' { $$ = $3; } ; @@ -5022,7 +5118,8 @@ qual_all_Op: * it's factored out just to eliminate redundant coding. */ a_expr: c_expr { $$ = $1; } - | a_expr TYPECAST Typename { $$ = makeTypeCast($1, $3); } + | a_expr TYPECAST Typename + { $$ = makeTypeCast($1, $3); } | a_expr COLLATE ColId { FuncCall *n = makeNode(FuncCall); @@ -5325,7 +5422,7 @@ a_expr: c_expr { $$ = $1; } $$ = n; } } - | a_expr qual_all_Op sub_type select_with_parens %prec Op + | a_expr qual_all_Op sub_type select_with_parens %prec Op { SubLink *n = makeNode(SubLink); n->lefthand = makeList1($1); @@ -5553,7 +5650,8 @@ c_expr: columnref { $$ = (Node *) $1; } s->typename = SystemTypeName("text"); d = SystemTypeName("timetz"); if (($3 < 0) || ($3 > MAX_TIME_PRECISION)) - elog(ERROR, "CURRENT_TIME(%d) precision must be between %d and %d", + elog(ERROR, + "CURRENT_TIME(%d) precision must be between %d and %d", $3, 0, MAX_TIME_PRECISION); d->typmod = $3; @@ -5597,7 +5695,9 @@ c_expr: columnref { $$ = (Node *) $1; } d = SystemTypeName("timestamptz"); if (($3 < 0) || ($3 > MAX_TIMESTAMP_PRECISION)) - elog(ERROR, "CURRENT_TIMESTAMP(%d) precision must be between %d and %d", + elog(ERROR, + "CURRENT_TIMESTAMP(%d) precision " + "must be between %d and %d", $3, 0, MAX_TIMESTAMP_PRECISION); d->typmod = $3; @@ -5640,7 +5740,8 @@ c_expr: columnref { $$ = (Node *) $1; } s->typename = SystemTypeName("text"); d = SystemTypeName("time"); if (($3 < 0) || ($3 > MAX_TIME_PRECISION)) - elog(ERROR, "LOCALTIME(%d) precision must be between %d and %d", + elog(ERROR, + "LOCALTIME(%d) precision must be between %d and %d", $3, 0, MAX_TIME_PRECISION); d->typmod = $3; @@ -5684,7 +5785,9 @@ c_expr: columnref { $$ = (Node *) $1; } d = SystemTypeName("timestamp"); if (($3 < 0) || ($3 > MAX_TIMESTAMP_PRECISION)) - elog(ERROR, "LOCALTIMESTAMP(%d) precision must be between %d and %d", + elog(ERROR, + "LOCALTIMESTAMP(%d) precision must be " + "between %d and %d", $3, 0, MAX_TIMESTAMP_PRECISION); d->typmod = $3; @@ -6066,12 +6169,16 @@ columnref: relation_name opt_indirection ; dotted_name: - relation_name attrs { $$ = lcons(makeString($1), $2); } + relation_name attrs + { $$ = lcons(makeString($1), $2); } ; -attrs: '.' attr_name { $$ = makeList1(makeString($2)); } - | '.' '*' { $$ = makeList1(makeString("*")); } - | '.' attr_name attrs { $$ = lcons(makeString($2), $3); } +attrs: '.' attr_name + { $$ = makeList1(makeString($2)); } + | '.' '*' + { $$ = makeList1(makeString("*")); } + | '.' attr_name attrs + { $$ = lcons(makeString($2), $3); } ; @@ -6194,15 +6301,19 @@ qualified_name: $$->relname = strVal(lfirst(lnext(lnext($1)))); break; default: - elog(ERROR, "Improper qualified name (too many dotted names): %s", + elog(ERROR, + "Improper qualified name " + "(too many dotted names): %s", NameListToString($1)); break; } } ; -name_list: name { $$ = makeList1(makeString($1)); } - | name_list ',' name { $$ = lappend($1, makeString($3)); } +name_list: name + { $$ = makeList1(makeString($1)); } + | name_list ',' name + { $$ = lappend($1, makeString($3)); } ; @@ -6220,7 +6331,8 @@ index_name: ColId { $$ = $1; }; file_name: Sconst { $$ = $1; }; -func_name: function_name { $$ = makeList1(makeString($1)); } +func_name: function_name + { $$ = makeList1(makeString($1)); } | dotted_name { $$ = $1; } ; @@ -6289,7 +6401,8 @@ AexprConst: Iconst n->val.val.str = $5; /* precision specified, and fields may be... */ if (($3 < 0) || ($3 > MAX_INTERVAL_PRECISION)) - elog(ERROR, "INTERVAL(%d) precision must be between %d and %d", + elog(ERROR, + "INTERVAL(%d) precision must be between %d and %d", $3, 0, MAX_INTERVAL_PRECISION); n->typename->typmod = ((($6 & 0x7FFF) << 16) | $3); $$ = (Node *)n; -- GitLab