- using new dialect.initialize() feature to set up
version-dependent behavior.
-
+
+ - using types.BigInteger with Oracle will generate
+ NUMBER(19) [ticket:1125]
+
- firebird
- the keys() method of RowProxy() now returns the result
column names *normalized* to be SQLAlchemy case
- AbstractType.get_search_list() is removed - the games
that was used for are no longer necessary.
-
+
+ - Added a generic BigInteger type, compiles to
+ BIGINT or NUMBER(19). [ticket:1125]
+
0.5.7
=====
- orm
VARCHAR2 = VARCHAR
NVARCHAR2 = NVARCHAR
-
class NUMBER(sqltypes.Numeric, sqltypes.Integer):
__visit_name__ = 'NUMBER'
def visit_DOUBLE_PRECISION(self, type_):
return self._generate_numeric(type_, "DOUBLE PRECISION")
- def visit_NUMBER(self, type_):
- return self._generate_numeric(type_, "NUMBER")
+ def visit_NUMBER(self, type_, **kw):
+ return self._generate_numeric(type_, "NUMBER", **kw)
- def _generate_numeric(self, type_, name):
- if type_.precision is None:
+ def _generate_numeric(self, type_, name, precision=None, scale=None):
+ if precision is None:
+ precision = type_.precision
+
+ if scale is None:
+ scale = getattr(type_, 'scale', None)
+
+ if precision is None:
return name
- elif type_.scale is None:
- return "%(name)s(%(precision)s)" % {'name':name,'precision': type_.precision}
+ elif scale is None:
+ return "%(name)s(%(precision)s)" % {'name':name,'precision': precision}
else:
- return "%(name)s(%(precision)s, %(scale)s)" % {'name':name,'precision': type_.precision, 'scale' : type_.scale}
+ return "%(name)s(%(precision)s, %(scale)s)" % {'name':name,'precision': precision, 'scale' : scale}
def visit_VARCHAR(self, type_):
return "VARCHAR(%(length)s)" % {'length' : type_.length}
def visit_binary(self, type_):
return self.visit_BLOB(type_)
-
+
+ def visit_big_integer(self, type_):
+ return self.visit_NUMBER(type_, precision=19)
+
def visit_boolean(self, type_):
return self.visit_SMALLINT(type_)
'INT', 'CHAR', 'VARCHAR', 'NCHAR', 'NVARCHAR','TEXT', 'Text', 'FLOAT',
'NUMERIC', 'DECIMAL', 'TIMESTAMP', 'DATETIME', 'CLOB', 'BLOB',
'BOOLEAN', 'SMALLINT', 'INTEGER', 'DATE', 'TIME',
- 'String', 'Integer', 'SmallInteger',
+ 'String', 'Integer', 'SmallInteger', 'BigInteger',
'Numeric', 'Float', 'DateTime', 'Date', 'Time', 'Binary',
'Boolean', 'Unicode', 'MutableType', 'Concatenable', 'UnicodeText', 'PickleType', 'Interval',
'type_map'