mirror of https://github.com/dbcli/pgcli
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:
parent
8d426c2db6
commit
a60ee9a85f
|
@ -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))]
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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')])
|
||||
|
|
|
@ -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'),
|
||||
|
|
Loading…
Reference in New Issue