[SQL-CVS] r142 - trunk/SQLObject/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2004-06-14 12:49:16
|
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 |