New operators - Mailing list pgsql-sql

From Kyle
Subject New operators
Date
Msg-id 39C2468D.5A2DDBEF@actarg.com
Whole thread Raw
List pgsql-sql
I have a front end that builds queries based on a user selection of:
  Match type (=, <, >, ~, ~~, etc)
  Ignore/honor upper/lower case
  Negate the comparison

I ended up putting the following operators in the backend so the
operators all
had parallel types of case/no-case options.  This made the front end
code much simpler.

Would it be helpful to others to make these built-in operators?


-- Case insensitive operators (for consistency with like operators)
create function likenocase(text,text) returns boolean as '
    begin return upper($1) like upper($2); end;' language 'plpgsql' with
(iscachable);
    create operator ~~* (leftarg = text,rightarg = text,procedure =
likenocase, negator = !~~*);
create function nlikenocase(text,text) returns boolean as '
    begin return upper($1) not like upper($2); end;' language 'plpgsql'
with (iscachable);
    create operator !~~* (leftarg = text,rightarg = text,procedure =
nlikenocase, negator = ~~*);

create function eqnocase(text,text) returns boolean as '
    begin return upper($1) = upper($2); end;' language 'plpgsql' with
(iscachable);
    create operator =* (leftarg = text,rightarg = text,procedure =
eqnocase, negator = !=*);
create function neqnocase(text,text) returns boolean as '
    begin return upper($1) != upper($2); end;' language 'plpgsql' with
(iscachable);
    create operator !=* (leftarg = text,rightarg = text,procedure =
neqnocase, negator = =*);


Attachment

pgsql-sql by date:

Previous
From: "Stuart Foster"
Date:
Subject: Where to get benchmark testing
Next
From: Jie Liang
Date:
Subject: Re: get table schema in psql?