title: row_number() always return 1 since the source table has only one row
body: <p>Let's consider this minimal example:</p>
  
  <pre><code>SELECT row_number() over() as GID, 
         unnest(myarray)     as letter
  FROM 
  (
      SELECT string_to_array('a,b,b', ',') as myarray
  ) AS T
  </code></pre>
  
  <p>Now since the table <code>T</code> contains only one element, the <code>row_number()</code> function always return <code>1</code> even if 3 rows are returned. </p>
  
  <p>So I get:</p>
  
  <pre><code>GID   letter
  1     "a"
  1     "b"
  1     "b"
  </code></pre>
  
  <p>Instead of </p>
  
  <pre><code>GID   letter
  1     "a"
  2     "b"
  3     "b"
  </code></pre>
  
  <p>How can it be fixed ?</p>