diff options
author | Dylan Modesitt <dmodesitt@sescollc.com> | 2020-05-06 14:17:23 -0400 |
---|---|---|
committer | Federico Caselli <cfederico87@gmail.com> | 2020-05-10 11:59:19 +0200 |
commit | 187a3a27cf8303ba332e011a482bd3b21cd3c01c (patch) | |
tree | de4d26031c293318da84445511637fbc30c7bc50 /lib/sqlalchemy/sql/selectable.py | |
parent | 9821bddfcb3c94cea13b7f19bcb27845b0dc1ed8 (diff) | |
download | sqlalchemy-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.py | 17 |
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 |