Few comments on commit 857f9c36 (skip full index scans )

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Teodor Sigaev <teodor(at)sigaev(dot)ru>, Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>
Subject: Few comments on commit 857f9c36 (skip full index scans )
Date: 2018-05-28 08:52:48
Message-ID: CAA4eK1JdS2AZbcYtcR8rFzRZe3ONozyEN-Y79Toqj39s3B9Tjg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Review comments on commit 857f9c36:
1.
@@ -2049,6 +2055,10 @@ _bt_newroot(Relation rel, Buffer lbuf, Buffer rbuf)
metapg = BufferGetPage(metabuf);
metad = BTPageGetMeta(metapg);

+ /* upgrade metapage if needed */
+ if (metad->btm_version < BTREE_VERSION)
+ _bt_upgrademetapage(metapg);
+

The metapage upgrade should be performed under critical section.

2.
@@ -191,6 +304,10 @@ _bt_getroot(Relation rel, int access)
LockBuffer(metabuf, BUFFER_LOCK_UNLOCK);
LockBuffer(metabuf, BT_WRITE);

+ /* upgrade metapage if needed */
+ if (metad->btm_version < BTREE_VERSION)
+ _bt_upgrademetapage(metapg);
+

Same as above.

In other cases like _bt_insertonpg, the upgrade is done inside the
critical section. It seems the above cases are missed.

3.
+ TransactionId btm_oldest_btpo_xact; /* oldest btpo_xact among of
+ * deleted pages */

/among of/among all

Attached patch to fix the above comments.

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

Attachment Content-Type Size
fix_review_skip_full_index_scan_v1.patch application/octet-stream 2.6 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2018-05-28 08:57:47 Re: pg_replication_slot_advance to return NULL instead of 0/0 if slot not advanced
Previous Message Amit Kapila 2018-05-28 08:25:19 Re: Keeping temporary tables in shared buffers