Re: [HACKERS] merging duplicate definitions of adjust_relid_set
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] merging duplicate definitions of adjust_relid_set |
Дата | |
Msg-id | 16341.1489773051@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | [HACKERS] merging duplicate definitions of adjust_relid_set (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: [HACKERS] merging duplicate definitions of adjust_relid_set
|
Список | pgsql-hackers |
Robert Haas <robertmhaas@gmail.com> writes: > While reviewing Ashutosh Bapat's partitionwise join code, I noticed > he'd run up against the problem that adjust_relid_set() is defined as > static in two different source files, and he wanted to call it from a > third file. I didn't much like his solution to that problem, which > was to rename one of them and make that definition non-static; I think > it would be better to keep the existing name and stop defining it in > multiple places. However, I discovered that there wasn't really an > obviously-good place to put the function; neither prepunion.c nor > rewriteManip.c, the two files that contain static versions as of now, > seem like an appropriate place from which to expose it, and I didn't > find anything else that I was wildly in love with, either. The > attached patch puts it in var.c, because it didn't look horrible and I > thought it wasn't worth creating a new file just for this. > Objections, better ideas? I think it might be better to define it as a fundamental Bitmapset operation in nodes/bitmapset.c, along the lines of Bitmapset *bms_replace_member(const Bitmapset *bms, int member, int repl); This API would probably require giving up the property of not copying the set unless it changes, but I doubt that that's performance critical. regards, tom lane
В списке pgsql-hackers по дате отправления: