diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2019-09-30 15:32:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2019-09-30 15:32:18 +0000 |
| commit | ff1124444e88260184ea807a7cbb16a1f6ee0ff4 (patch) | |
| tree | 30b9afc4875cead27be166669ca4a0de5bd3e908 /lib/sqlalchemy/sql/util.py | |
| parent | 9f3539b1745cbb287a1338812872d27cde4ebf24 (diff) | |
| parent | 6ddb62a8ba66b19afd41b967911ce5982250856e (diff) | |
| download | sqlalchemy-ff1124444e88260184ea807a7cbb16a1f6ee0ff4.tar.gz | |
Merge "Simplify _ColumnEntity, related"
Diffstat (limited to 'lib/sqlalchemy/sql/util.py')
| -rw-r--r-- | lib/sqlalchemy/sql/util.py | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py index fe83b163c..3c7f904de 100644 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@ -364,23 +364,19 @@ def surface_selectables_only(clause): stack.append(elem.table) -def surface_column_elements(clause, include_scalar_selects=True): - """traverse and yield only outer-exposed column elements, such as would - be addressable in the WHERE clause of a SELECT if this element were - in the columns clause.""" +def extract_first_column_annotation(column, annotation_name): + filter_ = (FromGrouping, SelectBase) - filter_ = (FromGrouping,) - if not include_scalar_selects: - filter_ += (SelectBase,) - - stack = deque([clause]) + stack = deque([column]) while stack: elem = stack.popleft() - yield elem + if annotation_name in elem._annotations: + return elem._annotations[annotation_name] for sub in elem.get_children(): if isinstance(sub, filter_): continue stack.append(sub) + return None def selectables_overlap(left, right): |
