On Thu, Jan 20, 2022 at 08:55:01PM +0100, Pavel Stehule wrote:
> čt 20. 1. 2022 v 20:43 odesílatel Michal Bartak <
maxym...@gmail.com>
> napsal:
>
> >
> >
> > > 20. 1. 2022 v 20:35, Michal Páleník <
michal....@freemap.sk>:
> > >
> > > ale to si stihnem zanadávať :)
> >
> > Co dokazuje ze datova struktura neni „vcelku ok” ;)
> >
>
> postgres=# create or replace function like_array_func(text[], text) returns
> bool as $$select exists(select v from unnest($1) v(v) where v like $2) $$
> language sql;
> CREATE FUNCTION
> postgres=# create operator ~~ (function = like_array_func, leftarg =
> text[], rightarg = text);
> CREATE OPERATOR
> postgres=# select array['AHOJ','NAZDAR','BAZAR']::text[] like '%AH%';
> ┌──────────┐
> │ ?column? │
> ╞══════════╡
> │ t │
> └──────────┘
> (1 row)
>
> postgres=# select array['AHOJ','NAZDAR','BAZAR'] like '%AH%';
> ┌──────────┐
> │ ?column? │
> ╞══════════╡
> │ t │
> └──────────┘
> (1 row)
>
> kupodivu to funguje, coz jsem ani necekal
>
super, funguje krásne
trošku som opravil na (aby bolo aj ilike):
parallel safe a immutable je OK?
create or replace function like_array_func(text[], text) returns bool as $$
select exists(select v from unnest($1) v(v) where v like $2) $$
language sql IMMUTABLE PARALLEL SAFE;
create operator ~~ (function = like_array_func, leftarg = text[], rightarg = text);
create or replace function ilike_array_func(text[], text) returns bool as $$
select exists(select v from unnest($1) v(v) where v ilike $2) $$
language sql IMMUTABLE PARALLEL SAFE;
create operator ~~* (function = like_array_func, leftarg = text[], rightarg = text);
> Chcete-li zobrazit tuto diskusi na webu, navštivte
https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRDAUh%3DkvCb5xB-_-d58rx-Y9tdz7pOCO8tBYh2_2KxP%2Bg%40mail.gmail.com.
--
Michal Páleník
www.oma.sk