1
0
Fork 0

Stop suggesting * as a column

I don't think suggesting * is of use to anyone, and it's in the way for anyone who just wants a column.
This commit is contained in:
koljonen 2016-05-16 17:46:55 +02:00
parent 8d426c2db6
commit a60ee9a85f
No known key found for this signature in database
GPG Key ID: AF0327B5131CD164
4 changed files with 9 additions and 25 deletions

View File

@ -111,11 +111,11 @@ class PGCompleter(Completer):
data = [self.escaped_names(d) for d in data]
# dbmetadata['tables']['schema_name']['table_name'] should be a list of
# column names. Default to an asterisk
# column names.
metadata = self.dbmetadata[kind]
for schema, relname in data:
try:
metadata[schema][relname] = ['*']
metadata[schema][relname] = []
except KeyError:
_logger.error('%r %r listed in unrecognized schema %r',
kind, relname, schema)
@ -319,7 +319,7 @@ class PGCompleter(Completer):
# suggest only columns that appear in more than one table
flat_cols = [col for (col, count)
in Counter(flat_cols).items()
if count > 1 and col != '*']
if count > 1]
lastword = last_word(word_before_cursor, include='most_punctuations')
if lastword == '*':
if (lastword != word_before_cursor and len(tables) == 1
@ -327,14 +327,14 @@ class PGCompleter(Completer):
# User typed x.*; replicate "x." for all columns except the
# first, which gets the original (as we only replace the "*"")
sep = ', ' + self.escape_name(tables[0].ref) + '.'
collist = sep.join(c for c in flat_cols if c != '*')
collist = sep.join(c for c in flat_cols)
elif len(scoped_cols) > 1:
# Multiple tables; qualify all columns
collist = ', '.join(t.ref + '.' + c for t, cs in colit()
for c in cs if c != '*')
for c in cs)
else:
# Plain columns
collist = ', '.join(c for c in flat_cols if c != '*')
collist = ', '.join(c for c in flat_cols)
return [Match(completion=Completion(collist, -1,
display_meta='columns', display='*'), priority=(1,1,1))]

View File

@ -10,7 +10,7 @@
* [ ] Test unsuccessful execution with a syntax error.
* [ ] Test a series of executions with the same cursor without failure.
* [ ] Test a series of executions with the same cursor with failure.
* [ ] Test passing in a special command.
* [ ] Test passing in a special command.
== Naive Autocompletion ==
* [ ] Input empty string, ask for completions - Everything.
@ -21,7 +21,7 @@
== Smart Autocompletion ==
* [ ] Input empty string and check if only keywords are returned.
* [ ] Input SELECT prefix and check if only columns and '*' are returned.
* [ ] Input SELECT prefix and check if only columns are returned.
* [ ] Input SELECT blah - only keywords are returned.
* [ ] Input SELECT * FROM - Table names only
@ -33,6 +33,6 @@
* [ ] Test \d index
* [ ] Test \d sequence
* [ ] Test \d view
== Exceptionals ==
* [ ] Test the 'use' command to change db.

View File

@ -101,7 +101,6 @@ def test_suggested_column_names_from_shadowed_visible_table(completer, complete_
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -119,7 +118,6 @@ def test_suggested_column_names_from_qualified_shadowed_table(completer, complet
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='phone_number', start_position=0, display_meta='column'),
Completion(text='func1', start_position=0, display_meta='function'),
@ -140,7 +138,6 @@ def test_suggested_column_names_from_schema_qualifed_table(completer, complete_e
result = set(completer.get_completions(
Document(text=text, cursor_position=position), complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='product_name', start_position=0, display_meta='column'),
Completion(text='price', start_position=0, display_meta='column'),
@ -164,7 +161,6 @@ def test_suggested_column_names_in_function(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event)
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='product_name', start_position=0, display_meta='column'),
Completion(text='price', start_position=0, display_meta='column')])
@ -208,7 +204,6 @@ def test_suggested_column_names_with_qualified_alias(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='product_name', start_position=0, display_meta='column'),
Completion(text='price', start_position=0, display_meta='column')])
@ -227,7 +222,6 @@ def test_suggested_multiple_column_names(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='product_name', start_position=0, display_meta='column'),
Completion(text='price', start_position=0, display_meta='column'),
@ -251,7 +245,6 @@ def test_suggested_multiple_column_names_with_alias(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='product_name', start_position=0, display_meta='column'),
Completion(text='price', start_position=0, display_meta='column')])

View File

@ -157,7 +157,6 @@ def test_suggested_column_names_from_visible_table(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -184,7 +183,6 @@ def test_suggested_column_names_in_function(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event)
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -203,7 +201,6 @@ def test_suggested_column_names_with_table_dot(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -222,7 +219,6 @@ def test_suggested_column_names_with_alias(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -242,7 +238,6 @@ def test_suggested_multiple_column_names(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -268,7 +263,6 @@ def test_suggested_multiple_column_names_with_alias(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -288,7 +282,6 @@ def test_suggested_multiple_column_names_with_dot(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='email', start_position=0, display_meta='column'),
Completion(text='first_name', start_position=0, display_meta='column'),
@ -413,7 +406,6 @@ def test_auto_escaped_col_names(completer, complete_event):
Document(text=text, cursor_position=position),
complete_event))
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='"insert"', start_position=0, display_meta='column'),
Completion(text='"ABC"', start_position=0, display_meta='column'),
@ -462,7 +454,6 @@ def test_suggest_columns_from_escaped_table_alias(completer, complete_event):
result = completer.get_completions(Document(text=sql, cursor_position=pos),
complete_event)
assert set(result) == set([
Completion(text='*', start_position=0, display_meta='column'),
Completion(text='id', start_position=0, display_meta='column'),
Completion(text='"insert"', start_position=0, display_meta='column'),
Completion(text='"ABC"', start_position=0, display_meta='column'),