How to add a new operator for parser?

Started by jacktby jacktbyover 2 years ago4 messages
#1jacktby jacktby
jacktby@gmail.com

I’m trying to add a new operator for my pg application like greater_equals called “<~>", how many files I need to
modify and how to do it? Can you give me an example?

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: jacktby jacktby (#1)
Re: How to add a new operator for parser?

On Sun, 6 Aug 2023, 12:34 jacktby jacktby, <jacktby@gmail.com> wrote:

I’m trying to add a new operator for my pg application like greater_equals
called “<~>", how many files I need to
modify and how to do it? Can you give me an example?

you can look at some contrib for some examples of custom operator (and
custom datatype) implementation, like citext or btree_gin/gist

Show quoted text
#3jacktby jacktby
jacktby@gmail.com
In reply to: Julien Rouhaud (#2)
Re: How to add a new operator for parser?

2023年8月6日 13:18,Julien Rouhaud <rjuju123@gmail.com> 写道:

On Sun, 6 Aug 2023, 12:34 jacktby jacktby, <jacktby@gmail.com <mailto:jacktby@gmail.com>> wrote:

I’m trying to add a new operator for my pg application like greater_equals called “<~>", how many files I need to
modify and how to do it? Can you give me an example?

you can look at some contrib for some examples of custom operator (and custom datatype) implementation, like citext or btree_gin/gist

I need to build a new datatype. It can contains different datatypes, like ‘(1,’a’,2.0)’,it’s a (interger,string,float) tuple type, and Then I need to add operator for it. How should I do?

#4Julien Rouhaud
rjuju123@gmail.com
In reply to: jacktby jacktby (#3)
Re: How to add a new operator for parser?

On Sun, Aug 06, 2023 at 01:37:42PM +0800, jacktby jacktby wrote:

I need to build a new datatype. It can contains different datatypes, like
‘(1,’a’,2.0)’,it’s a (interger,string,float) tuple type

Is there any reason why you can't simply rely on the record datatype?

and Then I need to
add operator for it. How should I do?

If using record datatype you would only need to add a new operator.