summaryrefslogtreecommitdiff
path: root/sqlparse/engine
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2013-03-18 06:11:46 +0100
committerAndi Albrecht <albrecht.andi@gmail.com>2013-03-18 06:11:46 +0100
commitabb8ce291e275e9879154ee0f22e881de8cf0ca4 (patch)
treee0d9b6cb7aa9eae98f04e24d631d7584171f8885 /sqlparse/engine
parent58134785ce80f43529c328e1c36a45739f3d84eb (diff)
downloadsqlparse-abb8ce291e275e9879154ee0f22e881de8cf0ca4.tar.gz
Fix internals of _group_left_right, avoid identifying keywords as aliased identifiers.
Diffstat (limited to 'sqlparse/engine')
-rw-r--r--sqlparse/engine/grouping.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py
index 0b64d21..0f39dd2 100644
--- a/sqlparse/engine/grouping.py
+++ b/sqlparse/engine/grouping.py
@@ -15,7 +15,7 @@ def _group_left_right(tlist, ttype, value, cls,
check_right=lambda t: True,
check_left=lambda t: True,
include_semicolon=False):
- [_group_left_right(sgroup, ttype, value, cls, check_right,
+ [_group_left_right(sgroup, ttype, value, cls, check_right, check_left,
include_semicolon) for sgroup in tlist.get_sublists()
if not isinstance(sgroup, cls)]
idx = 0
@@ -26,7 +26,7 @@ def _group_left_right(tlist, ttype, value, cls,
if right is None or not check_right(right):
token = tlist.token_next_match(tlist.token_index(token) + 1,
ttype, value)
- elif left is None or not check_right(left):
+ elif left is None or not check_left(left):
token = tlist.token_next_match(tlist.token_index(token) + 1,
ttype, value)
else:
@@ -105,8 +105,13 @@ def group_as(tlist):
# Currently limited to DML/DDL. Maybe additional more non SQL reserved
# keywords should appear here (see issue8).
return not token.ttype in (T.DML, T.DDL)
+
+ def _left_valid(token):
+ return token.ttype is not T.Keyword
+
_group_left_right(tlist, T.Keyword, 'AS', sql.Identifier,
- check_right=_right_valid)
+ check_right=_right_valid,
+ check_left=_left_valid)
def group_assignment(tlist):