summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-11-04 10:39:52 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2022-11-04 10:39:52 -0400
commit2c6d43650d16d91a3e731d236315beffd98db729 (patch)
treeb4a48d893a7a7c11a7195928f719057bd4bb6cda /src/backend/parser
parent81173264440d7d3bd6479313b1d4611a2bfe8031 (diff)
Fix CREATE DATABASE so we can pg_upgrade DBs with OIDs above 2^31.
Commit aa0105141 repeated one of the oldest mistakes in our book: thinking that OID is the same as int32. It isn't of course, and unsurprisingly the first person who came along with a database OID above 2 billion broke it. Repair. Per bug #17677 from Sergey Pankov. Back-patch to v15. Discussion: https://postgr.es/m/17677-a99fa067d7ed71c9@postgresql.org
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index f5bb30c5055..0b9cd62bf0c 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11067,9 +11067,9 @@ createdb_opt_items:
;
createdb_opt_item:
- createdb_opt_name opt_equal SignedIconst
+ createdb_opt_name opt_equal NumericOnly
{
- $$ = makeDefElem($1, (Node *) makeInteger($3), @1);
+ $$ = makeDefElem($1, $3, @1);
}
| createdb_opt_name opt_equal opt_boolean_or_string
{