extralite 2.4 → 2.6
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 +30 -0
- data/.github/workflows/test.yml +2 -12
- data/CHANGELOG.md +49 -10
- data/Gemfile.lock +1 -1
- data/LICENSE +1 -1
- data/README.md +876 -217
- data/TODO.md +2 -3
- data/ext/extralite/changeset.c +463 -0
- data/ext/extralite/common.c +226 -19
- data/ext/extralite/database.c +339 -23
- data/ext/extralite/extconf-bundle.rb +10 -4
- data/ext/extralite/extconf.rb +31 -27
- data/ext/extralite/extralite.h +25 -5
- data/ext/extralite/extralite_ext.c +10 -0
- data/ext/extralite/iterator.c +8 -3
- data/ext/extralite/query.c +222 -22
- data/gemspec.rb +1 -1
- data/lib/extralite/version.rb +1 -1
- data/lib/extralite.rb +64 -8
- data/test/helper.rb +8 -0
- data/test/issue-54.rb +21 -0
- data/test/issue-59.rb +70 -0
- data/test/perf_ary.rb +14 -12
- data/test/perf_hash.rb +17 -15
- data/test/perf_hash_prepared.rb +58 -0
- data/test/test_changeset.rb +161 -0
- data/test/test_database.rb +672 -13
- data/test/test_query.rb +367 -2
- metadata +10 -5
- data/test/perf_prepared.rb +0 -64
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a18a0c22e187c1f3211611b67dcd5f60040ec794d63dfe3a125bdd0174b108a
|
4
|
+
data.tar.gz: 050e95afc37f01145b860e861c1ceba37da134c878e44f9c49bf9adec2894651
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e45c3ced0207aa163658bcf8317d10967572e533a83953b41039fde740aadda78e1fe01a55302a7c5925326f256b29ff18d1a6234c7625ffad8340624758219
|
7
|
+
data.tar.gz: f9401d194c8481fa4a057e4d37b673b06ea1a22beafbd5b3406de5aaceb553efc90371c77ff3a4bff4a30660ca264f4fff25095b76d8495fcff6517e674ee47b
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Tests (extralite-bundle)
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
concurrency:
|
6
|
+
group: tests-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }}
|
7
|
+
cancel-in-progress: true
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
strategy:
|
12
|
+
fail-fast: false
|
13
|
+
matrix:
|
14
|
+
os: [ubuntu-latest, macos-latest]
|
15
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
16
|
+
|
17
|
+
name: >-
|
18
|
+
${{matrix.os}}, ${{matrix.ruby}}
|
19
|
+
|
20
|
+
runs-on: ${{matrix.os}}
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v4
|
23
|
+
- uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{matrix.ruby}}
|
26
|
+
bundler-cache: true # 'bundle install' and cache
|
27
|
+
- name: Compile C-extension
|
28
|
+
run: EXTRALITE_BUNDLE=1 bundle exec rake compile
|
29
|
+
- name: Run tests
|
30
|
+
run: bundle exec rake test
|
data/.github/workflows/test.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
name: Tests
|
1
|
+
name: Tests (extralite)
|
2
2
|
|
3
3
|
on: [push, pull_request]
|
4
4
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
12
12
|
fail-fast: false
|
13
13
|
matrix:
|
14
14
|
os: [ubuntu-latest, macos-latest]
|
15
|
-
ruby: ['
|
15
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
16
16
|
|
17
17
|
name: >-
|
18
18
|
${{matrix.os}}, ${{matrix.ruby}}
|
@@ -28,13 +28,3 @@ jobs:
|
|
28
28
|
run: bundle exec rake compile
|
29
29
|
- name: Run tests
|
30
30
|
run: bundle exec rake test
|
31
|
-
- name: Build bundled gem
|
32
|
-
run: bundle exec rake build_bundled
|
33
|
-
- name: Run tests with bundled gem
|
34
|
-
run: |
|
35
|
-
echo Installing extralite-bundle...
|
36
|
-
bundle config --local frozen false
|
37
|
-
mv Gemfile-bundle Gemfile
|
38
|
-
bundle install
|
39
|
-
echo Running tests...
|
40
|
-
bundle exec rake test
|
data/CHANGELOG.md
CHANGED
@@ -1,14 +1,52 @@
|
|
1
|
+
# 2.6 2024-01-23
|
2
|
+
|
3
|
+
- Implement changeset API
|
4
|
+
[#58](https://github.com/digital-fabric/extralite/issues/58)
|
5
|
+
- Reorganize README, update benchmarks
|
6
|
+
[#63](https://github.com/digital-fabric/extralite/issues/63)
|
7
|
+
- Implement progress handler API
|
8
|
+
[#62](https://github.com/digital-fabric/extralite/issues/62)
|
9
|
+
- Implement savepoint methods
|
10
|
+
|
11
|
+
# 2.5 2024-01-16
|
12
|
+
|
13
|
+
- Update bundled sqlite to version 3.45.0
|
14
|
+
- Implement `Database#batch_query` and related methods
|
15
|
+
[53](https://github.com/digital-fabric/extralite/issues/53)
|
16
|
+
- Accept more options in `Database#initialize`
|
17
|
+
[48](https://github.com/digital-fabric/extralite/issues/48)
|
18
|
+
- Fix `Database#pragma` to return single value when reading pragma value
|
19
|
+
- Accept database name in `Database#tables` method
|
20
|
+
- Improve `Database#batch_execute` - now accepts Enumerable and Callable
|
21
|
+
parameters [52](https://github.com/digital-fabric/extralite/issues/52)
|
22
|
+
- Rename `Database#execute_multi` to `Database#batch_execute`
|
23
|
+
- Implement Query#clone
|
24
|
+
[51](https://github.com/digital-fabric/extralite/issues/51)
|
25
|
+
- Add support for GC compaction
|
26
|
+
- Remove support for Ruby 2.7
|
27
|
+
- Implement Query#<< [49](https://github.com/digital-fabric/extralite/issues/49)
|
28
|
+
- Allow passing parameters in array
|
29
|
+
- Add support for ractors
|
30
|
+
[#50](https://github.com/digital-fabric/extralite/issues/50)
|
31
|
+
|
1
32
|
# 2.4 2023-12-24
|
2
33
|
|
3
|
-
- Implement GVL release threshold.
|
34
|
+
- Implement GVL release threshold.
|
35
|
+
[#46](https://github.com/digital-fabric/extralite/pull/46)
|
4
36
|
- Implement write barriers for better GC performance.
|
5
|
-
- Add support for binding large numbers and symbols.
|
6
|
-
|
7
|
-
-
|
37
|
+
- Add support for binding large numbers and symbols.
|
38
|
+
[#43](https://github.com/digital-fabric/extralite/pull/43)
|
39
|
+
- Implement Database#transaction.
|
40
|
+
[#42](https://github.com/digital-fabric/extralite/pull/42)
|
41
|
+
- Add support for binding BLOBs.
|
42
|
+
[#40](https://github.com/digital-fabric/extralite/pull/40)
|
8
43
|
- Minor fixes and cleanup of C-code.
|
9
|
-
- Fix `Database#inspect` for a closed database instance
|
10
|
-
|
11
|
-
-
|
44
|
+
- Fix `Database#inspect` for a closed database instance
|
45
|
+
[#37](https://github.com/digital-fabric/extralite/issues/37)
|
46
|
+
- Add support for binding named parameters from Struct and Data classes
|
47
|
+
[#30](https://github.com/digital-fabric/extralite/pull/30)
|
48
|
+
- Update bundled SQLite code to version 3.44.2
|
49
|
+
[#32](https://github.com/digital-fabric/extralite/pull/32)
|
12
50
|
|
13
51
|
# 2.3 2023-11-12
|
14
52
|
|
@@ -28,7 +66,8 @@
|
|
28
66
|
|
29
67
|
- Fix Sequel migrations (#8)
|
30
68
|
- Redesign prepared statement functionality (#24)
|
31
|
-
- Rewrite `Extralite::PreparedStatement` into `Extralite::Query` with breaking
|
69
|
+
- Rewrite `Extralite::PreparedStatement` into `Extralite::Query` with breaking
|
70
|
+
API changes
|
32
71
|
- Add `Extralite::Iterator` class for external iteration
|
33
72
|
- Add `Query#each_xxx`, `Query#to_a_xxx` method
|
34
73
|
- Add `Query#eof?` method
|
@@ -77,7 +116,8 @@
|
|
77
116
|
# 1.20 2023-01-21
|
78
117
|
|
79
118
|
- Fix compilation error (#15 @sitano)
|
80
|
-
- Add status methods `Extralite.runtime_status`, `Database#status`,
|
119
|
+
- Add status methods `Extralite.runtime_status`, `Database#status`,
|
120
|
+
`PreparedStatement#status` (#14 @sitano)
|
81
121
|
- Add `Database#interrupt` (#13 @sitano)
|
82
122
|
- Add `Database#backup` (#11 @sitano)
|
83
123
|
- Derive `Extralite::Error` from `StandardError` (#10 @sitano)
|
@@ -199,4 +239,3 @@
|
|
199
239
|
## 0.1 2021-05-21
|
200
240
|
|
201
241
|
- First release
|
202
|
-
|
data/Gemfile.lock
CHANGED