Author: ahmedmo
Date: 2004-06-14 04:46:43 -0400 (Mon, 14 Jun 2004)
New Revision: 142
Modified:
trunk/SQLObject/sqlobject/col.py
Log:
Modified: trunk/SQLObject/sqlobject/col.py
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/SQLObject/sqlobject/col.py 2004-06-14 08:35:02 UTC (rev 141)
+++ trunk/SQLObject/sqlobject/col.py 2004-06-14 08:46:43 UTC (rev 142)
@@ -202,6 +202,9 @@
=20
def _firebirdType(self):
return self._sqlType()
+ =20
+ def _maxdbType(self):
+ return self._sqlType()
=20
def mysqlCreateSQL(self):
return ' '.join([self.dbName, self._mysqlType()] + self._extraSQ=
L())
@@ -221,8 +224,11 @@
# them differently for Enum columns.
if not isinstance(self, SOEnumCol):
return ' '.join([self.dbName, self._firebirdType()] + self._=
extraSQL())
- else:
- return ' '.join([self.dbName] + [self._firebirdType()[0]] + =
self._extraSQL() + [self._firebirdType()[1]])
+ else:
+ return ' '.join([self.dbName] + [self._firebirdType()[0]] + =
self._extraSQL() + [self._firebirdType()[1]])
+=09
+ def maxdbCreateSQL(self):
+ return ' '.join([self.dbName, self._maxdbType()] + self._extraSQL=
())
=20
def __get__(self, obj, type=3DNone):
if obj is None:
@@ -303,6 +309,12 @@
return 'BLOB SUB_TYPE TEXT'
else:
return self._sqlType()
+ =20
+ def _maxdbType(self):
+ if not self.length:
+ return 'LONG ASCII'
+ else:
+ return self._sqlType()
=20
class StringCol(Col):
baseClass =3D SOStringCol
@@ -354,6 +366,9 @@
=20
def _firebirdType(self):
return 'INT'
+ =20
+ def _maxdbType(self):
+ return "BOOLEAN"
=20
class BoolCol(Col):
baseClass =3D SOBoolCol
@@ -390,6 +405,9 @@
=20
def _firebirdType(self):
return 'INT'
+ =20
+ def _maxdbType(self):
+ return 'INT'
=20
class KeyCol(Col):
=20
@@ -437,6 +455,18 @@
'idName':idName})
sql =3D ' '.join([sql, reference])
return sql
+ =20
+ def maxdbCreateSQL(self):
+ from main import findClass
+ other =3D findClass(self.foreignKey)
+ fidName =3D self.dbName
+ #I assume that foreign key name is identical to the id of the referen=
ce table =09
+ sql =3D ' '.join([fidName, self._maxdbType()])
+ tName =3D other._table
+ idName =3D other._idName
+ sql=3Dsql + ',' + '\n'=20
+ sql=3Dsql + 'FOREIGN KEY (%s) REFERENCES %s(%s)'%(fidName,tName,idNam=
e)
+ return sql
=20
class ForeignKey(KeyCol):
=20
@@ -475,8 +505,11 @@
length =3D max(map(len, self.enumValues))
enumValues =3D ', '.join([sqlbuilder.sqlrepr(v, 'firebird') for =
v in self.enumValues])
checkConstraint =3D "CHECK (%s in (%s))" % (self.dbName, enumVal=
ues)
- #NB. Return a tuple, not a string here
- return "VARCHAR(%i)" % (length), checkConstraint
+ #NB. Return a tuple, not a string here
+ return "VARCHAR(%i)" % (length), checkConstraint
+=20
+ def _maxdbType(self):
+ raise "Enum type is not supported"
=20
class EnumCol(Col):
baseClass =3D SOEnumCol
@@ -497,10 +530,13 @@
=20
def _sqliteType(self):
return 'TIMESTAMP'
-
+
def _firebirdType(self):
- return 'TIMESTAMP'
-
+ return 'TIMESTAMP'
+ =20
+ def _maxdbType(self):
+ return 'TIMESTAMP'
+
class DateTimeCol(Col):
baseClass =3D SODateTimeCol
=20
@@ -517,9 +553,12 @@
=20
def _sybaseType(self):
return self._postgresType()
-
+
def _firebirdType(self):
- return 'DATE'
+ return 'DATE'
+ =20
+ def _maxdbType(self):
+ return 'DATE'
=20
class DateCol(Col):
baseClass =3D SODateCol
|