Você pode extrair valores por chave de um
hstore
coluna com o ->
operador
. SELECT data->'Supplier' AS sup
FROM products
WHERE lower(data->'Supplier') LIKE '%tosh%';
Além disso, como a maioria das expressões no PostgreSQL (exceto coisas como
random()
), você pode indexar este valor:CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
Isso permitiria que o PostgreSQL respondesse a muitas dessas consultas usando o índice em vez de buscar cada linha e escanear o
hstore
coluna. Veja as notas sobre Tipos de índice
sobre o uso do índice com LIKE.