Re: Named Operators
От | Matthias van de Meent |
---|---|
Тема | Re: Named Operators |
Дата | |
Msg-id | CAEze2Wi_BfgeykixwzL2Hh9HU8M-fQ6g-6R3BuuvXVDhU8mdkg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Named Operators (Peter Eisentraut <peter.eisentraut@enterprisedb.com>) |
Ответы |
Re: Named Operators
|
Список | pgsql-hackers |
On Fri, 27 Jan 2023 at 16:26, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote: > > On 12.01.23 14:55, Matthias van de Meent wrote: > >> Matter of taste, I guess. But more importantly, defining an operator > >> gives you many additional features that the planner can use to > >> optimize your query differently, which it can't do with functions. See > >> the COMMUTATOR, HASHES, etc. clause in the CREATE OPERATOR command. > > I see. Wouldn't it be better then to instead make it possible for the > > planner to detect the use of the functions used in operators and treat > > them as aliases of the operator? Or am I missing something w.r.t. > > differences between operator and function invocation? > > > > E.g. indexes on `int8pl(my_bigint, 1)` does not match queries for > > `my_bigint + 1` (and vice versa), while they should be able to support > > that, as OPERATOR(pg_catalog.+(int8, int8)) 's function is int8pl. > > I have been thinking about something like this for a long time. > Basically, we would merge pg_proc and pg_operator internally. Then, all > the special treatment for operators would also be available to > two-argument functions. And single-argument functions in case of prefix operators, right?
В списке pgsql-hackers по дате отправления: