[SQL-CVS] r2369 - SQLObject/trunk/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2007-03-02 15:22:55
|
Author: phd
Date: 2007-03-02 08:22:50 -0700 (Fri, 02 Mar 2007)
New Revision: 2369
Modified:
SQLObject/trunk/sqlobject/dbconnection.py
SQLObject/trunk/sqlobject/main.py
Log:
Applied the patch 1450587: support for MySQL ENGINE specification.
Modified: SQLObject/trunk/sqlobject/dbconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/dbconnection.py 2007-03-02 14:51:08 UTC (rev 2368)
+++ SQLObject/trunk/sqlobject/dbconnection.py 2007-03-02 15:22:50 UTC (rev 2369)
@@ -546,12 +546,13 @@
self.query(self._SO_createJoinTableSQL(join))
def _SO_createJoinTableSQL(self, join):
- return ('CREATE TABLE %s (\n%s %s,\n%s %s\n)' %
+ return ('CREATE TABLE %s (\n%s %s,\n%s %s\n) %s' %
(join.intermediateTable,
join.joinColumn,
self.joinSQLType(join),
join.otherColumn,
- self.joinSQLType(join)))
+ self.joinSQLType(join),
+ self.getDBOptions(join)))
def _SO_dropJoinTable(self, join):
self.query("DROP TABLE %s" % join.intermediateTable)
@@ -597,10 +598,18 @@
def createTableSQL(self, soClass):
constraints = self.createReferenceConstraints(soClass)
extraSQL = self.createSQL(soClass)
- createSql = ('CREATE TABLE %s (\n%s\n)' %
- (soClass.sqlmeta.table, self.createColumns(soClass)))
+ createSql = ('CREATE TABLE %s (\n%s\n) %s' %
+ (soClass.sqlmeta.table, self.createColumns(soClass),
+ self.getDBOptions(soClass)))
return createSql, constraints + extraSQL
+ def getDBOptions(self, soClass):
+ if soClass.sqlmeta.engineSQL is not None and \
+ len(soClass.sqlmeta.engineSQL) > 0:
+ return "ENGINE = %s" % soClass.sqlmeta.engineSQL
+ else:
+ return ""
+
def createColumns(self, soClass):
columnDefs = [self.createIDColumn(soClass)] \
+ [self.createColumn(soClass, col)
Modified: SQLObject/trunk/sqlobject/main.py
===================================================================
--- SQLObject/trunk/sqlobject/main.py 2007-03-02 14:51:08 UTC (rev 2368)
+++ SQLObject/trunk/sqlobject/main.py 2007-03-02 15:22:50 UTC (rev 2369)
@@ -200,6 +200,8 @@
# Default is false, but we set it to true for the *instance*
# when necessary: (bad clever? maybe)
expired = False
+ # Engine SQL; currently used for MySQL engine ("MyISAM", "InnoDB", etc.)
+ engineSQL = None
# This is a mapping from column names to SOCol (or subclass)
# instances:
@@ -1454,6 +1456,7 @@
continue
if join.soClass.__name__ > join.otherClass.__name__:
continue
+ join.engineSQL = cls.sqlmeta.engineSQL
joins.append(join)
return joins
_getJoinsToCreate = classmethod(_getJoinsToCreate)
|