From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: _bt_split(), and the risk of OOM before its critical section |
Date: | 2019-05-08 22:37:50 |
Message-ID: | CAH2-WzmDfdoSPP3u0uf=WkYrQKnYJ2F-E_qNTvY9iiQ-5ua4zw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, May 7, 2019 at 6:15 PM Peter Geoghegan <pg(at)bowt(dot)ie> wrote:
> I suppose I'm biased, but I prefer the new approach anyway. Adding the
> left high key first, and then the right high key seems simpler and
> more logical. It emphasizes the similarities and differences between
> leftpage and rightpage.
I came up with a better way of doing it in the attached revision. Now,
_bt_split() calls _bt_findsplitloc() directly. This makes it possible
to significantly simplify the signature of _bt_split().
It makes perfect sense for _bt_split() to call _bt_findsplitloc()
directly, since _bt_findsplitloc() is already aware of almost every
_bt_split() implementation detail, whereas those same details are not
of interest anywhere else. _bt_findsplitloc() also knows all about
suffix truncation. It's also nice that the actual _bt_truncate() call
is closely tied to the _bt_findsplitloc() call.
--
Peter Geoghegan
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Don-t-leave-behind-junk-nbtree-pages-during-split.patch | application/octet-stream | 14.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-05-08 23:33:25 | Re: Problems with pg_upgrade and extensions referencing catalog tables/views |
Previous Message | Nasby, Jim | 2019-05-08 22:31:15 | Re: New EXPLAIN option: ALL |