sqlite3 1.3.11-x64-mingw32 → 1.5.0.rc1-x64-mingw32
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 +5 -5
- data/.gemtest +0 -0
- data/{API_CHANGES.rdoc → API_CHANGES.md} +3 -4
- data/CHANGELOG.md +419 -0
- data/CONTRIBUTING.md +24 -0
- data/Gemfile +2 -15
- data/LICENSE-DEPENDENCIES +20 -0
- data/README.md +233 -0
- data/ext/sqlite3/aggregator.c +273 -0
- data/ext/sqlite3/aggregator.h +12 -0
- data/ext/sqlite3/database.c +210 -182
- data/ext/sqlite3/database.h +2 -0
- data/ext/sqlite3/exception.c +6 -2
- data/ext/sqlite3/extconf.rb +148 -39
- data/ext/sqlite3/sqlite3.c +67 -1
- data/ext/sqlite3/sqlite3_ruby.h +0 -7
- data/ext/sqlite3/statement.c +15 -20
- data/faq/faq.md +431 -0
- data/faq/faq.yml +1 -1
- data/lib/sqlite3/2.6/sqlite3_native.so +0 -0
- data/lib/sqlite3/2.7/sqlite3_native.so +0 -0
- data/lib/sqlite3/3.0/sqlite3_native.so +0 -0
- data/lib/sqlite3/constants.rb +2 -1
- data/lib/sqlite3/database.rb +209 -58
- data/lib/sqlite3/errors.rb +1 -10
- data/lib/sqlite3/pragmas.rb +372 -57
- data/lib/sqlite3/resultset.rb +2 -10
- data/lib/sqlite3/statement.rb +2 -1
- data/lib/sqlite3/translator.rb +1 -1
- data/lib/sqlite3/version.rb +4 -4
- data/lib/sqlite3.rb +5 -0
- data/test/helper.rb +9 -0
- data/test/test_database.rb +180 -9
- data/test/test_database_flags.rb +95 -0
- data/test/test_database_readonly.rb +9 -2
- data/test/test_database_readwrite.rb +41 -0
- data/test/test_integration.rb +12 -77
- data/test/test_integration_aggregate.rb +336 -0
- data/test/test_integration_resultset.rb +0 -17
- data/test/test_sqlite3.rb +16 -0
- data/test/test_statement.rb +12 -9
- metadata +55 -84
- data/CHANGELOG.rdoc +0 -287
- data/Manifest.txt +0 -52
- data/README.rdoc +0 -101
- data/Rakefile +0 -10
- data/lib/sqlite3/2.0/sqlite3_native.so +0 -0
- data/lib/sqlite3/2.1/sqlite3_native.so +0 -0
- data/lib/sqlite3/2.2/sqlite3_native.so +0 -0
- data/setup.rb +0 -1333
- data/tasks/faq.rake +0 -9
- data/tasks/gem.rake +0 -38
- data/tasks/native.rake +0 -52
- data/tasks/vendor_sqlite3.rake +0 -97
@@ -0,0 +1,336 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TC_Integration_Aggregate < SQLite3::TestCase
|
4
|
+
def setup
|
5
|
+
@db = SQLite3::Database.new(":memory:")
|
6
|
+
@db.transaction do
|
7
|
+
@db.execute "create table foo ( a integer primary key, b text, c integer )"
|
8
|
+
@db.execute "insert into foo ( b, c ) values ( 'foo', 10 )"
|
9
|
+
@db.execute "insert into foo ( b, c ) values ( 'bar', 11 )"
|
10
|
+
@db.execute "insert into foo ( b, c ) values ( 'bar', 12 )"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
@db.close
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create_aggregate_without_block
|
19
|
+
step = proc do |ctx,a|
|
20
|
+
ctx[:sum] ||= 0
|
21
|
+
ctx[:sum] += a.to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
final = proc { |ctx| ctx.result = ctx[:sum] }
|
25
|
+
|
26
|
+
@db.create_aggregate( "accumulate", 1, step, final )
|
27
|
+
|
28
|
+
value = @db.get_first_value( "select accumulate(a) from foo" )
|
29
|
+
assert_equal 6, value
|
30
|
+
|
31
|
+
# calling #get_first_value twice don't add up to the latest result
|
32
|
+
value = @db.get_first_value( "select accumulate(a) from foo" )
|
33
|
+
assert_equal 6, value
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_create_aggregate_with_block
|
37
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
38
|
+
step do |ctx,a|
|
39
|
+
ctx[:sum] ||= 0
|
40
|
+
ctx[:sum] += a.to_i
|
41
|
+
end
|
42
|
+
|
43
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
44
|
+
end
|
45
|
+
|
46
|
+
value = @db.get_first_value( "select accumulate(a) from foo" )
|
47
|
+
assert_equal 6, value
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_create_aggregate_with_group_by
|
51
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
52
|
+
step do |ctx,a|
|
53
|
+
ctx[:sum] ||= 0
|
54
|
+
ctx[:sum] += a.to_i
|
55
|
+
end
|
56
|
+
|
57
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
58
|
+
end
|
59
|
+
|
60
|
+
values = @db.execute( "select b, accumulate(c) from foo group by b order by b" )
|
61
|
+
assert_equal "bar", values[0][0]
|
62
|
+
assert_equal 23, values[0][1]
|
63
|
+
assert_equal "foo", values[1][0]
|
64
|
+
assert_equal 10, values[1][1]
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_create_aggregate_with_the_same_function_twice_in_a_query
|
68
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
69
|
+
step do |ctx,a|
|
70
|
+
ctx[:sum] ||= 0
|
71
|
+
ctx[:sum] += a.to_i
|
72
|
+
end
|
73
|
+
|
74
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
75
|
+
end
|
76
|
+
|
77
|
+
values = @db.get_first_row( "select accumulate(a), accumulate(c) from foo" )
|
78
|
+
assert_equal 6, values[0]
|
79
|
+
assert_equal 33, values[1]
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_create_aggregate_with_two_different_functions
|
83
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
84
|
+
step do |ctx,a|
|
85
|
+
ctx[:sum] ||= 0
|
86
|
+
ctx[:sum] += a.to_i
|
87
|
+
end
|
88
|
+
|
89
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
90
|
+
end
|
91
|
+
|
92
|
+
@db.create_aggregate( "multiply", 1 ) do
|
93
|
+
step do |ctx,a|
|
94
|
+
ctx[:sum] ||= 1
|
95
|
+
ctx[:sum] *= a.to_i
|
96
|
+
end
|
97
|
+
|
98
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
99
|
+
end
|
100
|
+
|
101
|
+
GC.start
|
102
|
+
|
103
|
+
values = @db.get_first_row( "select accumulate(a), multiply(c) from foo" )
|
104
|
+
assert_equal 6, values[0]
|
105
|
+
assert_equal 1320, values[1]
|
106
|
+
|
107
|
+
value = @db.get_first_value( "select accumulate(c) from foo")
|
108
|
+
assert_equal 33, value
|
109
|
+
|
110
|
+
value = @db.get_first_value( "select multiply(a) from foo")
|
111
|
+
assert_equal 6, value
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_create_aggregate_overwrite_function
|
115
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
116
|
+
step do |ctx,a|
|
117
|
+
ctx[:sum] ||= 0
|
118
|
+
ctx[:sum] += a.to_i
|
119
|
+
end
|
120
|
+
|
121
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
122
|
+
end
|
123
|
+
|
124
|
+
value = @db.get_first_value( "select accumulate(c) from foo")
|
125
|
+
assert_equal 33, value
|
126
|
+
|
127
|
+
GC.start
|
128
|
+
|
129
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
130
|
+
step do |ctx,a|
|
131
|
+
ctx[:sum] ||= 1
|
132
|
+
ctx[:sum] *= a.to_i
|
133
|
+
end
|
134
|
+
|
135
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
136
|
+
end
|
137
|
+
|
138
|
+
value = @db.get_first_value( "select accumulate(c) from foo")
|
139
|
+
assert_equal 1320, value
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_create_aggregate_overwrite_function_with_different_arity
|
143
|
+
@db.create_aggregate( "accumulate", -1 ) do
|
144
|
+
step do |ctx,*args|
|
145
|
+
ctx[:sum] ||= 0
|
146
|
+
args.each { |a| ctx[:sum] += a.to_i }
|
147
|
+
end
|
148
|
+
|
149
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
150
|
+
end
|
151
|
+
|
152
|
+
@db.create_aggregate( "accumulate", 2 ) do
|
153
|
+
step do |ctx,a,b|
|
154
|
+
ctx[:sum] ||= 1
|
155
|
+
ctx[:sum] *= (a.to_i + b.to_i)
|
156
|
+
end
|
157
|
+
|
158
|
+
finalize { |ctx| ctx.result = ctx[:sum] }
|
159
|
+
end
|
160
|
+
|
161
|
+
GC.start
|
162
|
+
|
163
|
+
values = @db.get_first_row( "select accumulate(c), accumulate(a,c) from foo")
|
164
|
+
assert_equal 33, values[0]
|
165
|
+
assert_equal 2145, values[1]
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_create_aggregate_with_invalid_arity
|
169
|
+
assert_raise ArgumentError do
|
170
|
+
@db.create_aggregate( "accumulate", 1000 ) do
|
171
|
+
step {|ctx,*args| }
|
172
|
+
finalize { |ctx| }
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
class CustomException < Exception
|
178
|
+
end
|
179
|
+
|
180
|
+
def test_create_aggregate_with_exception_in_step
|
181
|
+
@db.create_aggregate( "raiseexception", 1 ) do
|
182
|
+
step do |ctx,a|
|
183
|
+
raise CustomException.new( "bogus aggregate handler" )
|
184
|
+
end
|
185
|
+
|
186
|
+
finalize { |ctx| ctx.result = 42 }
|
187
|
+
end
|
188
|
+
|
189
|
+
assert_raise CustomException do
|
190
|
+
@db.get_first_value( "select raiseexception(a) from foo")
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def test_create_aggregate_with_exception_in_finalize
|
195
|
+
@db.create_aggregate( "raiseexception", 1 ) do
|
196
|
+
step do |ctx,a|
|
197
|
+
raise CustomException.new( "bogus aggregate handler" )
|
198
|
+
end
|
199
|
+
|
200
|
+
finalize do |ctx|
|
201
|
+
raise CustomException.new( "bogus aggregate handler" )
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
assert_raise CustomException do
|
206
|
+
@db.get_first_value( "select raiseexception(a) from foo")
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def test_create_aggregate_with_no_data
|
211
|
+
@db.create_aggregate( "accumulate", 1 ) do
|
212
|
+
step do |ctx,a|
|
213
|
+
ctx[:sum] ||= 0
|
214
|
+
ctx[:sum] += a.to_i
|
215
|
+
end
|
216
|
+
|
217
|
+
finalize { |ctx| ctx.result = ctx[:sum] || 0 }
|
218
|
+
end
|
219
|
+
|
220
|
+
value = @db.get_first_value(
|
221
|
+
"select accumulate(a) from foo where a = 100" )
|
222
|
+
assert_equal 0, value
|
223
|
+
end
|
224
|
+
|
225
|
+
class AggregateHandler
|
226
|
+
class << self
|
227
|
+
def arity; 1; end
|
228
|
+
def text_rep; SQLite3::Constants::TextRep::ANY; end
|
229
|
+
def name; "multiply"; end
|
230
|
+
end
|
231
|
+
def step(ctx, a)
|
232
|
+
ctx[:buffer] ||= 1
|
233
|
+
ctx[:buffer] *= a.to_i
|
234
|
+
end
|
235
|
+
def finalize(ctx); ctx.result = ctx[:buffer]; end
|
236
|
+
end
|
237
|
+
|
238
|
+
def test_aggregate_initialized_twice
|
239
|
+
initialized = 0
|
240
|
+
handler = Class.new(AggregateHandler) do
|
241
|
+
define_method(:initialize) do
|
242
|
+
initialized += 1
|
243
|
+
super()
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
@db.create_aggregate_handler handler
|
248
|
+
@db.get_first_value( "select multiply(a) from foo" )
|
249
|
+
@db.get_first_value( "select multiply(a) from foo" )
|
250
|
+
assert_equal 2, initialized
|
251
|
+
end
|
252
|
+
|
253
|
+
def test_create_aggregate_handler_call_with_wrong_arity
|
254
|
+
@db.create_aggregate_handler AggregateHandler
|
255
|
+
|
256
|
+
assert_raise(SQLite3::SQLException) do
|
257
|
+
@db.get_first_value( "select multiply(a,c) from foo" )
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
261
|
+
class RaiseExceptionStepAggregateHandler
|
262
|
+
class << self
|
263
|
+
def arity; 1; end
|
264
|
+
def text_rep; SQLite3::Constants::TextRep::ANY; end
|
265
|
+
def name; "raiseexception"; end
|
266
|
+
end
|
267
|
+
def step(ctx, a)
|
268
|
+
raise CustomException.new( "bogus aggregate handler" )
|
269
|
+
end
|
270
|
+
def finalize(ctx); ctx.result = nil; end
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_create_aggregate_handler_with_exception_step
|
274
|
+
@db.create_aggregate_handler RaiseExceptionStepAggregateHandler
|
275
|
+
assert_raise CustomException do
|
276
|
+
@db.get_first_value( "select raiseexception(a) from foo")
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
class RaiseExceptionNewAggregateHandler
|
281
|
+
class << self
|
282
|
+
def name; "raiseexception"; end
|
283
|
+
end
|
284
|
+
def initialize
|
285
|
+
raise CustomException.new( "bogus aggregate handler" )
|
286
|
+
end
|
287
|
+
def step(ctx, a); end
|
288
|
+
def finalize(ctx); ctx.result = nil; end
|
289
|
+
end
|
290
|
+
|
291
|
+
def test_create_aggregate_handler_with_exception_new
|
292
|
+
@db.create_aggregate_handler RaiseExceptionNewAggregateHandler
|
293
|
+
assert_raise CustomException do
|
294
|
+
@db.get_first_value( "select raiseexception(a) from foo")
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
def test_create_aggregate_handler
|
299
|
+
@db.create_aggregate_handler AggregateHandler
|
300
|
+
value = @db.get_first_value( "select multiply(a) from foo" )
|
301
|
+
assert_equal 6, value
|
302
|
+
end
|
303
|
+
|
304
|
+
class AccumulateAggregator
|
305
|
+
def step(*args)
|
306
|
+
@sum ||= 0
|
307
|
+
args.each { |a| @sum += a.to_i }
|
308
|
+
end
|
309
|
+
|
310
|
+
def finalize
|
311
|
+
@sum
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
class AccumulateAggregator2
|
316
|
+
def step(a, b)
|
317
|
+
@sum ||= 1
|
318
|
+
@sum *= (a.to_i + b.to_i)
|
319
|
+
end
|
320
|
+
|
321
|
+
def finalize
|
322
|
+
@sum
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
def test_define_aggregator_with_two_different_arities
|
327
|
+
@db.define_aggregator( "accumulate", AccumulateAggregator.new )
|
328
|
+
@db.define_aggregator( "accumulate", AccumulateAggregator2.new )
|
329
|
+
|
330
|
+
GC.start
|
331
|
+
|
332
|
+
values = @db.get_first_row( "select accumulate(c), accumulate(a,c) from foo")
|
333
|
+
assert_equal 33, values[0]
|
334
|
+
assert_equal 2145, values[1]
|
335
|
+
end
|
336
|
+
end
|
@@ -105,23 +105,6 @@ class TC_ResultSet < SQLite3::TestCase
|
|
105
105
|
assert_equal hash[1], "foo"
|
106
106
|
end
|
107
107
|
|
108
|
-
def test_tainted_results_as_hash
|
109
|
-
@db.results_as_hash = true
|
110
|
-
@result.reset( 1 )
|
111
|
-
row = @result.next
|
112
|
-
row.each do |_, v|
|
113
|
-
assert(v.tainted?) if String === v
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_tainted_row_values
|
118
|
-
@result.reset( 1 )
|
119
|
-
row = @result.next
|
120
|
-
row.each do |v|
|
121
|
-
assert(v.tainted?) if String === v
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
108
|
def test_each
|
126
109
|
called = 0
|
127
110
|
@result.reset( 1, 2 )
|
data/test/test_sqlite3.rb
CHANGED
@@ -5,5 +5,21 @@ module SQLite3
|
|
5
5
|
def test_libversion
|
6
6
|
assert_not_nil SQLite3.libversion
|
7
7
|
end
|
8
|
+
|
9
|
+
def test_threadsafe
|
10
|
+
assert_not_nil SQLite3.threadsafe
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_threadsafe?
|
14
|
+
if SQLite3.threadsafe > 0
|
15
|
+
assert SQLite3.threadsafe?
|
16
|
+
else
|
17
|
+
refute SQLite3.threadsafe?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_version_strings
|
22
|
+
assert_equal(SQLite3::VERSION, SQLite3::VersionProxy::STRING)
|
23
|
+
end
|
8
24
|
end
|
9
25
|
end
|
data/test/test_statement.rb
CHANGED
@@ -34,7 +34,7 @@ module SQLite3
|
|
34
34
|
# UNIQUE constraint failed: *table_name*.*column_name*
|
35
35
|
# Older versions of SQLite return:
|
36
36
|
# column *column_name* is not unique
|
37
|
-
assert_match
|
37
|
+
assert_match(/(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)/, exception.message)
|
38
38
|
end
|
39
39
|
|
40
40
|
###
|
@@ -119,7 +119,15 @@ module SQLite3
|
|
119
119
|
assert_equal [nil], result
|
120
120
|
end
|
121
121
|
|
122
|
-
def
|
122
|
+
def test_bind_blob
|
123
|
+
@db.execute('create table foo(text BLOB)')
|
124
|
+
stmt = SQLite3::Statement.new(@db, 'insert into foo(text) values (?)')
|
125
|
+
stmt.bind_param(1, SQLite3::Blob.new('hello'))
|
126
|
+
stmt.execute
|
127
|
+
row = @db.execute('select * from foo')
|
128
|
+
|
129
|
+
assert_equal ['hello'], row.first
|
130
|
+
assert_equal ['blob'], row.first.types
|
123
131
|
end
|
124
132
|
|
125
133
|
def test_bind_64
|
@@ -190,11 +198,6 @@ module SQLite3
|
|
190
198
|
assert_equal ['foo'], r
|
191
199
|
end
|
192
200
|
|
193
|
-
def test_tainted
|
194
|
-
r = @stmt.step
|
195
|
-
assert r.first.tainted?
|
196
|
-
end
|
197
|
-
|
198
201
|
def test_step_twice
|
199
202
|
assert_not_nil @stmt.step
|
200
203
|
assert !@stmt.done?
|
@@ -216,7 +219,7 @@ module SQLite3
|
|
216
219
|
|
217
220
|
def test_column_name
|
218
221
|
assert_equal "'foo'", @stmt.column_name(0)
|
219
|
-
|
222
|
+
assert_nil @stmt.column_name(10)
|
220
223
|
end
|
221
224
|
|
222
225
|
def test_bind_parameter_count
|
@@ -243,7 +246,7 @@ module SQLite3
|
|
243
246
|
assert stmt.execute('employee-2')
|
244
247
|
end
|
245
248
|
|
246
|
-
def test_clear_bindings
|
249
|
+
def test_clear_bindings!
|
247
250
|
stmt = @db.prepare('select ?, ?')
|
248
251
|
stmt.bind_param 1, "foo"
|
249
252
|
stmt.bind_param 2, "bar"
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0.rc1
|
5
5
|
platform: x64-mingw32
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
8
8
|
- Luis Lavena
|
9
9
|
- Aaron Patterson
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-07-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: minitest
|
@@ -18,98 +18,62 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '5.
|
21
|
+
version: '5.15'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '5.
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
name: rdoc
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
32
|
-
requirements:
|
33
|
-
- - "~>"
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: '4.0'
|
36
|
-
type: :development
|
37
|
-
prerelease: false
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
39
|
-
requirements:
|
40
|
-
- - "~>"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '4.0'
|
28
|
+
version: '5.15'
|
43
29
|
- !ruby/object:Gem::Dependency
|
44
30
|
name: rake-compiler
|
45
31
|
requirement: !ruby/object:Gem::Requirement
|
46
32
|
requirements:
|
47
33
|
- - "~>"
|
48
34
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
35
|
+
version: 1.2.0
|
50
36
|
type: :development
|
51
37
|
prerelease: false
|
52
38
|
version_requirements: !ruby/object:Gem::Requirement
|
53
39
|
requirements:
|
54
40
|
- - "~>"
|
55
41
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
42
|
+
version: 1.2.0
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: rake-compiler-dock
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
60
46
|
requirements:
|
61
47
|
- - "~>"
|
62
48
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
49
|
+
version: 1.2.1
|
64
50
|
type: :development
|
65
51
|
prerelease: false
|
66
52
|
version_requirements: !ruby/object:Gem::Requirement
|
67
53
|
requirements:
|
68
54
|
- - "~>"
|
69
55
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
56
|
+
version: 1.2.1
|
71
57
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
58
|
+
name: rdoc
|
73
59
|
requirement: !ruby/object:Gem::Requirement
|
74
60
|
requirements:
|
75
|
-
- - "
|
61
|
+
- - ">="
|
76
62
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0
|
78
|
-
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - "~>"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 0.6.2
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: hoe-bundler
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
88
|
-
requirements:
|
89
|
-
- - "~>"
|
63
|
+
version: '4.0'
|
64
|
+
- - "<"
|
90
65
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
66
|
+
version: '7'
|
92
67
|
type: :development
|
93
68
|
prerelease: false
|
94
69
|
version_requirements: !ruby/object:Gem::Requirement
|
95
70
|
requirements:
|
96
|
-
- - "
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '1.0'
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: hoe
|
101
|
-
requirement: !ruby/object:Gem::Requirement
|
102
|
-
requirements:
|
103
|
-
- - "~>"
|
71
|
+
- - ">="
|
104
72
|
- !ruby/object:Gem::Version
|
105
|
-
version: '
|
106
|
-
|
107
|
-
prerelease: false
|
108
|
-
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
requirements:
|
110
|
-
- - "~>"
|
73
|
+
version: '4.0'
|
74
|
+
- - "<"
|
111
75
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
76
|
+
version: '7'
|
113
77
|
description: |-
|
114
78
|
This module allows Ruby programs to interface with the SQLite3
|
115
79
|
database engine (http://www.sqlite.org). You must have the
|
@@ -117,30 +81,30 @@ description: |-
|
|
117
81
|
|
118
82
|
Note that this module is only compatible with SQLite 3.6.16 or newer.
|
119
83
|
email:
|
120
|
-
- jamis@37signals.com
|
121
|
-
- luislavena@gmail.com
|
122
|
-
- aaron@tenderlovemaking.com
|
123
84
|
executables: []
|
124
85
|
extensions: []
|
125
86
|
extra_rdoc_files:
|
126
|
-
- API_CHANGES.
|
127
|
-
- CHANGELOG.
|
128
|
-
-
|
129
|
-
-
|
87
|
+
- API_CHANGES.md
|
88
|
+
- CHANGELOG.md
|
89
|
+
- README.md
|
90
|
+
- ext/sqlite3/aggregator.c
|
130
91
|
- ext/sqlite3/backup.c
|
131
92
|
- ext/sqlite3/database.c
|
132
93
|
- ext/sqlite3/exception.c
|
133
94
|
- ext/sqlite3/sqlite3.c
|
134
95
|
- ext/sqlite3/statement.c
|
135
96
|
files:
|
136
|
-
-
|
137
|
-
-
|
97
|
+
- ".gemtest"
|
98
|
+
- API_CHANGES.md
|
99
|
+
- CHANGELOG.md
|
100
|
+
- CONTRIBUTING.md
|
138
101
|
- ChangeLog.cvs
|
139
102
|
- Gemfile
|
140
103
|
- LICENSE
|
141
|
-
-
|
142
|
-
- README.
|
143
|
-
-
|
104
|
+
- LICENSE-DEPENDENCIES
|
105
|
+
- README.md
|
106
|
+
- ext/sqlite3/aggregator.c
|
107
|
+
- ext/sqlite3/aggregator.h
|
144
108
|
- ext/sqlite3/backup.c
|
145
109
|
- ext/sqlite3/backup.h
|
146
110
|
- ext/sqlite3/database.c
|
@@ -152,12 +116,13 @@ files:
|
|
152
116
|
- ext/sqlite3/sqlite3_ruby.h
|
153
117
|
- ext/sqlite3/statement.c
|
154
118
|
- ext/sqlite3/statement.h
|
119
|
+
- faq/faq.md
|
155
120
|
- faq/faq.rb
|
156
121
|
- faq/faq.yml
|
157
122
|
- lib/sqlite3.rb
|
158
|
-
- lib/sqlite3/2.
|
159
|
-
- lib/sqlite3/2.
|
160
|
-
- lib/sqlite3/
|
123
|
+
- lib/sqlite3/2.6/sqlite3_native.so
|
124
|
+
- lib/sqlite3/2.7/sqlite3_native.so
|
125
|
+
- lib/sqlite3/3.0/sqlite3_native.so
|
161
126
|
- lib/sqlite3/constants.rb
|
162
127
|
- lib/sqlite3/database.rb
|
163
128
|
- lib/sqlite3/errors.rb
|
@@ -167,19 +132,17 @@ files:
|
|
167
132
|
- lib/sqlite3/translator.rb
|
168
133
|
- lib/sqlite3/value.rb
|
169
134
|
- lib/sqlite3/version.rb
|
170
|
-
- setup.rb
|
171
|
-
- tasks/faq.rake
|
172
|
-
- tasks/gem.rake
|
173
|
-
- tasks/native.rake
|
174
|
-
- tasks/vendor_sqlite3.rake
|
175
135
|
- test/helper.rb
|
176
136
|
- test/test_backup.rb
|
177
137
|
- test/test_collation.rb
|
178
138
|
- test/test_database.rb
|
139
|
+
- test/test_database_flags.rb
|
179
140
|
- test/test_database_readonly.rb
|
141
|
+
- test/test_database_readwrite.rb
|
180
142
|
- test/test_deprecated.rb
|
181
143
|
- test/test_encoding.rb
|
182
144
|
- test/test_integration.rb
|
145
|
+
- test/test_integration_aggregate.rb
|
183
146
|
- test/test_integration_open_close.rb
|
184
147
|
- test/test_integration_pending.rb
|
185
148
|
- test/test_integration_resultset.rb
|
@@ -190,28 +153,36 @@ files:
|
|
190
153
|
- test/test_statement_execute.rb
|
191
154
|
homepage: https://github.com/sparklemotion/sqlite3-ruby
|
192
155
|
licenses:
|
193
|
-
- BSD-3
|
194
|
-
metadata:
|
195
|
-
|
156
|
+
- BSD-3-Clause
|
157
|
+
metadata:
|
158
|
+
homepage_uri: https://github.com/sparklemotion/sqlite3-ruby
|
159
|
+
bug_tracker_uri: https://github.com/sparklemotion/sqlite3-ruby/issues
|
160
|
+
documentation_uri: https://www.rubydoc.info/gems/sqlite3
|
161
|
+
changelog_uri: https://github.com/sparklemotion/sqlite3-ruby/blob/master/CHANGELOG.md
|
162
|
+
source_code_uri: https://github.com/sparklemotion/sqlite3-ruby
|
163
|
+
rubygems_mfa_required: 'true'
|
164
|
+
post_install_message:
|
196
165
|
rdoc_options:
|
197
166
|
- "--main"
|
198
|
-
- README.
|
167
|
+
- README.md
|
199
168
|
require_paths:
|
200
169
|
- lib
|
201
170
|
required_ruby_version: !ruby/object:Gem::Requirement
|
202
171
|
requirements:
|
203
172
|
- - ">="
|
204
173
|
- !ruby/object:Gem::Version
|
205
|
-
version:
|
174
|
+
version: '2.6'
|
175
|
+
- - "<"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: 3.1.dev
|
206
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
179
|
requirements:
|
208
|
-
- - "
|
180
|
+
- - ">"
|
209
181
|
- !ruby/object:Gem::Version
|
210
|
-
version: 1.3.
|
182
|
+
version: 1.3.1
|
211
183
|
requirements: []
|
212
|
-
|
213
|
-
|
214
|
-
signing_key:
|
184
|
+
rubygems_version: 3.3.4
|
185
|
+
signing_key:
|
215
186
|
specification_version: 4
|
216
187
|
summary: This module allows Ruby programs to interface with the SQLite3 database engine
|
217
188
|
(http://www.sqlite.org)
|