Rename rbtree.c functions to use "rbt" prefix not "rb" prefix.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Nov 2018 18:25:24 +0000 (13:25 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Nov 2018 18:25:24 +0000 (13:25 -0500)
commit003c68a3b45d0d135b874acfe04cf3fb79a6f172
treeeae0a074ebf71ec57eb651dcd9f4578b37de1e36
parent8f623bedfb4fee5a125b25720e5451379cf26ff9
Rename rbtree.c functions to use "rbt" prefix not "rb" prefix.

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
src/backend/access/gin/ginbulk.c
src/backend/lib/rbtree.c
src/include/access/gin_private.h
src/include/lib/rbtree.h
src/test/modules/test_rbtree/test_rbtree.c