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.
- checksums.yaml +7 -0
- data/.kiro/specs/advanced-sql-features-implementation/design.md +24 -0
- data/.kiro/specs/advanced-sql-features-implementation/requirements.md +43 -0
- data/.kiro/specs/advanced-sql-features-implementation/tasks.md +24 -0
- data/.kiro/specs/duckdb-sql-syntax-compatibility/design.md +258 -0
- data/.kiro/specs/duckdb-sql-syntax-compatibility/requirements.md +84 -0
- data/.kiro/specs/duckdb-sql-syntax-compatibility/tasks.md +94 -0
- data/.kiro/specs/edge-cases-and-validation-fixes/requirements.md +32 -0
- data/.kiro/specs/integration-test-database-setup/design.md +0 -0
- data/.kiro/specs/integration-test-database-setup/requirements.md +117 -0
- data/.kiro/specs/sequel-duckdb-adapter/design.md +542 -0
- data/.kiro/specs/sequel-duckdb-adapter/requirements.md +202 -0
- data/.kiro/specs/sequel-duckdb-adapter/tasks.md +247 -0
- data/.kiro/specs/sql-expression-handling-fix/design.md +298 -0
- data/.kiro/specs/sql-expression-handling-fix/requirements.md +86 -0
- data/.kiro/specs/sql-expression-handling-fix/tasks.md +22 -0
- data/.kiro/specs/test-infrastructure-improvements/requirements.md +106 -0
- data/.kiro/steering/product.md +22 -0
- data/.kiro/steering/structure.md +88 -0
- data/.kiro/steering/tech.md +124 -0
- data/.kiro/steering/testing.md +192 -0
- data/.rubocop.yml +103 -0
- data/.yardopts +8 -0
- data/API_DOCUMENTATION.md +919 -0
- data/CHANGELOG.md +131 -0
- data/LICENSE +21 -0
- data/MIGRATION_EXAMPLES.md +740 -0
- data/PERFORMANCE_OPTIMIZATIONS.md +723 -0
- data/README.md +692 -0
- data/Rakefile +27 -0
- data/TASK_10.2_IMPLEMENTATION_SUMMARY.md +164 -0
- data/docs/DUCKDB_SQL_PATTERNS.md +410 -0
- data/docs/TASK_12_VERIFICATION_SUMMARY.md +122 -0
- data/lib/sequel/adapters/duckdb.rb +256 -0
- data/lib/sequel/adapters/shared/duckdb.rb +2349 -0
- data/lib/sequel/duckdb/version.rb +16 -0
- data/lib/sequel/duckdb.rb +43 -0
- data/sig/sequel/duckdb.rbs +6 -0
- 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
|
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: []
|