• Tom Lane's avatar
    Rename rbtree.c functions to use "rbt" prefix not "rb" prefix. · 003c68a3
    Tom Lane authored
    The "rb" prefix is used by Ruby, so that our existing code results
    in name collisions that break plruby.  We discussed ways to prevent
    that by adjusting dynamic linker options, but it seems that at best
    we'd move the pain to other cases.  Renaming to avoid the collision
    is the only portable fix anyway.  Fortunately, our rbtree code is
    not (yet?) widely used --- in core, there's only a single usage
    in GIN --- so it seems likely that we can get away with a rename.
    
    I chose to do this basically as s/rb/rbt/g, except for places where
    there already was a "t" after "rb".  The patch could have been made
    smaller by only touching linker-visible symbols, but it would have
    resulted in oddly inconsistent-looking code.  Better to make it look
    like "rbt" was the plan all along.
    
    Back-patch to v10.  The rbtree.c code exists back to 9.5, but
    rb_iterate() which is the actual immediate source of pain was added
    in v10, so it seems like changing the names before that would have
    more risk than benefit.
    
    Per report from Pavel Raiskup.
    
    Discussion: https://postgr.es/m/4738198.8KVIIDhgEB@nb.usersys.redhat.com
    003c68a3
rbtree.c 18.3 KB