extralite 2.4 → 2.6
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 +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