title: Practical limitations of expression indexes in PostgreSQL
body: <p>I have a need to store data using the HSTORE type and index by key.</p>
  
  <pre><code>CREATE INDEX ix_product_size ON product(((data-&gt;'Size')::INT))
  CREATE INDEX ix_product_color ON product(((data-&gt;'Color')))
  etc.
  </code></pre>
  
  <p>What are the practical limitations of using expression indexes? In my case, there could be several hundred different types of data, hence several hundred expression indexes. Every insert, update, and select query will have to process against these indexes in order to pick the correct one.</p>