title: md5() works with literal, but not with column data
body: <p>While testing out <a href="http://www.postgresql.org/docs/9.1/static/functions-string.html" rel="noreferrer">PostgreSQL's <code>md5()</code> function</a> I noticed very bizarre behavior:</p>
  
  <p><strong>Works as expected</strong></p>
  
  <pre><code>SELECT md5('abc')
  --"900150983cd24fb0d6963f7d28e17f72"
  </code></pre>
  
  <p><strong>But using the md5() function in a query:</strong></p>
  
  <pre><code>SELECT request_id, md5(request_id)
  FROM Request
  ORDER BY request_id
  </code></pre>
  
  <p>results in this error:</p>
  
  <pre><code>ERROR:  function md5(integer) does not exist
  LINE 1: SELECT request_id, md5(request_id)
                             ^
  HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
  
  ********** Error **********
  
  ERROR: function md5(integer) does not exist
  SQL state: 42883
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Character: 20
  </code></pre>
  
  <p>How can the function <em>not</em> exist if it worked in the first query? <strong>What am I doing wrong; what is the correct way to use <code>md5()</code> in a SELECT query?</strong></p>