Hi,
I am trying to follow the Person/Address foreignkey example in the http://www.sqlobject.org/SQLObject.html#foreignkey

I am just wondering why the foreignkey constraint is not created on the Address table. The column person_id is created of course, but the foreignkey constraint is NOT set (I am checking this using IBExpert tools). Is this intentional?

BTW I have found two problems (errors??):
1)
when: person = ForeignKey('Person', cascade = 'null')

than, when I am trying to delete rows from the Person table (see example bellow), I am getting this error:

ProgrammingError
"(-104, 'isc_dsql_prepare: \n Dynamic SQL Error\n SQL error code = -104\n Token unknown - line 1, column 33\n NULL')"
File: /usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/dbconnection.py, line: 329

2)
when:     addresses = SingleJoin('Address')
print p1.addresses throws following:

unhandled AttributeError
"class FirebirdConnection has no attribute 'limit_re'"
File: /usr/lib/python2.5/site-packages/SQLObject-0.10.1-py2.5.egg/sqlobject/firebird/firebirdconnection.py, line: 120


I am on the Firebird 2.0 Database, Python 2.5.4,

=========== exampel code ==================
class Person(SQLObject):
    firstName = StringCol()
    middleInitial = StringCol(length=1, default=None)
    lastName = StringCol()   
    addresses = MultipleJoin('Address')
#    addresses = MultipleJoin('Address', joinColumn="person_id")
#    addresses = SingleJoin('Address')   

class Address(SQLObject):
    street = StringCol()
    city = StringCol()
    state = StringCol(length=2)
    zip = StringCol(length=9)
#    person = ForeignKey('Person', cascade = False)
#    person = ForeignKey('Person', cascade = True)
    person = ForeignKey('Person', cascade = 'null')

Person.dropTable(ifExists=True)
Address.dropTable(ifExists=True)
Person.createTable()
Address.createTable()

p1=Person(firstName="John", lastName="Doe")

Address(street='123 W Main St', city='Smallsville', state='MMM', zip='65555', person=p1)
Address(street='321 V Side St', city='Bigsville', state='NNN', zip='54444', person=p1)

print p1.addresses
peeps = Person.select()
for peep in peeps:
    print peep
    peep.destroySelf()