I wrote: > Actually ... have you given any thought to just deciding that ranges and > multiranges are the same type? That is, any range can now potentially > contain multiple segments? That would eliminate a whole lot of the > tedious infrastructure hacking involved in this patch, and let you focus > on the actually-useful functionality.
Also, this would allow us to remove at least one ugly misfeature: regression=# select '[1,2]'::int4range + '[3,10)'::int4range; ?column? ---------- [1,10) (1 row) regression=# select '[1,2]'::int4range + '[4,10)'::int4range; ERROR: result of range union would not be contiguous If the result of range_union can be a multirange as easily as not, we would no longer have to throw an error here. regards, tom lane