diff --git a/pgcli/packages/sqlcompletion.py b/pgcli/packages/sqlcompletion.py index 1edcb29d..713985b0 100644 --- a/pgcli/packages/sqlcompletion.py +++ b/pgcli/packages/sqlcompletion.py @@ -247,7 +247,9 @@ def suggest_based_on_last_token(token, text_before_cursor, full_text, identifier # Get the token before the parens prev_tok = p.token_prev(len(p.tokens) - 1) - if prev_tok and prev_tok.value and prev_tok.value.lower() == 'using': + + if (prev_tok and prev_tok.value + and prev_tok.value.lower().split(' ')[-1] == 'using'): # tbl1 INNER JOIN tbl2 USING (col1, col2) tables = extract_tables(full_text) diff --git a/tests/test_smart_completion_public_schema_only.py b/tests/test_smart_completion_public_schema_only.py index 432375ad..6ffe3092 100644 --- a/tests/test_smart_completion_public_schema_only.py +++ b/tests/test_smart_completion_public_schema_only.py @@ -346,8 +346,11 @@ def test_suggested_tables_after_on_right_side(completer, complete_event): Completion(text='users', start_position=0, display_meta='table alias'), Completion(text='orders', start_position=0, display_meta='table alias')]) -def test_join_using_suggests_common_columns(completer, complete_event): - text = 'SELECT * FROM users INNER JOIN orders USING (' +@pytest.mark.parametrize('text', [ + 'SELECT * FROM users INNER JOIN orders USING (', + 'SELECT * FROM users INNER JOIN orders USING(', +]) +def test_join_using_suggests_common_columns(completer, complete_event, text): pos = len(text) result = set(completer.get_completions( Document(text=text, cursor_position=pos), complete_event)) @@ -356,8 +359,11 @@ def test_join_using_suggests_common_columns(completer, complete_event): Completion(text='email', start_position=0, display_meta='column'), ]) -def test_join_using_suggests_columns_after_first_column(completer, complete_event): - text = 'SELECT * FROM users INNER JOIN orders USING (id,' +@pytest.mark.parametrize('text', [ + 'SELECT * FROM users INNER JOIN orders USING (id,', + 'SELECT * FROM users INNER JOIN orders USING(id,', +]) +def test_join_using_suggests_columns_after_first_column(completer, complete_event, text): pos = len(text) result = set(completer.get_completions( Document(text=text, cursor_position=pos), complete_event))