NoneType exception in get_completions()
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
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ả
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 freezecommand.- 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
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dbcli/pgcli
-
# is not as -- in PostgreSQL Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
Issue tương tự
-
[Bug] reef-hermes tells me to resume with hermes --resume, which does not work from my shell Đang mởarea: harness bug status: needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Human-Agent-Society/reef#625 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
learningequality/kolibri#15351 · 2 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Name consistency Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
eellak/triplestore#65 · 1 bình luận ·