title: psycopg2's sql.Identifier throwing "No function matching..." error
body: <p>sql.SQL() works as it should, however I am having issues with both sql.Identifier and sql.Literal.  Both throw an error like this:</p>
  <pre><code>cur.execute(sql.SQL(&quot;&quot;&quot;
  psycopg2.errors.UndefinedFunction: function identifier(unknown) does not exist
  LINE 3:      Identifier('table_name')
               ^
  HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
  </code></pre>
  <p>This is the code I am using:</p>
  <pre><code>cur.execute(sql.SQL(&quot;&quot;&quot;
  select 
    {}
  from
    information_schema.tables
  where
    table_schema = 'my_schema';
  &quot;&quot;&quot;.format(sql.Identifier('table_name'))))
  </code></pre>
  <p>I have followed the instructions as best as possible, and as far as I can tell, everything is correct.  I have imported sql from psycopg2 as well and established my connection.  If I remove the sql.SQL and sql.Identifier and just pass the sql as a string to execute, it works perfectly, however, I want it to be as safe as possible as other parts may have user input.  Am I doing something wrong, or is there a way to get this to work that I haven't stumbled upon yet?</p>
  <p>Psycopg2 is fully up to date as well.</p>