title: Named parameters in database functions with SQLAlchemy
body: <p>I have a function in my database (Postgres) that looks like this:</p>
  
  <pre><code>create function test_f(a text default '*', b text default '+') returns text as $$
      select a || ' ' || b;
  $$ language sql;
  </code></pre>
  
  <p>Postgres allows calling it with named parameters:</p>
  
  <pre><code>mytest=&gt; select test_f('a', 'b');                                           
  test_f                                                                      
  --------                                                                    
  a b                                                                         
  (1 row)                                                                     
  
  mytest=&gt; select test_f('a');                                                
  test_f                                                                      
  --------                                                                    
  a +                                                                         
  (1 row)                                                                     
  
  mytest=&gt; select test_f(b:='a');                                             
  test_f                                                                      
  --------                                                                    
  * a                                                                         
  (1 row)                                                                     
  </code></pre>
  
  <p>I want to do the same from Python, using <a href="http://docs.sqlalchemy.org/en/rel_0_7/core/tutorial.html#functions" rel="nofollow">SQLAlchemy's <code>func</code> construct</a>, but it seems that <code>func</code> does not honor named parameters:</p>
  
  <pre><code>In [85]: print(sqlalchemy.func.test_f('a', 'b'))                            
  test_f(:test_f_1, :test_f_2)                                                
  
  In [86]: print(sqlalchemy.func.test_f('a'))                                 
  test_f(:test_f_1)                                                           
  
  In [87]: print(sqlalchemy.func.test_f(a='a'))                               
  test_f()                                                                    
  </code></pre>
  
  <p>Am I missing something, or <code>func</code> does not support named parameters?</p>