“С рождения Бобби пай-мальчиком был”

Увлёкся азартной игрой с государством корпорацией.

Успел выиграть каплю знания — PostgreSQL умеет нативно оперировать множествами, в т.ч. — символов. И получается очень удобно, когда словарный запас иссяк:

select word
from public.nouns
where
char_length(word) = 5
and string_to_array(word, null) @> '{с,о}'
and not string_to_array(word, null) && '{а,к,ц,и,я}'
and word like '__ь'

Легче писать и проще читать, чем комбинацию привычного like с кучей отдельных сравнений типа

and strpos(word, 'а') = 0
and strpos(word, 'к') = 0
and strpos(word, 'ц') = 0
-- …
and strpos(word, 'о') > 0

Затем — немного “угадайки” (гостя можно было тоже отфильтровать), попыток на которую остаётся достаточно:

word |
-----+
гость|
осень|
особь|
осыпь|
смоль|

Базу существительных где-то в интернетах стянул давно, импорт был инсертами под MySQL и с каким-то мусором.
Пришлось её чистить, чтобы в PG присунуть. Цепляю в комментарий в телеге, если кому понадобится.