@@ -514,7 +514,7 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
514514 params -> ts = GetCurrentTimestamp ();
515515
516516 funcctx -> user_fctx = params ;
517- tupdesc = CreateTemplateTupleDesc (4 );
517+ tupdesc = CreateTemplateTupleDesc (7 );
518518 TupleDescInitEntry (tupdesc , (AttrNumber ) 1 , "pid" ,
519519 INT4OID , -1 , 0 );
520520 TupleDescInitEntry (tupdesc , (AttrNumber ) 2 , "type" ,
@@ -523,6 +523,12 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
523523 TEXTOID , -1 , 0 );
524524 TupleDescInitEntry (tupdesc , (AttrNumber ) 4 , "queryid" ,
525525 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 );
526532
527533 funcctx -> tuple_desc = BlessTupleDesc (tupdesc );
528534
@@ -540,6 +546,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
540546 item -> pid = proc -> pid ;
541547 item -> wait_event_info = proc -> wait_event_info ;
542548 item -> queryId = pgws_proc_queryids [proc - ProcGlobal -> allProcs ];
549+ item -> isRegularBackend = !(proc -> isBackgroundWorker );
550+ item -> databaseId = proc -> databaseId ;
551+ item -> roleId = proc -> roleId ;
543552 funcctx -> max_calls = 1 ;
544553 }
545554 else
@@ -562,6 +571,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
562571 params -> items [j ].pid = proc -> pid ;
563572 params -> items [j ].wait_event_info = proc -> wait_event_info ;
564573 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 ;
565577 j ++ ;
566578 }
567579 funcctx -> max_calls = j ;
@@ -579,8 +591,8 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
579591 if (funcctx -> call_cntr < funcctx -> max_calls )
580592 {
581593 HeapTuple tuple ;
582- Datum values [4 ];
583- bool nulls [4 ];
594+ Datum values [7 ];
595+ bool nulls [7 ];
584596 const char * event_type ,
585597 * event ;
586598 HistoryItem * item ;
@@ -604,6 +616,9 @@ pg_wait_sampling_get_current(PG_FUNCTION_ARGS)
604616 nulls [2 ] = true;
605617
606618 values [3 ] = UInt64GetDatum (item -> queryId );
619+ values [4 ] = BoolGetDatum (item -> isRegularBackend );
620+ values [5 ] = ObjectIdGetDatum (item -> databaseId );
621+ values [6 ] = ObjectIdGetDatum (item -> roleId );
607622 tuple = heap_form_tuple (funcctx -> tuple_desc , values , nulls );
608623
609624 SRF_RETURN_NEXT (funcctx , HeapTupleGetDatum (tuple ));
@@ -858,7 +873,7 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
858873 funcctx -> max_calls = history -> count ;
859874
860875 /* Make tuple descriptor */
861- tupdesc = CreateTemplateTupleDesc (5 );
876+ tupdesc = CreateTemplateTupleDesc (8 );
862877 TupleDescInitEntry (tupdesc , (AttrNumber ) 1 , "pid" ,
863878 INT4OID , -1 , 0 );
864879 TupleDescInitEntry (tupdesc , (AttrNumber ) 2 , "sample_ts" ,
@@ -869,6 +884,13 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
869884 TEXTOID , -1 , 0 );
870885 TupleDescInitEntry (tupdesc , (AttrNumber ) 5 , "queryid" ,
871886 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+
872894 funcctx -> tuple_desc = BlessTupleDesc (tupdesc );
873895
874896 MemoryContextSwitchTo (oldcontext );
@@ -883,8 +905,8 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
883905 {
884906 HeapTuple tuple ;
885907 HistoryItem * item ;
886- Datum values [5 ];
887- bool nulls [5 ];
908+ Datum values [8 ];
909+ bool nulls [8 ];
888910 const char * event_type ,
889911 * event ;
890912
@@ -908,6 +930,9 @@ pg_wait_sampling_get_history(PG_FUNCTION_ARGS)
908930 nulls [3 ] = true;
909931
910932 values [4 ] = UInt64GetDatum (item -> queryId );
933+ values [5 ] = BoolGetDatum (item -> isRegularBackend );
934+ values [6 ] = ObjectIdGetDatum (item -> databaseId );
935+ values [7 ] = ObjectIdGetDatum (item -> roleId );
911936 tuple = heap_form_tuple (funcctx -> tuple_desc , values , nulls );
912937
913938 history -> index ++ ;
0 commit comments