extralite-bundle 2.8.2 → 2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +4 -4
- data/CHANGELOG.md +11 -1
- data/README.md +1 -1
- data/ext/extralite/common.c +61 -19
- data/ext/sqlite3/sqlite3.c +8563 -4784
- data/ext/sqlite3/sqlite3.h +343 -53
- data/gemspec.rb +5 -5
- data/lib/extralite/version.rb +1 -1
- data/test/test_database.rb +48 -1
- metadata +13 -17
data/gemspec.rb
CHANGED
@@ -17,9 +17,9 @@ def common_spec(s)
|
|
17
17
|
s.require_paths = ['lib']
|
18
18
|
s.required_ruby_version = '>= 3.0'
|
19
19
|
|
20
|
-
s.add_development_dependency 'rake-compiler', '1.2.
|
21
|
-
s.add_development_dependency 'minitest', '5.
|
22
|
-
s.add_development_dependency 'simplecov', '0.
|
23
|
-
s.add_development_dependency 'yard', '0.9.
|
24
|
-
s.add_development_dependency 'sequel', '5.
|
20
|
+
s.add_development_dependency 'rake-compiler', '1.2.9'
|
21
|
+
s.add_development_dependency 'minitest', '5.25.4'
|
22
|
+
s.add_development_dependency 'simplecov', '0.22.0'
|
23
|
+
s.add_development_dependency 'yard', '0.9.37'
|
24
|
+
s.add_development_dependency 'sequel', '5.88.0'
|
25
25
|
end
|
data/lib/extralite/version.rb
CHANGED
data/test/test_database.rb
CHANGED
@@ -40,6 +40,19 @@ class DatabaseTest < Minitest::Test
|
|
40
40
|
assert_equal [], r
|
41
41
|
end
|
42
42
|
|
43
|
+
def test_query_hash_with_many_columns
|
44
|
+
# this tests correct processing cof column names when column count is more than
|
45
|
+
# MAX_EMBEDDED_COLUMN_NAMES
|
46
|
+
r = @db.query_hash("
|
47
|
+
select 1 as a, 2 as b, 3 as c, 4 as d, 5 as e, 6 as f, 7 as g, 8 as h, 9 as i, 10 as j,
|
48
|
+
11 as k, 12 as l, 13 as m, 14 as n, 15 as o, 16 as p, 17 as q, 18 as r, 19 as s, 20 as t
|
49
|
+
")
|
50
|
+
assert_equal [{
|
51
|
+
a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10,
|
52
|
+
k: 11, l: 12, m: 13, n: 14, o: 15, p: 16, q: 17, r: 18, s: 19, t: 20
|
53
|
+
}], r
|
54
|
+
end
|
55
|
+
|
43
56
|
def test_query_array
|
44
57
|
r = @db.query_array('select * from t')
|
45
58
|
assert_equal [[1, 2, 3], [4, 5, 6]], r
|
@@ -363,7 +376,6 @@ class DatabaseTest < Minitest::Test
|
|
363
376
|
[1, '2', 3],
|
364
377
|
['4', 5, 6]
|
365
378
|
]
|
366
|
-
|
367
379
|
changes = @db.batch_execute('insert into foo values (?, ?, ?)', records)
|
368
380
|
|
369
381
|
assert_equal 2, changes
|
@@ -373,6 +385,23 @@ class DatabaseTest < Minitest::Test
|
|
373
385
|
], @db.query('select * from foo')
|
374
386
|
end
|
375
387
|
|
388
|
+
def test_batch_execute_with_array_of_hashes
|
389
|
+
@db.query('create table foo (a, b, c)')
|
390
|
+
assert_equal [], @db.query('select * from foo')
|
391
|
+
|
392
|
+
records = [
|
393
|
+
{ a: 1, b: '2', c: 3 },
|
394
|
+
{ a: '4', b: 5, c: 6 }
|
395
|
+
]
|
396
|
+
changes = @db.batch_execute('insert into foo values (:a, :b, :c)', records)
|
397
|
+
|
398
|
+
# assert_equal 2, changes
|
399
|
+
assert_equal [
|
400
|
+
{ a: 1, b: '2', c: 3 },
|
401
|
+
{ a: '4', b: 5, c: 6 }
|
402
|
+
], @db.query('select * from foo')
|
403
|
+
end
|
404
|
+
|
376
405
|
def test_batch_execute_single_values
|
377
406
|
@db.query('create table foo (bar)')
|
378
407
|
assert_equal [], @db.query('select * from foo')
|
@@ -1359,6 +1388,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1359
1388
|
def test_progress_handler_simple
|
1360
1389
|
db = Extralite::Database.new(':memory:')
|
1361
1390
|
|
1391
|
+
# SQLite's behaviour post 3.46.0 has changed, such that the first time the
|
1392
|
+
# query is ran, the progress handler is called more times than in later
|
1393
|
+
# invocations, so here we run it once before measuring, in order to have
|
1394
|
+
# reliable figures.
|
1395
|
+
result = db.query_single('select 1 as a, 2 as b, 3 as c')
|
1396
|
+
|
1362
1397
|
buf = []
|
1363
1398
|
db.on_progress(period: 1) { buf << :progress }
|
1364
1399
|
|
@@ -1377,6 +1412,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1377
1412
|
def test_progress_handler_normal_mode
|
1378
1413
|
db = Extralite::Database.new(':memory:')
|
1379
1414
|
|
1415
|
+
# SQLite's behaviour post 3.46.0 has changed, such that the first time the
|
1416
|
+
# query is ran, the progress handler is called more times than in later
|
1417
|
+
# invocations, so here we run it once before measuring, in order to have
|
1418
|
+
# reliable figures.
|
1419
|
+
db.query('select 1 as a')
|
1420
|
+
|
1380
1421
|
count = 0
|
1381
1422
|
db.on_progress(period: 1) { count += 1 }
|
1382
1423
|
db.query('select 1 as a')
|
@@ -1397,6 +1438,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1397
1438
|
def test_progress_handler_at_least_once_mode
|
1398
1439
|
db = Extralite::Database.new(':memory:')
|
1399
1440
|
|
1441
|
+
# SQLite's behaviour post 3.46.0 has changed, such that the first time the
|
1442
|
+
# query is ran, the progress handler is called more times than in later
|
1443
|
+
# invocations, so here we run it once before measuring, in order to have
|
1444
|
+
# reliable figures.
|
1445
|
+
db.query('select 1 as a')
|
1446
|
+
|
1400
1447
|
count = 0
|
1401
1448
|
db.on_progress(period: 1) { count += 1 }
|
1402
1449
|
db.query('select 1 as a')
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extralite-bundle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.10'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-02-17 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rake-compiler
|
@@ -16,71 +15,70 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - '='
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.2.
|
18
|
+
version: 1.2.9
|
20
19
|
type: :development
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - '='
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.2.
|
25
|
+
version: 1.2.9
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: minitest
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
30
|
- - '='
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
32
|
+
version: 5.25.4
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - '='
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
39
|
+
version: 5.25.4
|
41
40
|
- !ruby/object:Gem::Dependency
|
42
41
|
name: simplecov
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
44
|
- - '='
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
46
|
+
version: 0.22.0
|
48
47
|
type: :development
|
49
48
|
prerelease: false
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
51
50
|
requirements:
|
52
51
|
- - '='
|
53
52
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
53
|
+
version: 0.22.0
|
55
54
|
- !ruby/object:Gem::Dependency
|
56
55
|
name: yard
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
58
|
- - '='
|
60
59
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.9.
|
60
|
+
version: 0.9.37
|
62
61
|
type: :development
|
63
62
|
prerelease: false
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
65
|
- - '='
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.9.
|
67
|
+
version: 0.9.37
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
69
|
name: sequel
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
72
|
- - '='
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: 5.
|
74
|
+
version: 5.88.0
|
76
75
|
type: :development
|
77
76
|
prerelease: false
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
79
78
|
requirements:
|
80
79
|
- - '='
|
81
80
|
- !ruby/object:Gem::Version
|
82
|
-
version: 5.
|
83
|
-
description:
|
81
|
+
version: 5.88.0
|
84
82
|
email: sharon@noteflakes.com
|
85
83
|
executables: []
|
86
84
|
extensions:
|
@@ -155,7 +153,6 @@ metadata:
|
|
155
153
|
homepage_uri: https://github.com/digital-fabric/extralite
|
156
154
|
documentation_uri: https://www.rubydoc.info/gems/extralite
|
157
155
|
changelog_uri: https://github.com/digital-fabric/extralite/blob/master/CHANGELOG.md
|
158
|
-
post_install_message:
|
159
156
|
rdoc_options:
|
160
157
|
- "--title"
|
161
158
|
- Extralite
|
@@ -174,8 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
171
|
- !ruby/object:Gem::Version
|
175
172
|
version: '0'
|
176
173
|
requirements: []
|
177
|
-
rubygems_version: 3.
|
178
|
-
signing_key:
|
174
|
+
rubygems_version: 3.6.2
|
179
175
|
specification_version: 4
|
180
176
|
summary: Extra-lightweight SQLite3 wrapper for Ruby with bundled SQLite3
|
181
177
|
test_files: []
|