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

Local Zotero: sub-collections always come back empty (stray quote in collectionSQL)

Đang mở Phù hợp với người mới
#1,137 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

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

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
88/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
sqlite, typescript
Lĩnh vực
backend, databases

Hướng nghiên cứu

Bắt đầu tại packages/editor-server/src/core/zotero/local/source.ts, trong collectionSQL() quanh dòng 594, bằng cách so sánh nhánh sub-collection với creatorsSQL() quanh dòng 553. Xóa dấu nháy thừa khỏi SQL được tạo ra và thêm một bài kiểm thử sử dụng parentKey không rỗng với một SQLite fixture của Zotero, hoặc chuẩn bị SQL để bắt lỗi cú pháp. Hoàn thành khi các sub-collection tải được các mục của chúng mà không gặp lỗi cú pháp SQLite.

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

Mô tả

Bug

collectionSQL() in packages/editor-server/src/core/zotero/local/source.ts:594 has a stray single quote in the sub-collection branch:

const where = spec.parentKey.length > 0
  ? `AND collections.key = :k'`   // <-- trailing '
  : `AND libraries.libraryID = :k`;

The ' opens an unterminated string literal, so the query fails with a SQLite syntax error whenever spec.parentKey is non-empty, i.e. for any Zotero sub-collection read from the local database.

Impact

The error is caught in the collection reader (source.ts ~line 280: console.error(error); return collection;), so a sub-collection silently comes back with zero items. Users see the sub-collection in the citation UI with nothing in it, and nothing surfaces except a console log in the LSP output.

Top-level libraries are unaffected (they take the other branch).

Fix

Drop the quote: AND collections.key = :k. The sibling creatorsSQL() (~line 553) already has the correct form.

Testing

Worth adding a test that runs collectionSQL() for a spec with a non-empty parentKey against a fixture Zotero sqlite (or at least db.prepare()s the SQL), so a syntax error like this gets caught.

Found during the dependency-upgrade research.

Ngôn ngữ chính
TypeScript
Star
652
Fork
64
Merge trung bình
8 giờ 45 phút
Pull request đã merge (30 ngày)
36

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

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 quarto-dev/quarto

Tất cả issue của quarto-dev/quarto

Issue tương tự

Thêm issue về TypeScript

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.