[SQL] Confusion about CREATE OPERATOR syntax. - Mailing list pgsql-sql

From Raphael Araújo e Silva
Subject [SQL] Confusion about CREATE OPERATOR syntax.
Date
Msg-id CABJ1nXxMdZWEsSUphsfrT-vOZZxRo3ZMeaOA9WS=5KHEvv5fzg@mail.gmail.com
Whole thread Raw
Responses Re: [SQL] Confusion about CREATE OPERATOR syntax.
List 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 by date:

Previous
From: Viktor Bojović
Date:
Subject: Re: [SQL] autogenerated json path
Next
From: "David G. Johnston"
Date:
Subject: Re: [SQL] Confusion about CREATE OPERATOR syntax.