@@ -514,7 +514,7 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
514
514
params -> ts = GetCurrentTimestamp ();
515
515
516
516
funcctx -> user_fctx = params ;
517
- tupdesc = CreateTemplateTupleDesc (4 );
517
+ tupdesc = CreateTemplateTupleDesc (7 );
518
518
TupleDescInitEntry (tupdesc , (AttrNumber ) 1 , "pid" ,
519
519
INT4OID , -1 , 0 );
520
520
TupleDescInitEntry (tupdesc , (AttrNumber ) 2 , "type" ,
@@ -523,6 +523,12 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
523
523
TEXTOID , -1 , 0 );
524
524
TupleDescInitEntry (tupdesc , (AttrNumber ) 4 , "queryid" ,
525
525
INT8OID , -1 , 0 );
526
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 5 , "isregularbackend" ,
527
+ BOOLOID , -1 , 0 );
528
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 6 , "databaseid" ,
529
+ OIDOID , -1 , 0 );
530
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 7 , "roleid" ,
531
+ OIDOID , -1 , 0 );
526
532
527
533
funcctx -> tuple_desc = BlessTupleDesc (tupdesc );
528
534
@@ -540,6 +546,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
540
546
item -> pid = proc -> pid ;
541
547
item -> wait_event_info = proc -> wait_event_info ;
542
548
item -> queryId = pgws_proc_queryids [proc - ProcGlobal -> allProcs ];
549
+ item -> isRegularBackend = !(proc -> isBackgroundWorker );
550
+ item -> databaseId = proc -> databaseId ;
551
+ item -> roleId = proc -> roleId ;
543
552
funcctx -> max_calls = 1 ;
544
553
}
545
554
else
@@ -562,6 +571,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
562
571
params -> items [j ].pid = proc -> pid ;
563
572
params -> items [j ].wait_event_info = proc -> wait_event_info ;
564
573
params -> items [j ].queryId = pgws_proc_queryids [i ];
574
+ params -> items [j ].isRegularBackend = !(proc -> isBackgroundWorker );
575
+ params -> items [j ].databaseId = proc -> databaseId ;
576
+ params -> items [j ].roleId = proc -> roleId ;
565
577
j ++ ;
566
578
}
567
579
funcctx -> max_calls = j ;
@@ -579,8 +591,8 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
579
591
if (funcctx -> call_cntr < funcctx -> max_calls )
580
592
{
581
593
HeapTuple tuple ;
582
- Datum values [4 ];
583
- bool nulls [4 ];
594
+ Datum values [7 ];
595
+ bool nulls [7 ];
584
596
const char * event_type ,
585
597
* event ;
586
598
HistoryItem * item ;
@@ -604,6 +616,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
604
616
nulls [2 ] = true;
605
617
606
618
values [3 ] = UInt64GetDatum (item -> queryId );
619
+ values [4 ] = BoolGetDatum (item -> isRegularBackend );
620
+ values [5 ] = ObjectIdGetDatum (item -> databaseId );
621
+ values [6 ] = ObjectIdGetDatum (item -> roleId );
607
622
tuple = heap_form_tuple (funcctx -> tuple_desc , values , nulls );
608
623
609
624
SRF_RETURN_NEXT (funcctx , HeapTupleGetDatum (tuple ));
@@ -858,7 +873,7 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
858
873
funcctx -> max_calls = history -> count ;
859
874
860
875
/* Make tuple descriptor */
861
- tupdesc = CreateTemplateTupleDesc (5 );
876
+ tupdesc = CreateTemplateTupleDesc (8 );
862
877
TupleDescInitEntry (tupdesc , (AttrNumber ) 1 , "pid" ,
863
878
INT4OID , -1 , 0 );
864
879
TupleDescInitEntry (tupdesc , (AttrNumber ) 2 , "sample_ts" ,
@@ -869,6 +884,13 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
869
884
TEXTOID , -1 , 0 );
870
885
TupleDescInitEntry (tupdesc , (AttrNumber ) 5 , "queryid" ,
871
886
INT8OID , -1 , 0 );
887
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 6 , "isregularbackend" ,
888
+ BOOLOID , -1 , 0 ),
889
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 7 , "databaseid" ,
890
+ OIDOID , -1 , 0 ),
891
+ TupleDescInitEntry (tupdesc , (AttrNumber ) 8 , "roleid" ,
892
+ OIDOID , -1 , 0 );
893
+
872
894
funcctx -> tuple_desc = BlessTupleDesc (tupdesc );
873
895
874
896
MemoryContextSwitchTo (oldcontext );
@@ -883,8 +905,8 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
883
905
{
884
906
HeapTuple tuple ;
885
907
HistoryItem * item ;
886
- Datum values [5 ];
887
- bool nulls [5 ];
908
+ Datum values [8 ];
909
+ bool nulls [8 ];
888
910
const char * event_type ,
889
911
* event ;
890
912
@@ -908,6 +930,9 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
908
930
nulls [3 ] = true;
909
931
910
932
values [4 ] = UInt64GetDatum (item -> queryId );
933
+ values [5 ] = BoolGetDatum (item -> isRegularBackend );
934
+ values [6 ] = ObjectIdGetDatum (item -> databaseId );
935
+ values [7 ] = ObjectIdGetDatum (item -> roleId );
911
936
tuple = heap_form_tuple (funcctx -> tuple_desc , values , nulls );
912
937
913
938
history -> index ++ ;
@@ -1161,4 +1186,4 @@ pgws_ProcessUtility(PlannedStmt *pstmt,
1161
1186
PG_RE_THROW ();
1162
1187
}
1163
1188
PG_END_TRY ();
1164
- }
1189
+ }
0 commit comments