|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [1.1.0] - 2025-01-XX |
| 9 | + |
| 10 | +### Added |
| 11 | +- **Custom Interface**: Unified abstraction for database-specific features |
| 12 | + - `Custom` interface with single `Generate(built *Built) (interface{}, error)` method |
| 13 | + - Supports both SQL databases (returns `*SQLResult`) and vector databases (returns `string` JSON) |
| 14 | +- **Full CRUD for Vector Databases**: |
| 15 | + - `JsonOfInsert()` - Generate INSERT JSON for vector databases |
| 16 | + - `JsonOfUpdate()` - Generate UPDATE JSON for vector databases |
| 17 | + - `JsonOfDelete()` - Generate DELETE JSON for vector databases |
| 18 | + - `JsonOfSelect()` - Existing SELECT JSON (now unified through Custom interface) |
| 19 | +- **Official Custom Implementations**: |
| 20 | + - `QdrantCustom` - Full CRUD support for Qdrant (Insert/Update/Delete/Search) |
| 21 | + - `MySQLCustom` - MySQL-specific features (UPSERT, INSERT IGNORE) |
| 22 | +- **Public API Additions**: |
| 23 | + - `SqlData()` - Generate data query SQL (public, for Custom implementations) |
| 24 | + - `SqlCount()` - Generate COUNT SQL (public, for Custom implementations) |
| 25 | + - `SqlInsert()` - Generate INSERT SQL (public, for Custom implementations) |
| 26 | + - `SQLResult` struct - Encapsulates SQL, Args, CountSQL, and Meta map |
| 27 | +- **Meta Map Enhancement**: |
| 28 | + - `Meta map[string]string` in `SQLResult` for ORM field mapping |
| 29 | + - Supports alias mapping (`AS xxx`) and table prefixes (`table.field`) |
| 30 | + |
| 31 | +### Changed |
| 32 | +- **Breaking**: `PageCondition` fields are now public: |
| 33 | + - `page` → `Page` |
| 34 | + - `rows` → `Rows` |
| 35 | + - `last` → `Last` |
| 36 | + - `isTotalRowsIgnored` → `IsTotalRowsIgnored` |
| 37 | +- `Custom()` method renamed from `WithCustom()` for more fluent API |
| 38 | +- `SqlOfPage()`, `SqlOfSelect()`, `SqlOfInsert()`, `SqlOfUpdate()`, `SqlOfDelete()` now check `built.Custom` and delegate to Custom implementation if available |
| 39 | + |
| 40 | +### Deprecated |
| 41 | +- None (all existing APIs remain compatible) |
| 42 | + |
| 43 | +### Documentation |
| 44 | +- Added comprehensive Custom interface guides: |
| 45 | + - `CUSTOM_INTERFACE_README.md` - Overview and navigation |
| 46 | + - `CUSTOM_INTERFACE_PHILOSOPHY.md` - Design philosophy |
| 47 | + - `CUSTOM_QUICKSTART.md` - Quick start guide |
| 48 | + - `CUSTOM_VECTOR_DB_GUIDE.md` - Vector database implementation guide |
| 49 | + - `XB_ORM_PHILOSOPHY.md` - xb's role as ORM complement |
| 50 | + - `QDRANT_FULL_CRUD_SUMMARY.md` - Qdrant CRUD implementation summary |
| 51 | + |
| 52 | +### Tests |
| 53 | +- Added 8 new tests for Qdrant CRUD operations (all passing) |
| 54 | +- Total: 130+ tests, all passing |
| 55 | +- Validated Custom interface architecture through complete CRUD implementation |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## [1.0.0] - 2024-XX-XX |
| 60 | + |
| 61 | +### Added |
| 62 | +- Production-ready release |
| 63 | +- Stable API for SQL and vector database queries |
| 64 | +- Full support for PostgreSQL, MySQL, Qdrant |
| 65 | +- Comprehensive documentation and examples |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +## [0.10.0] - 2024-XX-XX |
| 70 | + |
| 71 | +### Added |
| 72 | +- **Qdrant Advanced API**: |
| 73 | + - Recommend API for personalized recommendations |
| 74 | + - Discover API for theme exploration |
| 75 | + - Scroll API for large dataset traversal |
| 76 | + - Functional parameters for unified builder style |
| 77 | +- 100% backward compatibility with existing features |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## [0.9.0] - 2024-XX-XX |
| 82 | + |
| 83 | +### Added |
| 84 | +- Vector database support (PostgreSQL pgvector, Qdrant) |
| 85 | +- `VectorSearch()` method for vector similarity search |
| 86 | +- Diversity strategies (MMR, min-distance, hash-based) |
| 87 | +- Qdrant-specific parameters (`QdrantX()`, `QdrantBuilderX`) |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +## Earlier Versions |
| 92 | + |
| 93 | +See git history for earlier version changes. |
| 94 | + |
| 95 | +[1.1.0]: https://github.com/fndome/xb/compare/v1.0.0...v1.1.0 |
| 96 | +[1.0.0]: https://github.com/fndome/xb/compare/v0.10.0...v1.0.0 |
| 97 | +[0.10.0]: https://github.com/fndome/xb/compare/v0.9.0...v0.10.0 |
| 98 | +[0.9.0]: https://github.com/fndome/xb/releases/tag/v0.9.0 |
| 99 | + |
0 commit comments