v17 is a rebase fixing a minor parse_coerce.c edit; v16 lasted little :-( I chose to change the wording of the conflicting comment in enforce_generic_type_consistency():
* 3) Similarly, if return type is ANYRANGE or ANYMULTIRANGE, and any * argument is ANYRANGE or ANYMULTIRANGE, use that argument's * actual type, range type or multirange type as the function's return * type. This wording is less precise, in that it doesn't say exactly which of the three types is the actual result for each of the possible four cases (r->r, r->m, m->m, m->r) but I think it should be straightforward. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services