summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2017-04-03 15:05:27 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2017-04-04 13:45:06 -0400
commit9f82afea25958910038ec768d81b157d9d2fdc7c (patch)
tree4d5af698d91d4343c07cb856693b3ec6b11c3268 /lib/sqlalchemy/sql
parent0a44f97cb80fa062927689fb0c4c1b6026c50513 (diff)
downloadsqlalchemy-9f82afea25958910038ec768d81b157d9d2fdc7c.tar.gz
Recognize brackets, quoted_name in SQL Server schema
The SQL Server dialect now allows for a database and/or owner name with a dot inside of it, using brackets explicitly in the string around the owner and optionally the database name as well. In addition, sending the :class:`.quoted_name` construct for the schema name will not split on the dot and will deliver the full string as the "owner". :class:`.quoted_name` is also now available from the ``sqlalchemy.sql`` import space. Change-Id: I77491d63ce47638bd23787d903ccde2f35a9d43d Fixes: #2626
Diffstat (limited to 'lib/sqlalchemy/sql')
-rw-r--r--lib/sqlalchemy/sql/__init__.py1
-rw-r--r--lib/sqlalchemy/sql/elements.py8
-rw-r--r--lib/sqlalchemy/sql/expression.py5
3 files changed, 10 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql/__init__.py b/lib/sqlalchemy/sql/__init__.py
index 5eebd7d1c..13042ed7a 100644
--- a/lib/sqlalchemy/sql/__init__.py
+++ b/lib/sqlalchemy/sql/__init__.py
@@ -57,6 +57,7 @@ from .expression import (
outerjoin,
outparam,
over,
+ quoted_name,
select,
subquery,
table,
diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py
index 1f8129382..001c3d042 100644
--- a/lib/sqlalchemy/sql/elements.py
+++ b/lib/sqlalchemy/sql/elements.py
@@ -3905,8 +3905,8 @@ class quoted_name(util.MemoizedSlots, util.text_type):
can be quoted. Such as to use the :meth:`.Engine.has_table` method with
an unconditionally quoted name::
- from sqlaclchemy import create_engine
- from sqlalchemy.sql.elements import quoted_name
+ from sqlalchemy import create_engine
+ from sqlalchemy.sql import quoted_name
engine = create_engine("oracle+cx_oracle://some_dsn")
engine.has_table(quoted_name("some_table", True))
@@ -3917,6 +3917,10 @@ class quoted_name(util.MemoizedSlots, util.text_type):
.. versionadded:: 0.9.0
+ .. versionchanged:: 1.2 The :class:`.quoted_name` construct is now
+ importable from ``sqlalchemy.sql``, in addition to the previous
+ location of ``sqlalchemy.sql.elements``.
+
"""
__slots__ = 'quote', 'lower', 'upper'
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index 172bf4b05..193dbaa96 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -26,7 +26,8 @@ __all__ = [
'nullslast',
'or_', 'outparam', 'outerjoin', 'over', 'select', 'subquery',
'table', 'text',
- 'tuple_', 'type_coerce', 'union', 'union_all', 'update', 'within_group',
+ 'tuple_', 'type_coerce', 'quoted_name', 'union', 'union_all', 'update',
+ 'within_group',
'TableSample', 'tablesample']
@@ -37,7 +38,7 @@ from .elements import ClauseElement, ColumnElement,\
BindParameter, CollectionAggregate, UnaryExpression, BooleanClauseList, \
Label, Cast, Case, ColumnClause, TextClause, Over, Null, \
True_, False_, BinaryExpression, Tuple, TypeClause, Extract, \
- Grouping, WithinGroup, not_, \
+ Grouping, WithinGroup, not_, quoted_name, \
collate, literal_column, between,\
literal, outparam, TypeCoerce, ClauseList, FunctionFilter