Repository navigation
v0.9.0
#19
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
NeoSQLite v0.9.0 Release Notes
Overview
This release focuses on continued enhancements to NeoSQLite's aggregation pipeline processing and query engine capabilities. Key improvements include expanded SQL-based optimization for complex aggregation pipelines, enhanced text search functionality, comprehensive implementation of missing PyMongo-compatible APIs and operators, and significant improvements to binary data handling. The release also includes a major reorganization of test files for better maintainability and code coverage.
Highlights
Enhanced Aggregation Pipeline Processing
$lookupcan now be used in any pipeline position, not just at the end$unwindwith all advanced options includingincludeArrayIndexandpreserveNullAndEmptyArraysHybrid Text Search Processing
$textoperator is encountered without FTS indexes, the system now processes compatible stages with SQL optimization and only falls back to Python for the specific text search operationComprehensive API Implementation
$and,$or,$not, and$norlogical operators$typeelement operator for type-based document selection$allarray operator for matching arrays that contain all specified elementsdrop(),create_collection(),list_collection_names(), andlist_collections()methodsaggregate_raw_batches()for efficient batch processing of large aggregation resultscreate_search_index(),create_search_indexes(),drop_search_index(),list_search_indexes(), andupdate_search_index()methodsEnhanced Binary Data Handling
Package Structure Reorganization
Enhanced Documentation
New Features
Aggregation Pipeline Enhancements
$unwindwith all advanced options includingincludeArrayIndexandpreserveNullAndEmptyArrays$lookupoperations can now be used in any pipeline position, not just at the end$unwind,$lookup,$group, and$sortstages can now be processed efficientlyQuery Operator Implementations
$and,$or,$not, and$noroperators for complex query construction$typeoperator for selecting documents based on field type$alloperator for matching arrays that contain all specified elementsCollection Management APIs
drop()Method: Drop the entire collection (table in SQLite)create_collection()Method: Create a new collection with specific optionslist_collection_names()Method: List all collection names in the databaselist_collections()Method: Get detailed information about collectionsAdvanced Aggregation Features
aggregate_raw_batches()Method: Perform aggregation and retrieve raw BSON batches for efficient processing of large resultscan_process_with_temporary_tables()to allow pipelines containing$textoperatorsSearch Index APIs
create_search_index()Method: Create a single search index using FTS5create_search_indexes()Method: Create multiple search indexes at oncedrop_search_index()Method: Drop a search indexlist_search_indexes()Method: List search indexesupdate_search_index()Method: Update a search indexunified_text_searchfunction inneosqlite.collection.text_searchmodule provides enhanced text search capabilitiesBinary Data Handling Improvements
Package Reorganization
AggregationCursor,Cursor, andRawBatchCursorclasses moved toneosqlite.collectionsubmodulesPerformance Improvements
Technical Benefits
Breaking Changes
There are no intentional breaking changes in this release. All existing APIs and functionality remain fully compatible with previous versions.
Installation
Notable Features
Enhanced Aggregation Pipeline Example
Full $unwind Support Example
Enhanced Text Search Example
Binary Data Handling Example
Search Index APIs Example
Package Reorganization Example
This release represents a significant advancement in NeoSQLite's aggregation pipeline capabilities while improving the overall maintainability of the codebase through better organization, comprehensive API implementation, and enhanced documentation. The expanded SQL optimization coverage provides substantial performance benefits for aggregation pipelines while maintaining full backward compatibility.
This discussion was created from the release v0.9.0.
All reactions