Re: [HACKERS] Fix GetOldestXmin comment

2017-05-30 Thread Masahiko Sawada
On Tue, May 30, 2017 at 11:07 PM, Amit Kapila  wrote:
> On Tue, May 30, 2017 at 6:32 AM, Masahiko Sawada  
> wrote:
>> Hi,
>>
>> While reading source code, I realized that comment of GetOldestXmin mentions;
>>
>>   * if rel = NULL and there are no transactions running in the current
>>   * database, GetOldestXmin() returns latestCompletedXid.
>>
>> However, in that case if I understand correctly GetOldestXmin()
>> actually returns latestCompletedXid + 1 as follows;
>>
>
> Isn't there another gotcha in above part of the comment, shouldn't it
> say rel != NULL?  AFAICS, when rel is NULL, it considers all databases
> not only current database.
>

Hmm it could return latestCompletedXid in that case. I think I
understood now, Thank you!

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


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


Re: [HACKERS] Fix GetOldestXmin comment

2017-05-30 Thread Amit Kapila
On Tue, May 30, 2017 at 6:32 AM, Masahiko Sawada  wrote:
> Hi,
>
> While reading source code, I realized that comment of GetOldestXmin mentions;
>
>   * if rel = NULL and there are no transactions running in the current
>   * database, GetOldestXmin() returns latestCompletedXid.
>
> However, in that case if I understand correctly GetOldestXmin()
> actually returns latestCompletedXid + 1 as follows;
>

Isn't there another gotcha in above part of the comment, shouldn't it
say rel != NULL?  AFAICS, when rel is NULL, it considers all databases
not only current database.


-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


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


[HACKERS] Fix GetOldestXmin comment

2017-05-29 Thread Masahiko Sawada
Hi,

While reading source code, I realized that comment of GetOldestXmin mentions;

  * if rel = NULL and there are no transactions running in the current
  * database, GetOldestXmin() returns latestCompletedXid.

However, in that case if I understand correctly GetOldestXmin()
actually returns latestCompletedXid + 1 as follows;

  /*
   * We initialize the MIN() calculation with latestCompletedXid + 1. This
   * is a lower bound for the XIDs that might appear in the ProcArray later,
   * and so protects us against overestimating the result due to future
   * additions.
   */
  result = ShmemVariableCache->latestCompletedXid;
  Assert(TransactionIdIsNormal(result));
  TransactionIdAdvance(result);

Attached patch fixes the top comment of GetOldestXmin.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center


getoldestxmin_comment.patch
Description: Binary data

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