summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/oracle.py
diff options
context:
space:
mode:
authorCatherine Devlin <catherine.devlin@gmail.com>2008-03-20 02:47:46 +0000
committerCatherine Devlin <catherine.devlin@gmail.com>2008-03-20 02:47:46 +0000
commit50206ec2adcd1c38bc4dad98c7775c7ea8ecd10c (patch)
tree76028e874491e03dbccebc01c403086638855008 /lib/sqlalchemy/databases/oracle.py
parent869f9e0a2a177a246e7d20205634ea9584b1ee59 (diff)
downloadsqlalchemy-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.py93
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