luckyframework/avram

Support Array of citext `citext[]` column

Offen

#970 geöffnet am 11.09.2023

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Crystal (67 Forks)auto 404
hacktoberfest

Repository-Metriken

Stars
 (180 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Avram currently supports Array(String), but if you need to search an array with case insensitive, then things get a little hairy

(assuming you have a GIN index on this column...)

=# select username from users where tags @> array['Lucky'];
  username   
-------------
 jeremy
(1 row)

Time: 0.438 ms
=# select username from users where tags @> array['LUCKY'];
  username   
-------------
(0 rows)

Time: 0.815 ms
=# select username from users where lower(tags::text)::text[] @> array['lucky'];
  username   
-------------
 jeremy
(1 row)

Time: 36.088 ms

Now if you use a citext[] column instead..

=# select username from users where tags @> array['LUCKY']::citext[];
  username   
-------------
 jeremy
(1 row)

Time: 0.395 ms
=# select username from users where tags @> array['lUcKy']::citext[];
  username   
-------------
 jeremy
(1 row)

Time: 0.408 ms

Contributor Guide