|
3 | 3 | from sqlparse.sql import IdentifierList, Identifier, Function |
4 | 4 | from sqlparse.tokens import Keyword, DML, Punctuation |
5 | 5 |
|
6 | | -TableReference = namedtuple( |
7 | | - "TableReference", ["schema", "name", "alias", "is_function"] |
8 | | -) |
| 6 | +TableReference = namedtuple("TableReference", ["schema", "name", "alias", "is_function"]) |
9 | 7 | TableReference.ref = property( |
10 | | - lambda self: self.alias |
11 | | - or ( |
12 | | - self.name |
13 | | - if self.name.islower() or self.name[0] == '"' |
14 | | - else '"' + self.name + '"' |
15 | | - ) |
| 8 | + lambda self: self.alias or (self.name if self.name.islower() or self.name[0] == '"' else '"' + self.name + '"') |
16 | 9 | ) |
17 | 10 |
|
18 | 11 |
|
@@ -53,11 +46,7 @@ def extract_from_part(parsed, stop_at_punctuation=True): |
53 | 46 | # Also 'SELECT * FROM abc JOIN def' will trigger this elif |
54 | 47 | # condition. So we need to ignore the keyword JOIN and its variants |
55 | 48 | # INNER JOIN, FULL OUTER JOIN, etc. |
56 | | - elif ( |
57 | | - item.ttype is Keyword |
58 | | - and (not item.value.upper() == "FROM") |
59 | | - and (not item.value.upper().endswith("JOIN")) |
60 | | - ): |
| 49 | + elif item.ttype is Keyword and (not item.value.upper() == "FROM") and (not item.value.upper().endswith("JOIN")): |
61 | 50 | tbl_prefix_seen = False |
62 | 51 | else: |
63 | 52 | yield item |
@@ -116,15 +105,11 @@ def parse_identifier(item): |
116 | 105 | try: |
117 | 106 | schema_name = identifier.get_parent_name() |
118 | 107 | real_name = identifier.get_real_name() |
119 | | - is_function = allow_functions and _identifier_is_function( |
120 | | - identifier |
121 | | - ) |
| 108 | + is_function = allow_functions and _identifier_is_function(identifier) |
122 | 109 | except AttributeError: |
123 | 110 | continue |
124 | 111 | if real_name: |
125 | | - yield TableReference( |
126 | | - schema_name, real_name, identifier.get_alias(), is_function |
127 | | - ) |
| 112 | + yield TableReference(schema_name, real_name, identifier.get_alias(), is_function) |
128 | 113 | elif isinstance(item, Identifier): |
129 | 114 | schema_name, real_name, alias = parse_identifier(item) |
130 | 115 | is_function = allow_functions and _identifier_is_function(item) |
|
0 commit comments