sequel-duckdb 0.1.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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.kiro/specs/advanced-sql-features-implementation/design.md +24 -0
  3. data/.kiro/specs/advanced-sql-features-implementation/requirements.md +43 -0
  4. data/.kiro/specs/advanced-sql-features-implementation/tasks.md +24 -0
  5. data/.kiro/specs/duckdb-sql-syntax-compatibility/design.md +258 -0
  6. data/.kiro/specs/duckdb-sql-syntax-compatibility/requirements.md +84 -0
  7. data/.kiro/specs/duckdb-sql-syntax-compatibility/tasks.md +94 -0
  8. data/.kiro/specs/edge-cases-and-validation-fixes/requirements.md +32 -0
  9. data/.kiro/specs/integration-test-database-setup/design.md +0 -0
  10. data/.kiro/specs/integration-test-database-setup/requirements.md +117 -0
  11. data/.kiro/specs/sequel-duckdb-adapter/design.md +542 -0
  12. data/.kiro/specs/sequel-duckdb-adapter/requirements.md +202 -0
  13. data/.kiro/specs/sequel-duckdb-adapter/tasks.md +247 -0
  14. data/.kiro/specs/sql-expression-handling-fix/design.md +298 -0
  15. data/.kiro/specs/sql-expression-handling-fix/requirements.md +86 -0
  16. data/.kiro/specs/sql-expression-handling-fix/tasks.md +22 -0
  17. data/.kiro/specs/test-infrastructure-improvements/requirements.md +106 -0
  18. data/.kiro/steering/product.md +22 -0
  19. data/.kiro/steering/structure.md +88 -0
  20. data/.kiro/steering/tech.md +124 -0
  21. data/.kiro/steering/testing.md +192 -0
  22. data/.rubocop.yml +103 -0
  23. data/.yardopts +8 -0
  24. data/API_DOCUMENTATION.md +919 -0
  25. data/CHANGELOG.md +131 -0
  26. data/LICENSE +21 -0
  27. data/MIGRATION_EXAMPLES.md +740 -0
  28. data/PERFORMANCE_OPTIMIZATIONS.md +723 -0
  29. data/README.md +692 -0
  30. data/Rakefile +27 -0
  31. data/TASK_10.2_IMPLEMENTATION_SUMMARY.md +164 -0
  32. data/docs/DUCKDB_SQL_PATTERNS.md +410 -0
  33. data/docs/TASK_12_VERIFICATION_SUMMARY.md +122 -0
  34. data/lib/sequel/adapters/duckdb.rb +256 -0
  35. data/lib/sequel/adapters/shared/duckdb.rb +2349 -0
  36. data/lib/sequel/duckdb/version.rb +16 -0
  37. data/lib/sequel/duckdb.rb +43 -0
  38. data/sig/sequel/duckdb.rbs +6 -0
  39. metadata +235 -0
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sequel
4
+ module DuckDB
5
+ # Version information for the sequel-duckdb gem
6
+ #
7
+ # This constant contains the current version of the sequel-duckdb adapter.
8
+ # It follows semantic versioning (SemVer) conventions.
9
+ #
10
+ # @example Getting the version
11
+ # puts Sequel::DuckDB::VERSION # => "0.1.0"
12
+ #
13
+ # @since 0.1.0
14
+ VERSION = "0.1.0"
15
+ end
16
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "duckdb/version"
4
+
5
+ # Sequel is the database toolkit for Ruby
6
+ module Sequel
7
+ # DuckDB integration module for Sequel
8
+ #
9
+ # This module provides the entry point for DuckDB integration with Sequel.
10
+ # It includes version information and common error classes used throughout
11
+ # the DuckDB adapter implementation.
12
+ #
13
+ # The actual adapter implementation is located in the adapters directory,
14
+ # which provides the Database and Dataset classes with full DuckDB support.
15
+ #
16
+ # @example Basic usage
17
+ # require 'sequel'
18
+ # require 'sequel/duckdb'
19
+ #
20
+ # db = Sequel.connect('duckdb::memory:')
21
+ # db = Sequel.connect('duckdb:///path/to/database.duckdb')
22
+ #
23
+ # @see Sequel::DuckDB::Database
24
+ # @see Sequel::DuckDB::Dataset
25
+ # @since 0.1.0
26
+ module DuckDB
27
+ # Base error class for DuckDB-related exceptions
28
+ #
29
+ # This class serves as the base for all DuckDB-specific errors that may
30
+ # occur during adapter operation. It extends StandardError to provide
31
+ # a consistent error hierarchy for the DuckDB adapter.
32
+ #
33
+ # @example Catching DuckDB errors
34
+ # begin
35
+ # db.execute("INVALID SQL")
36
+ # rescue Sequel::DuckDB::Error => e
37
+ # puts "DuckDB error: #{e.message}"
38
+ # end
39
+ #
40
+ # @since 0.1.0
41
+ class Error < StandardError; end
42
+ end
43
+ end
@@ -0,0 +1,6 @@
1
+ module Sequel
2
+ module DuckDB
3
+ VERSION: String
4
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,235 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sequel-duckdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Duryea
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: duckdb
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.0'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.0.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: sequel
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '5.0'
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '5.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '5.0'
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '5.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: irb
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ type: :development
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ - !ruby/object:Gem::Dependency
67
+ name: logger
68
+ requirement: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: minitest
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '5.0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '5.0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rake
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '13.0'
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '13.0'
108
+ - !ruby/object:Gem::Dependency
109
+ name: rubocop
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - "~>"
113
+ - !ruby/object:Gem::Version
114
+ version: '1.21'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '1.21'
122
+ - !ruby/object:Gem::Dependency
123
+ name: rubocop-minitest
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: 0.38.2
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: 0.38.2
136
+ - !ruby/object:Gem::Dependency
137
+ name: rubocop-rake
138
+ requirement: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: 0.7.1
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 0.7.1
150
+ - !ruby/object:Gem::Dependency
151
+ name: rubocop-sequel
152
+ requirement: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: 0.4.1
157
+ type: :development
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: 0.4.1
164
+ description: A Ruby gem that provides a complete database adapter for the Sequel toolkit
165
+ to work with DuckDB, enabling Ruby applications to connect to and interact with
166
+ DuckDB databases through Sequel's comprehensive ORM and database abstraction interface.
167
+ email:
168
+ - aguynamedryan@gmail.com
169
+ executables: []
170
+ extensions: []
171
+ extra_rdoc_files: []
172
+ files:
173
+ - ".kiro/specs/advanced-sql-features-implementation/design.md"
174
+ - ".kiro/specs/advanced-sql-features-implementation/requirements.md"
175
+ - ".kiro/specs/advanced-sql-features-implementation/tasks.md"
176
+ - ".kiro/specs/duckdb-sql-syntax-compatibility/design.md"
177
+ - ".kiro/specs/duckdb-sql-syntax-compatibility/requirements.md"
178
+ - ".kiro/specs/duckdb-sql-syntax-compatibility/tasks.md"
179
+ - ".kiro/specs/edge-cases-and-validation-fixes/requirements.md"
180
+ - ".kiro/specs/integration-test-database-setup/design.md"
181
+ - ".kiro/specs/integration-test-database-setup/requirements.md"
182
+ - ".kiro/specs/sequel-duckdb-adapter/design.md"
183
+ - ".kiro/specs/sequel-duckdb-adapter/requirements.md"
184
+ - ".kiro/specs/sequel-duckdb-adapter/tasks.md"
185
+ - ".kiro/specs/sql-expression-handling-fix/design.md"
186
+ - ".kiro/specs/sql-expression-handling-fix/requirements.md"
187
+ - ".kiro/specs/sql-expression-handling-fix/tasks.md"
188
+ - ".kiro/specs/test-infrastructure-improvements/requirements.md"
189
+ - ".kiro/steering/product.md"
190
+ - ".kiro/steering/structure.md"
191
+ - ".kiro/steering/tech.md"
192
+ - ".kiro/steering/testing.md"
193
+ - ".rubocop.yml"
194
+ - ".yardopts"
195
+ - API_DOCUMENTATION.md
196
+ - CHANGELOG.md
197
+ - LICENSE
198
+ - MIGRATION_EXAMPLES.md
199
+ - PERFORMANCE_OPTIMIZATIONS.md
200
+ - README.md
201
+ - Rakefile
202
+ - TASK_10.2_IMPLEMENTATION_SUMMARY.md
203
+ - docs/DUCKDB_SQL_PATTERNS.md
204
+ - docs/TASK_12_VERIFICATION_SUMMARY.md
205
+ - lib/sequel/adapters/duckdb.rb
206
+ - lib/sequel/adapters/shared/duckdb.rb
207
+ - lib/sequel/duckdb.rb
208
+ - lib/sequel/duckdb/version.rb
209
+ - sig/sequel/duckdb.rbs
210
+ homepage: https://github.com/sequel/sequel-duckdb
211
+ licenses:
212
+ - MIT
213
+ metadata:
214
+ allowed_push_host: https://rubygems.org
215
+ homepage_uri: https://github.com/sequel/sequel-duckdb
216
+ changelog_uri: https://github.com/sequel/sequel-duckdb/blob/main/CHANGELOG.md
217
+ rubygems_mfa_required: 'true'
218
+ rdoc_options: []
219
+ require_paths:
220
+ - lib
221
+ required_ruby_version: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: 3.1.0
226
+ required_rubygems_version: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ requirements: []
232
+ rubygems_version: 3.6.7
233
+ specification_version: 4
234
+ summary: Sequel database adapter for DuckDB
235
+ test_files: []