title: Is INSERT RETURNING guaranteed to return things in the "right" order?
body: <p>Example:</p>
  
  <pre><code>create table foo(
      id serial, 
      txt text
  );
  
  insert into foo(txt) values ('a'),('b'),('c') returning id;
  </code></pre>
  
  <p>Returns:</p>
  
  <pre><code> id 
  ----
    1
    2
    3
  (3 rows)
  </code></pre>
  
  <p>It <em>seems</em> that the <em>first</em> <code>id</code> in the return value will always be the <code>id</code> for <code>'a'</code>, the second for <code>'b'</code> and so on, but is this defined behaviour of <code>insert into</code>, or is it a coincidence that may fail under odd circumstances?</p>