diff options
author | Catherine Devlin <catherine.devlin@gmail.com> | 2008-03-20 02:47:46 +0000 |
---|---|---|
committer | Catherine Devlin <catherine.devlin@gmail.com> | 2008-03-20 02:47:46 +0000 |
commit | 50206ec2adcd1c38bc4dad98c7775c7ea8ecd10c (patch) | |
tree | 76028e874491e03dbccebc01c403086638855008 /lib/sqlalchemy/databases/oracle.py | |
parent | 869f9e0a2a177a246e7d20205634ea9584b1ee59 (diff) | |
download | sqlalchemy-50206ec2adcd1c38bc4dad98c7775c7ea8ecd10c.tar.gz |
adding zzzeek's patch from ticket #994, which fixed virtually all remaining broken unit tests in the Oracle module
Diffstat (limited to 'lib/sqlalchemy/databases/oracle.py')
-rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index fc35df2bb..df45f69bb 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -659,6 +659,16 @@ class OracleCompiler(compiler.DefaultCompiler): """Need to determine how to get ``LIMIT``/``OFFSET`` into a ``UNION`` for Oracle.""" pass + def create_insert_update_bind(self, col, value): + key = col.key + # TODO: make this check more specific to reserved words + if len(key) < 30: + key += '_' + bindparam = sql.bindparam(key, value, shortname=col.key, type_=col.type) + self.binds[col.key] = bindparam + return self.bindparam_string(self._truncate_bindparam(bindparam)) + + def visit_select(self, select, **kwargs): """Look for ``LIMIT`` and OFFSET in a select statement, and if so tries to wrap it in a subquery with ``row_number()`` criterion. @@ -735,3 +745,86 @@ dialect.schemagenerator = OracleSchemaGenerator dialect.schemadropper = OracleSchemaDropper dialect.preparer = OracleIdentifierPreparer dialect.defaultrunner = OracleDefaultRunner + + +RESERVED_WORDS = util.Set(''' +SHARE +RAW +DROP +BETWEEN +FROM +DESC +OPTION +PRIOR +LONG +THEN +DEFAULT +ALTER +IS +INTO +MINUS +INTEGER +NUMBER +GRANT +IDENTIFIED +ALL +TO +ORDER +ON +FLOAT +DATE +HAVING +CLUSTER +NOWAIT +RESOURCE +ANY +TABLE +INDEX +FOR +UPDATE +WHERE +CHECK +SMALLINT +WITH +DELETE +BY +ASC +REVOKE +LIKE +SIZE +RENAME +NOCOMPRESS +NULL +GROUP +VALUES +AS +IN +VIEW +EXCLUSIVE +COMPRESS +SYNONYM +SELECT +INSERT +EXISTS +NOT +TRIGGER +ELSE +CREATE +INTERSECT +PCTFREE +DISTINCT +CONNECT +SET +MODE +OF +UNIQUE +VARCHAR2 +VARCHAR +LOCK +OR +CHAR +DECIMAL +UNION +PUBLIC +AND +START'''.splitlines())
\ No newline at end of file |