Releases: atasoglu/sqlite-vec-client
Releases · atasoglu/sqlite-vec-client
v2.3.0
Added
- High-level
backup()andrestore()helpers wrapping JSONL/CSV workflows - MkDocs documentation scaffold with API reference, operations playbook, and migration guide
- Backup/restore coverage in the integration test suite
Fixed
- Enforced embedding dimension validation across add/update/search operations
import_from_json()andimport_from_csv()now respectskip_duplicatesand emit clear errors when embeddings are missing
Documentation
- New migration guide outlining v2.3.0 changes
- Expanded README with backup helper examples and coverage instructions
- Requirements updated with MkDocs to build the documentation locally
CI
- Pytest coverage step now generates XML output and uploads
coverage.xmlas a GitHub Actions artifact
v2.2.0
Added
- Metadata filtering: New
filter_by_metadata()method for efficient key-value filtering using SQLite's JSON_EXTRACT - Metadata counting: New
count_by_metadata()method to count records matching metadata filters - Combined search: New
similarity_search_with_filter()method combining vector similarity with metadata filtering - Support for nested JSON paths in metadata filters (e.g.,
{"author.name": "Alice"}) - Pagination support in
filter_by_metadata()withlimitandoffsetparameters - New validation function
validate_metadata_filters()for secure filter validation - New utility function
build_metadata_where_clause()for safe SQL generation - Comprehensive test coverage for metadata filtering (unit, integration, and security tests)
- New example
advanced_metadata_queries.pydemonstrating nested paths and complex queries - Updated
metadata_filtering.pyexample with new filtering methods - Export/import functionality: New methods for data portability
export_to_json()- Export records to JSON Lines formatimport_from_json()- Import records from JSON Lines formatexport_to_csv()- Export records to CSV formatimport_from_csv()- Import records from CSV format
- Support for filtered exports using metadata filters
- Batch processing for memory-efficient import/export of large datasets
- Optional embedding inclusion in exports
- New
iomodule with import/export utilities - Comprehensive tests for import/export functionality
- New example
export_import_example.pydemonstrating backup/restore workflows
Security
- SQL injection prevention in metadata filter keys
- Validation of JSON paths to prevent malicious queries
- Parameterized queries for all metadata filtering operations
Improved
- Data migration workflows now much easier
- Backup and restore capabilities for production use
- Interoperability with external systems via CSV/JSON
Documentation
- Added "Metadata Filtering" section to README with examples
- Added "Export/Import" section to README with examples
- Updated examples list in README
- Added comprehensive docstrings for new methods
v2.1.1
Changed
- Moved table name validation from
__init__()tocreate_table()method - Table name is now validated when creating the table schema, not during client initialization
Improved
- More flexible client initialization - validation happens at table creation time
v2.1.0
Added
- Connection pooling support via
ConnectionPoolclass - Thread-safe connection reuse for concurrent access scenarios
- Optional
poolparameter inSQLiteVecClientconstructor examples/connection_pool_example.pydemonstrating pooled connections- Comprehensive tests for connection pooling in
tests/test_pool.py
Improved
- Better resource management for multi-threaded applications
- Connection reuse reduces overhead in high-concurrency scenarios
- Backward compatible - pooling is optional
v2.0.0
Changed
- BREAKING: Simplified
update_many()- removed complex grouping logic (58% code reduction) - BREAKING: Renamed
get_by_id()→get()for cleaner API - BREAKING: Renamed
delete_by_id()→delete()for cleaner API
Removed
- BREAKING: Removed
get_by_text()- use SQL queries orget_all()with filtering - BREAKING: Removed
get_by_metadata()- use SQL queries orget_all()with filtering - BREAKING: Removed
list_results()- useget_all()generator instead
Added
- Kept
count()method for convenience (user request)
Improved
- 28% smaller codebase (650 → 467 lines)
- 15% fewer methods (20 → 17)
- Test coverage increased 89% → 92%
- Cleaner, more intuitive API
- Better code maintainability
- All core CRUD and bulk operations preserved
v1.2.0
Added
- Benchmarks module with comprehensive performance testing for CRUD operations
- Configurable benchmark suite via
benchmarks/config.yaml - Support for testing with different dataset sizes (100, 1K, 10K, 50K records)
- Benchmark operations: add, get_many, similarity_search, update_many, get_all, delete_many
Fixed
- Fixed
delete_many()to handle large rowid lists by batching into chunks of 500 to avoid SQLite's "too many SQL variables" error
v1.0.1
Changed
- Patch release
v1.0.0
Added
SQLiteVecClientclass for CRUD and similarity search operationscreate_table()- Initialize schema with configurable dimensions and distance metricsadd()- Insert texts with embeddingsupdate()- Update existing recordsupdate_many()- Bulk update multiple records in a single transactiondelete()- Remove records by rowidget()- Fetch single record by rowidget_many()- Fetch multiple recordsget_all()- Memory-efficient generator for iterating over all recordsget_by_text()- Find records by exact text matchget_by_metadata()- Find records by metadata JSON matchlist_all()- List all records with paginationsimilarity_search()- Vector similarity search with configurable top_kcount()- Get total record countclear()- Remove all recordsdrop_table()- Delete table and indextransaction()- Context manager for atomic multi-operation transactions- Support for text, metadata (JSON), and float32 embeddings
- Automatic synchronization between base table and vec0 index via triggers
- Context manager support for automatic connection cleanup
- Distance metrics: cosine, L2, L1
- Python logging module integration with configurable log levels
- Type hints and dataclasses for typed results
- Comprehensive test suite with 91%+ coverage
- Complete CI/CD pipeline with GitHub Actions
- Enhanced GitHub release workflow with improved changelog extraction
- Better error handling in CI/CD pipeline
- Pre-commit hooks and code quality tools (ruff, mypy)
- CONTRIBUTING.md with contribution guidelines
- CHANGELOG.md for tracking changes
- TESTING.md with testing documentation
- SECURITY_IMPROVEMENTS.md documenting security enhancements
- Multiple examples in examples/ directory
- Updated batch_operations.py example with new features
- Comprehensive README with quick start guide
Security
- SQL injection prevention with table name validation
- Input validation for all parameters
- Custom exception classes for better error handling
Fixed
- PyPI publishing workflow with tag-based releases
- Changelog extraction in GitHub releases
- Changelog parsing in release notes generation