sqlite3 1.3.5 → 1.3.13

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.
@@ -1,6 +1,6 @@
1
1
  require 'helper'
2
2
 
3
- class TC_ResultSet < Test::Unit::TestCase
3
+ class TC_ResultSet < SQLite3::TestCase
4
4
  def setup
5
5
  @db = SQLite3::Database.new(":memory:")
6
6
  @db.transaction do
@@ -98,8 +98,11 @@ class TC_ResultSet < Test::Unit::TestCase
98
98
  def test_next_results_as_hash
99
99
  @db.results_as_hash = true
100
100
  @result.reset( 1 )
101
- assert_equal( { "a" => 1, "b" => "foo", 0 => 1, 1 => "foo" },
102
- @result.next )
101
+ hash = @result.next
102
+ assert_equal( { "a" => 1, "b" => "foo" },
103
+ hash )
104
+ assert_equal hash[0], 1
105
+ assert_equal hash[1], "foo"
103
106
  end
104
107
 
105
108
  def test_tainted_results_as_hash
@@ -1,6 +1,6 @@
1
- require File.join(File.dirname(__FILE__), 'helper')
1
+ require 'helper'
2
2
 
3
- class TC_Statement < Test::Unit::TestCase
3
+ class TC_Statement < SQLite3::TestCase
4
4
  def setup
5
5
  @db = SQLite3::Database.new(":memory:")
6
6
  @db.transaction do
@@ -0,0 +1,37 @@
1
+ require 'helper'
2
+
3
+ module SQLite3
4
+ class TestResultSet < SQLite3::TestCase
5
+ def test_each_hash
6
+ db = SQLite3::Database.new ':memory:'
7
+ db.execute "create table foo ( a integer primary key, b text )"
8
+ list = ('a'..'z').to_a
9
+ list.each do |t|
10
+ db.execute "insert into foo (b) values (\"#{t}\")"
11
+ end
12
+
13
+ rs = db.prepare('select * from foo').execute
14
+ rs.each_hash do |hash|
15
+ assert_equal list[hash['a'] - 1], hash['b']
16
+ end
17
+ end
18
+
19
+ def test_next_hash
20
+ db = SQLite3::Database.new ':memory:'
21
+ db.execute "create table foo ( a integer primary key, b text )"
22
+ list = ('a'..'z').to_a
23
+ list.each do |t|
24
+ db.execute "insert into foo (b) values (\"#{t}\")"
25
+ end
26
+
27
+ rs = db.prepare('select * from foo').execute
28
+ rows = []
29
+ while row = rs.next_hash
30
+ rows << row
31
+ end
32
+ rows.each do |hash|
33
+ assert_equal list[hash['a'] - 1], hash['b']
34
+ end
35
+ end
36
+ end
37
+ end
data/test/test_sqlite3.rb CHANGED
@@ -1,9 +1,21 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestSQLite3 < Test::Unit::TestCase
4
+ class TestSQLite3 < SQLite3::TestCase
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
8
20
  end
9
21
  end
@@ -1,18 +1,42 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestStatement < Test::Unit::TestCase
4
+ class TestStatement < SQLite3::TestCase
5
5
  def setup
6
6
  @db = SQLite3::Database.new(':memory:')
7
7
  @stmt = SQLite3::Statement.new(@db, "select 'foo'")
8
8
  end
9
9
 
10
+ def test_double_close_does_not_segv
11
+ @db.execute 'CREATE TABLE "things" ("number" float NOT NULL)'
12
+
13
+ stmt = @db.prepare 'INSERT INTO things (number) VALUES (?)'
14
+ assert_raises(SQLite3::ConstraintException) { stmt.execute(nil) }
15
+
16
+ stmt.close
17
+
18
+ assert_raises(SQLite3::Exception) { stmt.close }
19
+ end
20
+
10
21
  def test_raises_type_error
11
22
  assert_raises(TypeError) do
12
23
  SQLite3::Statement.new( @db, nil )
13
24
  end
14
25
  end
15
26
 
27
+ def test_insert_duplicate_records
28
+ @db.execute 'CREATE TABLE "things" ("name" varchar(20) CONSTRAINT "index_things_on_name" UNIQUE)'
29
+ stmt = @db.prepare("INSERT INTO things(name) VALUES(?)")
30
+ stmt.execute('ruby')
31
+
32
+ exception = assert_raises(SQLite3::ConstraintException) { stmt.execute('ruby') }
33
+ # SQLite 3.8.2 returns new error message:
34
+ # UNIQUE constraint failed: *table_name*.*column_name*
35
+ # Older versions of SQLite return:
36
+ # column *column_name* is not unique
37
+ assert_match(/(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)/, exception.message)
38
+ end
39
+
16
40
  ###
17
41
  # This method may not exist depending on how sqlite3 was compiled
18
42
  def test_database_name
@@ -216,9 +240,7 @@ module SQLite3
216
240
  stmt.execute('employee-1')
217
241
  stmt.execute('employee-1') rescue SQLite3::ConstraintException
218
242
  stmt.reset!
219
- assert_nothing_raised(SQLite3::ConstraintException) {
220
- stmt.execute('employee-2')
221
- }
243
+ assert stmt.execute('employee-2')
222
244
  end
223
245
 
224
246
  def test_clear_bindings
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestStatementExecute < Test::Unit::TestCase
4
+ class TestStatementExecute < SQLite3::TestCase
5
5
  def setup
6
6
  @db = SQLite3::Database.new(':memory:')
7
7
  @db.execute_batch(
metadata CHANGED
@@ -1,114 +1,143 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sqlite3
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 5
10
- version: 1.3.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.13
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Jamis Buck
14
8
  - Luis Lavena
15
9
  - Aaron Patterson
16
10
  autorequire:
17
11
  bindir: bin
18
12
  cert_chain: []
19
-
20
- date: 2011-12-03 00:00:00 Z
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
13
+ date: 2017-01-04 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: minitest
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '5.9'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '5.9'
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'
43
+ - !ruby/object:Gem::Dependency
23
44
  name: rake-compiler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.9.3
50
+ type: :development
24
51
  prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- - 7
34
- - 0
35
- version: 0.7.0
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.3
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake-compiler-dock
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: 0.5.2
36
64
  type: :development
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: mini_portile
40
65
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- hash: 19
47
- segments:
48
- - 0
49
- - 2
50
- - 2
51
- version: 0.2.2
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: 0.5.2
71
+ - !ruby/object:Gem::Dependency
72
+ name: mini_portile
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.6.2
52
78
  type: :development
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: hoe
56
79
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- hash: 27
63
- segments:
64
- - 2
65
- - 12
66
- version: "2.12"
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
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.0'
67
92
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rdoc
71
93
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 19
78
- segments:
79
- - 3
80
- - 10
81
- version: "3.10"
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: hoe
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.15'
82
106
  type: :development
83
- version_requirements: *id004
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.15'
84
113
  description: |-
85
114
  This module allows Ruby programs to interface with the SQLite3
86
115
  database engine (http://www.sqlite.org). You must have the
87
116
  SQLite engine installed in order to build this module.
88
-
117
+
89
118
  Note that this module is only compatible with SQLite 3.6.16 or newer.
90
- email:
119
+ email:
91
120
  - jamis@37signals.com
92
121
  - luislavena@gmail.com
93
122
  - aaron@tenderlovemaking.com
94
123
  executables: []
95
-
96
- extensions:
124
+ extensions:
97
125
  - ext/sqlite3/extconf.rb
98
- extra_rdoc_files:
126
+ extra_rdoc_files:
127
+ - API_CHANGES.rdoc
128
+ - CHANGELOG.rdoc
99
129
  - Manifest.txt
100
130
  - README.rdoc
101
- - CHANGELOG.rdoc
102
- - API_CHANGES.rdoc
103
- - ext/sqlite3/sqlite3.c
104
131
  - ext/sqlite3/backup.c
105
- - ext/sqlite3/statement.c
106
132
  - ext/sqlite3/database.c
107
133
  - ext/sqlite3/exception.c
108
- files:
134
+ - ext/sqlite3/sqlite3.c
135
+ - ext/sqlite3/statement.c
136
+ files:
109
137
  - API_CHANGES.rdoc
110
138
  - CHANGELOG.rdoc
111
139
  - ChangeLog.cvs
140
+ - Gemfile
112
141
  - LICENSE
113
142
  - Manifest.txt
114
143
  - README.rdoc
@@ -153,60 +182,35 @@ files:
153
182
  - test/test_integration_pending.rb
154
183
  - test/test_integration_resultset.rb
155
184
  - test/test_integration_statement.rb
185
+ - test/test_result_set.rb
156
186
  - test/test_sqlite3.rb
157
187
  - test/test_statement.rb
158
188
  - test/test_statement_execute.rb
159
- - .gemtest
160
- homepage: http://github.com/luislavena/sqlite3-ruby
161
- licenses: []
162
-
189
+ homepage: https://github.com/sparklemotion/sqlite3-ruby
190
+ licenses:
191
+ - BSD-3
192
+ metadata: {}
163
193
  post_install_message:
164
- rdoc_options:
165
- - --main
194
+ rdoc_options:
195
+ - "--main"
166
196
  - README.rdoc
167
- require_paths:
197
+ require_paths:
168
198
  - lib
169
- required_ruby_version: !ruby/object:Gem::Requirement
170
- none: false
171
- requirements:
199
+ required_ruby_version: !ruby/object:Gem::Requirement
200
+ requirements:
172
201
  - - ">="
173
- - !ruby/object:Gem::Version
174
- hash: 57
175
- segments:
176
- - 1
177
- - 8
178
- - 7
202
+ - !ruby/object:Gem::Version
179
203
  version: 1.8.7
180
- required_rubygems_version: !ruby/object:Gem::Requirement
181
- none: false
182
- requirements:
204
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
+ requirements:
183
206
  - - ">="
184
- - !ruby/object:Gem::Version
185
- hash: 17
186
- segments:
187
- - 1
188
- - 3
189
- - 5
207
+ - !ruby/object:Gem::Version
190
208
  version: 1.3.5
191
209
  requirements: []
192
-
193
- rubyforge_project: sqlite3
194
- rubygems_version: 1.8.12
210
+ rubyforge_project:
211
+ rubygems_version: 2.6.8
195
212
  signing_key:
196
- specification_version: 3
197
- summary: This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org)
198
- test_files:
199
- - test/test_database.rb
200
- - test/test_integration_open_close.rb
201
- - test/test_database_readonly.rb
202
- - test/test_statement.rb
203
- - test/test_integration_resultset.rb
204
- - test/test_deprecated.rb
205
- - test/test_backup.rb
206
- - test/test_encoding.rb
207
- - test/test_sqlite3.rb
208
- - test/test_collation.rb
209
- - test/test_integration.rb
210
- - test/test_statement_execute.rb
211
- - test/test_integration_statement.rb
212
- - test/test_integration_pending.rb
213
+ specification_version: 4
214
+ summary: This module allows Ruby programs to interface with the SQLite3 database engine
215
+ (http://www.sqlite.org)
216
+ test_files: []