@@ -365,7 +365,9 @@ search_be_status(int pid)
365365
366366for (beid = 1 ;beid <=pgstat_fetch_stat_numbackends ();beid ++ )
367367{
368- #if PG_VERSION_NUM >=160000
368+ #if PG_VERSION_NUM >=170000
369+ PgBackendStatus * be_status = pgstat_get_beentry_by_proc_number (beid );
370+ #elif PG_VERSION_NUM >=160000
369371PgBackendStatus * be_status = pgstat_get_beentry_by_backend_id (beid );
370372#else
371373PgBackendStatus * be_status = pgstat_fetch_stat_beentry (beid );
@@ -505,7 +507,14 @@ pg_query_state(PG_FUNCTION_ARGS)
505507errmsg ("attempt to extract state of current process" )));
506508
507509proc = BackendPidGetProc (pid );
508- if (!proc || proc -> backendId == InvalidBackendId || proc -> databaseId == InvalidOid || proc -> roleId == InvalidOid )
510+ if (!proc ||
511+ #if PG_VERSION_NUM >=170000
512+ proc -> vxid .procNumber == INVALID_PROC_NUMBER ||
513+ #else
514+ proc -> backendId == InvalidBackendId ||
515+ #endif
516+ proc -> databaseId == InvalidOid ||
517+ proc -> roleId == InvalidOid )
509518ereport (ERROR , (errcode (ERRCODE_INVALID_PARAMETER_VALUE ),
510519errmsg ("backend with pid=%d not found" ,pid )));
511520
@@ -730,15 +739,25 @@ GetRemoteBackendUserId(PGPROC *proc)
730739{
731740Oid result ;
732741
742+ #if PG_VERSION_NUM >=170000
743+ Assert (proc && proc -> vxid .procNumber != INVALID_PROC_NUMBER );
744+ #else
733745Assert (proc && proc -> backendId != InvalidBackendId );
746+ #endif
747+
734748Assert (UserIdPollReason != INVALID_PROCSIGNAL );
735749Assert (counterpart_userid );
736750
737751counterpart_userid -> userid = InvalidOid ;
738752counterpart_userid -> caller = MyLatch ;
739753pg_write_barrier ();
740754
755+ #if PG_VERSION_NUM >=170000
756+ SendProcSignal (proc -> pid ,UserIdPollReason ,proc -> vxid .procNumber );
757+ #else
741758SendProcSignal (proc -> pid ,UserIdPollReason ,proc -> backendId );
759+ #endif
760+
742761for (;;)
743762{
744763SpinLockAcquire (& counterpart_userid -> mutex );
@@ -926,7 +945,12 @@ GetRemoteBackendWorkers(PGPROC *proc)
926945List * result = NIL ;
927946LOCKTAG tag ;
928947
948+ #if PG_VERSION_NUM >=170000
949+ Assert (proc && proc -> vxid .procNumber != INVALID_PROC_NUMBER );
950+ #else
929951Assert (proc && proc -> backendId != InvalidBackendId );
952+ #endif
953+
930954Assert (WorkerPollReason != INVALID_PROCSIGNAL );
931955Assert (mq );
932956
@@ -936,7 +960,12 @@ GetRemoteBackendWorkers(PGPROC *proc)
936960shm_mq_set_receiver (mq ,MyProc );
937961UnlockShmem (& tag );
938962
963+ #if PG_VERSION_NUM >=170000
964+ sig_result = SendProcSignal (proc -> pid ,WorkerPollReason ,proc -> vxid .procNumber );
965+ #else
939966sig_result = SendProcSignal (proc -> pid ,WorkerPollReason ,proc -> backendId );
967+ #endif
968+
940969if (sig_result == -1 )
941970gotosignal_error ;
942971
@@ -1088,9 +1117,16 @@ GetRemoteBackendQueryStates(PGPROC *leader,
10881117 * send signal `QueryStatePollReason` to all processes and define all alive
10891118 * ones
10901119 */
1120+ #if PG_VERSION_NUM >=170000
1121+ sig_result = SendProcSignal (leader -> pid ,
1122+ QueryStatePollReason ,
1123+ leader -> vxid .procNumber );
1124+ #else
10911125sig_result = SendProcSignal (leader -> pid ,
10921126QueryStatePollReason ,
10931127leader -> backendId );
1128+ #endif
1129+
10941130if (sig_result == -1 )
10951131gotosignal_error ;
10961132foreach (iter ,pworkers )
@@ -1101,9 +1137,16 @@ GetRemoteBackendQueryStates(PGPROC *leader,
11011137
11021138pg_atomic_add_fetch_u32 (& counterpart_userid -> n_peers ,1 );
11031139
1140+ #if PG_VERSION_NUM >=170000
1141+ sig_result = SendProcSignal (proc -> pid ,
1142+ QueryStatePollReason ,
1143+ proc -> vxid .procNumber );
1144+ #else
11041145sig_result = SendProcSignal (proc -> pid ,
11051146QueryStatePollReason ,
11061147proc -> backendId );
1148+ #endif
1149+
11071150if (sig_result == -1 )
11081151{
11091152if (errno != ESRCH )