@@ -2478,8 +2478,8 @@ pgstat_fetch_global(void)
2478
2478
2479
2479
static PgBackendStatus * BackendStatusArray = NULL ;
2480
2480
static PgBackendStatus * MyBEEntry = NULL ;
2481
- static char * BackendClientHostnameBuffer = NULL ;
2482
2481
static char * BackendAppnameBuffer = NULL ;
2482
+ static char * BackendClientHostnameBuffer = NULL ;
2483
2483
static char * BackendActivityBuffer = NULL ;
2484
2484
static Size BackendActivityBufferSize = 0 ;
2485
2485
#ifdef USE_SSL
@@ -2495,13 +2495,22 @@ BackendStatusShmemSize(void)
2495
2495
{
2496
2496
Size size ;
2497
2497
2498
+ /* BackendStatusArray: */
2498
2499
size = mul_size (sizeof (PgBackendStatus ), MaxBackends );
2500
+ /* BackendAppnameBuffer: */
2501
+ size = add_size (size ,
2502
+ mul_size (NAMEDATALEN , MaxBackends ));
2503
+ /* BackendClientHostnameBuffer: */
2499
2504
size = add_size (size ,
2500
2505
mul_size (NAMEDATALEN , MaxBackends ));
2506
+ /* BackendActivityBuffer: */
2501
2507
size = add_size (size ,
2502
2508
mul_size (pgstat_track_activity_query_size , MaxBackends ));
2509
+ #ifdef USE_SSL
2510
+ /* BackendSslStatusBuffer: */
2503
2511
size = add_size (size ,
2504
- mul_size (NAMEDATALEN , MaxBackends ));
2512
+ mul_size (sizeof (PgBackendSSLStatus ), MaxBackends ));
2513
+ #endif
2505
2514
return size ;
2506
2515
}
2507
2516
@@ -2566,26 +2575,6 @@ CreateSharedBackendStatus(void)
2566
2575
}
2567
2576
}
2568
2577
2569
- #ifdef USE_SSL
2570
- /* Create or attach to the shared SSL status buffer */
2571
- size = mul_size (sizeof (PgBackendSSLStatus ), MaxBackends );
2572
- BackendSslStatusBuffer = (PgBackendSSLStatus * )
2573
- ShmemInitStruct ("Backend SSL Status Buffer" , size , & found );
2574
-
2575
- if (!found )
2576
- {
2577
- MemSet (BackendSslStatusBuffer , 0 , size );
2578
-
2579
- /* Initialize st_sslstatus pointers. */
2580
- buffer = (char * ) BackendSslStatusBuffer ;
2581
- for (i = 0 ; i < MaxBackends ; i ++ )
2582
- {
2583
- BackendStatusArray [i ].st_sslstatus = (PgBackendSSLStatus * ) buffer ;
2584
- buffer += sizeof (PgBackendSSLStatus );
2585
- }
2586
- }
2587
- #endif
2588
-
2589
2578
/* Create or attach to the shared activity buffer */
2590
2579
BackendActivityBufferSize = mul_size (pgstat_track_activity_query_size ,
2591
2580
MaxBackends );
@@ -2606,6 +2595,28 @@ CreateSharedBackendStatus(void)
2606
2595
buffer += pgstat_track_activity_query_size ;
2607
2596
}
2608
2597
}
2598
+
2599
+ #ifdef USE_SSL
2600
+ /* Create or attach to the shared SSL status buffer */
2601
+ size = mul_size (sizeof (PgBackendSSLStatus ), MaxBackends );
2602
+ BackendSslStatusBuffer = (PgBackendSSLStatus * )
2603
+ ShmemInitStruct ("Backend SSL Status Buffer" , size , & found );
2604
+
2605
+ if (!found )
2606
+ {
2607
+ PgBackendSSLStatus * ptr ;
2608
+
2609
+ MemSet (BackendSslStatusBuffer , 0 , size );
2610
+
2611
+ /* Initialize st_sslstatus pointers. */
2612
+ ptr = BackendSslStatusBuffer ;
2613
+ for (i = 0 ; i < MaxBackends ; i ++ )
2614
+ {
2615
+ BackendStatusArray [i ].st_sslstatus = ptr ;
2616
+ ptr ++ ;
2617
+ }
2618
+ }
2619
+ #endif
2609
2620
}
2610
2621
2611
2622
@@ -2932,11 +2943,11 @@ pgstat_read_current_status(void)
2932
2943
volatile PgBackendStatus * beentry ;
2933
2944
LocalPgBackendStatus * localtable ;
2934
2945
LocalPgBackendStatus * localentry ;
2946
+ char * localappname ,
2947
+ * localactivity ;
2935
2948
#ifdef USE_SSL
2936
2949
PgBackendSSLStatus * localsslstatus ;
2937
2950
#endif
2938
- char * localappname ,
2939
- * localactivity ;
2940
2951
int i ;
2941
2952
2942
2953
Assert (!pgStatRunningInCollector );
@@ -2951,15 +2962,15 @@ pgstat_read_current_status(void)
2951
2962
localappname = (char * )
2952
2963
MemoryContextAlloc (pgStatLocalContext ,
2953
2964
NAMEDATALEN * MaxBackends );
2965
+ localactivity = (char * )
2966
+ MemoryContextAlloc (pgStatLocalContext ,
2967
+ pgstat_track_activity_query_size * MaxBackends );
2954
2968
#ifdef USE_SSL
2955
2969
localsslstatus = (PgBackendSSLStatus * )
2956
2970
MemoryContextAlloc (pgStatLocalContext ,
2957
2971
sizeof (PgBackendSSLStatus ) * MaxBackends );
2958
2972
#endif
2959
2973
2960
- localactivity = (char * )
2961
- MemoryContextAlloc (pgStatLocalContext ,
2962
- pgstat_track_activity_query_size * MaxBackends );
2963
2974
localNumBackends = 0 ;
2964
2975
2965
2976
beentry = BackendStatusArray ;
0 commit comments