title: Should this PostgreSQL query use the indexes?
body: <p>I have two tables:</p>
  
  <pre><code>CREATE TABLE soils (
      sample_id       TEXT PRIMARY KEY, 
      project_id      TEXT, 
      technician_id   TEXT
  );
  CREATE INDEX soils_idx
  ON soils
  USING btree
  (sample_id COLLATE pg_catalog."default");
  
  CREATE TABLE assays (
      sample_id   TEXT PRIMARY KEY, 
      mo_ppm      NUMERIC
      );
  CREATE INDEX assays_idx
  ON assays
  USING btree
  (sample_id COLLATE pg_catalog."default");
  </code></pre>
  
  <p>Each table contains about a half million records, and, in reality, about 20 additional columns each, of type TEXT (omitted in the DDL posted above to save time here).</p>
  
  <p>When I perform the query:</p>
  
  <pre><code>EXPLAIN SELECT
     s.sample_id, s.project_id, s.technician_id, a.mo_ppm
  FROM
     soils AS s INNER JOIN assays AS a ON s.sample_id = a.sample_id
  </code></pre>
  
  <p>I get 2 SEQ SCANs, rather than a lookup to the index.  Is that expected behaviour?</p>