Changeset 331
- Timestamp:
- 04/30/08 19:55:53 (7 months ago)
- Files:
-
- trunk/src/dm/db.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/dm/db.py
r320 r331 485 485 self.domName = self.dom.name 486 486 self.dbName = dbName 487 self.attributesByName = {} 487 self.attributeDomNames = {} 488 self.attributeDbNames = {} 488 489 self.attributes = [] 489 490 for domAttr in self.dom.attributes: … … 496 497 497 498 def getAttribute(self, attrName): 498 if not attrName in self.attribute sByName:499 if not attrName in self.attributeDomNames: 499 500 msg = "Attribute '%s' not defined on mapper for class '%s'." % ( 500 501 attrName, self.domName 501 502 ) 502 503 raise Exception(msg) 503 return self.attribute sByName[attrName]504 return self.attributeDomNames[attrName] 504 505 505 506 def addAttribute(self, metaDomainAttribute): 506 507 metaAttribute = MetaMapperAttribute(metaDomainAttribute) 507 508 self.attributes.append(metaAttribute) 508 self.attributesByName[metaAttribute.domName] = metaAttribute 509 self.attributeDomNames[metaAttribute.domName] = metaAttribute 510 self.attributeDbNames[metaAttribute.dbName] = metaAttribute 509 511 return metaAttribute 510 512 … … 577 579 self.dom = metaDomainAttribute 578 580 self.domName = self.dom.name 579 if sqoVer in ['0.8', '0.9', '0.10'] and self.dom.isDomainObjectRef: 581 self.isValueRef = self.dom.isValueRef 582 self.isAssociateList = self.dom.isAssociateList 583 self.isDomainObjectRef = self.dom.isDomainObjectRef 584 if sqoVer in ['0.8', '0.9', '0.10'] and self.isDomainObjectRef: 580 585 self.typeName = self.makeSafeFieldName(self.dom.typeName) 581 586 else: … … 584 589 if self.dom.isValueRef and hasattr(self.dom, 'default'): 585 590 self.default = self.dom.default 586 elif self. dom.isDomainObjectRef:591 elif self.isDomainObjectRef: 587 592 if hasattr(self.dom, 'default') and not self.dom.default: 588 593 self.default = None 589 594 elif not self.dom.isRequired: 590 595 self.default = None 591 self.isDomainObjectRef = self.dom.isDomainObjectRef592 self.isValueRef = self.dom.isValueRef593 self.isAssociateList = self.dom.isAssociateList594 596 595 597 def createMapperClassAttribute(self): … … 1047 1049 value = kwds[name] 1048 1050 if sqoVer in ['0.10']: 1049 if self.meta. dom.attributeNames[name].isDomainObjectRef:1051 if self.meta.attributeDbNames[name].isDomainObjectRef: 1050 1052 name += '_id' 1051 1053 # todo: expand for all database systems 1052 1054 sqlSafeValue = sqlrepr(value, 'postgres') 1053 1055 sqlSafeName = self.makeSqlName(name) 1054 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1056 if sqlSafeValue.upper() == 'NULL': 1057 sqlEquals = "%s IS %s" % (sqlSafeName, sqlSafeValue) 1058 else: 1059 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1055 1060 sqlWhere += " AND ( " + sqlEquals + " ) " 1056 1061 try: … … 1094 1099 value = kwds[name] 1095 1100 if sqoVer in ['0.10']: 1096 if self.meta. dom.attributeNames[name].isDomainObjectRef:1101 if self.meta.attributeDbNames[name].isDomainObjectRef: 1097 1102 name += '_id' 1098 1103 # todo: expand for all database systems 1099 1104 sqlSafeValue = sqlrepr(value, 'postgres') 1100 1105 sqlSafeName = self.makeSqlName(name) 1101 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1106 if sqlSafeValue.upper() == 'NULL': 1107 sqlEquals = "%s IS %s" % (sqlSafeName, sqlSafeValue) 1108 else: 1109 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1102 1110 sqlEqualsList.append(sqlEquals) 1103 1111 if sqlEqualsList: … … 1121 1129 value = kwds[name] 1122 1130 if sqoVer in ['0.10'] and name != 'id': 1123 if self.meta. dom.attributeNames[name].isDomainObjectRef:1131 if self.meta.attributeDbNames[name].isDomainObjectRef: 1124 1132 name += '_id' 1125 1133 # todo: expand for all database systems 1126 1134 sqlSafeValue = sqlrepr(value, 'postgres') 1127 1135 sqlSafeName = self.makeSqlName(name) 1128 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1136 if sqlSafeValue.upper() == 'NULL': 1137 sqlEquals = "%s IS %s" % (sqlSafeName, sqlSafeValue) 1138 else: 1139 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1129 1140 sqlEqualsList.append(sqlEquals) 1130 1141 sqlEquals = "(%s)" % ") AND (".join(sqlEqualsList) … … 1202 1213 else: 1203 1214 if sqoVer in ['0.10']: 1204 if self.meta. dom.attributeNames[name].isDomainObjectRef:1215 if self.meta.attributeDbNames[name].isDomainObjectRef: 1205 1216 name += '_id' 1206 1217 sqlSafeName = self.makeSqlName(name) 1207 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1218 if sqlSafeValue.upper() == 'NULL': 1219 sqlEquals = "%s IS %s" % (sqlSafeName, sqlSafeValue) 1220 else: 1221 sqlEquals = "%s = %s" % (sqlSafeName, sqlSafeValue) 1208 1222 sqlEqualsList.append(sqlEquals) 1209 1223 sqlEquals = "(%s)" % ") AND (".join(sqlEqualsList)
