I am also suspecting the 1st issue to cascade down to the rest. Here
is some stripped down code, reproducing the first issue. Please let me
know if I am doing anything wrong. Again, this works fine with 0.3.3:




###############################################
# Here is the database creation script
# (Note: I created a database called "buggy",
# on PostgreSQL 8.1)
###############################################
db_create_string = """

CREATE TABLE party (
  id integer primary key,
  ptype varchar(80) NOT NULL
);

CREATE TABLE wedding (
  id integer primary key,
  CONSTRAINT party_exists
    FOREIGN KEY (id)
    REFERENCES PARTY (id)
);

"""

##############################################
# Bug producing code
# (change dsn as appropriate)
##############################################

dsn = 'postgres://[EMAIL PROTECTED]:5432/buggy'

from sqlalchemy import *
metadata = BoundMetaData(dsn)

class Party(object): pass

class Enkai(Party): pass

class Tasting(Party): pass

class Wedding(Party): pass

party_table = Table('party', metadata, autoload=True)
wedding_table = Table('wedding', metadata, autoload=True)

party_join = polymorphic_union(
    {
    'wd': party_table.join(wedding_table),
    'en': party_table.select(party_table.c.ptype=='ENKAI'),
    'ta': party_table.select(party_table.c.ptype=='TASTING'),
    }, None, 'pjoin')
party_mapper = mapper(Party, party_table,
    select_table=party_join,
    polymorphic_on=party_join.c.ptype)
mapper(Enkai, party_table,
    inherits=party_mapper,
    polymorphic_identity='ENKAI')
mapper(Tasting, party_table,
    inherits=party_mapper,
    polymorphic_identity='TASTING')
mapper(Wedding, wedding_table,
    inherits=party_mapper,
    polymorphic_identity='WEDDING')

dbsession = create_session()
party_query = dbsession.query(Party)

###############################################
#  End of code here
###############################################


The last line of code gives me the following traceback:


Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/session.py", line
203, in query
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
1470, in class_mapper
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
259, in compile
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
274, in _compile_all
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
299, in _do_compile
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
334, in _compile_inheritance
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
302, in _do_compile
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/mapper.py", line
520, in _compile_selectable
sqlalchemy.exceptions.ArgumentError: Could not locate a
polymorphic_identity field for mapper 'Mapper|Party|party'.  This
field is required for polymorphic mappers



Thanks for your help.


--
Yves-Eric


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to