Re: bit|varbit #, xor operator - Mailing list pgsql-hackers

From David G. Johnston
Subject Re: bit|varbit #, xor operator
Date
Msg-id CAKFQuwYC47oFZLO4Q0c2K7zbW86_Tc3n1s53ADV2DqGhFA=WhQ@mail.gmail.com
Whole thread Raw
In response to Re: bit|varbit #, xor operator  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
List pgsql-hackers
On Mon, Oct 17, 2016 at 1:39 PM, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:
On 10/17/16 11:29 AM, Tom Lane wrote:
Jim Nasby <Jim.Nasby@bluetreble.com> writes:
On 10/16/16 3:13 PM, Tom Lane wrote:
Related to this I'd also like to add a boolean XOR operator as that's a
relatively common request/question.

We have boolean XOR; it's spelled "<>".

I always forget about that...

Maybe it should be mentioned explicitly in the docs.

Hrm, went to go add it and it appears we don't have a section for boolean type operators. I guess I should add it to 9.1?


​There are no symbolic operators, just the standard SQL keywords: AND, OR, NOT.


​Adding a note there pertaining to XOR should be sufficient.​

though, it doesn't work for boolean arrays.

Define doesn't work?

I would expect array[true, false] XOR array[true, true] to return array[false, true], but <> just returns a single true (since the arrays are !=).

Though, I guess what would make the most sense there is a map function that would apply an operator or function to every element of a set of arrays. But I don't see any way to do that without major changes to how anyarray works.

​Yeah, your expectations seem off here given that:

​SELECT array[true, false]::boolean[] AND array[true, true]::boolean[]

is invalid...

David J.

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Add PGDLLEXPORT to PG_FUNCTION_INFO_V1
Next
From: Robert Haas
Date:
Subject: Re: Non-empty default log_line_prefix