Skip to content

Commit acbab8c

Browse files
committed
feature: Add further prepared statement support and savepoints
1 parent ea8e9e8 commit acbab8c

8 files changed

Lines changed: 4145 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3232
- Improved performance for bulk operations (migrations, seeding, etc.)
3333
- Added 3 comprehensive tests including atomic rollback verification
3434

35+
- **Advanced Replica Sync Control**
36+
- `get_frame_number(conn_id)` NIF - Monitor replication frame
37+
- `sync_until(conn_id, frame_no)` NIF - Wait for specific frame
38+
- `flush_replicator(conn_id)` NIF - Push pending writes
39+
- Elixir wrappers: `get_frame_number_for_replica()`, `sync_until_frame()`, `flush_and_get_frame()`
40+
- All with proper error handling and timeouts
41+
42+
- **Prepared Statement Introspection**
43+
- `stmt_column_count/2` - Get number of columns in a prepared statement result set
44+
- `stmt_column_name/3` - Get column name by index (0-based)
45+
- `stmt_parameter_count/2` - Get number of parameters (?) in a prepared statement
46+
- Enables dynamic schema discovery and parameter binding validation
47+
- Added 21 comprehensive tests in `test/prepared_statement_test.exs` (312 lines)
48+
49+
- **Savepoint Support (Nested Transactions)**
50+
- `create_savepoint/2` - Create a named savepoint within a transaction
51+
- `release_savepoint_by_name/2` - Commit a savepoint's changes
52+
- `rollback_to_savepoint_by_name/2` - Rollback to a savepoint, keeping transaction active
53+
- Enables nested transaction-like behaviour within a single transaction
54+
- Perfect for error recovery and partial rollback patterns
55+
- Added 18 comprehensive tests in `test/savepoint_test.exs` (490 lines)
56+
3557
- **Test Suite Reorganisation**
3658
- Restructured tests from "missing vs implemented" to feature-based organisation
3759
- New feature-focused test files:
@@ -42,14 +64,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4264
- `test/advanced_features_test.exs` (282 lines, 13 tests) - MVCC, cacheflush, replication, extensions, hooks (all skipped, awaiting implementation)
4365
- Removed old organisational test files (`test/phase1_features_test.exs`, `test/turso_missing_features_test.exs`)
4466
- All unimplemented features properly marked with `@describetag :skip` for easy enabling as features are added
45-
- **New total**: 232 tests, 0 failures, 43 skipped (up from 162 tests in v0.6.0)
46-
47-
- **Comprehensive Gap Analysis Documentation**
48-
- `TURSO_COMPREHENSIVE_GAP_ANALYSIS.md` (805 lines) - Consolidated analysis of all Turso/LibSQL features
49-
- Merged three separate gap analysis documents into single authoritative source
50-
- Prioritised feature list (P0-P3) with implementation roadmap
51-
- Complete source code references and Ecto integration details
52-
- Updated `TURSO_IMPLEMENTATION_ROADMAP.md` with completed features and next steps
67+
- **New total**: 271 tests, 0 failures, 43 skipped (up from 162 tests in v0.6.0)
68+
69+
- **Comprehensive Documentation Suite**
70+
- `TURSO_COMPREHENSIVE_GAP_ANALYSIS.md` (805 lines) - Consolidated analysis of all Turso/LibSQL features
71+
- `IMPLEMENTATION_ROADMAP_FOCUSED.md` (855 lines) - Detailed implementation roadmap with prioritised phases
72+
- `LIBSQL_FEATURE_MATRIX_FINAL.md` (764 lines) - Complete feature compatibility matrix
73+
- `TESTING_PLAN_COMPREHENSIVE.md` (1038 lines) - Comprehensive testing strategy and coverage plan
74+
- Merged multiple gap analysis documents into consolidated, authoritative sources
75+
- Prioritised feature list (P0-P3) with clear implementation phases
76+
- Complete source code references and Ecto integration details
5377

5478
### Fixed
5579

0 commit comments

Comments
 (0)