diff options
author | Robert Leftwich <rtl@pobox.com> | 2005-12-01 12:51:38 +0000 |
---|---|---|
committer | Robert Leftwich <rtl@pobox.com> | 2005-12-01 12:51:38 +0000 |
commit | 9ec6a9b8e336caf6ef79451f1154f40fc5e771a1 (patch) | |
tree | 8302755a21f48ae8af5845c281b21a8d95b79a46 /lib/sqlalchemy/databases | |
parent | 2a1098f831a0f9b3f9a01fa5cd2a46789b533a61 (diff) | |
download | sqlalchemy-9ec6a9b8e336caf6ef79451f1154f40fc5e771a1.tar.gz |
Added float type to support real/double precision/float8/etc sql data types. Added columns.py as unit test. Modified sqlite.py, postgres.py and mysql.py to use the new type where appropriate (note -Oracle is unchanged at present).
Diffstat (limited to 'lib/sqlalchemy/databases')
-rw-r--r-- | lib/sqlalchemy/databases/mysql.py | 5 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/postgres.py | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/sqlite.py | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 45d85187a..429ffc0fd 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -33,6 +33,9 @@ except: class MSNumeric(sqltypes.Numeric): def get_col_spec(self): return "NUMERIC(%(precision)s, %(length)s)" % {'precision': self.precision, 'length' : self.length} +class MSFloat(sqltypes.Float): + def get_col_spec(self): + return "FLOAT(%(precision)s)" % {'precision': self.precision} class MSInteger(sqltypes.Integer): def get_col_spec(self): return "INTEGER" @@ -58,6 +61,7 @@ class MSBoolean(sqltypes.Boolean): colspecs = { sqltypes.Integer : MSInteger, sqltypes.Numeric : MSNumeric, + sqltypes.Float : MSFloat, sqltypes.DateTime : MSDateTime, sqltypes.String : MSString, sqltypes.Binary : MSBinary, @@ -72,6 +76,7 @@ ischema_names = { 'char' : MSChar, 'text' : MSText, 'decimal' : MSNumeric, + 'float' : MSFloat, 'timestamp' : MSDateTime, 'binary' : MSBinary, } diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py index c8e742fe4..75b9e1aee 100644 --- a/lib/sqlalchemy/databases/postgres.py +++ b/lib/sqlalchemy/databases/postgres.py @@ -36,6 +36,9 @@ except: class PGNumeric(sqltypes.Numeric): def get_col_spec(self): return "NUMERIC(%(precision)s, %(length)s)" % {'precision': self.precision, 'length' : self.length} +class PGFloat(sqltypes.Float): + def get_col_spec(self): + return "FLOAT(%(precision)s)" % {'precision': self.precision} class PGInteger(sqltypes.Integer): def get_col_spec(self): return "INTEGER" @@ -70,6 +73,7 @@ class PGBoolean(sqltypes.Boolean): pg2_colspecs = { sqltypes.Integer : PGInteger, sqltypes.Numeric : PGNumeric, + sqltypes.Float : PGFloat, sqltypes.DateTime : PG2DateTime, sqltypes.String : PGString, sqltypes.Binary : PGBinary, @@ -82,12 +86,17 @@ pg1_colspecs[sqltypes.DateTime] = PG1DateTime pg2_ischema_names = { 'integer' : PGInteger, + 'bigint' : PGInteger, 'character varying' : PGString, 'character' : PGChar, 'text' : PGText, 'numeric' : PGNumeric, + 'float' : PGFloat, + 'real' : PGFloat, + 'double precision' : PGFloat, 'timestamp without time zone' : PG2DateTime, 'bytea' : PGBinary, + 'boolean' : PGBoolean, } pg1_ischema_names = pg2_ischema_names.copy() pg1_ischema_names['timestamp without time zone'] = PG1DateTime diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 1a00c555b..845efdf33 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -68,6 +68,7 @@ class SLBoolean(sqltypes.Boolean): colspecs = { sqltypes.Integer : SLInteger, sqltypes.Numeric : SLNumeric, + sqltypes.Float : SLNumeric, sqltypes.DateTime : SLDateTime, sqltypes.String : SLString, sqltypes.Binary : SLBinary, @@ -82,6 +83,7 @@ pragma_names = { 'CHAR' : SLChar, 'TEXT' : SLText, 'NUMERIC' : SLNumeric, + 'FLOAT' : SLNumeric, 'TIMESTAMP' : SLDateTime, 'BLOB' : SLBinary, } |