On Dec 18, 2007, at 1:34 AM, Esceo wrote:
> > Hi, > > Seeing so many improvements and benefits, I might as well migrate to > 0.4 > Just few things I wanted to make sure before I start on that. > > Inside the 0.4 branch, > 1) are we still generating anonymous labels with a width of 4 char > ('anon_0fda') etc? we generate anonymous labels with a name, underscore, and an integer counter now. the random hex strings are gone and the label names are deterministic for a particular SQL expression (i.e. the same construct produces the same string every time). > 2) there is a bug inside 0.3's strategies deferred column loader (in > maintenance branch as well), basically, when the parent's primary key > happens to be 0, deferred loading is faulty (if not attr: should have > been if not attr == None: around line 94 in strategies.py), has this > been fixed? I doubt that issue exists, but if it does its not very hard to change. The auto PK gen of mysql and sqlite is 1-based as well as the behavior of postgres and oracle sequences so im not sure how youre getting zeros in the first place. > 3) another bug in 0.3's InstrumentedAttribute system where if we set > the same value to an instrumented attribute twice, the value's parent > will be reset (to no parent) > (in resetting old's parent, we didn't check if old == value, around > line 269 in attributes.py) ive never heard of that issue, and also im not really sure what you mean by "parent", are you referring to the "has_parents" flag ? a short test case illustrating the behavior would be of use all around here. > 4) the other thing is, property loader is ignoring it's own attribute > extensions when there is a backref, and will use the backref's > attribute extensions instead, is that meant to be the case? (same > thing in 0.4?) Also not sure what you mean here; the attribute extensions themselves don't know anything about the "backref" concept, and PropertyLoaders dont "ignore" extensions or "use" any of them, they just configure them at init time and send them off to the attributes package, where they fire off for all events for which they listen. When a backref is used, additional extensions are added to manage the bidirectional relationship but that has no effect on the cascade event handlers. If you're referring to the interaction between two properties on a many- to-many relation, its necessary that only one dependency processor handle the updates to the association table, but outside of that, bidirectional relations have no explicit interaction with each other after initialization. Again, a short test script illustrating the end behavior youre observing would be helpful here. If you were actually building your own structures using AttributeExtensions, I can guess that they may have behaviors not suited to your specific use cases, but they are also not really a "public" API - if you want to instrument the getting/setting of attributes, the established way to do that is to use regular Python properties. in 0.4.2 we have a more abbreviated syntax for creating properties that proxy to column attributes. But if you were using AEs for something, you'd certainly need to talk to us so that we can make sure that they are the appropriate thing to use, or if we need to give you some other way to support the use case you're trying to accomplish. Also I would encourage you to get into the habit of posting bugs and undesired behaviors as trac tickets and/or mailing list emails...this helps both you and the project in myriad ways, by allowing us to fix things, clarify things, identify desired use cases that should be supported, and also to better define how we'd like the library to be used and how we wouldn't (for example, if some part of SA which we had intended to be "private" starts getting used by the public, thats a heads up to us that we need to establish more clearly the public/ privateness of certain areas, and possibly provide a public interface to that functionality). The SQLAlchemy software itself is worth very little without the community effort behind it, and SA is in particular an extremely "community-built" project, formed almost entirely as a result of an ongoing dialogue with users. I think everyone knows we respond extremely quickly to most issues so theres really no reason to keep bugs a secret. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---