[SQL] Confusion about CREATE OPERATOR syntax.

Поиск
Список
Период
Сортировка
От Raphael Araújo e Silva
Тема [SQL] Confusion about CREATE OPERATOR syntax.
Дата
Msg-id CABJ1nXxMdZWEsSUphsfrT-vOZZxRo3ZMeaOA9WS=5KHEvv5fzg@mail.gmail.com
обсуждение исходный текст
Ответы Re: [SQL] Confusion about CREATE OPERATOR syntax.  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-sql
Hi guys!

I'm the creator of the PostgreSQL Database Modeler and I'm improving the reverse engineering feature after some requests from the users.

I've stumbled on a bug when importing operators and while I was writing a fix for that bug a great confusion came into my mind. It's about the CREATE OPERATOR syntax, more specifically, about the LEFTARG and RIGHTARG attributes. 

I've read the docs but cannot find a proper answer and that's why I'm here... I hope you guys can help me. Well, my doubt is: when specifying LEFTARG and RIGHTARG the datatypes should be written in the complete form? By "complete form" I mean specifying the precision and/or length... For instance, I want to create an operator to handle certain operation between two numeric(5,2) values, said that, my operator should be written as:

CREATE OPERATOR ++ (
 PROCEDURE = func_name(numeric,numeric),
 LEFTARG = numeric,
 RIGHTARG = numeric
)

Or(?):

CREATE OPERATOR ++ (
 PROCEDURE = func_name(numeric,numeric),
 LEFTARG = numeric(5,2),
 RIGHTARG = numeric(5,2)
)

Well, I've tested both forms and them work fine. If I try to run one after another an error will raise for the second reporting that the operator already exists. Is PostgreSQL simply interpreting them as the same? Is the precision/length ignored/not needed?

Thanks in advance and forgive my rusty English, I'm Brazilian! :)
--
Raphael Araújo e Silva
pgModeler Project Developer


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

Предыдущее
От: Viktor Bojović
Дата:
Сообщение: Re: [SQL] autogenerated json path
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: [SQL] Confusion about CREATE OPERATOR syntax.