On Tue, Sep 30, 2008 at 11:38 PM, esvist <[EMAIL PROTECTED]> wrote: > > Spent several hours reading available documentation and searching > samples, but no result... > > Having schema (Oracle): > > CREATE TABLE user_ ( > id NUMBER(16) > CONSTRAINT pk_user PRIMARY KEY, > name VARCHAR2(32) NOT NULL > ); > > CREATE TABLE case ( > id NUMBER(16) > CONSTRAINT pk_case PRIMARY KEY, > name VARCHAR2(32) NOT NULL > ); > > CREATE TABLE case2user ( > case_id NUMBER(16) NOT NULL > CONSTRAINT fk_c2u_case REFERENCES case (id), > user_id NUMBER(16) NOT NULL > CONSTRAINT fk_c2u_user REFERENCES user_ (id), > > CONSTRAINT pk_case2user PRIMARY KEY (case_id, user_id) > ); > > and mapping it as: > > class User(Entity): > using_options( > tablename='USER_', > autoload=True > ) > cases = ManyToMany( > 'Case', > tablename='CASE2USER', > remote_side='case_id', > local_side='user_id' > ) > > > class Case(Entity): > using_options( > tablename='CASE', > autoload=True > ) > users = ManyToMany( > 'User', > tablename='CASE2USER', > remote_side='user_id', > local_side='case_id' > ) > > setup_all() passes ok > > but > > User.query.all() > > results in > > <class 'sqlalchemy.exc.ArgumentError'>: Could not determine join > condition between parent/child tables on relation Case.users. Specify > a 'primaryjoin' expression. If this is a many-to-many relation, > 'secondaryjoin' is needed as well. > > According to Elixir API documentation primaryjoin and secondaryjoin > should be determined automatically in this case. Any idea where I'm > wrong?
You are not wrong anywhere I think. This code works fine here on another DB. This is probably a bug somewhere due to the strange casing used by Oracle. My guess is that it's a problem somewhere in SA, since on non self-referential ManyToMany relationships, Elixir doesn't generate any join conditions because SA can (usually) detect them automatically in that case. The next step would be to try to produce an SA-only test case, and if the problem is present there too, add a ticket on SA's trac. If you have any trouble producing the SA test-case, don't hesitate to ask for help. Can't test it myself though since I don't have access to an Oracle DB at the moment. -- Gaƫtan de Menten http://openhex.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SQLElixir" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlelixir?hl=en -~----------~----~----~----~------~----~------~--~---
