what about adding a docopy=True (or dont_copy=False) to all methods that could be both copy_generative and modify-in-place? via some generic self=self.copy_if_required() func? Then one can choose at which point to split+copy
> let me summarize things that im thinking we do: > > - we want to go with the joinpoint concept here, where join() > starts from the beginning, and join(None)/reset_joinpoint brings it > back. join() is used to add a join and also modify the joinpoint of > the query, so that you can add more criterion using filter() or > filter_by () or others. I think this particuar tweak would > probably even be OK to put in the current trunk for release 0.3.8 > unless people think its going to create problems...the only > backwards-incompatible change being a join() starts from the > beginning, not the previous join(). > > - i think filter_by(['list','of','properties'], **kwargs), i.e. an > optional, positional string/list-of-strings argument, should also > be present, and it will create the joins and criterion using table > aliases, and will not be related to joinpoint at all. apparently > django does this, and it would let us define criterion for multiple > overlapping paths, such as q.filter_by(['a', 'b, 'c'], > d=x).filter_by (['a', 'b', 'e'], d=x). thats something that you > cant do with the straight join() alone (but of course you can do > with explicit aliases and filter()/select_from()). > > - the "auto find me a property" behavior is gone. not sure if I > want to remove it from select_by() and friends, i think it should > probably remain in those in a deprecated state. > > - ClauseElement support would be removed from filter_by(). you can > just use filter() for those. the older _by() methods, which i want > to deprecate, would be left alone for backwards compatibility. > > - i want to deprecate all the criterion methods that are not > filter, i.e. all the selects and most of the gets (except straight > get()). selecting from a full statement we can do with > query.from_statement (<select statement>), the argument of which is > a select() or a string. > > deprecating select() and select_by() is to create a single simple > interface to query based on the more flexible filter(). but it > does mean a bit more typing in many cases. I would hope everyone > is OK with that. > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---