diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-19 18:10:53 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-19 18:10:53 -0400 |
| commit | cdda68aea3b392670ced210130fd64d7e1598d79 (patch) | |
| tree | 9e71718bef5e737a2b713be1fb88045b7d66b025 /lib | |
| parent | 2438b38881a057015675d4b20ec894d4d6018e61 (diff) | |
| download | sqlalchemy-cdda68aea3b392670ced210130fd64d7e1598d79.tar.gz | |
- Added support for rendering and reflecting
TIMESTAMP WITH TIME ZONE, i.e. TIMESTAMP(timezone=True).
[ticket:651]
- Oracle INTERVAL type can now be reflected.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/base.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index b270f38cf..2af5bdd7d 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -225,6 +225,8 @@ ischema_names = { 'CLOB' : CLOB, 'NCLOB' : NCLOB, 'TIMESTAMP' : TIMESTAMP, + 'TIMESTAMP WITH TIME ZONE' : TIMESTAMP, + 'INTERVAL DAY TO SECOND' : INTERVAL, 'RAW' : RAW, 'FLOAT' : FLOAT, 'DOUBLE PRECISION' : DOUBLE_PRECISION, @@ -256,7 +258,13 @@ class OracleTypeCompiler(compiler.GenericTypeCompiler): "(%d)" % type_.second_precision or "", ) - + + def visit_TIMESTAMP(self, type_): + if type_.timezone: + return "TIMESTAMP WITH TIME ZONE" + else: + return "TIMESTAMP" + def visit_DOUBLE_PRECISION(self, type_): return self._generate_numeric(type_, "DOUBLE PRECISION") @@ -756,6 +764,8 @@ class OracleDialect(default.DefaultDialect): coltype = NUMBER(precision, scale) elif coltype=='CHAR' or coltype=='VARCHAR2': coltype = self.ischema_names.get(coltype)(length) + elif 'WITH TIME ZONE' in coltype: + coltype = TIMESTAMP(timezone=True) else: coltype = re.sub(r'\(\d+\)', '', coltype) try: |
