ne 7. 3. 2021 v 11:02 odesílatel Vik Fearing <v...@postgresfriends.org> napsal:
> On 3/7/21 10:53 AM, Pavel Stehule wrote: > > ne 7. 3. 2021 v 10:36 odesílatel Vik Fearing <v...@postgresfriends.org> > > napsal: > > > >> On 3/6/21 9:06 PM, David G. Johnston wrote: > >>> On Saturday, March 6, 2021, David Fetter <da...@fetter.org> wrote: > >>> > >>>> > >>>>>> SELECT BIT_XOR(b ORDER BY a, c)... /* works */ > >>>>>> SELECT BIT_XOR(b) OVER (ORDER BY a, c)... /* works */ > >>>>>> SELECT BIT_XOR(b) FROM... /* errors out */ > >>>>> > >>>>> > >>>>> Why would such an error be necessary, or even desirable? > >>>> > >>>> Because there is no way to ensure that the results remain consistent > >>>> from one execution to the next without such a guarantee. > >>>> > >>> > >>> Numerous existing aggregate functions have this behavior. Making those > >>> error isn’t an option. So is making this a special case something we > >> want > >>> to do (and also maybe make doing so the rule going forward)? > >> > >> Aside from the fact that bit_xor() does not need this, I am opposed to > >> it in general. It is not our job to make people write correct queries. > >> > > > > I cannot agree with the last sentence. It is questions about costs and > > benefits, but good tool should to make warnings when users does some > stupid > > things. > > > > It is important at this time, because complexity in IT is pretty high, > and > > a lot of users are not well trained (but well trained people can make > > errors too). And a lot of users have zero knowledge about technology, So > > when it is possible, and when it makes sense, then Postgres should be > > simple and safe. I think it is important for renome too. It is about > costs > > and benefits. Good reputation is a good benefit for us too. Ordered > > aggregation was designed for some purposes, and should be used, when it > has > > sense. > > How many cycles do you recommend we spend on determining whether ORDER > BY a, b is sufficient but ORDER BY a is not? > > If we had an optimization_effort_level guc (I have often wanted that), > then I agree that this could be added to a very high level. But we > don't, so I don't want any of it. > The safeguard is mandatory ORDER BY clause. -- > Vik Fearing >