sqlite3 1.3.13 → 1.4.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 +5 -5
- data/.gemtest +0 -0
- data/.travis.yml +32 -0
- data/CHANGELOG.rdoc +15 -1
- data/Gemfile +6 -4
- data/Manifest.txt +12 -4
- data/README.rdoc +1 -1
- data/Rakefile +0 -2
- data/appveyor.yml +36 -0
- data/ext/sqlite3/aggregator.c +273 -0
- data/ext/sqlite3/aggregator.h +12 -0
- data/ext/sqlite3/database.c +134 -199
- data/ext/sqlite3/database.h +2 -0
- data/ext/sqlite3/exception.c +6 -2
- data/ext/sqlite3/extconf.rb +39 -10
- data/ext/sqlite3/sqlite3.c +10 -1
- data/ext/sqlite3/sqlite3_ruby.h +0 -7
- data/ext/sqlite3/statement.c +11 -16
- data/lib/sqlite3/constants.rb +1 -0
- data/lib/sqlite3/database.rb +196 -51
- data/lib/sqlite3/errors.rb +1 -10
- data/lib/sqlite3/pragmas.rb +7 -7
- data/lib/sqlite3/resultset.rb +2 -10
- data/lib/sqlite3/version.rb +1 -1
- data/{tasks → rakelib}/faq.rake +0 -0
- data/{tasks → rakelib}/gem.rake +6 -4
- data/{tasks → rakelib}/native.rake +4 -0
- data/{tasks → rakelib}/vendor_sqlite3.rake +0 -0
- data/test/test_database.rb +79 -6
- data/test/test_database_flags.rb +95 -0
- data/test/test_database_readwrite.rb +41 -0
- data/test/test_integration.rb +12 -81
- data/test/test_integration_aggregate.rb +336 -0
- data/test/test_statement.rb +11 -3
- metadata +56 -27
@@ -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
|
data/test/test_statement.rb
CHANGED
@@ -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 row.first.types, ['BLOB']
|
123
131
|
end
|
124
132
|
|
125
133
|
def test_bind_64
|
@@ -216,7 +224,7 @@ module SQLite3
|
|
216
224
|
|
217
225
|
def test_column_name
|
218
226
|
assert_equal "'foo'", @stmt.column_name(0)
|
219
|
-
|
227
|
+
assert_nil @stmt.column_name(10)
|
220
228
|
end
|
221
229
|
|
222
230
|
def test_bind_parameter_count
|
@@ -243,7 +251,7 @@ module SQLite3
|
|
243
251
|
assert stmt.execute('employee-2')
|
244
252
|
end
|
245
253
|
|
246
|
-
def test_clear_bindings
|
254
|
+
def test_clear_bindings!
|
247
255
|
stmt = @db.prepare('select ?, ?')
|
248
256
|
stmt.bind_param 1, "foo"
|
249
257
|
stmt.bind_param 2, "bar"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-02-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: minitest
|
@@ -18,72 +18,72 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '5.
|
21
|
+
version: '5.11'
|
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.
|
28
|
+
version: '5.11'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: rake-compiler
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '1.0'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '1.0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
|
-
name: rake-compiler
|
44
|
+
name: rake-compiler-dock
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
49
|
+
version: 0.6.0
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
56
|
+
version: 0.6.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
58
|
+
name: mini_portile
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.6.2
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.6.2
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: hoe-bundler
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0
|
77
|
+
version: '1.0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0
|
84
|
+
version: '1.0'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
|
-
name: hoe-
|
86
|
+
name: hoe-gemspec
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
@@ -96,20 +96,40 @@ dependencies:
|
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '1.0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rdoc
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '4.0'
|
106
|
+
- - "<"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '7'
|
109
|
+
type: :development
|
110
|
+
prerelease: false
|
111
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '4.0'
|
116
|
+
- - "<"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '7'
|
99
119
|
- !ruby/object:Gem::Dependency
|
100
120
|
name: hoe
|
101
121
|
requirement: !ruby/object:Gem::Requirement
|
102
122
|
requirements:
|
103
123
|
- - "~>"
|
104
124
|
- !ruby/object:Gem::Version
|
105
|
-
version: '3.
|
125
|
+
version: '3.17'
|
106
126
|
type: :development
|
107
127
|
prerelease: false
|
108
128
|
version_requirements: !ruby/object:Gem::Requirement
|
109
129
|
requirements:
|
110
130
|
- - "~>"
|
111
131
|
- !ruby/object:Gem::Version
|
112
|
-
version: '3.
|
132
|
+
version: '3.17'
|
113
133
|
description: |-
|
114
134
|
This module allows Ruby programs to interface with the SQLite3
|
115
135
|
database engine (http://www.sqlite.org). You must have the
|
@@ -128,12 +148,15 @@ extra_rdoc_files:
|
|
128
148
|
- CHANGELOG.rdoc
|
129
149
|
- Manifest.txt
|
130
150
|
- README.rdoc
|
151
|
+
- ext/sqlite3/aggregator.c
|
131
152
|
- ext/sqlite3/backup.c
|
132
153
|
- ext/sqlite3/database.c
|
133
154
|
- ext/sqlite3/exception.c
|
134
155
|
- ext/sqlite3/sqlite3.c
|
135
156
|
- ext/sqlite3/statement.c
|
136
157
|
files:
|
158
|
+
- ".gemtest"
|
159
|
+
- ".travis.yml"
|
137
160
|
- API_CHANGES.rdoc
|
138
161
|
- CHANGELOG.rdoc
|
139
162
|
- ChangeLog.cvs
|
@@ -142,6 +165,9 @@ files:
|
|
142
165
|
- Manifest.txt
|
143
166
|
- README.rdoc
|
144
167
|
- Rakefile
|
168
|
+
- appveyor.yml
|
169
|
+
- ext/sqlite3/aggregator.c
|
170
|
+
- ext/sqlite3/aggregator.h
|
145
171
|
- ext/sqlite3/backup.c
|
146
172
|
- ext/sqlite3/backup.h
|
147
173
|
- ext/sqlite3/database.c
|
@@ -165,19 +191,22 @@ files:
|
|
165
191
|
- lib/sqlite3/translator.rb
|
166
192
|
- lib/sqlite3/value.rb
|
167
193
|
- lib/sqlite3/version.rb
|
194
|
+
- rakelib/faq.rake
|
195
|
+
- rakelib/gem.rake
|
196
|
+
- rakelib/native.rake
|
197
|
+
- rakelib/vendor_sqlite3.rake
|
168
198
|
- setup.rb
|
169
|
-
- tasks/faq.rake
|
170
|
-
- tasks/gem.rake
|
171
|
-
- tasks/native.rake
|
172
|
-
- tasks/vendor_sqlite3.rake
|
173
199
|
- test/helper.rb
|
174
200
|
- test/test_backup.rb
|
175
201
|
- test/test_collation.rb
|
176
202
|
- test/test_database.rb
|
203
|
+
- test/test_database_flags.rb
|
177
204
|
- test/test_database_readonly.rb
|
205
|
+
- test/test_database_readwrite.rb
|
178
206
|
- test/test_deprecated.rb
|
179
207
|
- test/test_encoding.rb
|
180
208
|
- test/test_integration.rb
|
209
|
+
- test/test_integration_aggregate.rb
|
181
210
|
- test/test_integration_open_close.rb
|
182
211
|
- test/test_integration_pending.rb
|
183
212
|
- test/test_integration_resultset.rb
|
@@ -188,8 +217,9 @@ files:
|
|
188
217
|
- test/test_statement_execute.rb
|
189
218
|
homepage: https://github.com/sparklemotion/sqlite3-ruby
|
190
219
|
licenses:
|
191
|
-
- BSD-3
|
192
|
-
metadata:
|
220
|
+
- BSD-3-Clause
|
221
|
+
metadata:
|
222
|
+
msys2_mingw_dependencies: sqlite3
|
193
223
|
post_install_message:
|
194
224
|
rdoc_options:
|
195
225
|
- "--main"
|
@@ -207,8 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
237
|
- !ruby/object:Gem::Version
|
208
238
|
version: 1.3.5
|
209
239
|
requirements: []
|
210
|
-
|
211
|
-
rubygems_version: 2.6.8
|
240
|
+
rubygems_version: 3.0.1
|
212
241
|
signing_key:
|
213
242
|
specification_version: 4
|
214
243
|
summary: This module allows Ruby programs to interface with the SQLite3 database engine
|