Re: Create duplicate of existing operator - Mailing list pgsql-general

From Tom Lane
Subject Re: Create duplicate of existing operator
Date
Msg-id 11505.1329449735@sss.pgh.pa.us
Whole thread Raw
In response to Create duplicate of existing operator  (Andy Chambers <achambers@mcna.net>)
List 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 by date:

Previous
From: Andy Chambers
Date:
Subject: Create duplicate of existing operator
Next
From: Stefan Weiss
Date:
Subject: Re: MD5 salt in pg_authid password hashes