(column, annotation_name)
| 509 | |
| 510 | |
| 511 | def extract_first_column_annotation(column, annotation_name): |
| 512 | filter_ = (FromGrouping, SelectBase) |
| 513 | |
| 514 | stack = deque([column]) |
| 515 | while stack: |
| 516 | elem = stack.popleft() |
| 517 | if annotation_name in elem._annotations: |
| 518 | return elem._annotations[annotation_name] |
| 519 | for sub in elem.get_children(): |
| 520 | if isinstance(sub, filter_): |
| 521 | continue |
| 522 | stack.append(sub) |
| 523 | return None |
| 524 | |
| 525 | |
| 526 | def selectables_overlap(left: FromClause, right: FromClause) -> bool: |
nothing calls this directly
no test coverage detected