New operators

Поиск
Список
Период
Сортировка
От Kyle
Тема New operators
Дата
Msg-id 39C2468D.5A2DDBEF@actarg.com
обсуждение исходный текст
Список 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 = =*);


Вложения

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

Предыдущее
От: "Stuart Foster"
Дата:
Сообщение: Where to get benchmark testing
Следующее
От: Jie Liang
Дата:
Сообщение: Re: get table schema in psql?