2012-04-26 20 views
5

Đây là một câu hỏi nhỏ, nhưng tôi là loại stumped.Tham số truy vấn tối đa SQLite khác với Snow Leopard?

sqlite có giới hạn cứng về số tham số truy vấn, là 999. Giá trị này được đặt trong tiêu đề không phải là một phần của tệp tiêu đề công khai và thời gian chạy cho bạn khả năng giảm giới hạn, nhưng không vượt quá giới hạn cứng. Các mô-đun sqlite3 Python trên Snow Leopard (và Lion là tốt, rõ ràng) cho phép nhiều thông số hơn này, tuy nhiên, và tôi không thể tìm ra cho cuộc sống của tôi như thế nào điều này là có thể.

Tôi đã xem xét khả năng trình bao bọc Python đang thực hiện thay thế tham số và chuyển các câu lệnh đầy đủ tới sqlite3; nhưng theo như tôi có thể nói từ mã nguồn, điều đó không xảy ra. Tôi cũng xem xét khả năng thực hiện sqlite3 trên Snow Leopard được biên dịch từ mã nguồn hơi khác; nhưng hóa ra Apple phát hành các sửa đổi mã nguồn mở của nó (xem http://opensource.apple.com/source/SQLite/SQLite-74.11/) và giới hạn thông số trong nguồn của chúng giống hệt với mặc định.

Nếu ai đó có ý tưởng về việc điều này có thể xảy ra như thế nào (và tôi chắc chắn điều đó đang xảy ra; tôi đã tạo câu lệnh với 2000 thông số và chúng hoạt động tốt), vui lòng tham gia. kỳ quặc vì mã giống nhau bị phá vỡ trên Windows, do giới hạn tham số.

+0

Bạn đã kiểm tra cái nào là giới hạn thực sự trên Snow-Leopard? Làm thế nào bộ nhớ hoạt động nếu bạn đặt một số cao vô lý? – dsign

+0

Ý tưởng hay. Con số trên Snow Leopard là 500000, chính xác. 500001 vi phạm. –

Trả lời

1

Khi xây dựng đầy đủ các SQLite (C) nguồn tin, tiền xử lý xác định

SQLITE_MAX_VARIABLE_NUMBER 

kiểm soát số lượng tối đa "biến tuyên bố", giá trị mặc định là 999.

Thông tin chi tiết có thể được tìm thấy ở đây : https://sqlite.org/limits.html

Tôi cho rằng ràng buộc python sử dụng bản dựng SQLite tùy chỉnh có số cao hơn.


(bắt buộc lưu ý về 999 thông số là hơn rất nhiều, và bạn đang làm một cái gì đó kỳ lạ -. Hoặc bất thường xem xét đăng trường hợp sử dụng của bạn và nếu có những gợi ý cho một số lượng hợp lý mroe các thông số.)

Các vấn đề liên quan