sqlobject-cvs Mailing List for SQLObject (Page 101)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(74) |
May
(29) |
Jun
(16) |
Jul
(28) |
Aug
(10) |
Sep
(57) |
Oct
(9) |
Nov
(29) |
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(7) |
Feb
(14) |
Mar
(6) |
Apr
(3) |
May
(12) |
Jun
(34) |
Jul
(9) |
Aug
(29) |
Sep
(22) |
Oct
(2) |
Nov
(15) |
Dec
(52) |
| 2005 |
Jan
(47) |
Feb
(78) |
Mar
(14) |
Apr
(35) |
May
(33) |
Jun
(16) |
Jul
(26) |
Aug
(63) |
Sep
(40) |
Oct
(96) |
Nov
(96) |
Dec
(123) |
| 2006 |
Jan
(159) |
Feb
(144) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(48) |
Jul
(16) |
Aug
(64) |
Sep
(87) |
Oct
(92) |
Nov
(56) |
Dec
(76) |
| 2007 |
Jan
(94) |
Feb
(103) |
Mar
(126) |
Apr
(123) |
May
(85) |
Jun
(11) |
Jul
(130) |
Aug
(47) |
Sep
(65) |
Oct
(70) |
Nov
(12) |
Dec
(11) |
| 2008 |
Jan
(30) |
Feb
(55) |
Mar
(88) |
Apr
(20) |
May
(50) |
Jun
|
Jul
(38) |
Aug
(1) |
Sep
(9) |
Oct
(5) |
Nov
(6) |
Dec
(39) |
| 2009 |
Jan
(8) |
Feb
(16) |
Mar
(3) |
Apr
(33) |
May
(44) |
Jun
(1) |
Jul
(10) |
Aug
(33) |
Sep
(74) |
Oct
(22) |
Nov
|
Dec
(15) |
| 2010 |
Jan
(28) |
Feb
(22) |
Mar
(46) |
Apr
(29) |
May
(1) |
Jun
(1) |
Jul
(27) |
Aug
(8) |
Sep
(5) |
Oct
(33) |
Nov
(24) |
Dec
(41) |
| 2011 |
Jan
(4) |
Feb
(12) |
Mar
(35) |
Apr
(29) |
May
(19) |
Jun
(16) |
Jul
(32) |
Aug
(25) |
Sep
(5) |
Oct
(11) |
Nov
(21) |
Dec
(12) |
| 2012 |
Jan
(3) |
Feb
(4) |
Mar
(20) |
Apr
(4) |
May
(25) |
Jun
(13) |
Jul
|
Aug
|
Sep
(2) |
Oct
(25) |
Nov
(9) |
Dec
(1) |
| 2013 |
Jan
(6) |
Feb
(8) |
Mar
|
Apr
(10) |
May
(31) |
Jun
(7) |
Jul
(18) |
Aug
(33) |
Sep
(4) |
Oct
(16) |
Nov
|
Dec
(27) |
| 2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(11) |
May
(39) |
Jun
(8) |
Jul
(11) |
Aug
(4) |
Sep
|
Oct
(27) |
Nov
|
Dec
(71) |
| 2015 |
Jan
(17) |
Feb
(47) |
Mar
(33) |
Apr
|
May
|
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(8) |
| 2016 |
Jan
(4) |
Feb
(4) |
Mar
|
Apr
|
May
(12) |
Jun
(7) |
Jul
(9) |
Aug
(31) |
Sep
(8) |
Oct
(3) |
Nov
(15) |
Dec
(1) |
| 2017 |
Jan
(13) |
Feb
(7) |
Mar
(14) |
Apr
(8) |
May
(10) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(4) |
Dec
(5) |
| 2018 |
Jan
(2) |
Feb
(8) |
Mar
|
Apr
(4) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(16) |
Mar
(1) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
(3) |
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
| 2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
(4) |
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(4) |
Dec
|
| 2024 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(9) |
| 2025 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(2) |
Dec
(2) |
|
From: <sub...@co...> - 2007-03-03 10:29:23
|
Author: phd Date: 2007-03-03 03:29:20 -0700 (Sat, 03 Mar 2007) New Revision: 2387 Added: SQLObject/tags/0.8.1b1/ Log: Tagging 0.8.1b1. Copied: SQLObject/tags/0.8.1b1 (from rev 2386, SQLObject/branches/0.8) |
|
From: <sub...@co...> - 2007-03-03 10:28:11
|
Author: phd
Date: 2007-03-03 03:28:09 -0700 (Sat, 03 Mar 2007)
New Revision: 2386
Modified:
SQLObject/branches/0.8/setup.py
Log:
Going to release 0.8.1b1.
Modified: SQLObject/branches/0.8/setup.py
===================================================================
--- SQLObject/branches/0.8/setup.py 2007-03-03 10:26:17 UTC (rev 2385)
+++ SQLObject/branches/0.8/setup.py 2007-03-03 10:28:09 UTC (rev 2386)
@@ -28,7 +28,7 @@
"""
setup(name="SQLObject",
- version="0.8",
+ version="0.8.1b1",
description="Object-Relational Manager, aka database wrapper",
long_description="""\
SQLObject is a popular *Object Relational Manager* for providing an
|
|
From: <sub...@co...> - 2007-03-03 10:26:19
|
Author: phd Date: 2007-03-03 03:26:17 -0700 (Sat, 03 Mar 2007) New Revision: 2385 Modified: SQLObject/tags/0.7.4b1/setup.cfg Log: Stable release. Modified: SQLObject/tags/0.7.4b1/setup.cfg =================================================================== --- SQLObject/tags/0.7.4b1/setup.cfg 2007-03-03 10:24:33 UTC (rev 2384) +++ SQLObject/tags/0.7.4b1/setup.cfg 2007-03-03 10:26:17 UTC (rev 2385) @@ -1,7 +1,3 @@ -[egg_info] -tag_build = a -tag_svn_revision = true - [pudge] title = SQLObject dest = docs/html |
|
From: <sub...@co...> - 2007-03-03 10:24:34
|
Author: phd Date: 2007-03-03 03:24:33 -0700 (Sat, 03 Mar 2007) New Revision: 2384 Added: SQLObject/tags/0.7.4b1/ Log: Tagging 0.7.4b1. Copied: SQLObject/tags/0.7.4b1 (from rev 2383, SQLObject/branches/0.7) |
|
From: <sub...@co...> - 2007-03-03 10:23:08
|
Author: phd
Date: 2007-03-03 03:23:04 -0700 (Sat, 03 Mar 2007)
New Revision: 2383
Modified:
SQLObject/branches/0.7/setup.py
Log:
Going to release 0.7.4b1.
Modified: SQLObject/branches/0.7/setup.py
===================================================================
--- SQLObject/branches/0.7/setup.py 2007-03-03 10:20:32 UTC (rev 2382)
+++ SQLObject/branches/0.7/setup.py 2007-03-03 10:23:04 UTC (rev 2383)
@@ -19,7 +19,7 @@
DistributionMetadata.download_url = None
setup(name="SQLObject",
- version="0.7.3",
+ version="0.7.4b1",
description="Object-Relational Manager, aka database wrapper",
long_description="""\
SQLObject is a popular *Object Relational Manager* for providing an
@@ -52,7 +52,7 @@
author="Ian Bicking",
author_email="ia...@co...",
url="http://sqlobject.org",
- download_url="http://cheeseshop.python.org/pypi/SQLObject/0.7.3",
+ download_url="http://cheeseshop.python.org/pypi/SQLObject/0.7.4b1",
license="LGPL",
packages=["sqlobject"] + ['sqlobject.%s' % package for package in subpackages],
scripts=["scripts/sqlobject-admin"],
|
|
From: <sub...@co...> - 2007-03-03 10:20:35
|
Author: phd Date: 2007-03-03 03:20:32 -0700 (Sat, 03 Mar 2007) New Revision: 2382 Modified: SQLObject/docs/News.txt Log: ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in accord with FOREIGN KEYs. Modified: SQLObject/docs/News.txt =================================================================== --- SQLObject/docs/News.txt 2007-03-03 10:20:20 UTC (rev 2381) +++ SQLObject/docs/News.txt 2007-03-03 10:20:32 UTC (rev 2382) @@ -60,6 +60,15 @@ * idName can be inherited from the parent sqlmeta class. +SQLObject 0.8.1 +=============== + +Bug Fixes +--------- + +* ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in + accord with FOREIGN KEYs. + SQLObject 0.8.0 =============== |
|
From: <sub...@co...> - 2007-03-03 10:20:27
|
Author: phd
Date: 2007-03-03 03:20:20 -0700 (Sat, 03 Mar 2007)
New Revision: 2381
Modified:
SQLObject/trunk/sqlobject/mysql/mysqlconnection.py
Log:
ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in accord with FOREIGN KEYs.
Modified: SQLObject/trunk/sqlobject/mysql/mysqlconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2007-03-03 10:19:59 UTC (rev 2380)
+++ SQLObject/trunk/sqlobject/mysql/mysqlconnection.py 2007-03-03 10:20:20 UTC (rev 2381)
@@ -169,7 +169,7 @@
def createIDColumn(self, soClass):
if soClass.sqlmeta.idType == str:
return '%s TEXT PRIMARY KEY' % soClass.sqlmeta.idName
- return '%s INT UNSIGNED PRIMARY KEY AUTO_INCREMENT' % soClass.sqlmeta.idName
+ return '%s INT PRIMARY KEY AUTO_INCREMENT' % soClass.sqlmeta.idName
def joinSQLType(self, join):
return 'INT NOT NULL'
|
|
From: <sub...@co...> - 2007-03-03 10:20:03
|
Author: phd
Date: 2007-03-03 03:19:59 -0700 (Sat, 03 Mar 2007)
New Revision: 2380
Modified:
SQLObject/branches/0.8/docs/News.txt
SQLObject/branches/0.8/sqlobject/mysql/mysqlconnection.py
Log:
ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in accord with FOREIGN KEYs.
Modified: SQLObject/branches/0.8/docs/News.txt
===================================================================
--- SQLObject/branches/0.8/docs/News.txt 2007-03-02 16:29:21 UTC (rev 2379)
+++ SQLObject/branches/0.8/docs/News.txt 2007-03-03 10:19:59 UTC (rev 2380)
@@ -115,6 +115,15 @@
* Fixed aggregators and accumulators with inheritance.
+SQLObject 0.8.1
+===============
+
+Bug Fixes
+---------
+
+* ID columns are reverted back from INT UNSIGNED to INT for MySQL to be in
+ accord with FOREIGN KEYs.
+
SQLObject 0.7.4
===============
Modified: SQLObject/branches/0.8/sqlobject/mysql/mysqlconnection.py
===================================================================
--- SQLObject/branches/0.8/sqlobject/mysql/mysqlconnection.py 2007-03-02 16:29:21 UTC (rev 2379)
+++ SQLObject/branches/0.8/sqlobject/mysql/mysqlconnection.py 2007-03-03 10:19:59 UTC (rev 2380)
@@ -65,7 +65,7 @@
except self.module.OperationalError, e:
raise OperationalError(
"%s; used connection string: host=%s, port=%s, db=%s, user=%s, pwd=%s" % (
- e, self.host, self.port, self.db, self.user, self.password)
+ e, self.host, self.port, self.db, self.user, self.password)
)
if hasattr(conn, 'autocommit'):
@@ -169,7 +169,7 @@
def createIDColumn(self, soClass):
if soClass.sqlmeta.idType == str:
return '%s TEXT PRIMARY KEY' % soClass.sqlmeta.idName
- return '%s INT UNSIGNED PRIMARY KEY AUTO_INCREMENT' % soClass.sqlmeta.idName
+ return '%s INT PRIMARY KEY AUTO_INCREMENT' % soClass.sqlmeta.idName
def joinSQLType(self, join):
return 'INT NOT NULL'
|
|
From: SourceForge.net <no...@so...> - 2007-03-03 00:54:57
|
Bugs item #1495030, was opened at 2006-05-25 08:48 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=1495030&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: General Group: None Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: sql drop fails with soClasses Initial Comment: sqlobject-admin sql create respects soClasses, but sqlobject-admin drop tries to drop the tables in the same order instead of in the reverse order. See http://trac.turbogears.org/turbogears/ticket/882 for an example and possible patch. Arthur Clune (pu...@cl...) ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-03-02 16:54 Message: Logged In: NO Im still having this problem with SQLObject 0.7.3 and comparing my sqlobject\manager\command.py with the patch http://trac.turbogears.org/attachment/ticket/279/command.patch tells it hasnt been included even though it is marked as fixed ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540672&aid=1495030&group_id=74338 |
|
From: <sub...@co...> - 2007-03-02 16:29:54
|
Author: phd
Date: 2007-03-02 09:29:21 -0700 (Fri, 02 Mar 2007)
New Revision: 2379
Modified:
home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
Log:
Merged patches from the revisions 2377:2378 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-03-02 16:27:58 UTC (rev 2378)
+++ home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-03-02 16:29:21 UTC (rev 2379)
@@ -612,11 +612,14 @@
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
+ def getDBOptions(self, SO_or_join):
+ if hasattr(SO_or_join, "sqlmeta"):
+ engineSQL = SO_or_join.sqlmeta.engineSQL
else:
+ engineSQL = getattr(SO_or_join, "engineSQL", None)
+ if engineSQL:
+ return "ENGINE = %s" % engineSQL
+ else:
return ""
def createColumns(self, soClass):
|
|
From: <sub...@co...> - 2007-03-02 16:28:15
|
Author: phd
Date: 2007-03-02 09:27:58 -0700 (Fri, 02 Mar 2007)
New Revision: 2378
Modified:
SQLObject/trunk/sqlobject/dbconnection.py
Log:
Fixed bugs in processing engineSQL.
Modified: SQLObject/trunk/sqlobject/dbconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/dbconnection.py 2007-03-02 15:48:25 UTC (rev 2377)
+++ SQLObject/trunk/sqlobject/dbconnection.py 2007-03-02 16:27:58 UTC (rev 2378)
@@ -603,11 +603,14 @@
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
+ def getDBOptions(self, SO_or_join):
+ if hasattr(SO_or_join, "sqlmeta"):
+ engineSQL = SO_or_join.sqlmeta.engineSQL
else:
+ engineSQL = getattr(SO_or_join, "engineSQL", None)
+ if engineSQL:
+ return "ENGINE = %s" % engineSQL
+ else:
return ""
def createColumns(self, soClass):
|
|
From: <sub...@co...> - 2007-03-02 15:48:36
|
Author: phd
Date: 2007-03-02 08:48:25 -0700 (Fri, 02 Mar 2007)
New Revision: 2377
Modified:
home/phd/SQLObject/paramstyles/sqlobject/col.py
home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
home/phd/SQLObject/paramstyles/sqlobject/main.py
home/phd/SQLObject/paramstyles/sqlobject/mysql/mysqlconnection.py
home/phd/SQLObject/paramstyles/sqlobject/sqlbuilder.py
Log:
Merged patches from the revisions 2360:2376 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/col.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/col.py 2007-03-02 15:42:13 UTC (rev 2376)
+++ home/phd/SQLObject/paramstyles/sqlobject/col.py 2007-03-02 15:48:25 UTC (rev 2377)
@@ -112,6 +112,7 @@
creationOrder,
dbName=None,
default=NoDefault,
+ defaultSQL=None,
foreignKey=None,
alternateID=False,
alternateMethodName=None,
@@ -178,6 +179,7 @@
self.name = name
self.soClass = soClass
self._default = default
+ self.defaultSQL = defaultSQL
self.customSQLType = sqlType
# deal with foreign keys
@@ -293,6 +295,8 @@
result.append('NOT NULL')
if self.unique or self.alternateID:
result.append('UNIQUE')
+ if self.defaultSQL is not None:
+ result.append("DEFAULT %s" % self.defaultSQL)
return result
def _sqlType(self):
@@ -594,6 +598,11 @@
class SOIntCol(SOCol):
# 3-03 @@: support precision, maybe max and min directly
+ def __init__(self, **kw):
+ self.length = popKey(kw, 'length')
+ self.unsigned = bool(popKey(kw, 'unsigned'))
+ self.zerofill = bool(popKey(kw, 'unsigned'))
+ SOCol.__init__(self, **kw)
def autoConstraints(self):
return [consts.isInt]
@@ -602,12 +611,54 @@
return [IntValidator(name=self.name)] + \
super(SOIntCol, self).createValidators()
+ def addSQLAttrs(self, str):
+ _ret = str
+ if str is None or len(str) < 1:
+ return None
+
+ if self.length >= 1:
+ _ret = "%s(%d)" % (_ret, self.length)
+ if self.unsigned:
+ _ret = _ret + " UNSIGNED"
+ if self.zerofill:
+ _ret = _reg + " ZEROFILL"
+ return _ret
+
def _sqlType(self):
- return 'INT'
+ return self.addSQLAttrs("INT")
class IntCol(Col):
baseClass = SOIntCol
+class SOTinyIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("TINYINT")
+
+class TinyIntCol(Col):
+ baseClass = SOTinyIntCol
+
+class SOSmallIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("SMALLINT")
+
+class SmallIntCol(Col):
+ baseClass = SOSmallIntCol
+
+class SOMediumIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("MEDIUMINT")
+
+class MediumIntCol(Col):
+ baseClass = SOMediumIntCol
+
+class SOBigIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("BIGINT")
+
+class BigIntCol(Col):
+ baseClass = SOBigIntCol
+
+
class BoolValidator(validators.Validator):
def to_python(self, value, state):
@@ -940,6 +991,43 @@
baseClass = SOEnumCol
+class SetValidator(validators.Validator):
+ """
+ Translates Python tuples into SQL comma-delimited SET strings.
+ """
+
+ def to_python(self, value, state):
+ if not isinstance(value, str):
+ raise validators.Invalid("expected a value string, got % instead" % \
+ (value), value, state)
+ return tuple(value.split(","))
+
+ def from_python(self, value, state):
+ if not isinstance(value, tuple):
+ value = (value,)
+ return ",".join([v for v in value])
+
+class SOSetCol(SOCol):
+ def __init__(self, **kw):
+ self.setValues = popKey(kw, 'setValues', None)
+ assert self.setValues is not None, \
+ 'You must provide a setValues keyword argument'
+ super(SOSetCol, self).__init__(**kw)
+
+ def autoConstraints(self):
+ return [consts.isString, consts.InList(self.setValues)]
+
+ def createValidators(self):
+ return [SetValidator(name = self.name, setValues = self.setValues)] + \
+ super(SOSetCol, self).createValidators()
+
+ def _mysqlType(self):
+ return "SET(%s)" % ', '.join([sqlbuilder.sqlrepr(v, 'mysql') for v in self.enumValues])
+
+class SetCol(Col):
+ baseClass = SOSetCol
+
+
if datetime_available:
class DateTimeValidator(validators.DateValidator):
def to_python(self, value, state):
@@ -1063,7 +1151,6 @@
% DATETIME_IMPLEMENTATION)
now = staticmethod(now)
-
if datetime_available:
class DateValidator(DateTimeValidator):
def to_python(self, value, state):
@@ -1180,6 +1267,21 @@
baseClass = SOTimeCol
+class SOTimestampCol(SODateTimeCol):
+ """
+ Necessary to support MySQL's use of TIMESTAMP versus DATETIME types
+ """
+
+ def __init__(self, **kw):
+ SOCol.__init__(self, **kw)
+
+ def _mysqlType(self):
+ return 'TIMESTAMP'
+
+class TimestampCol(Col):
+ baseClass = SOTimestampCol
+
+
try:
from decimal import Decimal
except ImportError:
@@ -1355,6 +1457,7 @@
class PickleCol(BLOBCol):
baseClass = SOPickleCol
+
def popKey(kw, name, default=None):
if not kw.has_key(name):
return default
Modified: home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-03-02 15:42:13 UTC (rev 2376)
+++ home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2007-03-02 15:48:25 UTC (rev 2377)
@@ -555,12 +555,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)
@@ -606,10 +607,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: home/phd/SQLObject/paramstyles/sqlobject/main.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/main.py 2007-03-02 15:42:13 UTC (rev 2376)
+++ home/phd/SQLObject/paramstyles/sqlobject/main.py 2007-03-02 15:48:25 UTC (rev 2377)
@@ -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:
@@ -1231,7 +1233,8 @@
default = column.default
# If we don't get it, it's an error:
- if default is NoDefault:
+ # If we specified an SQL DEFAULT, then we should use that
+ if default is NoDefault and column.defaultSQL is not None:
raise TypeError, "%s() did not get expected keyword argument %s" % (self.__class__.__name__, column.name)
# Otherwise we put it in as though they did pass
# that keyword:
@@ -1453,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)
Modified: home/phd/SQLObject/paramstyles/sqlobject/mysql/mysqlconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/mysql/mysqlconnection.py 2007-03-02 15:42:13 UTC (rev 2376)
+++ home/phd/SQLObject/paramstyles/sqlobject/mysql/mysqlconnection.py 2007-03-02 15:48:25 UTC (rev 2377)
@@ -236,6 +236,10 @@
'varchar': False}
elif t.startswith('datetime'):
return col.DateTimeCol, {}
+ elif t.startswith('date'):
+ return col.DateCol, {}
+ elif t.startswith('timestamp'):
+ return col.TimestampCol, {}
elif t.startswith('bool'):
return col.BoolCol, {}
elif t.startswith('tinyblob'):
Modified: home/phd/SQLObject/paramstyles/sqlobject/sqlbuilder.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/sqlbuilder.py 2007-03-02 15:42:13 UTC (rev 2376)
+++ home/phd/SQLObject/paramstyles/sqlobject/sqlbuilder.py 2007-03-02 15:48:25 UTC (rev 2377)
@@ -369,10 +369,14 @@
SQLObjectField.__init__(self, tableName, fieldName, original)
self.column = column
def __eq__(self, other):
+ if other is None:
+ return ISNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('=', self, other)
def __ne__(self, other):
+ if other is None:
+ return ISNOTNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('<>', self, other)
|
|
From: <sub...@co...> - 2007-03-02 15:42:19
|
Author: phd Date: 2007-03-02 08:42:13 -0700 (Fri, 02 Mar 2007) New Revision: 2376 Modified: SQLObject/docs/News.txt Log: Fixed a bug in UnicodeField - allow comparison with None. Modified: SQLObject/docs/News.txt =================================================================== --- SQLObject/docs/News.txt 2007-03-02 15:41:51 UTC (rev 2375) +++ SQLObject/docs/News.txt 2007-03-02 15:42:13 UTC (rev 2376) @@ -177,6 +177,8 @@ * Another round of changes to create/drop the tables in the right order in the command-line client `sqlobject-admin`. +* Fixed a bug in UnicodeField - allow comparison with None. + SQLObject 0.7.3 =============== |
|
From: <sub...@co...> - 2007-03-02 15:42:00
|
Author: phd
Date: 2007-03-02 08:41:51 -0700 (Fri, 02 Mar 2007)
New Revision: 2375
Modified:
SQLObject/trunk/sqlobject/sqlbuilder.py
Log:
Fixed a bug in UnicodeField - allow comparison with None.
Modified: SQLObject/trunk/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/trunk/sqlobject/sqlbuilder.py 2007-03-02 15:41:20 UTC (rev 2374)
+++ SQLObject/trunk/sqlobject/sqlbuilder.py 2007-03-02 15:41:51 UTC (rev 2375)
@@ -332,10 +332,14 @@
SQLObjectField.__init__(self, tableName, fieldName, original)
self.column = column
def __eq__(self, other):
+ if other is None:
+ return ISNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('=', self, other)
def __ne__(self, other):
+ if other is None:
+ return ISNOTNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('<>', self, other)
|
|
From: <sub...@co...> - 2007-03-02 15:41:35
|
Author: phd
Date: 2007-03-02 08:41:20 -0700 (Fri, 02 Mar 2007)
New Revision: 2374
Modified:
SQLObject/branches/0.8/docs/News.txt
SQLObject/branches/0.8/sqlobject/sqlbuilder.py
Log:
Fixed a bug in UnicodeField - allow comparison with None.
Modified: SQLObject/branches/0.8/docs/News.txt
===================================================================
--- SQLObject/branches/0.8/docs/News.txt 2007-03-02 15:40:39 UTC (rev 2373)
+++ SQLObject/branches/0.8/docs/News.txt 2007-03-02 15:41:20 UTC (rev 2374)
@@ -124,6 +124,8 @@
* Another round of changes to create/drop the tables in the right order
in the command-line client `sqlobject-admin`.
+* Fixed a bug in UnicodeField - allow comparison with None.
+
SQLObject 0.7.3
===============
Modified: SQLObject/branches/0.8/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/branches/0.8/sqlobject/sqlbuilder.py 2007-03-02 15:40:39 UTC (rev 2373)
+++ SQLObject/branches/0.8/sqlobject/sqlbuilder.py 2007-03-02 15:41:20 UTC (rev 2374)
@@ -332,10 +332,14 @@
SQLObjectField.__init__(self, tableName, fieldName, original)
self.column = column
def __eq__(self, other):
+ if other is None:
+ return ISNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('=', self, other)
def __ne__(self, other):
+ if other is None:
+ return ISNOTNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('<>', self, other)
|
|
From: <sub...@co...> - 2007-03-02 15:40:47
|
Author: phd
Date: 2007-03-02 08:40:39 -0700 (Fri, 02 Mar 2007)
New Revision: 2373
Modified:
SQLObject/branches/0.7/docs/News.txt
SQLObject/branches/0.7/sqlobject/sqlbuilder.py
Log:
Fixed a bug in UnicodeField - allow comparison with None.
Modified: SQLObject/branches/0.7/docs/News.txt
===================================================================
--- SQLObject/branches/0.7/docs/News.txt 2007-03-02 15:30:37 UTC (rev 2372)
+++ SQLObject/branches/0.7/docs/News.txt 2007-03-02 15:40:39 UTC (rev 2373)
@@ -16,6 +16,8 @@
* Another round of changes to create/drop the tables in the right order
in the command-line client `sqlobject-admin`.
+* Fixed a bug in UnicodeField - allow comparison with None.
+
SQLObject 0.7.3
===============
Modified: SQLObject/branches/0.7/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/branches/0.7/sqlobject/sqlbuilder.py 2007-03-02 15:30:37 UTC (rev 2372)
+++ SQLObject/branches/0.7/sqlobject/sqlbuilder.py 2007-03-02 15:40:39 UTC (rev 2373)
@@ -329,10 +329,14 @@
SQLObjectField.__init__(self, tableName, fieldName, original)
self.column = column
def __eq__(self, other):
+ if other is None:
+ return ISNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('=', self, other)
def __ne__(self, other):
+ if other is None:
+ return ISNOTNULL(self)
if isinstance(other, unicode):
other = other.encode(self.column.dbEncoding)
return SQLOp('<>', self, other)
|
|
From: <sub...@co...> - 2007-03-02 15:30:43
|
Author: phd Date: 2007-03-02 08:30:37 -0700 (Fri, 02 Mar 2007) New Revision: 2372 Modified: SQLObject/docs/News.txt Log: New columns: TinyIntCol for TINYINT; SmallIntCol for SMALLINT; MediumIntCol for MEDIUMINT; BigIntCol for BIGINT. Modified: SQLObject/docs/News.txt =================================================================== --- SQLObject/docs/News.txt 2007-03-02 15:29:34 UTC (rev 2371) +++ SQLObject/docs/News.txt 2007-03-02 15:30:37 UTC (rev 2372) @@ -41,10 +41,11 @@ * Use logging if it's available and is configured via DB URI. -* New column TimestampCol to support MySQL TIMESTAMP type. +* New columns: TimestampCol to support MySQL TIMESTAMP type; + SetCol to support MySQL SET type; + TinyIntCol for TINYINT; SmallIntCol for SMALLINT; + MediumIntCol for MEDIUMINT; BigIntCol for BIGINT. -* New column SetCol to support MySQL SET type. - Small Features -------------- |
|
From: SourceForge.net <no...@so...> - 2007-03-02 15:30:15
|
Patches item #1450591, was opened at 2006-03-15 21:24 Message generated for change (Comment added) made by phd You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450591&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Add support for TINYINT, BIGINT, etc. Initial Comment: Storage size should be considered when assigning column types. If an int value is never going to be larger than one byte, it should not be assigned to an INT column type, instead TINYINT should be used. The patch adds support for TINYINT, SMALLINT, MEDIUMINT, and BIGINT columns (these are all supported under MySQL, other support is unknown) by adding TinyIntCol, SmallIntCol, MediumIntCol, and BigIntCol classes. ---------------------------------------------------------------------- >Comment By: Oleg Broytmann (phd) Date: 2007-03-02 18:30 Message: Logged In: YES user_id=4799 Originator: NO Applied in the revision 2371. ---------------------------------------------------------------------- Comment By: Oleg Broytmann (phd) Date: 2006-03-21 13:03 Message: Logged In: YES user_id=4799 Please add documentation and tests. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450591&group_id=74338 |
|
From: <sub...@co...> - 2007-03-02 15:29:40
|
Author: phd
Date: 2007-03-02 08:29:34 -0700 (Fri, 02 Mar 2007)
New Revision: 2371
Modified:
SQLObject/trunk/sqlobject/col.py
Log:
Applied the patch 1450591: support for TINYINT, SMALLINT, MEDIUMINT, BIGINT.
Modified: SQLObject/trunk/sqlobject/col.py
===================================================================
--- SQLObject/trunk/sqlobject/col.py 2007-03-02 15:23:57 UTC (rev 2370)
+++ SQLObject/trunk/sqlobject/col.py 2007-03-02 15:29:34 UTC (rev 2371)
@@ -630,6 +630,35 @@
class IntCol(Col):
baseClass = SOIntCol
+class SOTinyIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("TINYINT")
+
+class TinyIntCol(Col):
+ baseClass = SOTinyIntCol
+
+class SOSmallIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("SMALLINT")
+
+class SmallIntCol(Col):
+ baseClass = SOSmallIntCol
+
+class SOMediumIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("MEDIUMINT")
+
+class MediumIntCol(Col):
+ baseClass = SOMediumIntCol
+
+class SOBigIntCol(SOIntCol):
+ def _sqlTyps(self):
+ return self.addSQLAttrs("BIGINT")
+
+class BigIntCol(Col):
+ baseClass = SOBigIntCol
+
+
class BoolValidator(validators.Validator):
def to_python(self, value, state):
|
|
From: <sub...@co...> - 2007-03-02 15:24:06
|
Author: phd Date: 2007-03-02 08:23:57 -0700 (Fri, 02 Mar 2007) New Revision: 2370 Modified: SQLObject/docs/News.txt Log: Support for MySQL storage ENGINEs. Modified: SQLObject/docs/News.txt =================================================================== --- SQLObject/docs/News.txt 2007-03-02 15:22:50 UTC (rev 2369) +++ SQLObject/docs/News.txt 2007-03-02 15:23:57 UTC (rev 2370) @@ -52,6 +52,8 @@ * Support for DEFAULT SQL attribute via defaultSQL keyword argument. +* Support for MySQL storage ENGINEs. + Bug Fixes --------- |
|
From: SourceForge.net <no...@so...> - 2007-03-02 15:23:15
|
Patches item #1450587, was opened at 2006-03-15 21:20 Message generated for change (Comment added) made by phd You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450587&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Add support for MySQL ENGINE specification Initial Comment: MySQL supports several different database engine types, each having its own advantage and drawbacks, with two of the most prevalent being InnoDB (support for transactions and indices) and MyISAM. The engine type can be explicitly specified at the end of a CREATE TABLE. E.g., CREATE TABLE test ( id INT PRIMARY KEY AUTO_INCREMENT, value INT ) ENGINE=InnoDB; The patch adds an engine keyword into the SQLObject that can be used to append the ENGINE specification to every table creation. Usage: SQLObject.engine = "InnoDB" ---------------------------------------------------------------------- >Comment By: Oleg Broytmann (phd) Date: 2007-03-02 18:23 Message: Logged In: YES user_id=4799 Originator: NO Applied in the revision 2369. ---------------------------------------------------------------------- Comment By: Oleg Broytmann (phd) Date: 2006-03-21 13:03 Message: Logged In: YES user_id=4799 Please add documentation and tests. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450587&group_id=74338 |
|
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)
|
|
From: <sub...@co...> - 2007-03-02 14:51:12
|
Author: phd
Date: 2007-03-02 07:51:08 -0700 (Fri, 02 Mar 2007)
New Revision: 2368
Modified:
SQLObject/docs/News.txt
SQLObject/docs/SQLObject.txt
Log:
Support for DEFAULT SQL attribute via defaultSQL keyword argument.
Modified: SQLObject/docs/News.txt
===================================================================
--- SQLObject/docs/News.txt 2007-03-02 14:47:45 UTC (rev 2367)
+++ SQLObject/docs/News.txt 2007-03-02 14:51:08 UTC (rev 2368)
@@ -50,6 +50,8 @@
* Support for MySQL INT type attributes: UNSIGNED, ZEROFILL.
+* Support for DEFAULT SQL attribute via defaultSQL keyword argument.
+
Bug Fixes
---------
Modified: SQLObject/docs/SQLObject.txt
===================================================================
--- SQLObject/docs/SQLObject.txt 2007-03-02 14:47:45 UTC (rev 2367)
+++ SQLObject/docs/SQLObject.txt 2007-03-02 14:51:08 UTC (rev 2368)
@@ -1026,6 +1026,8 @@
the ``NOW()`` function internally. If you don't give a default
there will be an exception if this column isn't specified in the
call to `new`.
+`defaultSQL`:
+ ``DEFAULT`` SQL attribute.
`alternateID`:
This boolean (default False) indicates if the column can be used
as an ID for the field (for instance, a username), though it is
|
|
From: SourceForge.net <no...@so...> - 2007-03-02 14:48:16
|
Patches item #1450584, was opened at 2006-03-15 21:13 Message generated for change (Comment added) made by phd You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450584&group_id=74338 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: Support for DEFAULT SQL attribute Initial Comment: The built-in SQLObject default keyword only works within the SQLObject framework. I.e., SQLObject inserts the value before performing and INSERT. For consistancy, it would be best if this was handled by the database. The patch provides adds a defaultSQL keyword to col defines, which will add the DEFAULT %s value into a CREATE TABLE statement. Also, it will allow all columns declared with the defaultSQL to pass cleanly through the SQLObject interface without being explicitly defined. ---------------------------------------------------------------------- >Comment By: Oleg Broytmann (phd) Date: 2007-03-02 17:48 Message: Logged In: YES user_id=4799 Originator: NO Applied in the revision 2367. ---------------------------------------------------------------------- Comment By: Oleg Broytmann (phd) Date: 2006-03-21 13:01 Message: Logged In: YES user_id=4799 Please add documentation and tests. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=540674&aid=1450584&group_id=74338 |
|
From: <sub...@co...> - 2007-03-02 14:48:03
|
Author: phd
Date: 2007-03-02 07:47:45 -0700 (Fri, 02 Mar 2007)
New Revision: 2367
Modified:
SQLObject/trunk/sqlobject/col.py
SQLObject/trunk/sqlobject/main.py
Log:
Aplied the patch 1450584: Support for DEFAULT SQL attribute.
Modified: SQLObject/trunk/sqlobject/col.py
===================================================================
--- SQLObject/trunk/sqlobject/col.py 2007-03-02 14:43:22 UTC (rev 2366)
+++ SQLObject/trunk/sqlobject/col.py 2007-03-02 14:47:45 UTC (rev 2367)
@@ -112,6 +112,7 @@
creationOrder,
dbName=None,
default=NoDefault,
+ defaultSQL=None,
foreignKey=None,
alternateID=False,
alternateMethodName=None,
@@ -178,6 +179,7 @@
self.name = name
self.soClass = soClass
self._default = default
+ self.defaultSQL = defaultSQL
self.customSQLType = sqlType
# deal with foreign keys
@@ -293,6 +295,8 @@
result.append('NOT NULL')
if self.unique or self.alternateID:
result.append('UNIQUE')
+ if self.defaultSQL is not None:
+ result.append("DEFAULT %s" % self.defaultSQL)
return result
def _sqlType(self):
Modified: SQLObject/trunk/sqlobject/main.py
===================================================================
--- SQLObject/trunk/sqlobject/main.py 2007-03-02 14:43:22 UTC (rev 2366)
+++ SQLObject/trunk/sqlobject/main.py 2007-03-02 14:47:45 UTC (rev 2367)
@@ -1231,7 +1231,8 @@
default = column.default
# If we don't get it, it's an error:
- if default is NoDefault:
+ # If we specified an SQL DEFAULT, then we should use that
+ if default is NoDefault and column.defaultSQL is not None:
raise TypeError, "%s() did not get expected keyword argument %s" % (self.__class__.__name__, column.name)
# Otherwise we put it in as though they did pass
# that keyword:
|