Merging upstream version 24.1.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
9689eb837b
commit
d5706efe6b
70 changed files with 55134 additions and 50721 deletions
|
@ -86,6 +86,7 @@ class Scope:
|
|||
def clear_cache(self):
|
||||
self._collected = False
|
||||
self._raw_columns = None
|
||||
self._stars = None
|
||||
self._derived_tables = None
|
||||
self._udtfs = None
|
||||
self._tables = None
|
||||
|
@ -119,14 +120,20 @@ class Scope:
|
|||
self._derived_tables = []
|
||||
self._udtfs = []
|
||||
self._raw_columns = []
|
||||
self._stars = []
|
||||
self._join_hints = []
|
||||
|
||||
for node in self.walk(bfs=False):
|
||||
if node is self.expression:
|
||||
continue
|
||||
|
||||
if isinstance(node, exp.Column) and not isinstance(node.this, exp.Star):
|
||||
self._raw_columns.append(node)
|
||||
if isinstance(node, exp.Dot) and node.is_star:
|
||||
self._stars.append(node)
|
||||
elif isinstance(node, exp.Column):
|
||||
if isinstance(node.this, exp.Star):
|
||||
self._stars.append(node)
|
||||
else:
|
||||
self._raw_columns.append(node)
|
||||
elif isinstance(node, exp.Table) and not isinstance(node.parent, exp.JoinHint):
|
||||
self._tables.append(node)
|
||||
elif isinstance(node, exp.JoinHint):
|
||||
|
@ -231,6 +238,14 @@ class Scope:
|
|||
self._ensure_collected()
|
||||
return self._subqueries
|
||||
|
||||
@property
|
||||
def stars(self) -> t.List[exp.Column | exp.Dot]:
|
||||
"""
|
||||
List of star expressions (columns or dots) in this scope.
|
||||
"""
|
||||
self._ensure_collected()
|
||||
return self._stars
|
||||
|
||||
@property
|
||||
def columns(self):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue