Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 02d074e

Browse files
committed
Rename parser token REF to REF_P to avoid a symbol conflict.
In the latest version of Apple's macOS SDK, <sys/socket.h> fails to compile if "REF" is #define'd as something. Apple may or may not agree that this is a bug, and even if they do accept the bug report I filed, they probably won't fix it very quickly. In the meantime, our back branches will all fail to compile gram.y. v15 and HEAD currently escape the problem thanks to the refactoring done in 98e93a1, but that's purely accidental. Moreover, since that patch removed a widely-visible inclusion of <netdb.h>, back-patching it seems too likely to break third-party code. Instead, change the token's code name to REF_P, following our usual convention for naming parser tokens that are likely to have symbol conflicts. The effects of that should be localized to the grammar and immediately surrounding files, so it seems like a safer answer. Per project policy that we want to keep recently-out-of-support branches buildable on modern systems, back-patch all the way to 9.2. Discussion: https://postgr.es/m/[email protected]
1 parent e06ae1e commit 02d074e

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/backend/parser/gram.y

+5-5
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
661661

662662
QUOTE
663663

664-
RANGE READ REAL REASSIGN RECHECK RECURSIVE REF REFERENCES REFERENCING
664+
RANGE READ REAL REASSIGN RECHECK RECURSIVE REF_P REFERENCES REFERENCING
665665
REFRESH REINDEX RELATIVE_P RELEASE RENAME REPEATABLE REPLACE REPLICA
666666
RESET RESTART RESTRICT RETURNING RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP
667667
ROW ROWS RULE
@@ -13605,15 +13605,15 @@ xmlexists_argument:
1360513605
{
1360613606
$$ = $2;
1360713607
}
13608-
| PASSING c_expr BY REF
13608+
| PASSING c_expr BY REF_P
1360913609
{
1361013610
$$ = $2;
1361113611
}
13612-
| PASSING BY REF c_expr
13612+
| PASSING BY REF_P c_expr
1361313613
{
1361413614
$$ = $4;
1361513615
}
13616-
| PASSING BY REF c_expr BY REF
13616+
| PASSING BY REF_P c_expr BY REF_P
1361713617
{
1361813618
$$ = $4;
1361913619
}
@@ -14810,7 +14810,7 @@ unreserved_keyword:
1481014810
| REASSIGN
1481114811
| RECHECK
1481214812
| RECURSIVE
14813-
| REF
14813+
| REF_P
1481414814
| REFERENCING
1481514815
| REFRESH
1481614816
| REINDEX

src/include/parser/kwlist.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ PG_KEYWORD("real", REAL, COL_NAME_KEYWORD)
319319
PG_KEYWORD("reassign", REASSIGN, UNRESERVED_KEYWORD)
320320
PG_KEYWORD("recheck", RECHECK, UNRESERVED_KEYWORD)
321321
PG_KEYWORD("recursive", RECURSIVE, UNRESERVED_KEYWORD)
322-
PG_KEYWORD("ref", REF, UNRESERVED_KEYWORD)
322+
PG_KEYWORD("ref", REF_P, UNRESERVED_KEYWORD)
323323
PG_KEYWORD("references", REFERENCES, RESERVED_KEYWORD)
324324
PG_KEYWORD("referencing", REFERENCING, UNRESERVED_KEYWORD)
325325
PG_KEYWORD("refresh", REFRESH, UNRESERVED_KEYWORD)

0 commit comments

Comments
 (0)