You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: comprehensive array support with improved gitignore
- Add StringArray, IntArray, FloatArray types with full GORM integration
- Implement driver.Valuer and sql.Scanner interfaces for type safety
- Add GormDataType() methods for automatic schema generation
- Comprehensive test suite covering CRUD, edge cases, and error handling
- Update documentation with array usage examples and benefits
- Improve .gitignore to prevent large binary commits (addresses previous 52MB binary issue)
This makes the GORM DuckDB driver the first with native, type-safe array support.
@@ -5,6 +5,110 @@ All notable changes to the GORM DuckDB driver will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [0.2.3] - 2025-06-26
9
+
10
+
### 🎉 Major Feature: Production-Ready Array Support
11
+
12
+
This release brings **first-class array support** to the GORM DuckDB driver, making it the first GORM driver with native, type-safe array functionality.
13
+
14
+
### ✨ Added
15
+
16
+
-**🎨 Array Types**: Native support for `StringArray`, `IntArray`, `FloatArray` with full type safety
17
+
-**🔄 Valuer/Scanner Interface**: Proper `driver.Valuer` and `sql.Scanner` implementation for seamless database integration
@@ -26,179 +130,88 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
130
- ✅ **All CRUD operations** now work seamlessly with `*time.Time` fields
27
131
- ✅ **Transaction operations** properly handle time pointer conversion
28
132
- ✅ **Full GORM compatibility** maintained for all standard operations
29
-
- ✅ **Production ready** - can serve as drop-in replacement for official GORM DuckDB driver
133
+
- ✅ **Production ready** - can serve as drop-in replacement for official GORM driver
30
134
31
-
## [0.2.1] - 2025-06-25
32
-
33
-
### Fixed
135
+
### Technical Details
34
136
35
-
-**Critical Migration Crash**: Resolved nil pointer dereference in `AutoMigrate()` operations that prevented application startup (Issue: DUCKDB_GORM_DRIVER_BUG_REPORT.md)
36
-
-**Column Type Introspection**: Fixed missing column metadata implementation that caused segmentation faults during migration
37
-
-**Database Connection Access**: Fixed critical issue where `db.DB()` method failed due to missing `GetDBConnector` interface implementation
38
-
-**Connection Wrapper**: Implemented `GetDBConn() (*sql.DB, error)` method in connection wrapper to provide proper access to underlying `*sql.DB`
39
-
-**GORM Compatibility**: Ensures compatibility with applications requiring direct database access for connection pooling, health checks, and advanced operations
40
-
-**Time Pointer Conversion**: Maintained existing time pointer conversion functionality while fixing `db.DB()` access
41
-
-**Migration Stability**: Complete rewrite of migration system to handle complex models with proper null safety
137
+
The driver now includes a comprehensive wrapper system that ensures time pointer conversion happens at the most fundamental level:
- Connection wrapper now properly implements GORM's `GetDBConnector` interface
46
-
- Follows same pattern used by official GORM drivers (PostgreSQL, MySQL, SQLite)
47
-
- Enables downstream projects to call `db.DB()` for `*sql.DB` access while preserving DuckDB-specific features
48
-
- All existing functionality (CRUD operations, extensions, time handling) remains unchanged
158
+
This ensures that **all** database operations, including those within transactions, properly handle `*time.Time` to `time.Time` conversion without any manual intervention required.
49
159
50
-
## [0.2.0] - 2025-06-23
160
+
## [0.2.1] - 2025-06-24
51
161
52
162
### Added
53
163
54
-
-**Comprehensive DuckDB Extension Support**: Complete extension management system for DuckDB
55
-
-**ExtensionManager**: Low-level extension operations (load, install, list, status checking)
56
-
-**ExtensionHelper**: High-level convenience methods for common extension workflows
57
-
-**Extension Auto-loading**: Preload extensions on database connection with configuration
58
-
-**Analytics Extensions**: JSON, Parquet, ICU for data processing and analytics
59
-
-**Data Format Extensions**: CSV, Excel, Arrow, SQLite for diverse data sources
60
-
-**Spatial Extensions**: Geospatial analysis capabilities with spatial extension support
61
-
-**Cloud Extensions**: HTTP/S3, Azure, AWS for cloud data access
62
-
-**Machine Learning Extensions**: ML extension support for advanced analytics
63
-
-**Time Series Extensions**: Specialized time series analysis capabilities
64
-
-**Extension Status Tracking**: Real-time monitoring of extension load and install status
65
-
-**Extension Documentation**: Comprehensive usage examples and best practices
0 commit comments