The insert() construct supports a call called returning() to emit whatever 
RETURNING you want, but if you're using the ORM, then the insert() construct is 
generated by your mappings.  In this case, the ORM right now favors being able 
to batch the INSERT statements together into an executemany(), which doesn't 
support RETURNING, so as far as it using RETURNING specifically for non 
primary-key defaults, the ORM isn't quite set up for that yet. 

But, that doesn't mean you can't get those values automatically.   Any column 
that's not passed in and is marked as having a "server default" will be queued 
up to fetch automatically as soon as you access it.  The FetchedValue construct 
is used as this marker when you're dealing with something like a trigger: 

from sqlalchemy import FetchedValue

class MyClass(Base):
   # ...

   some_col = Column(Integer, server_default=FetchedValue())



http://docs.sqlalchemy.org/en/rel_0_8/core/schema.html#triggered-columns

On Apr 1, 2013, at 5:26 PM, Alexey Vihorev <viho...@gmail.com> wrote:

> Hi!
> I’ve got a server-side trigger function (before insert) – it changes some 
> fields of the inserted record, and I need this info back in my SA entity 
> object (akin to what SA does with ID’s). SA uses RETURNING whenever it is 
> supported, maybe I can use it as well? Or am I limited to refreshing the 
> object manually via session.refresh()?
> Thanks!
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email tosqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to