|
9 | 9 | [](https://dotnet.microsoft.com/download) |
10 | 10 | [](https://www.nuget.org/packages/SharpCoreDB) |
11 | 11 | [](https://github.com/MPCoreDeveloper/SharpCoreDB) |
12 | | - [](docs/PROJECT_STATUS_UNIFIED.md) |
| 12 | + [](https://github.com/MPCoreDeveloper/SharpCoreDB) |
13 | 13 | [](https://github.com/sponsors/mpcoredeveloper) |
14 | 14 | </div> |
15 | 15 |
|
16 | 16 | --- |
17 | 17 |
|
18 | 18 | ## 📌 **Current Status (February 2026)** |
19 | 19 |
|
20 | | -### ✅ **PRODUCTION READY - All Phases 1-7 Complete** |
| 20 | +### ✅ **All Phases Complete — Phases 1-8 + DDL Extensions** |
21 | 21 |
|
22 | | -**SCDB Phases:** |
23 | | -- ✅ **Phase 1-6**: 100% Complete (Block Registry → Row Overflow) |
24 | | -- ✅ **Phase 7**: 100% Complete (Query Optimization: Columnar + SIMD + Cost-Based) |
25 | | -- 📊 **Performance**: 7,765x faster than baseline, 1.21x faster than LiteDB |
26 | | -- ✅ **Build**: Successful (0 errors, 0 warnings) |
27 | | -- ✅ **Tests**: 150+ tests passing |
| 22 | +| Area | Status | |
| 23 | +|------|--------| |
| 24 | +| **Phases 1-7** (Core → Query Optimization) | ✅ Complete | |
| 25 | +| **Phase 8** (Time-Series: compression, buckets, downsampling) | ✅ Complete | |
| 26 | +| **Phase 1.3** (Stored Procedures, Views) | ✅ Complete | |
| 27 | +| **Phase 1.4** (Triggers) | ✅ Complete | |
| 28 | +| **Build** | ✅ 0 errors | |
| 29 | +| **Tests** | ✅ 772 passing, 0 failures | |
| 30 | +| **Production LOC** | ~77,700 | |
28 | 31 |
|
29 | | -**Future Roadmap:** |
30 | | -- 🚧 **Phase 8**: TimeSeries Optimization (PLANNING) |
31 | | -- 📋 **Phase 9**: TBD |
32 | | - |
33 | | -See: [Phase 7 Completion Report](docs/PHASE7_COMPLETE.md) | [SCDB Progress](docs/IMPLEMENTATION_PROGRESS_REPORT.md) | [Unified Roadmap](docs/UNIFIED_ROADMAP.md) |
| 32 | +See: [Project Status](docs/PROJECT_STATUS.md) |
34 | 33 |
|
35 | 34 | --- |
36 | 35 |
|
37 | 36 | A high-performance, encrypted, embedded database engine for .NET 10 with **B-tree indexes**, **SIMD-accelerated analytics**, and **unlimited row storage**. Pure .NET implementation with enterprise-grade encryption and world-class analytics performance. **Beats SQLite AND LiteDB on INSERT!** 🏆 |
38 | 37 |
|
39 | 38 | - **License**: MIT |
40 | 39 | - **Platform**: .NET 10, C# 14 |
41 | | -- **Status**: ✅ **Production Ready - All Phases (1-7) Complete** |
| 40 | +- **Status**: ✅ **Production Ready — All Phases (1-8) + DDL Extensions Complete** |
42 | 41 | - **Encryption**: AES-256-GCM at rest (**0% overhead, sometimes faster!** ✅) |
43 | 42 | - **Analytics**: **28,660x faster** than LiteDB with SIMD vectorization ✅ |
44 | 43 | - **Analytics**: **682x faster** than SQLite with SIMD vectorization ✅ |
@@ -131,45 +130,47 @@ db.ExecuteSQL("INSERT INTO files VALUES (1, @data)"); |
131 | 130 |
|
132 | 131 | ### 🗃️ **SQL Support** |
133 | 132 |
|
134 | | -- **DDL**: CREATE TABLE, DROP TABLE, CREATE INDEX, DROP INDEX |
135 | | -- **DML**: INSERT, SELECT, UPDATE, DELETE, INSERT BATCH |
| 133 | +- **DDL**: CREATE TABLE, DROP TABLE, ALTER TABLE, CREATE INDEX, DROP INDEX |
| 134 | +- **DDL**: CREATE/DROP PROCEDURE, CREATE/DROP VIEW, CREATE/DROP TRIGGER |
| 135 | +- **DML**: INSERT, SELECT, UPDATE, DELETE, INSERT BATCH, EXEC |
136 | 136 | - **Queries**: WHERE, ORDER BY, LIMIT, OFFSET, BETWEEN |
137 | 137 | - **Aggregates**: COUNT, SUM, AVG, MIN, MAX, GROUP BY, HAVING |
138 | | -- **JOINs**: ✅ **INNER, LEFT, RIGHT, FULL OUTER, CROSS** (Production Ready) |
139 | | -- **Subqueries**: ✅ **WHERE, FROM, SELECT, IN, EXISTS, Correlated** (Production Ready) |
140 | | -- **Advanced**: Complex expressions, multi-table queries, query optimization |
141 | | - |
142 | | -## 🧭 RDBMS Feature Roadmap (Planned) |
143 | | - |
144 | | -| Feature | Status | Target | Notes | |
145 | | -|---------|--------|--------|-------| |
146 | | -| Triggers | 🚧 Planning | Q2 2026 | BEFORE/AFTER INSERT/UPDATE/DELETE | |
147 | | -| Stored Procedures | 🚧 Planning | Q2 2026 | Pre-compiled routines | |
148 | | -| Views | 🚧 Planning | Q2 2026 | Virtual tables | |
| 138 | +- **JOINs**: ✅ **INNER, LEFT, RIGHT, FULL OUTER, CROSS** |
| 139 | +- **Subqueries**: ✅ **WHERE, FROM, SELECT, IN, EXISTS, Correlated** |
| 140 | +- **Stored Procedures**: ✅ **CREATE PROCEDURE, EXEC with IN/OUT/INOUT parameters** |
| 141 | +- **Views**: ✅ **CREATE VIEW, CREATE MATERIALIZED VIEW** |
| 142 | +- **Triggers**: ✅ **BEFORE/AFTER INSERT/UPDATE/DELETE with NEW/OLD binding** |
| 143 | +- **Advanced**: Complex expressions, multi-table queries, query plan caching |
| 144 | + |
| 145 | +## 🧭 RDBMS Feature Status |
| 146 | + |
| 147 | +| Feature | Status | Notes | |
| 148 | +|---------|--------|-------| |
| 149 | +| Stored Procedures | ✅ Complete | CREATE/DROP PROCEDURE, EXEC with parameter binding | |
| 150 | +| Views | ✅ Complete | CREATE VIEW, CREATE MATERIALIZED VIEW, DROP VIEW | |
| 151 | +| Triggers | ✅ Complete | BEFORE/AFTER INSERT/UPDATE/DELETE, NEW/OLD binding | |
| 152 | +| Time-Series | ✅ Complete | Gorilla/Delta-of-Delta/XOR codecs, buckets, downsampling | |
149 | 153 |
|
150 | 154 | --- |
151 | 155 |
|
152 | 156 | ## 📚 Documentation |
153 | 157 |
|
154 | | -### Project Status & Roadmap |
155 | | -- 📖 [Executive Summary](docs/EXECUTIVE_SUMMARY.md) |
156 | | -- 📖 [Project Status (Unified)](docs/PROJECT_STATUS_UNIFIED.md) |
157 | | -- 📖 [Unified Roadmap](docs/UNIFIED_ROADMAP.md) |
158 | | -- 📖 [Feature Status Matrix](docs/FEATURE_STATUS.md) |
| 158 | +### Project Status |
| 159 | +- 📖 [Project Status](docs/PROJECT_STATUS.md) |
| 160 | +- 📖 [Changelog](docs/CHANGELOG.md) |
| 161 | +- 📖 [Benchmark Results](docs/BENCHMARK_RESULTS.md) |
159 | 162 |
|
160 | 163 | ### SCDB Reference |
161 | 164 | - 📖 [SCDB Implementation Status](docs/scdb/IMPLEMENTATION_STATUS.md) |
162 | | -- 📖 [SCDB Phase 1 Complete](docs/scdb/PHASE1_COMPLETE.md) |
163 | | -- 📖 [SCDB Phase 2 Complete](docs/scdb/PHASE2_COMPLETE.md) |
164 | | -- 📖 [SCDB Phase 3 Complete](docs/scdb/PHASE3_COMPLETE.md) |
165 | | -- 📖 [SCDB Phase 4 Design](docs/scdb/PHASE4_DESIGN.md) |
166 | | -- 📖 [SCDB Phase 5 Complete](docs/scdb/PHASE5_COMPLETE.md) |
167 | | -- 📖 [SCDB Phase 6 Complete](docs/scdb/PHASE6_COMPLETE.md) |
168 | | -- 📖 [SCDB Phase 7 Complete](docs/scdb/PHASE7_COMPLETE.md) |
169 | | - |
170 | | -### Additional References |
171 | | -- 📖 [Performance Regression Fix Plan](docs/PERFORMANCE_REGRESSION_FIX_PLAN.md) |
172 | | -- 📖 [Priority Work Items](docs/PRIORITY_WORK_ITEMS.md) |
| 165 | +- 📖 [SCDB Phase 1–6 Complete](docs/scdb/) |
| 166 | +- 📖 [Serialization & Storage Guide](docs/serialization/SERIALIZATION_AND_STORAGE_GUIDE.md) |
| 167 | + |
| 168 | +### Guides |
| 169 | +- 📖 [Contributing](docs/CONTRIBUTING.md) |
| 170 | +- 📖 [Use Cases](docs/UseCases.md) |
| 171 | +- 📖 [Embedded & Distributed Guide](docs/SHARPCOREDB_EMBEDDED_DISTRIBUTED_GUIDE.md) |
| 172 | +- 📖 [Migration Guide](docs/migration/MIGRATION_GUIDE.md) |
| 173 | +- 📖 [Query Plan Cache](docs/QUERY_PLAN_CACHE.md) |
173 | 174 |
|
174 | 175 | --- |
175 | 176 |
|
@@ -213,31 +214,34 @@ db.ExecuteSQL("INSERT INTO data VALUES (@blob)"); |
213 | 214 | ┌─────────────────────────────────────────────────────┐ |
214 | 215 | │ SharpCoreDB Application Layer │ |
215 | 216 | ├─────────────────────────────────────────────────────┤ |
216 | | -│ Database.Core + Query Executor + Index Manager │ |
| 217 | +│ Database.Core + Query Executor + Index Manager │ |
| 218 | +├─────────────────────────────────────────────────────┤ |
| 219 | +│ DDL Extensions: Procedures | Views | Triggers │ |
217 | 220 | ├─────────────────────────────────────────────────────┤ |
218 | | -│ SCDB Storage Engine (7 Phases - Complete) │ |
| 221 | +│ SCDB Storage Engine (8 Phases - Complete) │ |
219 | 222 | ├────────┬────────┬────────┬────────┬────────┬────────┤ |
220 | | -│ Ph.1 │ Ph.2 │ Ph.3 │ Ph.4 │ Ph.5 │ Ph.6/7 │ |
221 | | -│Block │Extent │WAL/Rec │Migrate │Harden │Optimize |
222 | | -│Reg │Alloc │overy │ation │ing │Query │ |
| 223 | +│ Ph.1-3 │ Ph.4 │ Ph.5 │ Ph.6 │ Ph.7 │ Ph.8 │ |
| 224 | +│Block │Migrate │Harden │Row │Query │Time │ |
| 225 | +│Reg/WAL │ation │ing │Overflow│Optimize│Series │ |
223 | 226 | ├────────┴────────┴────────┴────────┴────────┴────────┤ |
224 | 227 | │ IStorage: File persistence with encryption │ |
225 | 228 | ├─────────────────────────────────────────────────────┤ |
226 | | -│ Disk: Database file + WAL + Overflow + Blobs │ |
| 229 | +│ Disk: Database file + WAL + Overflow + Blobs │ |
227 | 230 | └─────────────────────────────────────────────────────┘ |
228 | 231 | ``` |
229 | 232 |
|
230 | 233 | ## ✅ Project Snapshot |
231 | 234 |
|
232 | 235 | | Metric | Value | Status | |
233 | 236 | |--------|-------|--------| |
234 | | -| **SCDB Phases Complete** | Phases 1-7 | ✅ 100% | |
235 | | -| **Phase 7 (Query Optimization)** | Columnar + SIMD + Planner | ✅ Complete | |
| 237 | +| **SCDB Phases Complete** | Phases 1-8 + DDL Extensions | ✅ 100% | |
| 238 | +| **Phase 8 (Time-Series)** | Codecs, Buckets, Downsampling | ✅ Complete | |
| 239 | +| **Stored Procedures / Views / Triggers** | Phase 1.3-1.4 | ✅ Complete | |
236 | 240 | | **Performance Optimization** | 7,765x faster | ✅ Complete | |
237 | | -| **INSERT Optimization** | 1.21x faster than LiteDB | ✅ Complete | |
238 | | -| **Advanced SQL** | JOINs + Subqueries | ✅ Complete | |
| 241 | +| **Advanced SQL** | JOINs + Subqueries + Aggregates | ✅ Complete | |
239 | 242 | | **Build Status** | 0 errors, 0 warnings | ✅ Success | |
240 | | -| **Tests** | 150+ passing | ✅ All Passing | |
| 243 | +| **Tests** | 772 passing, 0 failures | ✅ All Passing | |
| 244 | +| **Production LOC** | ~77,700 | ✅ | |
241 | 245 |
|
242 | 246 | --- |
243 | 247 |
|
|
0 commit comments