Author: ianb
Date: 2006-02-11 03:27:10 -0700 (Sat, 11 Feb 2006)
New Revision: 1592
Modified:
SQLObject/trunk/sqlobject/col.py
SQLObject/trunk/sqlobject/mysql/mysqlconnection.py
SQLObject/trunk/sqlobject/tests/test_SQLMultipleJoin.py
SQLObject/trunk/sqlobject/tests/test_cache.py
SQLObject/trunk/sqlobject/tests/test_string_id.py
Log:
Applied SF [ 1385854 ] Fix myql support for foreign keys from Matthias Urlichs; plus some fixes for MySQL tests (but still have some test problems)
Modified: SQLObject/trunk/sqlobject/col.py
===================================================================
--- SQLObject/trunk/sqlobject/col.py 2006-02-11 09:51:51 UTC (rev 1591)
+++ SQLObject/trunk/sqlobject/col.py 2006-02-11 10:27:10 UTC (rev 1592)
@@ -752,8 +752,8 @@
'sTName': sTName})
return constraint
- def mysqlCreateSQL(self):
- sql = SOKeyCol.mysqlCreateSQL(self)
+ def mysqlCreateReferenceConstraint(self):
+ sTName = self.soClass.sqlmeta.table
other = findClass(self.foreignKey, self.soClass.sqlmeta.registry)
tName = other.sqlmeta.table
idName = other.sqlmeta.idName
@@ -766,15 +766,19 @@
action = 'ON DELETE RESTRICT'
else:
action = ''
- constraint = ('CONSTRAINT %(colName)s_exists '
+ constraint = ('ALTER TABLE %(sTName)s ADD CONSTRAINT %(sTName)s_%(colName)s_exists '
'FOREIGN KEY (%(colName)s) '
'REFERENCES %(tName)s (%(idName)s) '
'%(action)s' %
{'tName': tName,
'colName': self.dbName,
'idName': idName,
- 'action': action})
- sql = ', '.join([sql, constraint])
+ 'action': action,
+ 'sTName': sTName})
+ return constraint
+
+ def mysqlCreateSQL(self):
+ sql = SOKeyCol.mysqlCreateSQL(self)
return sql
def mysqlCreateReferenceConstraint(self):
Modified: SQLObject/trunk/sqlobject/mysql/mysqlconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2006-02-11 09:51:51 UTC (rev 1591)
+++ SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2006-02-11 10:27:10 UTC (rev 1592)
@@ -98,6 +98,9 @@
def createColumn(self, soClass, col):
return col.mysqlCreateSQL()
+ def createReferenceConstraint(self, soClass, col):
+ return col.mysqlCreateReferenceConstraint()
+
def createIndexSQL(self, soClass, index):
return index.mysqlCreateIndexSQL(soClass)
Modified: SQLObject/trunk/sqlobject/tests/test_SQLMultipleJoin.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_SQLMultipleJoin.py 2006-02-11 09:51:51 UTC (rev 1591)
+++ SQLObject/trunk/sqlobject/tests/test_SQLMultipleJoin.py 2006-02-11 10:27:10 UTC (rev 1592)
@@ -40,4 +40,4 @@
assert saiyajin.fightersAsSResult.max('power') == 10
assert trunks in hibrid.fightersAsSResult
assert picollo not in hibrid.fightersAsSResult
- assert hibrid.fightersAsSResult.sum('power') == 23
+ assert str(hibrid.fightersAsSResult.sum('power')) == '23'
Modified: SQLObject/trunk/sqlobject/tests/test_cache.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_cache.py 2006-02-11 09:51:51 UTC (rev 1591)
+++ SQLObject/trunk/sqlobject/tests/test_cache.py 2006-02-11 10:27:10 UTC (rev 1592)
@@ -24,7 +24,7 @@
class CacheTest(SQLObject):
- name = StringCol(alternateID=True)
+ name = StringCol(alternateID=True, length=100)
def test_cache():
setupClass(CacheTest)
Modified: SQLObject/trunk/sqlobject/tests/test_string_id.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_string_id.py 2006-02-11 09:51:51 UTC (rev 1591)
+++ SQLObject/trunk/sqlobject/tests/test_string_id.py 2006-02-11 10:27:10 UTC (rev 1592)
@@ -5,7 +5,7 @@
class sqlmeta(sqlmeta):
idType = str
idName = 'test_id_here'
- name = StringCol()
+ name = StringCol(length=100)
def test_string_id():
conn = getConnection()
|