summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmjith Ramanujam <amjith.r@gmail.com>2016-08-23 17:23:46 -0700
committerGitHub <noreply@github.com>2016-08-23 17:23:46 -0700
commitdb496fb35456a907ff1dc4b460947bd80cb4f37c (patch)
tree23afe63f23ec52dbd7a8c4e0b01b78645eaa87dc
parentfee9074c8e809ee158cd8d3501cb90720b06c852 (diff)
parent4ba9d1fd6483d45e687d9b250dcbf4763aae99de (diff)
Merge pull request #568 from dbcli/koljonen/hack_for_sqlparse_crashes
Temporary hack for sqlparse crashing after AS
-rw-r--r--pgcli/packages/sqlcompletion.py7
-rw-r--r--tests/test_sqlcompletion.py8
2 files changed, 14 insertions, 1 deletions
diff --git a/pgcli/packages/sqlcompletion.py b/pgcli/packages/sqlcompletion.py
index 8d00fc28..5fe37067 100644
--- a/pgcli/packages/sqlcompletion.py
+++ b/pgcli/packages/sqlcompletion.py
@@ -133,7 +133,12 @@ def suggest_type(full_text, text_before_cursor):
if full_text.startswith('\\i '):
return (Path(),)
- stmt = SqlStatement(full_text, text_before_cursor)
+ # This is a temporary hack; the exception handling
+ # here should be removed once sqlparse has been fixed
+ try:
+ stmt = SqlStatement(full_text, text_before_cursor)
+ except (TypeError, AttributeError):
+ return []
# Check for special commands and handle those separately
if stmt.parsed:
diff --git a/tests/test_sqlcompletion.py b/tests/test_sqlcompletion.py
index 4063ea7f..d9fffef5 100644
--- a/tests/test_sqlcompletion.py
+++ b/tests/test_sqlcompletion.py
@@ -55,6 +55,14 @@ def test_where_in_suggests_columns(expression):
suggestions = suggest_type(expression, expression)
assert set(suggestions) == cols_etc('tabl')
+@pytest.mark.parametrize('expression', [
+ 'SELECT 1 AS ',
+ 'SELECT 1 FROM tabl AS ',
+])
+def test_after_as(expression):
+ suggestions = suggest_type(expression, expression)
+ assert set(suggestions) == set()
+
def test_where_equals_any_suggests_columns_or_keywords():
text = 'SELECT * FROM tabl WHERE foo = ANY('