@@ -365,7 +365,9 @@ search_be_status(int pid)
365
365
366
366
for (beid = 1 ; beid <= pgstat_fetch_stat_numbackends (); beid ++ )
367
367
{
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
369
371
PgBackendStatus * be_status = pgstat_get_beentry_by_backend_id (beid );
370
372
#else
371
373
PgBackendStatus * be_status = pgstat_fetch_stat_beentry (beid );
@@ -505,7 +507,14 @@ pg_query_state(PG_FUNCTION_ARGS)
505
507
errmsg ("attempt to extract state of current process" )));
506
508
507
509
proc = 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 )
509
518
ereport (ERROR , (errcode (ERRCODE_INVALID_PARAMETER_VALUE ),
510
519
errmsg ("backend with pid=%d not found" , pid )));
511
520
@@ -730,15 +739,25 @@ GetRemoteBackendUserId(PGPROC *proc)
730
739
{
731
740
Oid result ;
732
741
742
+ #if PG_VERSION_NUM >= 170000
743
+ Assert (proc && proc -> vxid .procNumber != INVALID_PROC_NUMBER );
744
+ #else
733
745
Assert (proc && proc -> backendId != InvalidBackendId );
746
+ #endif
747
+
734
748
Assert (UserIdPollReason != INVALID_PROCSIGNAL );
735
749
Assert (counterpart_userid );
736
750
737
751
counterpart_userid -> userid = InvalidOid ;
738
752
counterpart_userid -> caller = MyLatch ;
739
753
pg_write_barrier ();
740
754
755
+ #if PG_VERSION_NUM >= 170000
756
+ SendProcSignal (proc -> pid , UserIdPollReason , proc -> vxid .procNumber );
757
+ #else
741
758
SendProcSignal (proc -> pid , UserIdPollReason , proc -> backendId );
759
+ #endif
760
+
742
761
for (;;)
743
762
{
744
763
SpinLockAcquire (& counterpart_userid -> mutex );
@@ -926,7 +945,12 @@ GetRemoteBackendWorkers(PGPROC *proc)
926
945
List * result = NIL ;
927
946
LOCKTAG tag ;
928
947
948
+ #if PG_VERSION_NUM >= 170000
949
+ Assert (proc && proc -> vxid .procNumber != INVALID_PROC_NUMBER );
950
+ #else
929
951
Assert (proc && proc -> backendId != InvalidBackendId );
952
+ #endif
953
+
930
954
Assert (WorkerPollReason != INVALID_PROCSIGNAL );
931
955
Assert (mq );
932
956
@@ -936,7 +960,12 @@ GetRemoteBackendWorkers(PGPROC *proc)
936
960
shm_mq_set_receiver (mq , MyProc );
937
961
UnlockShmem (& tag );
938
962
963
+ #if PG_VERSION_NUM >= 170000
964
+ sig_result = SendProcSignal (proc -> pid , WorkerPollReason , proc -> vxid .procNumber );
965
+ #else
939
966
sig_result = SendProcSignal (proc -> pid , WorkerPollReason , proc -> backendId );
967
+ #endif
968
+
940
969
if (sig_result == -1 )
941
970
goto signal_error ;
942
971
@@ -1088,9 +1117,16 @@ GetRemoteBackendQueryStates(PGPROC *leader,
1088
1117
* send signal `QueryStatePollReason` to all processes and define all alive
1089
1118
* ones
1090
1119
*/
1120
+ #if PG_VERSION_NUM >= 170000
1121
+ sig_result = SendProcSignal (leader -> pid ,
1122
+ QueryStatePollReason ,
1123
+ leader -> vxid .procNumber );
1124
+ #else
1091
1125
sig_result = SendProcSignal (leader -> pid ,
1092
1126
QueryStatePollReason ,
1093
1127
leader -> backendId );
1128
+ #endif
1129
+
1094
1130
if (sig_result == -1 )
1095
1131
goto signal_error ;
1096
1132
foreach (iter , pworkers )
@@ -1101,9 +1137,16 @@ GetRemoteBackendQueryStates(PGPROC *leader,
1101
1137
1102
1138
pg_atomic_add_fetch_u32 (& counterpart_userid -> n_peers , 1 );
1103
1139
1140
+ #if PG_VERSION_NUM >= 170000
1141
+ sig_result = SendProcSignal (proc -> pid ,
1142
+ QueryStatePollReason ,
1143
+ proc -> vxid .procNumber );
1144
+ #else
1104
1145
sig_result = SendProcSignal (proc -> pid ,
1105
1146
QueryStatePollReason ,
1106
1147
proc -> backendId );
1148
+ #endif
1149
+
1107
1150
if (sig_result == -1 )
1108
1151
{
1109
1152
if (errno != ESRCH )
0 commit comments