Re: query on smallint array column - Mailing list pgsql-hackers

From Zhihong Yu
Subject Re: query on smallint array column
Date
Msg-id CALNJ-vTErS6+yuFMFS41xCSBMda4FJ5X45f_CLPVZ5FbLr3mLA@mail.gmail.com
Whole thread Raw
In response to Re: query on smallint array column  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers
Thanks Pavel for fast response.

On Sun, Dec 13, 2020 at 9:51 AM Pavel Stehule <pavel.stehule@gmail.com> wrote:
Hi

ne 13. 12. 2020 v 18:42 odesílatel Zhihong Yu <zyu@yugabyte.com> napsal:
Hi,
I was experimenting with the following query.

create table sint1(k int primary key, arr smallint[]);
create index s1 on sint1(arr);
insert into sint1 select s, array[s*s, s] FROM generate_series(1, 10) AS s;
select * from sint1 where arr @> array[4];
ERROR:  operator does not exist: smallint[] @> integer[]
LINE 1: select * from sint1 where arr @> array[4];
                                      ^
HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.
-------

I wonder if someone can enlighten me on the correct way to perform the type cast.

 
postgres=# select * from sint1 where arr @> array[4::smallint];
┌───┬────────┐
│ k │  arr   │
╞═══╪════════╡
│ 2 │ {4,2}  │
│ 4 │ {16,4} │
└───┴────────┘
(2 rows)

postgres=# select * from sint1 where arr @> array[4]::smallint[];
┌───┬────────┐
│ k │  arr   │
╞═══╪════════╡
│ 2 │ {4,2}  │
│ 4 │ {16,4} │
└───┴────────┘
(2 rows)


postgres=#
 

Thanks

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: query on smallint array column
Next
From: Noah Misch
Date:
Subject: Re: HASH_BLOBS hazards (was Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions)