Re: Create duplicate of existing operator

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Create duplicate of existing operator
Дата
Msg-id 11505.1329449735@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Create duplicate of existing operator  (Andy Chambers <achambers@mcna.net>)
Список pgsql-general
Andy Chambers <achambers@mcna.net> writes:
> Is it possible to use CREATE OPERATOR to make "&&" behave like "and"?

Hmm ... AND is not really an operator, but a primitive expression
construct.  So I was about to say "no", but then it occurred to me
you could do something like (untested):

create function nonstandard_and(bool,bool) returns bool as
'select $1 and $2' language sql;

create operator && (procedure = nonstandard_and, leftarg = bool,
                    rightarg = bool);

This would be completely unworkable unless the implementation function
is an inline-able SQL function, because otherwise the planner will not
recognize that your && means AND, resulting in spectacularly bad
optimization.  But with that, maybe you could get away with it.

I would not recommend it though, because you'll be paying through the
nose (inlining isn't a remarkably cheap operation) for what
fundamentally is gratuitously nonstandard, unportable SQL syntax with no
obvious redeeming value.  The above hack is a cute hack, but it's just a
hack not something I'd recommend for production.

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Andy Chambers
Дата:
Сообщение: Create duplicate of existing operator
Следующее
От: Stefan Weiss
Дата:
Сообщение: Re: MD5 salt in pg_authid password hashes