Re: plruby: rb_iterate symbol clash with libruby.so
Pavel Raiskup <praiskup@redhat.com>
From: Pavel Raiskup <praiskup@redhat.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Devrim GÜNDÜZ <devrim@gunduz.org>
Date: 2018-11-06T12:43:03Z
Lists: pgsql-hackers
On Monday, November 5, 2018 9:06:41 PM CET Robert Haas wrote: > On Sat, Nov 3, 2018 at 2:20 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > > Is it realistic we could rename red-black tree methods from 'rb_*' to e.g. > > > 'rbt_*' to avoid this clash? > > > > That's not terribly appetizing, because it essentially means we're giving > > Ruby (and potentially every other library on the planet) veto power over > > our function namespace. That does not scale, especially not when the > > feedback loop has a time constant measured in years :-( > > > > I don't have a huge objection to renaming the rbtree functions, other > > than the precedent it sets ... > > Maybe prefixing with pg_ would better than rb_ to rbt_. That's our > semi-standard namespace prefix, I think. Of course nothing keeps > somebody else from using it, too, but we can hope that they won't. > It's certainly not very surprising that Ruby has symbols starting with > rb_... I now realized that there's rb_block_call() alternative for rb_iterate() Ruby call -- which fortunately doesn't collide with PostgreSQL internals. It means that for sufficiently new Ruby there exists some solution (not that something similar can not re-appear elsewhere). Pavel
Commits
-
Rename rbtree.c functions to use "rbt" prefix not "rb" prefix.
- b2e754c14e27 10.7 landed
- 1f28ec6be270 11.1 landed
- 003c68a3b45d 12.0 landed