From 39a6772d04940b994acd9a3fd954cacdc2f88b26 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Wed, 19 Apr 2017 00:12:27 +0900 Subject: [PATCH] Use DatumGetInt32() to extract 32-bit integer value from a datum. Previously DatumGetObjectId() was wrongly used for that. Author: Masahiko Sawada Reviewed-by: Kyotaro Horiguchi Reported-by: Fujii Masao Discussion: http://postgr.es/m/CAHGQGwFDWh_Qr-q_GEMpD+qH=vYPMdVqw=ZOSY3kX_Pna9R9SA@mail.gmail.com --- src/backend/replication/logical/launcher.c | 2 +- src/backend/replication/logical/worker.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 35e9d0305f6..0dba25962ad 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -306,7 +306,7 @@ logicalrep_worker_launch(Oid dbid, Oid subid, const char *subname, Oid userid, bgw.bgw_restart_time = BGW_NEVER_RESTART; bgw.bgw_notify_pid = MyProcPid; - bgw.bgw_main_arg = slot; + bgw.bgw_main_arg = Int32GetDatum(slot); if (!RegisterDynamicBackgroundWorker(&bgw, &bgw_handle)) { diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 656d3999796..fa4f3b652d5 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -1441,7 +1441,7 @@ subscription_change_cb(Datum arg, int cacheid, uint32 hashvalue) void ApplyWorkerMain(Datum main_arg) { - int worker_slot = DatumGetObjectId(main_arg); + int worker_slot = DatumGetInt32(main_arg); MemoryContext oldctx; char originname[NAMEDATALEN]; XLogRecPtr origin_startpos;