]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
mapper will verify class inheritance scheme; also will not re-init inherited property...
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 18 Apr 2006 18:24:07 +0000 (18:24 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 18 Apr 2006 18:24:07 +0000 (18:24 +0000)
exceptions import in query

lib/sqlalchemy/mapping/mapper.py
lib/sqlalchemy/mapping/query.py

index 80b5680a34a312c90077b44a1f5f581e357d914b..302cb174112f393a137d2d3bbb2d9a44aa3a8791 100644 (file)
@@ -88,6 +88,8 @@ class Mapper(object):
             self.table = table
 
         if inherits is not None:
+            if self.class_.__mro__[1] != inherits.class_:
+                raise ArgumentError("Class '%s' does not inherit from '%s'" % (self.class_.__name__, inherits.class_.__name__))
             self.primarytable = inherits.primarytable
             # inherit_condition is optional.
             if not table is inherits.noninherited_table:
@@ -214,7 +216,7 @@ class Mapper(object):
                 if not self.props.has_key(key):
                     self.props[key] = prop.copy()
                     self.props[key].parent = self
-                    self.props[key].key = None  # force re-init
+            #        self.props[key].key = None  # force re-init
         l = [(key, prop) for key, prop in self.props.iteritems()]
         for key, prop in l:
             if getattr(prop, 'key', None) is None:
index 72037a347de4aeee9a70f823dad71fa2ae7992b4..8233fba654c5a3162f5ab29ac08446640bd7bc45 100644 (file)
@@ -9,6 +9,7 @@ import objectstore
 import sqlalchemy.sql as sql
 import sqlalchemy.util as util
 import mapper
+from sqlalchemy.exceptions import *
 
 class Query(object):
     """encapsulates the object-fetching operations provided by Mappers."""