Refactor the way code is shared between some range type functions.
Heikki Linnakangas <heikki.linnakangas@iki.fi>
Refactor the way code is shared between some range type functions. Functions like range_eq, range_before etc. are exposed at the SQL-level, but they're also used internally by the GiST consistent support function. The code sharing was done by a hack, TrickFunctionCall2, which relied on the knowledge that all the functions used fn_extra the same way. This commit splits the functions into internal versions that take a TypeCacheEntry as argument, and thin wrappers to expose the functions at the SQL-level. The internal versions can then be called directly and in a less hacky way from the GiST consistent function. This is just cosmetic, but backpatch to 9.2 anyway, to avoid having a different version of this code in the 9.2 branch. That would make backpatching fixes in this area more difficult. Alexander Korotkov
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/rangetypes.c | modified | +142 −77 |
| src/backend/utils/adt/rangetypes_gist.c | modified | +54 −114 |
| src/include/utils/rangetypes.h | modified | +24 −0 |