mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
Add planner support functions for range operators <@ and @>.
These support functions will transform expressions with constant range values into direct comparisons on the range bound values, which are frequently better-optimizable. The transformation is skipped however if it would require double evaluation of a volatile or expensive element expression. Along the way, add the range opfamily OID to range typcache entries, since load_rangetype_info has to compute that anyway and it seems silly to duplicate the work later. Kim Johan Andersson and Jian He, reviewed by Laurenz Albe Discussion: https://postgr.es/m/94f64d1f-b8c0-b0c5-98bc-0793a34e0851@kimmet.dk
This commit is contained in:
1
src/backend/utils/cache/typcache.c
vendored
1
src/backend/utils/cache/typcache.c
vendored
@@ -940,6 +940,7 @@ load_rangetype_info(TypeCacheEntry *typentry)
|
||||
/* get opclass properties and look up the comparison function */
|
||||
opfamilyOid = get_opclass_family(opclassOid);
|
||||
opcintype = get_opclass_input_type(opclassOid);
|
||||
typentry->rng_opfamily = opfamilyOid;
|
||||
|
||||
cmpFnOid = get_opfamily_proc(opfamilyOid, opcintype, opcintype,
|
||||
BTORDER_PROC);
|
||||
|
||||
Reference in New Issue
Block a user