title: Postgresql doesn't use GIN index for "?" JSON operator
body: <p>By some reason index is not used for "?" operator.</p>
  
  <p>Let's take this sample <a href="https://schinckel.net/2014/05/25/querying-json-in-postgres/" rel="nofollow noreferrer">https://schinckel.net/2014/05/25/querying-json-in-postgres/</a> :</p>
  
  <pre><code>  CREATE TABLE json_test (
    id serial primary key,
    data jsonb
    );
  
    INSERT INTO json_test (data) VALUES 
    ('{}'),
    ('{"a": 1}'),
    ('{"a": 2, "b": ["c", "d"]}'),
    ('{"a": 1, "b": {"c": "d", "e": true}}'),
    ('{"b": 2}');
  </code></pre>
  
  <p>And create an index.</p>
  
  <pre><code>create index json_test_index on public.json_test using gin (data jsonb_path_ops) tablespace pg_default;
  </code></pre>
  
  <p>Then take a look at plan of the following query:</p>
  
  <pre><code>SELECT * FROM json_test WHERE data ? 'a';
  </code></pre>
  
  <p>There will be Seq Scan while I would expect an index scan. Could please somebody advise what's wrong here?</p>