aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/dbcommands.c
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
commit34fa0ddae5cf27dd93a5855b30083185d4bb5a5b (patch)
tree22e4d83db0eafb8d6be51865e2952a43f6d03e61 /src/backend/commands/dbcommands.c
parent8c7146790811ac4eee23fab2226db14b636e1ac5 (diff)
downloadpostgresql-34fa0ddae5cf27dd93a5855b30083185d4bb5a5b.tar.gz
postgresql-34fa0ddae5cf27dd93a5855b30083185d4bb5a5b.zip
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/commands/dbcommands.c')
-rw-r--r--src/backend/commands/dbcommands.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 16e422138bb..8abc2c3e0b0 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -816,7 +816,7 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
}
else if (strcmp(defel->defname, "oid") == 0)
{
- dboid = defGetInt32(defel);
+ dboid = defGetObjectId(defel);
/*
* We don't normally permit new databases to be created with