Hello Michael.

Your change saves the application to crash but it doesn't give back the
object.

Attached I have a diff for an extended test.

Jürgen

And sorry for the bad subject :(

Michael Bayer wrote:
> this is a known issue in ticket 185; youd have to call get([employee_id,
> employee_id]).    I have just committed a very small hack in 1508 that
> will work around this, though (by making an assumption about the given
> id), so give that a try.
> 
> 
> On May 25, 2006, at 8:28 AM, jürgen Kartnaller wrote:
> 
>>      employee_id = c.employees[0].person_id
>>
>> +        employee_cls = c.employees[0].__class__
>>
>> +
>>
>> +        session.flush()
>>
>> +        session.clear()
>>
>> +
>>
>> +        e = session.query(Person).get(employee_id)
>>
>> +        e = session.query(employee_cls).get(employee_id)
>>
>> +
>>
>> +        c = session.query(Company).get(id)
>>
>> +
>>
> 


-- 

---------------------------------------------------
Jürgen Kartnaller   mailto:juergen_at_kartnaller.at
                    http://www.kartnaller.at
                    http://www.mcb-bregenz.at
---------------------------------------------------

Index: polymorph.py
===================================================================
--- polymorph.py        (Revision 1509)
+++ polymorph.py        (Arbeitskopie)
@@ -161,6 +161,19 @@
         for e in c.employees:
             print e, e._instance_key
 
+        employee_id = c.employees[0].person_id
+        employee_cls = c.employees[0].__class__
+
+        session.flush()
+        session.clear()
+
+        e = session.query(Person).get(employee_id)
+        assert e is not None
+        e = session.query(employee_cls).get(employee_id)
+        assert e is not None
+
+        c = session.query(Company).get(id)
+
         session.delete(c)
         session.flush()
 

Reply via email to