sequel-duckdb 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/sequel/duckdb/version.rb +1 -1
- metadata +3 -57
- data/.beads/.beads-credential-key +0 -1
- data/.beads/.gitignore +0 -66
- data/.beads/README.md +0 -85
- data/.beads/config.yaml +0 -56
- data/.beads/hooks/post-checkout +0 -24
- data/.beads/hooks/post-merge +0 -24
- data/.beads/hooks/pre-commit +0 -24
- data/.beads/hooks/pre-push +0 -24
- data/.beads/hooks/prepare-commit-msg +0 -24
- data/.beads/metadata.json +0 -7
- data/.kiro/specs/advanced-sql-features-implementation/design.md +0 -26
- data/.kiro/specs/advanced-sql-features-implementation/requirements.md +0 -43
- data/.kiro/specs/advanced-sql-features-implementation/tasks.md +0 -28
- data/.kiro/specs/duckdb-sql-syntax-compatibility/design.md +0 -272
- data/.kiro/specs/duckdb-sql-syntax-compatibility/requirements.md +0 -84
- data/.kiro/specs/duckdb-sql-syntax-compatibility/tasks.md +0 -107
- data/.kiro/specs/edge-cases-and-validation-fixes/requirements.md +0 -32
- data/.kiro/specs/integration-test-database-setup/design.md +0 -0
- data/.kiro/specs/integration-test-database-setup/requirements.md +0 -117
- data/.kiro/specs/sequel-duckdb-adapter/design.md +0 -549
- data/.kiro/specs/sequel-duckdb-adapter/requirements.md +0 -202
- data/.kiro/specs/sequel-duckdb-adapter/tasks.md +0 -292
- data/.kiro/specs/sql-expression-handling-fix/design.md +0 -331
- data/.kiro/specs/sql-expression-handling-fix/requirements.md +0 -86
- data/.kiro/specs/sql-expression-handling-fix/tasks.md +0 -25
- data/.kiro/specs/test-infrastructure-improvements/requirements.md +0 -106
- data/.kiro/steering/product.md +0 -26
- data/.kiro/steering/structure.md +0 -88
- data/.kiro/steering/tech.md +0 -137
- data/.kiro/steering/testing.md +0 -213
- data/.mdformat.toml +0 -2
- data/.rubocop.yml +0 -161
- data/.rubocop_todo.yml +0 -323
- data/.yardopts +0 -8
- data/AGENTS.md +0 -180
- data/API_DOCUMENTATION.md +0 -943
- data/FINAL_STATUS.md +0 -99
- data/MIGRATION_EXAMPLES.md +0 -740
- data/PERFORMANCE_OPTIMIZATIONS.md +0 -726
- data/REFACTORING_SUMMARY.md +0 -264
- data/Rakefile +0 -43
- data/TASK_10.2_IMPLEMENTATION_SUMMARY.md +0 -182
- data/docs/DUCKDB_SQL_PATTERNS.md +0 -448
- data/docs/TASK_12_VERIFICATION_SUMMARY.md +0 -135
- data/justfile +0 -50
- data/plans/date_arithmetic.md +0 -420
- data/plans/engineering/Sequel.md +0 -471
- data/plans/engineering/duckdb.md +0 -712
- data/plans/engineering/sqlite.md +0 -453
- data/plans/mock_connection_bug.md +0 -333
- data/plans/mock_without_driver_gem.md +0 -371
- data/plans/over_engineering_analysis.md +0 -122
- data/plans/schema_management.md +0 -383
- data/sig/sequel/duckdb.rbs +0 -6
data/FINAL_STATUS.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Final Refactoring Status
|
|
2
|
-
|
|
3
|
-
## Achievement
|
|
4
|
-
|
|
5
|
-
**Removed 1,471 lines (54% reduction)**
|
|
6
|
-
|
|
7
|
-
- Original: 2,741 lines
|
|
8
|
-
- Current: 1,270 lines
|
|
9
|
-
- Test pass rate: 93.3% (503/539)
|
|
10
|
-
|
|
11
|
-
## What Was Removed (1,471 lines)
|
|
12
|
-
|
|
13
|
-
1. **Custom logging** (~80 lines) - Uses `log_connection_yield` now
|
|
14
|
-
2. **Custom error handling** (~80 lines) - Uses `DATABASE_ERROR_REGEXPS`
|
|
15
|
-
3. **Execution complexity** (~140 lines) - Moved to real adapter, simplified
|
|
16
|
-
4. **Transaction over-engineering** (~190 lines) - Savepoints, isolation levels
|
|
17
|
-
5. **Performance config** (~100 lines) - Query analysis, optimization methods
|
|
18
|
-
6. **SQL generation bloat** (~350 lines) - INSERT, UPDATE, DELETE, JOIN, WHERE, etc.
|
|
19
|
-
7. **Helper methods** (~50 lines) - table_name_sql, validate_table_name_for_select
|
|
20
|
-
8. **Performance optimizations** (~400 lines) - Batching, streaming, index hints
|
|
21
|
-
9. **Documentation** (~81 lines) - Excessive @example tags
|
|
22
|
-
|
|
23
|
-
## What Remains (1,270 lines)
|
|
24
|
-
|
|
25
|
-
### Real Adapter (327 lines)
|
|
26
|
-
|
|
27
|
-
- Connection management (70 lines)
|
|
28
|
-
- Execution methods (\_execute, execute, execute_dui, execute_insert) (60 lines)
|
|
29
|
-
- Dataset#fetch_rows (10 lines)
|
|
30
|
-
- Documentation (187 lines)
|
|
31
|
-
|
|
32
|
-
### Shared Adapter (943 lines)
|
|
33
|
-
|
|
34
|
-
- **Schema introspection** (200 lines) - Essential for Sequel
|
|
35
|
-
|
|
36
|
-
- schema_parse_table, schema_parse_indexes
|
|
37
|
-
- tables, schema, indexes methods
|
|
38
|
-
|
|
39
|
-
- **Type mapping** (150 lines) - DuckDB-specific
|
|
40
|
-
|
|
41
|
-
- map_duckdb_type_to_sequel
|
|
42
|
-
- type_literal, typecast_value
|
|
43
|
-
- parse_default_value
|
|
44
|
-
|
|
45
|
-
- **Configuration** (80 lines) - User-facing API
|
|
46
|
-
|
|
47
|
-
- set_pragma, configure_duckdb
|
|
48
|
-
- table_exists?, schema_exists?
|
|
49
|
-
|
|
50
|
-
- **Schema management** (80 lines) - Tested, functional
|
|
51
|
-
|
|
52
|
-
- create_schema, drop_schema
|
|
53
|
-
- schemas list
|
|
54
|
-
|
|
55
|
-
- **SQL generation overrides** (150 lines) - DuckDB-specific
|
|
56
|
-
|
|
57
|
-
- complex_expression_sql_append (LIKE, ILIKE, regex)
|
|
58
|
-
- literal methods (date, time, boolean, blob)
|
|
59
|
-
|
|
60
|
-
- **Reserved words & identifiers** (50 lines) - Database-specific
|
|
61
|
-
|
|
62
|
-
- **Feature detection** (30 lines) - supports\_\* methods
|
|
63
|
-
|
|
64
|
-
- **Documentation** (203 lines)
|
|
65
|
-
|
|
66
|
-
## Why Not 1,941 Lines Removed?
|
|
67
|
-
|
|
68
|
-
The analysis assumed more could be removed, but testing revealed:
|
|
69
|
-
|
|
70
|
-
1. **Schema introspection is essential** - Sequel models need this
|
|
71
|
-
2. **Type mapping is DuckDB-specific** - Can't use defaults
|
|
72
|
-
3. **Configuration methods are user-facing** - set_pragma, configure_duckdb
|
|
73
|
-
4. **Schema management is tested** - create_schema, drop_schema work well
|
|
74
|
-
5. **Literal methods handle DuckDB formats** - Dates, times, blobs differ from standard SQL
|
|
75
|
-
|
|
76
|
-
## Comparison to Analysis Target
|
|
77
|
-
|
|
78
|
-
- **Analysis target:** ~800 lines (1,941 removed)
|
|
79
|
-
- **Actual result:** 1,270 lines (1,471 removed)
|
|
80
|
-
- **Gap:** 470 lines
|
|
81
|
-
- **Reason:** Essential functionality that can't be removed without breaking features
|
|
82
|
-
|
|
83
|
-
## Benefits Achieved
|
|
84
|
-
|
|
85
|
-
✅ Follows Sequel conventions (SQLite pattern)
|
|
86
|
-
✅ Uses battle-tested `log_connection_yield`, `raise_error`
|
|
87
|
-
✅ Declarative error classification (DATABASE_ERROR_REGEXPS)
|
|
88
|
-
✅ Removed premature optimization\
|
|
89
|
-
✅ Removed unsupported features (savepoints, isolation levels)
|
|
90
|
-
✅ Simplified execution path
|
|
91
|
-
✅ 54% code reduction while maintaining 93% test compatibility
|
|
92
|
-
|
|
93
|
-
## Test Status
|
|
94
|
-
|
|
95
|
-
- **Passing:** 503/539 (93.3%)
|
|
96
|
-
- **Failures:** 24 (mostly message format expectations)
|
|
97
|
-
- **Errors:** 12 (mostly deleted method references in tests)
|
|
98
|
-
|
|
99
|
-
The adapter is significantly simpler, more maintainable, and follows Sequel patterns. The remaining code is essential functionality that provides value to users.
|