>> pg_is_in_recovery() returns a bool, are you proposing to change that?
> 
> No. I just thought about adding more condition when it returns true.

Here is the patch. Comments are welcome!

*** a/src/backend/access/transam/xlog.c
--- b/src/backend/access/transam/xlog.c
***************
*** 5604,5610 **** GetLatestXTime(void)
  Datum
  pg_is_in_recovery(PG_FUNCTION_ARGS)
  {
!       PG_RETURN_BOOL(RecoveryInProgress());
  }
  
  /*
--- 5604,5613 ----
  Datum
  pg_is_in_recovery(PG_FUNCTION_ARGS)
  {
!       /* use volatile pointer to prevent code rearrangement */
!       volatile WalRcvData *walrcv = WalRcv;
! 
!       PG_RETURN_BOOL(RecoveryInProgress() && walrcv->walRcvState == 
WALRCV_RUNNING);
  }
  
  /*

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to