1
1
mirror of https://github.com/dbcli/pgcli.git synced 2024-10-06 02:07:53 +03:00

Merge pull request #501 from koljonen/fixusing

Fix bug where "USING(<cursor>" wasn't detected properly + add test case
This commit is contained in:
darikg 2016-05-15 14:44:15 -04:00
commit 5844690138
2 changed files with 13 additions and 5 deletions

View File

@ -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)

View File

@ -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))