From bc03a313610faadc3ff41ddee0ff97c1f397213d Mon Sep 17 00:00:00 2001 From: Oliver Rice Date: Fri, 12 Feb 2021 18:12:41 -0600 Subject: [PATCH] prevent strings from being treated as a valid iterable argument --- lib/sqlalchemy/sql/selectable.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index 24793ea207..ba3ccdec04 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -4870,7 +4870,11 @@ class Select( constructs as given, as well as ORM-mapped classes. """ - if (args and hasattr(args[0], '__iter__')) or kw: + if ( + args + and hasattr(args[0], "__iter__") + and not hasattr(args[0], "strip") + ) or kw: return cls.create_legacy_select(*args, **kw) else: return cls._create_future_select(*args) -- 2.47.2