summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/dml.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-05-31 10:48:16 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2022-05-31 13:00:14 -0400
commitd1142c6e9f6fb0e52bd496c56bdc88047df66c55 (patch)
treefaf4c63574152fe306120db83d35b5e167620b3c /lib/sqlalchemy/sql/dml.py
parentd97de97eff21af3bdacffc2b625feb7e0bd6c18c (diff)
downloadsqlalchemy-d1142c6e9f6fb0e52bd496c56bdc88047df66c55.tar.gz
raise informative error when selectable can't be extended
An informative error is raised for the use case where :meth:`.Insert.from_select` is being passed a "compound select" object such as a UNION, yet the INSERT statement needs to append additional columns to support Python-side or explicit SQL defaults from the table metadata. In this case a subquery of the compound object should be passed. Fixes: #8073 Change-Id: Ic4a5dbf84ec49d2451901be05cb9cf6ae93f02b7
Diffstat (limited to 'lib/sqlalchemy/sql/dml.py')
-rw-r--r--lib/sqlalchemy/sql/dml.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/dml.py b/lib/sqlalchemy/sql/dml.py
index f063cf781..e63a34454 100644
--- a/lib/sqlalchemy/sql/dml.py
+++ b/lib/sqlalchemy/sql/dml.py
@@ -87,6 +87,7 @@ if TYPE_CHECKING:
from .selectable import _ColumnsClauseElement
from .selectable import _SelectIterable
from .selectable import Select
+ from .selectable import Selectable
def isupdate(dml: DMLState) -> TypeGuard[UpdateDMLState]:
...
@@ -1040,7 +1041,7 @@ class Insert(ValuesBase):
def from_select(
self: SelfInsert,
names: List[str],
- select: Select[Any],
+ select: Selectable,
include_defaults: bool = True,
) -> SelfInsert:
"""Return a new :class:`_expression.Insert` construct which represents