From: Ben B. <be...@gr...> - 2005-11-01 18:29:19
|
On Oct 31, 2005, at 6:45 PM, da...@eg... wrote: > My issue is exactly the problem described in [2]_, > and I'm using the fix described by Ben Bangert > in that thread, where I explicitly state the joinColumn. > It seems to me, however, that this is band-aid fix, > and SQLObject should be able to "do the right > thing". It is a band-aid fix of sorts. The other drawback is that using fromDatabase is impossible if the tables are under a namespace schema as it leaves the schema name off when looking for the primary key. While you could make the assumption that the intermediate table is in the same namespace schema during a join with two tables in that namespace schema, I can't see any way to avoid being forced to specify it during a cross-namespace schema join (as my thread post was doing that you cited). It's a less than optimal solution, but it does at least work very reliably. Though I've never tested the SQL generation based off it, so I have no idea if it can handle making namespace schemas and putting tables in for them (I seriously doubt it can). > 1. Add a field sqlmeta.schema and a getFQTN= > getFullyQualifiedTableName method. (I originally > tried making it a property, but I couldn't reconcile > the fact that SQLObjects contain a sqlmeta class, > not an instance). I only wonder if it could be called something else, as the word schema is popping up a ton, and it'd be nice to have a way to avoid confusion with the other contexts of 'schema'. Maybe dbschema? > This brought up something that I hadn't bumped into > before, which was noted in [3]_, which is that joins > currently break if the column name and the target > table name don't match (the join code to compute > the joinColumn actually doesn't look at any column > names and uses only the target table name). Is this > intentional? > > As I mentioned, this should definitely be viewed as > preliminary, but I just wanted to throw it out there. > I've included a basic test case also. Cool, have you tried using it with fromDatabase? Cheers, Ben |