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 = =*);
begin:vcard n:Bateman;Kyle x-mozilla-html:FALSE org:Action Target Inc. adr:;;;;;; version:2.1 email;internet:[EMAIL PROTECTED] title:President x-mozilla-cpt:;0 fn:Kyle Bateman end:vcard