diff options
author | Amjith Ramanujam <amjith.r@gmail.com> | 2016-08-23 17:23:46 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-23 17:23:46 -0700 |
commit | db496fb35456a907ff1dc4b460947bd80cb4f37c (patch) | |
tree | 23afe63f23ec52dbd7a8c4e0b01b78645eaa87dc | |
parent | fee9074c8e809ee158cd8d3501cb90720b06c852 (diff) | |
parent | 4ba9d1fd6483d45e687d9b250dcbf4763aae99de (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.py | 7 | ||||
-rw-r--r-- | tests/test_sqlcompletion.py | 8 |
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(' |