extralite-bundle 2.8.1 → 2.10
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 +4 -4
- data/.github/workflows/test-bundle.yml +6 -4
- data/.github/workflows/test.yml +6 -4
- data/CHANGELOG.md +14 -0
- data/README.md +1 -1
- data/ext/extralite/common.c +61 -19
- data/ext/sqlite3/sqlite3.c +11930 -6410
- data/ext/sqlite3/sqlite3.h +414 -73
- data/gemspec.rb +5 -5
- data/lib/extralite/version.rb +1 -1
- data/test/extensions/{text.dylib → arm64/text.dylib} +0 -0
- data/test/extensions/arm64/text.so +0 -0
- data/test/extensions/x86/text.dylib +0 -0
- data/test/extensions/x86/text.so +0 -0
- data/test/test_database.rb +56 -5
- metadata +17 -19
- data/test/extensions/text.so +0 -0
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
Binary file
|
Binary file
|
Binary file
|
Binary file
|
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
|
@@ -277,10 +290,14 @@ class DatabaseTest < Minitest::Test
|
|
277
290
|
|
278
291
|
def test_extension_loading
|
279
292
|
case RUBY_PLATFORM
|
280
|
-
when /linux/
|
281
|
-
@db.load_extension(File.join(__dir__, 'extensions/text.so'))
|
282
|
-
when /
|
283
|
-
@db.load_extension(File.join(__dir__, 'extensions/text.
|
293
|
+
when /aarch64-linux/
|
294
|
+
@db.load_extension(File.join(__dir__, 'extensions/arm64/text.so'))
|
295
|
+
when /x86_64-linux/
|
296
|
+
@db.load_extension(File.join(__dir__, 'extensions/x86/text.so'))
|
297
|
+
when /arm64-darwin/
|
298
|
+
@db.load_extension(File.join(__dir__, 'extensions/arm64/text.dylib'))
|
299
|
+
when /x86_64-darwin/
|
300
|
+
@db.load_extension(File.join(__dir__, 'extensions/x86/text.dylib'))
|
284
301
|
end
|
285
302
|
|
286
303
|
r = @db.query_single_splat("select reverse('abcd')")
|
@@ -359,7 +376,6 @@ class DatabaseTest < Minitest::Test
|
|
359
376
|
[1, '2', 3],
|
360
377
|
['4', 5, 6]
|
361
378
|
]
|
362
|
-
|
363
379
|
changes = @db.batch_execute('insert into foo values (?, ?, ?)', records)
|
364
380
|
|
365
381
|
assert_equal 2, changes
|
@@ -369,6 +385,23 @@ class DatabaseTest < Minitest::Test
|
|
369
385
|
], @db.query('select * from foo')
|
370
386
|
end
|
371
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
|
+
|
372
405
|
def test_batch_execute_single_values
|
373
406
|
@db.query('create table foo (bar)')
|
374
407
|
assert_equal [], @db.query('select * from foo')
|
@@ -1355,6 +1388,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1355
1388
|
def test_progress_handler_simple
|
1356
1389
|
db = Extralite::Database.new(':memory:')
|
1357
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
|
+
|
1358
1397
|
buf = []
|
1359
1398
|
db.on_progress(period: 1) { buf << :progress }
|
1360
1399
|
|
@@ -1373,6 +1412,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1373
1412
|
def test_progress_handler_normal_mode
|
1374
1413
|
db = Extralite::Database.new(':memory:')
|
1375
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
|
+
|
1376
1421
|
count = 0
|
1377
1422
|
db.on_progress(period: 1) { count += 1 }
|
1378
1423
|
db.query('select 1 as a')
|
@@ -1393,6 +1438,12 @@ class ConcurrencyTest < Minitest::Test
|
|
1393
1438
|
def test_progress_handler_at_least_once_mode
|
1394
1439
|
db = Extralite::Database.new(':memory:')
|
1395
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
|
+
|
1396
1447
|
count = 0
|
1397
1448
|
db.on_progress(period: 1) { count += 1 }
|
1398
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:
|
@@ -125,8 +123,10 @@ files:
|
|
125
123
|
- lib/extralite.rb
|
126
124
|
- lib/extralite/version.rb
|
127
125
|
- lib/sequel/adapters/extralite.rb
|
128
|
-
- test/extensions/text.dylib
|
129
|
-
- test/extensions/text.so
|
126
|
+
- test/extensions/arm64/text.dylib
|
127
|
+
- test/extensions/arm64/text.so
|
128
|
+
- test/extensions/x86/text.dylib
|
129
|
+
- test/extensions/x86/text.so
|
130
130
|
- test/fixtures/image.png
|
131
131
|
- test/helper.rb
|
132
132
|
- test/issue-38.rb
|
@@ -153,7 +153,6 @@ metadata:
|
|
153
153
|
homepage_uri: https://github.com/digital-fabric/extralite
|
154
154
|
documentation_uri: https://www.rubydoc.info/gems/extralite
|
155
155
|
changelog_uri: https://github.com/digital-fabric/extralite/blob/master/CHANGELOG.md
|
156
|
-
post_install_message:
|
157
156
|
rdoc_options:
|
158
157
|
- "--title"
|
159
158
|
- Extralite
|
@@ -172,8 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
171
|
- !ruby/object:Gem::Version
|
173
172
|
version: '0'
|
174
173
|
requirements: []
|
175
|
-
rubygems_version: 3.
|
176
|
-
signing_key:
|
174
|
+
rubygems_version: 3.6.2
|
177
175
|
specification_version: 4
|
178
176
|
summary: Extra-lightweight SQLite3 wrapper for Ruby with bundled SQLite3
|
179
177
|
test_files: []
|
data/test/extensions/text.so
DELETED
Binary file
|