summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/selectable.py
diff options
context:
space:
mode:
authorDylan Modesitt <dmodesitt@sescollc.com>2020-05-06 14:17:23 -0400
committerFederico Caselli <cfederico87@gmail.com>2020-05-10 11:59:19 +0200
commit187a3a27cf8303ba332e011a482bd3b21cd3c01c (patch)
treede4d26031c293318da84445511637fbc30c7bc50 /lib/sqlalchemy/sql/selectable.py
parent9821bddfcb3c94cea13b7f19bcb27845b0dc1ed8 (diff)
downloadsqlalchemy-187a3a27cf8303ba332e011a482bd3b21cd3c01c.tar.gz
Add 'schema' parameter to table
Added a "schema" parameter to the :func:`_expression.table` construct, allowing ad-hoc table expressions to also include a schema name. Pull request courtesy Dylan Modesitt. Fixes: #5309 Closes: #5310 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/5310 Pull-request-sha: ce85681050500186678131f948b6ea277a65dc17 Change-Id: I32015d593e1ee1121c7426fbffdcc565d025fad1
Diffstat (limited to 'lib/sqlalchemy/sql/selectable.py')
-rw-r--r--lib/sqlalchemy/sql/selectable.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py
index c8df637ba..27b9425ec 100644
--- a/lib/sqlalchemy/sql/selectable.py
+++ b/lib/sqlalchemy/sql/selectable.py
@@ -1878,9 +1878,9 @@ class FromGrouping(GroupedElement, FromClause):
class TableClause(Immutable, FromClause):
"""Represents a minimal "table" construct.
- This is a lightweight table object that has only a name and a
+ This is a lightweight table object that has only a name, a
collection of columns, which are typically produced
- by the :func:`_expression.column` function::
+ by the :func:`_expression.column` function, and a schema::
from sqlalchemy import table, column
@@ -1925,7 +1925,7 @@ class TableClause(Immutable, FromClause):
_autoincrement_column = None
"""No PK or default support so no autoincrement column."""
- def __init__(self, name, *columns):
+ def __init__(self, name, *columns, **kw):
"""Produce a new :class:`_expression.TableClause`.
The object returned is an instance of :class:`_expression.TableClause`
@@ -1938,10 +1938,15 @@ class TableClause(Immutable, FromClause):
be imported from the plain ``sqlalchemy`` namespace like any
other SQL element.
+
:param name: Name of the table.
:param columns: A collection of :func:`_expression.column` constructs.
+ :param schema: The schema name for this table.
+
+ .. versionadded:: 1.3.17 :func:`_expression.table` can now
+ accept a ``schema`` argument.
"""
super(TableClause, self).__init__()
@@ -1952,6 +1957,12 @@ class TableClause(Immutable, FromClause):
for c in columns:
self.append_column(c)
+ schema = kw.pop("schema", None)
+ if schema is not None:
+ self.schema = schema
+ if kw:
+ raise exc.ArgumentError("Unsupported argument(s): %s" % list(kw))
+
def _refresh_for_new_column(self, column):
pass