summaryrefslogtreecommitdiff
path: root/sqlparse/sql.py
diff options
context:
space:
mode:
authorDarik Gamble <darik.gamble@gmail.com>2015-02-09 12:01:18 -0500
committerDarik Gamble <darik.gamble@gmail.com>2015-02-09 12:59:34 -0500
commitd29cadef7539515d646e1c83e5fcf92415867886 (patch)
tree47e2b92d9dcc160e9f5c4cffced799ea770b106c /sqlparse/sql.py
parent8a23215952c409f8cc1eae1f25a3160b32e8cbdf (diff)
downloadsqlparse-d29cadef7539515d646e1c83e5fcf92415867886.tar.gz
get_alias() uses _get_first_name(), and searches in reverse for "column expression alias"
Diffstat (limited to 'sqlparse/sql.py')
-rw-r--r--sqlparse/sql.py22
1 files changed, 9 insertions, 13 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py
index 5ecab92..b28e627 100644
--- a/sqlparse/sql.py
+++ b/sqlparse/sql.py
@@ -390,21 +390,17 @@ class TokenList(Token):
def get_alias(self):
"""Returns the alias for this identifier or ``None``."""
+
+ # "name AS alias"
kw = self.token_next_match(0, T.Keyword, 'AS')
if kw is not None:
- alias = self.token_next(self.token_index(kw))
- if alias is None:
- return None
- else:
- next_ = self.token_next_by_instance(0, Identifier)
- if next_ is None:
- next_ = self.token_next_by_type(0, T.String.Symbol)
- if next_ is None:
- return None
- alias = next_
- if isinstance(alias, Identifier):
- return alias.get_name()
- return self._remove_quotes(unicode(alias))
+ return self._get_first_name(kw, keywords=True)
+
+ # "name alias" or "complicated column expression alias"
+ if len(self.tokens) > 2:
+ return self._get_first_name(reverse=True)
+
+ return None
def get_name(self):
"""Returns the name of this identifier.