just to note, I am leaning towards very simple generative method names for all the things we need, where(), having(), order_by(), group_by(), distinct(), etc. I am going to have it do "copy on generate" by default.
the copy operation itself will be pretty quick, working the way I have it working with Query now in the 0.4 branch, i.e. its just q= Query.__new__() then a q.__dict__ = self.__dict__.copy(). the "deep" copy operations occur upon the generative methods...i.e. instead of saying "q.where_clauses.append(clause)", it does "q.where_clauses =q.where_clauses + [clause]"...so you localize the more expensive collection copying operations to that of one per each generative method. I will probably have a little flag "generative=False" which will just be mentioned in the docstring and thats it (i.e., im not going to push the usage of that flag, it wont usually be needed). to make a select statement all at once, you will still be able to do what we do now in most cases, just using select([columns], whereclause, **otherargs). one thing i like about rebuilding select this way is that i will be able to rewrite its internals to halfway make sense...its a little overgrown in there right now. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---