Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

NoneType exception in get_completions()

Đang mở
#1,204 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
postgresql, python
Lĩnh vực
cli, databases

Hướng nghiên cứu

Tái hiện lỗi crash của completion bằng SQL trong issue, sau đó đọc pgcli/pgcompleter.py ở khu vực quanh get_completions(), get_column_matches() và populate_scoped_cols(), tiếp theo là pgcli/packages/parseutils/meta.py ở khu vực quanh fields(). Được xem là hoàn tất khi truy vấn không còn phát sinh ngoại lệ NoneType khi nhập bên trong each( và completion vẫn có thể sử dụng được.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug help wanted

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.
Ngôn ngữ chính
Python
Star
13.4k
Fork
613
Merge trung bình
12 giờ 45 phút
Pull request đã merge (30 ngày)
5

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của dbcli/pgcli

Tất cả issue của dbcli/pgcli

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.