extralite-bundle 2.8.1 → 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-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
|