dbcli/pgcli

NoneType exception in get_completions()

Open

#1,204 opened on Aug 27, 2020

View on GitHub
 (6 comments) (0 reactions) (0 assignees)Python (535 forks)batch import
bughelp wanted

Repository metrics

Stars
 (11,479 stars)
PR merge metrics
 (Avg merge 23d 3h) (5 merged PRs in 30d)

Description

Description

With this SQL:

CREATE EXTENSION hstore;

CREATE OR REPLACE FUNCTION no_labels() RETURNS hstore AS $$
  SELECT hstore(ARRAY[]::text[])
$$ language sql immutable;

CREATE OR REPLACE FUNCTION labels() RETURNS hstore AS $$
  SELECT no_labels()
$$ language sql immutable;

CREATE OR REPLACE FUNCTION labels(variadic text[]) RETURNS hstore AS $$
  SELECT hstore($1)
$$ language sql immutable;

When editing this query:

pgcli> select * from labels()
       --            ^ start inserting each( here

As soon as the ( after each is inserted, this traceback appears:

Unhandled exception in event loop:
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3.8/site-packages/prompt_toolkit/eventloop/async_generator.py", line 43, in runner
    for item in get_iterable():
  File "/usr/lib/python3.8/site-packages/prompt_toolkit/completion/base.py", line 226, in <lambda>
    lambda: self.completer.get_completions(document, complete_event)
  File "/usr/lib/python3.8/site-packages/prompt_toolkit/completion/base.py", line 262, in get_completions
    return completer.get_completions(document, complete_event)
  File "/home/ulidtko/.local/lib/python3.8/site-packages/pgcli/pgcompleter.py", line 485, in get_completions
    matches.extend(matcher(self, suggestion, word_before_cursor))
  File "/home/ulidtko/.local/lib/python3.8/site-packages/pgcli/pgcompleter.py", line 506, in get_column_matches
    scoped_cols = self.populate_scoped_cols(tables, suggestion.local_tables)
  File "/home/ulidtko/.local/lib/python3.8/site-packages/pgcli/pgcompleter.py", line 985, in populate_scoped_cols
    cols = func.fields()
  File "/home/ulidtko/.local/lib/python3.8/site-packages/pgcli/packages/parseutils/meta.py", line 168, in fields
    for name, typ, mode in zip(self.arg_names, self.arg_types, self.arg_modes)

Exception 'NoneType' object is not iterable
Press ENTER to continue...

Your environment

  • Please provide your OS and version information.
    • Arch Linux
    • PostgreSQL 11 from DockerHub, docker pull postgres:11
  • Please provide your CLI version.
    • 3.0.0
  • What is the output of pip freeze command.
    • is pretty long; I can provide specific dependency versions on request.

Contributor guide