diff options
| -rw-r--r-- | CHANGES | 10 | ||||
| -rw-r--r-- | lib/sqlalchemy/__init__.py | 1 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/informix/base.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/base.py | 26 | ||||
| -rw-r--r-- | lib/sqlalchemy/types.py | 2 |
5 files changed, 30 insertions, 12 deletions
@@ -388,7 +388,10 @@ CHANGES - 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 @@ -463,7 +466,10 @@ CHANGES - 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 diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py index 31469ee5a..545214fcd 100644 --- a/lib/sqlalchemy/__init__.py +++ b/lib/sqlalchemy/__init__.py @@ -50,6 +50,7 @@ from sqlalchemy.sql import ( from sqlalchemy.types import ( BLOB, BOOLEAN, + BigInteger, Binary, Boolean, CHAR, diff --git a/lib/sqlalchemy/dialects/informix/base.py b/lib/sqlalchemy/dialects/informix/base.py index a0ba29269..bc48e6aa5 100644 --- a/lib/sqlalchemy/dialects/informix/base.py +++ b/lib/sqlalchemy/dialects/informix/base.py @@ -7,8 +7,11 @@ # the MIT License: http://www.opensource.org/licenses/mit-license.php """Support for the Informix database. +This dialect is *not* ported to SQLAlchemy 0.6. + This dialect is *not* tested on SQLAlchemy 0.6. + """ diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 4f37412eb..8af28c8e5 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -132,7 +132,6 @@ class NCLOB(sqltypes.Text): VARCHAR2 = VARCHAR NVARCHAR2 = NVARCHAR - class NUMBER(sqltypes.Numeric, sqltypes.Integer): __visit_name__ = 'NUMBER' @@ -220,16 +219,22 @@ class OracleTypeCompiler(compiler.GenericTypeCompiler): 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} @@ -245,7 +250,10 @@ class OracleTypeCompiler(compiler.GenericTypeCompiler): 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_) diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index cdd5439db..9fa59600f 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -15,7 +15,7 @@ __all__ = [ 'TypeEngine', 'TypeDecorator', 'AbstractType', 'UserDefinedType', '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' |
