čt 21. 11. 2019 v 21:15 odesílatel Paul Jungwirth < p...@illuminatedcomputing.com> napsal:
> On 11/21/19 1:06 AM, Pavel Stehule wrote: > > 2. I don't like introduction "safe" operators - now the basic operators > > are doubled, and nobody without documentation will use @* operators. > > > > It is not intuitive. I think is better to map this functionality to > > basic operators +- * and implement it just for pairs (Multirange, > > Multirange) and (Multirange, Range) if it is possible > > > > It's same relation line Numeric X integer. There should not be > > introduced new operators. If somebody need it for ranges, then he can > > use cast to multirange, and can continue. > > [snip] > > 3. There are not prepared casts - > > > > postgres=# select int8range(10,15)::int8multirange; > > ERROR: cannot cast type int8range to int8multirange > > LINE 1: select int8range(10,15)::int8multirange; > > ^ > > There should be some a) fully generic solution, or b) possibility to > > build implicit cast when any multirange type is created. > > Okay, I like the idea of just having `range + range` and `multirange + > multirange`, then letting you cast between ranges and multiranges. The > analogy to int/numeric seems strong. I guess if you cast a multirange > with more than one element to a range it will raise an error. That will > let me clean up the docs a lot too. > I though about it, and I think so cast from multirange to range is useless, minimally it should be explicit. On second hand - from range to multirange should be implicit. The original patch did 1. MR @x MR = MR 2. R @x R = MR 3. MR @x R = MR I think so @1 & @3 has sense, but without introduction of special operator. @2 is bad and can be solved by cast one or second operand. Pavel > Thanks! > > -- > Paul ~{:-) > p...@illuminatedcomputing.com >