On Oct 13, 2008, at 12:29 PM, Andy Davidoff wrote:
>
> On Oct 11, 1:29 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
>> On Oct 11, 2008, at 12:49 PM, AndyDavidoffwrote:
>>> This fixes the first part of this problem, but unfortunately the
>>> `show
>>> create table` is performed in the connection, not the session in
>>> which
>>> the temporary table was created. MySQL doesn't expose temporary
>>> tables between sessions, so the `show create table` raises a MySQL
>>> exception due to a non-existent table.
>>
>> you can reflect any table on a specific connection using
>> autoload_with=<someconnection>. if by "Session" you mean ORM
>> session,
>> get the current connection using session.connection().
>
> Thanks, but MySQL's temporary tables are invisible to connection
> objects; the reflection would need to occur via queries issued in the
> actual Session (ORM session) in which the tables were created. I
> doubt this'll be easy to elegantly hack into SQLA, though.
I mean this:
sess = sessionmaker(autocommit=False)
sess.execute("do something that creates a temporary table")
my_temporary_table = Table("my_temporary_table", MetaData(),
autoload=True, autoload_with=sess.connection())
i.e., use the Connection object referenced by the Session. as long as
you are autocommit=False it will persist until you say commit() or
rollback().
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---