[sqlalchemy] Re: relation that only fails with a backref
That worked, except that I had to skip the secondary kwarg on the backref. If I include it, I get: type 'exceptions.TypeError': __init__() got multiple values for keyword argument 'secondary' So it seems that it is assuming that I will use the same secondary table for the backref but not that I am using the same (or, rather, flipped) join conditions? That doesn't make too much sense to me (although practically speaking, it is certainly not that big a deal to have to specify the join conditions again in the backref). I will put a bug in trac later today to track this issue for .5 Also, this is my first time using a relation with uselist set to false and I was surprised that if multiple objects meet the condition it just hands me the first one. Since getting the value of a relation that has uselist=False is (in my mind) the moral equivalent of using one() on a query, I had been hoping it would raise if multiple rows were returned. On Wed, May 7, 2008 at 8:22 PM, Michael Bayer [EMAIL PROTECTED] wrote: On May 7, 2008, at 7:23 PM, Bobby Impollonia wrote: secondary_table = Table('secondary', Base.metadata, Column('left_id', Integer, ForeignKey('parent.id'), nullable=False), Column('right_id', Integer, ForeignKey('parent.id'), nullable=False)) class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) cls = Column(String(50)) __mapper_args__ = dict(polymorphic_on = cls ) class Child1(Parent): __tablename__ = 'child1' id = Column(Integer, ForeignKey('parent.id'), primary_key=True) __mapper_args__ = dict(polymorphic_identity = 'child1', inherit_condition=Parent.id==id) class Child2(Parent): __tablename__ = 'child2' id = Column(Integer, ForeignKey('parent.id'), primary_key=True) __mapper_args__ = dict(polymorphic_identity = 'child2') Child1.left_child2 = relation(Child2, secondary = secondary_table, primaryjoin = Child1.c.id == secondary_table.c.right_id, secondaryjoin = Child2.c.id == secondary_table.c.left_id, uselist = False, foreign_keys = [secondary_table.c.left_id, secondary_table.c.right_id], backref = 'the_backref') The first time I try to create an object or do a query, I get: class 'sqlalchemy.exceptions.ArgumentError': Could not determine relation direction for primaryjoin condition 'child2.id = secondary.left_id', on relation Child2.the_backref (Child1). Specify the foreign_keys argument to indicate which columns on the relation are foreign. when you specify primaryjoin/secondaryjoin to relation(), those arguments are not copied into the backref automatically, since you've gone explicit (perhaps this should be adjusted in 0.5). So you need to use backref=backref('the_backref', primaryjoin=join, secondaryjoin=otherjoin, secondary=table, foreign_keys=keys) in this case. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: with_lockmode(update) doesn't work on postgresql when eagerloading
On May 8, 2008, at 10:03 AM, Boldyrev Yaroslav wrote: I have a parent-child relationship and i want to query for update all children with their parents eager loaded. But that doesn't work as outer joins are not allowed in SELECT ..FOR UPDATE queries in postgresql and eagerload always produce outer join. The only solution (and only for most recent revision) i have found is to use explicit join and contains_eager: session.query(Child)\ .with_lockmode(update)\ .join(parent) \ .options(contains_eager(parent)) but it's doesn't look intuitively. So, do i miss something or eagerload should produce inner join for many-to-one relationship and if so, is there a chance to be fixed? the behavior we want to eventually implement is to use JOIN instead of OUTER JOIN if all foreign key columns in the join condition are not nullable. If the foreign key is nullable, then OUTER JOIN must be used for eager loading regardless of many-to-one one-to-many. If your case is the latter then you might need to stick with the explicit approach. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] with_lockmode(update) doesn't work on postgresql when eagerloading
I have a parent-child relationship and i want to query for update all children with their parents eager loaded. But that doesn't work as outer joins are not allowed in SELECT ..FOR UPDATE queries in postgresql and eagerload always produce outer join. The only solution (and only for most recent revision) i have found is to use explicit join and contains_eager: session.query(Child)\ .with_lockmode(update)\ .join(parent) \ .options(contains_eager(parent)) but it's doesn't look intuitively. So, do i miss something or eagerload should produce inner join for many-to-one relationship and if so, is there a chance to be fixed? -- Yaroslav Boldyrev --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: relation that only fails with a backref
On May 8, 2008, at 8:40 AM, Bobby Impollonia wrote: That worked, except that I had to skip the secondary kwarg on the backref. If I include it, I get: type 'exceptions.TypeError': __init__() got multiple values for keyword argument 'secondary' So it seems that it is assuming that I will use the same secondary table for the backref but not that I am using the same (or, rather, flipped) join conditions? oh, yeah i just checked and it is taking secondary. That doesn't make too much sense to me (although practically speaking, it is certainly not that big a deal to have to specify the join conditions again in the backref). I will put a bug in trac later today to track this issue for .5 theres a reason its like this but I believe the reason is something very historic so I think we will jsut have backref copy the primaryjoin/secondaryjoin of the parent property in all cases unless specified. Also, this is my first time using a relation with uselist set to false and I was surprised that if multiple objects meet the condition it just hands me the first one. Since getting the value of a relation that has uselist=False is (in my mind) the moral equivalent of using one() on a query, I had been hoping it would raise if multiple rows were returned. that again is a behavior change we'd like to implement but we will probably use a new name for it; people are in fact using uselist to return just the first value. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Multiple SQLAlchemy DB usage in TurboGears
Hi all, I'm cross-posting this from the turbogears group just in-case anyone here has any insights - thanks in advance. We're building an application on TG 1.0.2 using SQLAlchemy 0.3.11 are are busy considering our options wrt multiple customer support. We'd be hosting the app servers, and there's a low upper-bound to the traffic they'll be hit with, so we're trying to figure out a way to support multiple customers on a single app instance. The problem is that the system is quite complex and there were limitations which made making our DB schemas multi-customer rather difficult. This means that we'd basically need to figure out - per request - which customer we're working with, and load their database up for the lifetime. An experimental solution exists which hijacks things like turbogears.database.get_engine and replaces them with a function which determines the correct engine to be loaded. I'm still wading through it to try get it up and running again (I'm getting Visit attached to incorrect session errors atm.) The question I have is: is this the correct solution (or, at least, on the right path)? I'd love to hear from anyone else who's tried something similar and get your experience of the problem. Thanks, Bryn --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Multiple SQLAlchemy DB usage in TurboGears
On May 8, 2008, at 10:55 AM, Bryn Divey wrote: We're building an application on TG 1.0.2 using SQLAlchemy 0.3.11 are are busy considering our options wrt multiple customer support. We'd be hosting the app servers, and there's a low upper-bound to the traffic they'll be hit with, so we're trying to figure out a way to support multiple customers on a single app instance. we're going to be merging the 0.5 branch to trunk soon - 0.5 features better transaction integration and much cooler Query object. Why start off using 0.3.11 ? That version is ancient history, is 20% slower than 0.4 and probably 30% slower than 0.5. you should at least be on 0.4.5 so that your upgrade path to 0.5 is not very painful. The problem is that the system is quite complex and there were limitations which made making our DB schemas multi-customer rather difficult. This means that we'd basically need to figure out - per request - which customer we're working with, and load their database up for the lifetime. An experimental solution exists which hijacks things like turbogears.database.get_engine and replaces them with a function which determines the correct engine to be loaded. I'm still wading through it to try get it up and running again (I'm getting Visit attached to incorrect session errors atm.) I dont know about TG's integration but a per-request engine setup is a very reasonable (and typical) way to go.I'd try bypassing their SQLA integration altogether if thats possibleall you need is a ScopedSession, plug in the engine on each request, and you're ready to go. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Multiple SQLAlchemy DB usage in TurboGears
I'd try bypassing their SQLA integration altogether if thats possible It isn't possible if you are relying on the turbogears identity system (cookie-based visitor tracking and access control). --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Getting All Columns From A Join
Hi, I have two table models (Elixir objects) that do NOT have a relationship defined in their models. So, I have a join in my query like so: fieldmap = Fieldmap.query.filter( Fieldmap.import_history_id==history_id ).filter( MemberField.account_id==account_id ).filter( Fieldmap.import_history_field_name==MemberField.member_field_name ).all() This query works fine, but the issue is that I am only returned the columns in the Fieldmap table. I would like for the result to have all the columns from both the Fieldmap and the MemberField tables. I did have a go with the select() and from_statement() stuff, but I'm not sure that can be mixed with the filters I have above. So, I don't know if that's a possibility. The short answer is to define a relationship in the models, but for a few different reasons, I can't do that in this case. If this needs to be on the Elixir list, please let me know. Thanks! --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Getting All Columns From A Join
Alex Ezell wrote: This query works fine, but the issue is that I am only returned the columns in the Fieldmap table. I would like for the result to have all the columns from both the Fieldmap and the MemberField tables. You need to tell the ORM to return both entities. By default, the ORM will return the entity you are querying for, not additional entities, regardless of the query. You can do this by adding the additional entity you want to fetch using the Query object's `add_entity` method. The SQLAlchemy documentation has several useful examples of how to make use of `add_entity`. -- Jonathan LaCour http://cleverdevil.org --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Getting All Columns From A Join
On Thu, May 8, 2008 at 2:25 PM, Jonathan LaCour [EMAIL PROTECTED] wrote: Alex Ezell wrote: This query works fine, but the issue is that I am only returned the columns in the Fieldmap table. I would like for the result to have all the columns from both the Fieldmap and the MemberField tables. You need to tell the ORM to return both entities. By default, the ORM will return the entity you are querying for, not additional entities, regardless of the query. You can do this by adding the additional entity you want to fetch using the Query object's `add_entity` method. Thanks Jonathan! This works great. /alex --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: eagerload vs. joins
Actually not quite. The code bellow executes, however it doesn't produce a where clause for the filter_by(). I don't know if this is a bug or user error. What ended up working for me was this: statement = qstat_table.outerjoin(chunk_table).select(use_labels=True, whereclause=where_clause).order_by(JobInfo.c.job_name, Chunk.c.pass_field, JobInfo.c.owner) query = session.query(JobInfo).options(contains_eager('Chunk')) r = query.from_statement(statement).all() David Gardner wrote: Thats it, I just need to use from_statement. OK this works producing good SQL: statement = qstat_table.outerjoin(chunk_table).select(use_labels=True).order_by(JobInfo.c.job_name, Chunk.c.pass_field, JobInfo.c.owner) query = session.query(JobInfo).options(contains_eager('Chunk')).filter_by(**kwargs) r = query.from_statement(statement).all() -- David Gardner Pipeline Tools Programmer, Sid the Science Kid Jim Henson Creature Shop (323) 802-1717 [EMAIL PROTECTED] --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Multiple SQLAlchemy DB usage in TurboGears
On May 8, 2008, at 11:15 AM, Bobby Impollonia wrote: I'd try bypassing their SQLA integration altogether if thats possible It isn't possible if you are relying on the turbogears identity system (cookie-based visitor tracking and access control). that sounds like a particular set of mappings and classes. theres no issue using those; I was talking about their Session integration. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: eagerload vs. joins
On May 8, 2008, at 4:01 PM, David Gardner wrote: Actually not quite. The code bellow executes, however it doesn't produce a where clause for the filter_by(). I don't know if this is a bug or user error. from_statement() entirely bypasses the Query's generation of SQL. the operation you tried should have raised a warning when you called from_statement() after filter_by(). --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Returning single col, multiple rows in a single row
On May 8, 2008, at 12:36 PM, Redkins wrote: Hi All, I may be thinking about this in totally the wrong way, but let me explain what I'm trying to do. We have a CRM system and the boss wants a report of Potential sales and the Contacts related to them. The trick being, he wants one Potential per row, and a potential can have zero or more contacts. an outer join of Potential to Contacts is not enough? return, in my case how many contacts. I found a great solution here (http://www.dba-oracle.com/ t_display_multiple_column_values_same_rows.htm), but it's based on Oracle and I'm using MySQL 5.1 and I can't see a MySQL equivalent. Any help or thoughts much appreciated. those are strange solutions which seem like overcomplex versions of joining a table to itself using an alias. I guess you want to have the Potential and multiple Contacts in a single row ? how many contacts ? what if there are 1800 contacts, you want a single row with many thousands of columns ? (that wont work, BTW) --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Quoted Column Name Problem
I have an Oracle schema that has a column name labeled as 'when' (without the quotes). Everything works fine in PL/SQL when referencing this column -- not special handling needs to be done. However, we created a sqlalchemy definition as follows: monitor_mts_table = Table('monitor_mts', metadata, Column('monitor_mts_id', Integer, Sequence('seq_monitor_mts'), primary_key = True), Column('when', OracleDateTime), Column('status', Integer), Column('created_date', OracleDateTime), ) When we reference this we get a database error from oracle that the column monitor_mts.when does not exist. Notice the double quotes. This is what is throwing off oracle since the column definition in the table is not double quoted. I have tried appending the clause quote=False to the Column definition above but it does not affect what is being sent to the database -- still a doubled quoted column name. Any ideas how to work around this without changing the underlying table definition in Oracle? Thanks, Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Quoted Column Name Problem
On May 8, 2008, at 5:40 PM, Dan wrote: That worked! Thank you for the quick response. in 0.5 I'm changing quote so that True/False will in fact force the quoting in either direction. the default will be None. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: relation that only fails with a backref
Another issue with this relation is that it doesn't like being eagerloaded. Using the same model from my first post (with the broken backref removed or fixed): session.query(Child1).options(eagerload('left_child2')).first() Generates the sql: SELECT anon_1.child1_id AS anon_1_child1_id, anon_1.parent_id AS anon_1_parent_id, anon_1.parent_cls AS anon_1_parent_cls, anon_2.child2_id AS anon_2_child2_id, anon_2.parent_id AS anon_2_parent_id, anon_2.parent_cls AS anon_2_parent_cls FROM (SELECT child1.id AS child1_id, parent.id AS parent_id, parent.cls AS parent_cls, parent.oid AS parent_oid FROM parent JOIN child1 ON parent.id = child1.id ORDER BY parent.oid LIMIT 1 OFFSET 0) AS anon_1 LEFT OUTER JOIN secondary AS secondary_1 ON anon_1.child1_id = secondary_1.right_id LEFT OUTER JOIN (SELECT anon_1.child1_id AS anon_1_child1_id, anon_1.parent_id AS anon_1_parent_id, anon_1.parent_cls AS anon_1_parent_cls, child2.id AS child2_id FROM (SELECT child1.id AS child1_id, parent.id AS parent_id, parent.cls AS parent_cls, parent.oid AS parent_oid FROM parent JOIN child1 ON parent.id = child1.id ORDER BY parent.oid LIMIT 1 OFFSET 0) AS anon_1 JOIN child2 ON anon_1.parent_id = child2.id) AS anon_2 ON anon_2.child2_id = secondary_1.left_id ORDER BY anon_1.oid, secondary_1.oid Which fails with: (OperationalError) no such column: anon_2.parent_id --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] database definitions - was sqlalchemy migration/schema creation
Do you guys know what would give me column definition of table? I have a table that I autoload and I would like to get this: address_table = sqlalchemy.Table('address', metadata, sqlalchemy.Column('Address_Sid', sqlalchemy.Integer, primary_key=True), sqlalchemy.Column('FirstName', sqlalchemy.Unicode(40),nullable=False), sqlalchemy.Column('LastName', sqlalchemy.Unicode(40),nullable=False), sqlalchemy.Column('MaidenLastName', sqlalchemy.Unicode(40)), sqlalchemy.Column('Email', sqlalchemy.Unicode(80),nullable=False), So: I can get a list of tables: for i in metadata.tables: ... print i list of columns: for i in metadata.tables['WMI'].original_columns: ... print i How do I get column type, indexes and primary keys? Lucas On Tue, Apr 15, 2008 at 7:44 PM, Lukasz Szybalski [EMAIL PROTECTED] wrote: Hello, Is there maybe a feature in sqlalchemy that would allow me to autoload table from one database, and move it over to another database? 1. I would like to print data structure from autoload table. (then copy and paste it into new file and use it to create new table)(without typing every data structure) 2. And/or autoload via one engine and autoupload via different engine and create_all() 3. Analyze csv files and create sqlalchemy definition like structure. Ideas? Lucas -- Automotive Recall Database. Cars, Trucks, etc. http://www.lucasmanual.com/recall/ TurboGears Manual-Howto http://lucasmanual.com/pdf/TurboGears-Manual-Howto.pdf --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Re: Multiple SQLAlchemy DB usage in TurboGears
The identity and visit stuff is pluggable, i.e. you can replace the existing components without hackery; just write your own and specify which one to use in the application .cfg file. This probably sounds more intimidating than it is; the code is really pretty straightforward and you can use their implementations as a starting point. You might consider using a single (separate) database to store all visit information for *all* the customers combined. Your visit schema could have an additional 'customer' column to distinguish which database to use for everything else. Barry - Original Message From: Michael Bayer [EMAIL PROTECTED] To: sqlalchemy@googlegroups.com Sent: Thursday, May 8, 2008 5:05:22 PM Subject: [sqlalchemy] Re: Multiple SQLAlchemy DB usage in TurboGears On May 8, 2008, at 11:15 AM, Bobby Impollonia wrote: I'd try bypassing their SQLA integration altogether if thats possible It isn't possible if you are relying on the turbogears identity system (cookie-based visitor tracking and access control). that sounds like a particular set of mappings and classes. theres no issue using those; I was talking about their Session integration. Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---
[sqlalchemy] Result Set From An Oracle Function
I am trying to call an Oracle function (that does not take any parameters) and returns a result set. Here is the code I used: s = select([*], from_obj=[func.aaa_test()], bind=engine) However, when I issue this I get the following error: DatabaseError: (DatabaseError) ORA-04044: procedure, function, package, or type is not allowed here 'SELECT * FROM aaa_test' {} How can I rework this? Dan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com 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 -~--~~~~--~~--~--~---