On Wed, Jan 17, 2024 at 12:32 PM John Naylor <johncnaylo...@gmail.com> wrote: > > I wrote: > > > > Hmm, I wonder if that's a side-effect of the "create" functions doing > > > their own allocations and returning a pointer. Would it be less tricky > > > if the structs were declared where we need them and passed to "init" > > > functions? > > If this is a possibility, I thought I'd first send the last (I hope) > large-ish set of radix tree cleanups to avoid rebasing issues. I'm not > including tidstore/vacuum here, because recent discussion has some > up-in-the-air work.
Thank you for updating the patches! These updates look good to me. > > Should be self-explanatory, but some thing are worth calling out: > 0012 and 0013: Some time ago I started passing insertpos as a > parameter, but now see that is not ideal -- when growing from node16 > to node48 we don't need it at all, so it's a wasted calculation. While > reverting that, I found that this also allows passing constants in > some cases. > 0014 makes a cleaner separation between adding a child and growing a > node, resulting in more compact-looking functions. > 0019 is a bit unpolished, but I realized that it's pointless to assign > a zero child when further up the call stack we overwrite it anyway > with the actual value. With this, that assignment is skipped. This > makes some comments and names strange, so needs a bit of polish, but > wanted to get it out there anyway. Cool. I'll merge these patches in the next version v54 patch set. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com