title: postgresql: non-table expression in from-list?
body: <p>Let's say I have a table</p>
  <pre><code>id | description
  -----------------
  1  |  aaa        
  2  |  bbb        
  </code></pre>
  <p>I accidentally wrote</p>
  <pre><code>select * from the_table, upper(description)
  </code></pre>
  <p>and was very surprised to get the result</p>
  <pre><code>id | description | upper
  -------------------------
  1  |  aaa        | AAA
  2  |  bbb        | BBB
  </code></pre>
  <p>How/why does this work? The documentation mentions that comma-separated entries in the from-clause must be table-like structures, which are then cross-join together. Here neither is true. Which part of the syntax &amp; semantics allows this??</p>