sqlite3 1.4.2 → 1.7.2

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/{API_CHANGES.rdoc → API_CHANGES.md} +3 -4
  3. data/CHANGELOG.md +641 -0
  4. data/CONTRIBUTING.md +34 -0
  5. data/FAQ.md +431 -0
  6. data/Gemfile +7 -14
  7. data/INSTALLATION.md +259 -0
  8. data/LICENSE-DEPENDENCIES +20 -0
  9. data/README.md +110 -0
  10. data/dependencies.yml +14 -0
  11. data/ext/sqlite3/aggregator.c +10 -10
  12. data/ext/sqlite3/backup.c +26 -13
  13. data/ext/sqlite3/database.c +89 -38
  14. data/ext/sqlite3/database.h +2 -0
  15. data/ext/sqlite3/extconf.rb +269 -84
  16. data/ext/sqlite3/sqlite3.c +5 -2
  17. data/ext/sqlite3/sqlite3_ruby.h +5 -2
  18. data/ext/sqlite3/statement.c +37 -28
  19. data/lib/sqlite3/constants.rb +1 -1
  20. data/lib/sqlite3/database.rb +55 -30
  21. data/lib/sqlite3/pragmas.rb +13 -6
  22. data/lib/sqlite3/resultset.rb +4 -12
  23. data/lib/sqlite3/statement.rb +2 -1
  24. data/lib/sqlite3/translator.rb +2 -3
  25. data/lib/sqlite3/version.rb +3 -5
  26. data/ports/archives/sqlite-autoconf-3450100.tar.gz +0 -0
  27. data/test/helper.rb +9 -0
  28. data/test/test_database.rb +182 -17
  29. data/test/test_deprecated.rb +10 -5
  30. data/test/test_encoding.rb +10 -0
  31. data/test/test_integration_resultset.rb +2 -2
  32. data/test/test_integration_statement.rb +2 -2
  33. data/test/test_pragmas.rb +22 -0
  34. data/test/test_result_set.rb +18 -8
  35. data/test/test_sqlite3.rb +9 -0
  36. data/test/test_statement.rb +28 -1
  37. data/test/test_statement_execute.rb +4 -0
  38. metadata +36 -144
  39. data/.travis.yml +0 -33
  40. data/CHANGELOG.rdoc +0 -318
  41. data/Manifest.txt +0 -60
  42. data/README.rdoc +0 -118
  43. data/Rakefile +0 -8
  44. data/appveyor.yml +0 -36
  45. data/faq/faq.rb +0 -145
  46. data/faq/faq.yml +0 -426
  47. data/rakelib/faq.rake +0 -9
  48. data/rakelib/gem.rake +0 -40
  49. data/rakelib/native.rake +0 -56
  50. data/rakelib/vendor_sqlite3.rake +0 -97
  51. data/setup.rb +0 -1333
@@ -7,6 +7,11 @@ module SQLite3
7
7
  @stmt = SQLite3::Statement.new(@db, "select 'foo'")
8
8
  end
9
9
 
10
+ def teardown
11
+ @stmt.close if !@stmt.closed?
12
+ @db.close
13
+ end
14
+
10
15
  def test_double_close_does_not_segv
11
16
  @db.execute 'CREATE TABLE "things" ("number" float NOT NULL)'
12
17
 
@@ -35,6 +40,8 @@ module SQLite3
35
40
  # Older versions of SQLite return:
36
41
  # column *column_name* is not unique
37
42
  assert_match(/(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)/, exception.message)
43
+
44
+ stmt.close
38
45
  end
39
46
 
40
47
  ###
@@ -46,6 +53,7 @@ module SQLite3
46
53
  if stmt.respond_to?(:database_name)
47
54
  assert_equal 'main', stmt.database_name(0)
48
55
  end
56
+ stmt.close
49
57
  end
50
58
 
51
59
  def test_prepare_blob
@@ -77,6 +85,7 @@ module SQLite3
77
85
  def test_new_with_remainder
78
86
  stmt = SQLite3::Statement.new(@db, "select 'foo';bar")
79
87
  assert_equal 'bar', stmt.remainder
88
+ stmt.close
80
89
  end
81
90
 
82
91
  def test_empty_remainder
@@ -101,6 +110,7 @@ module SQLite3
101
110
  result = nil
102
111
  stmt.each { |x| result = x }
103
112
  assert_equal ['hello'], result
113
+ stmt.close
104
114
  end
105
115
 
106
116
  def test_bind_param_int
@@ -109,6 +119,7 @@ module SQLite3
109
119
  result = nil
110
120
  stmt.each { |x| result = x }
111
121
  assert_equal [10], result
122
+ stmt.close
112
123
  end
113
124
 
114
125
  def test_bind_nil
@@ -117,6 +128,7 @@ module SQLite3
117
128
  result = nil
118
129
  stmt.each { |x| result = x }
119
130
  assert_equal [nil], result
131
+ stmt.close
120
132
  end
121
133
 
122
134
  def test_bind_blob
@@ -125,9 +137,12 @@ module SQLite3
125
137
  stmt.bind_param(1, SQLite3::Blob.new('hello'))
126
138
  stmt.execute
127
139
  row = @db.execute('select * from foo')
140
+ stmt.close
128
141
 
129
142
  assert_equal ['hello'], row.first
130
- assert_equal row.first.types, ['BLOB']
143
+ capture_io do # hush deprecation warning
144
+ assert_equal ['blob'], row.first.types
145
+ end
131
146
  end
132
147
 
133
148
  def test_bind_64
@@ -136,6 +151,7 @@ module SQLite3
136
151
  result = nil
137
152
  stmt.each { |x| result = x }
138
153
  assert_equal [2 ** 31], result
154
+ stmt.close
139
155
  end
140
156
 
141
157
  def test_bind_double
@@ -144,6 +160,7 @@ module SQLite3
144
160
  result = nil
145
161
  stmt.each { |x| result = x }
146
162
  assert_equal [2.2], result
163
+ stmt.close
147
164
  end
148
165
 
149
166
  def test_named_bind
@@ -152,6 +169,7 @@ module SQLite3
152
169
  result = nil
153
170
  stmt.each { |x| result = x }
154
171
  assert_equal ['hello'], result
172
+ stmt.close
155
173
  end
156
174
 
157
175
  def test_named_bind_no_colon
@@ -160,6 +178,7 @@ module SQLite3
160
178
  result = nil
161
179
  stmt.each { |x| result = x }
162
180
  assert_equal ['hello'], result
181
+ stmt.close
163
182
  end
164
183
 
165
184
  def test_named_bind_symbol
@@ -168,6 +187,7 @@ module SQLite3
168
187
  result = nil
169
188
  stmt.each { |x| result = x }
170
189
  assert_equal ['hello'], result
190
+ stmt.close
171
191
  end
172
192
 
173
193
  def test_named_bind_not_found
@@ -175,6 +195,7 @@ module SQLite3
175
195
  assert_raises(SQLite3::Exception) do
176
196
  stmt.bind_param('bar', 'hello')
177
197
  end
198
+ stmt.close
178
199
  end
179
200
 
180
201
  def test_each
@@ -225,16 +246,19 @@ module SQLite3
225
246
  def test_bind_parameter_count
226
247
  stmt = SQLite3::Statement.new(@db, "select ?, ?, ?")
227
248
  assert_equal 3, stmt.bind_parameter_count
249
+ stmt.close
228
250
  end
229
251
 
230
252
  def test_execute_with_varargs
231
253
  stmt = @db.prepare('select ?, ?')
232
254
  assert_equal [[nil, nil]], stmt.execute(nil, nil).to_a
255
+ stmt.close
233
256
  end
234
257
 
235
258
  def test_execute_with_hash
236
259
  stmt = @db.prepare('select :n, :h')
237
260
  assert_equal [[10, nil]], stmt.execute('n' => 10, 'h' => nil).to_a
261
+ stmt.close
238
262
  end
239
263
 
240
264
  def test_with_error
@@ -244,6 +268,7 @@ module SQLite3
244
268
  stmt.execute('employee-1') rescue SQLite3::ConstraintException
245
269
  stmt.reset!
246
270
  assert stmt.execute('employee-2')
271
+ stmt.close
247
272
  end
248
273
 
249
274
  def test_clear_bindings!
@@ -258,6 +283,8 @@ module SQLite3
258
283
  while x = stmt.step
259
284
  assert_equal [nil, nil], x
260
285
  end
286
+
287
+ stmt.close
261
288
  end
262
289
  end
263
290
  end
@@ -8,6 +8,10 @@ module SQLite3
8
8
  "CREATE TABLE items (id integer PRIMARY KEY, number integer)")
9
9
  end
10
10
 
11
+ def teardown
12
+ @db.close
13
+ end
14
+
11
15
  def test_execute_insert
12
16
  ps = @db.prepare("INSERT INTO items (number) VALUES (:n)")
13
17
  ps.execute('n'=>10)
metadata CHANGED
@@ -1,153 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqlite3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
8
8
  - Luis Lavena
9
9
  - Aaron Patterson
10
+ - Mike Dalessio
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2019-12-18 00:00:00.000000000 Z
14
+ date: 2024-01-30 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
- name: minitest
17
+ name: mini_portile2
17
18
  requirement: !ruby/object:Gem::Requirement
18
19
  requirements:
19
20
  - - "~>"
20
21
  - !ruby/object:Gem::Version
21
- version: '5.13'
22
- type: :development
22
+ version: 2.8.0
23
+ type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
26
  requirements:
26
27
  - - "~>"
27
28
  - !ruby/object:Gem::Version
28
- version: '5.13'
29
- - !ruby/object:Gem::Dependency
30
- name: rake-compiler
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '1.0'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '1.0'
43
- - !ruby/object:Gem::Dependency
44
- name: rake-compiler-dock
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: 0.6.0
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: 0.6.0
57
- - !ruby/object:Gem::Dependency
58
- name: mini_portile
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: 0.6.2
64
- type: :development
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: 0.6.2
71
- - !ruby/object:Gem::Dependency
72
- name: hoe-bundler
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '1.0'
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '1.0'
85
- - !ruby/object:Gem::Dependency
86
- name: hoe-gemspec
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '1.0'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
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'
119
- - !ruby/object:Gem::Dependency
120
- name: hoe
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '3.20'
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '3.20'
133
- description: |-
134
- This module allows Ruby programs to interface with the SQLite3
135
- database engine (http://www.sqlite.org). You must have the
136
- SQLite engine installed in order to build this module.
137
-
138
- Note that this module is only compatible with SQLite 3.6.16 or newer.
139
- email:
140
- - jamis@37signals.com
141
- - luislavena@gmail.com
142
- - aaron@tenderlovemaking.com
29
+ version: 2.8.0
30
+ force_ruby_platform: false
31
+ description: |
32
+ Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org). Precompiled
33
+ binaries are available for common platforms for recent versions of Ruby.
34
+ email:
143
35
  executables: []
144
36
  extensions:
145
37
  - ext/sqlite3/extconf.rb
146
38
  extra_rdoc_files:
147
- - API_CHANGES.rdoc
148
- - CHANGELOG.rdoc
149
- - Manifest.txt
150
- - README.rdoc
39
+ - API_CHANGES.md
40
+ - CHANGELOG.md
41
+ - README.md
151
42
  - ext/sqlite3/aggregator.c
152
43
  - ext/sqlite3/backup.c
153
44
  - ext/sqlite3/database.c
@@ -156,16 +47,17 @@ extra_rdoc_files:
156
47
  - ext/sqlite3/statement.c
157
48
  files:
158
49
  - ".gemtest"
159
- - ".travis.yml"
160
- - API_CHANGES.rdoc
161
- - CHANGELOG.rdoc
50
+ - API_CHANGES.md
51
+ - CHANGELOG.md
52
+ - CONTRIBUTING.md
162
53
  - ChangeLog.cvs
54
+ - FAQ.md
163
55
  - Gemfile
56
+ - INSTALLATION.md
164
57
  - LICENSE
165
- - Manifest.txt
166
- - README.rdoc
167
- - Rakefile
168
- - appveyor.yml
58
+ - LICENSE-DEPENDENCIES
59
+ - README.md
60
+ - dependencies.yml
169
61
  - ext/sqlite3/aggregator.c
170
62
  - ext/sqlite3/aggregator.h
171
63
  - ext/sqlite3/backup.c
@@ -179,8 +71,6 @@ files:
179
71
  - ext/sqlite3/sqlite3_ruby.h
180
72
  - ext/sqlite3/statement.c
181
73
  - ext/sqlite3/statement.h
182
- - faq/faq.rb
183
- - faq/faq.yml
184
74
  - lib/sqlite3.rb
185
75
  - lib/sqlite3/constants.rb
186
76
  - lib/sqlite3/database.rb
@@ -191,11 +81,7 @@ files:
191
81
  - lib/sqlite3/translator.rb
192
82
  - lib/sqlite3/value.rb
193
83
  - lib/sqlite3/version.rb
194
- - rakelib/faq.rake
195
- - rakelib/gem.rake
196
- - rakelib/native.rake
197
- - rakelib/vendor_sqlite3.rake
198
- - setup.rb
84
+ - ports/archives/sqlite-autoconf-3450100.tar.gz
199
85
  - test/helper.rb
200
86
  - test/test_backup.rb
201
87
  - test/test_collation.rb
@@ -211,6 +97,7 @@ files:
211
97
  - test/test_integration_pending.rb
212
98
  - test/test_integration_resultset.rb
213
99
  - test/test_integration_statement.rb
100
+ - test/test_pragmas.rb
214
101
  - test/test_result_set.rb
215
102
  - test/test_sqlite3.rb
216
103
  - test/test_statement.rb
@@ -219,27 +106,32 @@ homepage: https://github.com/sparklemotion/sqlite3-ruby
219
106
  licenses:
220
107
  - BSD-3-Clause
221
108
  metadata:
109
+ homepage_uri: https://github.com/sparklemotion/sqlite3-ruby
110
+ bug_tracker_uri: https://github.com/sparklemotion/sqlite3-ruby/issues
111
+ documentation_uri: https://www.rubydoc.info/gems/sqlite3
112
+ changelog_uri: https://github.com/sparklemotion/sqlite3-ruby/blob/master/CHANGELOG.md
113
+ source_code_uri: https://github.com/sparklemotion/sqlite3-ruby
222
114
  msys2_mingw_dependencies: sqlite3
115
+ rubygems_mfa_required: 'true'
223
116
  post_install_message:
224
117
  rdoc_options:
225
118
  - "--main"
226
- - README.rdoc
119
+ - README.md
227
120
  require_paths:
228
121
  - lib
229
122
  required_ruby_version: !ruby/object:Gem::Requirement
230
123
  requirements:
231
124
  - - ">="
232
125
  - !ruby/object:Gem::Version
233
- version: 1.8.7
126
+ version: '2.7'
234
127
  required_rubygems_version: !ruby/object:Gem::Requirement
235
128
  requirements:
236
129
  - - ">="
237
130
  - !ruby/object:Gem::Version
238
- version: 1.3.5
131
+ version: '0'
239
132
  requirements: []
240
- rubygems_version: 3.0.3
133
+ rubygems_version: 3.4.19
241
134
  signing_key:
242
135
  specification_version: 4
243
- summary: This module allows Ruby programs to interface with the SQLite3 database engine
244
- (http://www.sqlite.org)
136
+ summary: Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org).
245
137
  test_files: []
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- before_install:
4
- - gem update --system 2.7.7
5
- - gem install bundler -v 1.16.2
6
- addons:
7
- apt:
8
- packages:
9
- - libgmp-dev
10
-
11
- after_failure:
12
- - "find . -name mkmf.log -exec cat {} \\;"
13
-
14
- after_success:
15
- - "find . -name mkmf.log -exec cat {} \\;"
16
-
17
- env:
18
- - USE_MINI_PORTILE=true
19
- - USE_MINI_PORTILE=false
20
- rvm:
21
- - 1.9.3
22
- - 2.0.0
23
- - 2.1
24
- - 2.2
25
- - 2.3
26
- - 2.4
27
- - 2.5
28
- - 2.6
29
- - 2.7
30
- - ruby-head
31
- matrix:
32
- allow_failures:
33
- - env: USE_MINI_PORTILE=false