perf: add a bounded paged query cursor
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ó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 28/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- cpp, javascript, react-native, sqlite
- Lĩnh vực
- databases, mobile-dev, performance
Hướng nghiên cứu
Start by locating the eager query implementation and the prepared-statement and connection lifecycle code, then read related issues #30, #62, and #389. Define the cursor ownership and cleanup behavior before implementing it. Done means bounded paging, explicit close, the listed lifecycle and concurrency tests, WAL cleanup documentation, and a large-result time-to-first-page and memory comparison.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Ordinary queries step every row and retain the complete result before returning it. Large SELECTs can hold the native result and its JavaScript conversion at once, so a caller that processes rows in batches still pays for the full result. The positional storage in #389 lowers per-row overhead but does not bound the number of retained rows.
Add an opt-in asynchronous cursor that returns a limited page of rows per request and continues stepping the same prepared statement on demand. Give callers an explicit close operation; finalization on garbage collection should be a fallback. The cursor must own its connection and statement safely across queued work, close, errors, and transaction completion. Define whether it uses a dedicated independent read connection or blocks other work on its connection while active.
Test early close, an empty result, page boundaries, metadata, BLOB lifetime, concurrent writes, and close with a page request pending. An open SQLite reader can hold a WAL snapshot and delay checkpoints, so document that cost and verify cleanup. Compare time to first page and peak memory with the eager API on a large result. Application code can use bounded keyset queries today; this issue is for a library-managed cursor.
Related: #30, #62, #389.
- Ngôn ngữ chính
- C
- Star
- 579
- Fork
- 53
- Merge trung bình
- 2 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 67
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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 margelo/react-native-nitro-sqlite
-
feat: bind named SQL parametersĐang mởarea:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
margelo/react-native-nitro-sqlite#402 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 28/100
margelo/react-native-nitro-sqlite#401 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
margelo/react-native-nitro-sqlite#400 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
margelo/react-native-nitro-sqlite#398 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 48/100
margelo/react-native-nitro-sqlite#397 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của margelo/react-native-nitro-sqlite
Issue tương tự
-
Linux notifications: the default action's ' ' label shows as a blank button in xfce4-notifydĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
kovidgoyal/kitty#10625 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Feature Status: Needs Triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
RubyMetric/chsrc#396 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
riscv-software-src/riscv-isa-sim#2466 ·
Maintainer thường phản hồi trong vòng 1 ngày