sqlite3 2.2.0-x86-linux-musl → 2.3.0-x86-linux-musl
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/CHANGELOG.md +16 -0
- data/ext/sqlite3/extconf.rb +7 -2
- data/ext/sqlite3/sqlite3.c +17 -0
- data/lib/sqlite3/3.1/sqlite3_native.so +0 -0
- data/lib/sqlite3/3.2/sqlite3_native.so +0 -0
- data/lib/sqlite3/3.3/sqlite3_native.so +0 -0
- data/lib/sqlite3/constants.rb +24 -0
- data/lib/sqlite3/fork_safety.rb +5 -5
- data/lib/sqlite3/pragmas.rb +15 -1
- data/lib/sqlite3/version.rb +2 -1
- data/lib/sqlite3/version_info.rb +17 -0
- data/lib/sqlite3.rb +2 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d03f68b7f144594e13083d0248fe0c7e8409e43780ebee84635d6363ecc2c42
|
4
|
+
data.tar.gz: 6b464d422ea721777545b8cd2ab439589a68de4427f61ebb0cf82bcafccf03be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11e036d6bb89ca53c11df3fa21a18a09dbd677aea818f225b1c5bd6a95927e0a8a88b9551611653e94df4a280bf793365214ffdb99f64ab524be4d69af3d27ce
|
7
|
+
data.tar.gz: a947d721817f705fc84d021fa1a0ece4bc22449f935ad37bcfe7b3e86b54a9073c8876fb30d872d8493288d823ed852f2f5e341c4d05528e1220b0ffb240f7e9
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# sqlite3-ruby Changelog
|
2
2
|
|
3
|
+
## 2.3.0 / 2024-11-20
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- The SQLITE_DBPAGE extension is now enabled by default, which implements an eponymous-only virtual table that provides direct access to the underlying database file by interacting with the pager. See https://www.sqlite.org/dbpage.html for more information. [#578] @flavorjones
|
8
|
+
- The DBSTAT extension is now enabled by default, which implements a read-only eponymous virtual table that returns information about the amount of disk space used to store the content of an SQLite database. See https://sqlite.org/dbstat.html for more information. [#580] @pawurb @flavorjones
|
9
|
+
- `Database#optimize` which wraps the `pragma optimize;` statement. Also added `Constants::Optimize` to allow advanced users to pass a bitmask of options. See https://www.sqlite.org/pragma.html#pragma_optimize. [#572] @alexcwatt @flavorjones
|
10
|
+
- `SQLite3::VERSION_INFO` is contains a bag of metadata about the gem and the sqlite library used. `SQLite3::SQLITE_PACKAGED_LIBRARIES` and `SQLite3::SQLITE_PRECOMPILED_LIBRARIES` are indicate how the gem was built. [#581] @flavorjones
|
11
|
+
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
|
15
|
+
- `Database#encoding=` support for switching the database encoding to `UTF-16BE`, which has been broken since `Database#encoding=` was introduced in v1.3.12 in 2016. [#575] @miyucy
|
16
|
+
- Omit mention of the `pkg-config` gem when failing to build from source, since it is not used. [#358] @flavorjones
|
17
|
+
|
18
|
+
|
3
19
|
## 2.2.0 / 2024-10-30
|
4
20
|
|
5
21
|
### Added
|
data/ext/sqlite3/extconf.rb
CHANGED
@@ -62,7 +62,9 @@ module Sqlite3
|
|
62
62
|
"-O2", # see https://github.com/sparklemotion/sqlite3-ruby/issues/335 for some benchmarks
|
63
63
|
"-fvisibility=hidden", # see https://github.com/rake-compiler/rake-compiler-dock/issues/87
|
64
64
|
"-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1",
|
65
|
-
"-DSQLITE_USE_URI=1"
|
65
|
+
"-DSQLITE_USE_URI=1",
|
66
|
+
"-DSQLITE_ENABLE_DBPAGE_VTAB=1",
|
67
|
+
"-DSQLITE_ENABLE_DBSTAT_VTAB=1"
|
66
68
|
]
|
67
69
|
env["CFLAGS"] = [user_cflags, env["CFLAGS"], more_cflags].flatten.join(" ")
|
68
70
|
recipe.configure_options += env.select { |k, v| ENV_ALLOWLIST.include?(k) }
|
@@ -95,6 +97,9 @@ module Sqlite3
|
|
95
97
|
end
|
96
98
|
|
97
99
|
ldflags.each { |ldflag| append_ldflags(ldflag) }
|
100
|
+
|
101
|
+
append_cppflags("-DUSING_PACKAGED_LIBRARIES")
|
102
|
+
append_cppflags("-DUSING_PRECOMPILED_LIBRARIES") if cross_build?
|
98
103
|
end
|
99
104
|
end
|
100
105
|
|
@@ -171,7 +176,7 @@ module Sqlite3
|
|
171
176
|
end
|
172
177
|
|
173
178
|
def abort_pkg_config(id)
|
174
|
-
abort("\nCould not configure the build properly (#{id}). Please install
|
179
|
+
abort("\nCould not configure the build properly (#{id}). Please install the `pkg-config` utility.\n\n")
|
175
180
|
end
|
176
181
|
|
177
182
|
def cross_build?
|
data/ext/sqlite3/sqlite3.c
CHANGED
@@ -201,8 +201,25 @@ Init_sqlite3_native(void)
|
|
201
201
|
rb_define_singleton_method(mSqlite3, "libversion", libversion, 0);
|
202
202
|
rb_define_singleton_method(mSqlite3, "threadsafe", threadsafe_p, 0);
|
203
203
|
rb_define_singleton_method(mSqlite3, "status", rb_sqlite3_status, -1);
|
204
|
+
|
205
|
+
/* (String) The version of the sqlite3 library compiled with (e.g., "3.46.1") */
|
204
206
|
rb_define_const(mSqlite3, "SQLITE_VERSION", rb_str_new2(SQLITE_VERSION));
|
207
|
+
|
208
|
+
/* (Integer) The version of the sqlite3 library compiled with (e.g., 346001) */
|
205
209
|
rb_define_const(mSqlite3, "SQLITE_VERSION_NUMBER", INT2FIX(SQLITE_VERSION_NUMBER));
|
210
|
+
|
211
|
+
/* (String) The version of the sqlite3 library loaded at runtime (e.g., "3.46.1") */
|
206
212
|
rb_define_const(mSqlite3, "SQLITE_LOADED_VERSION", rb_str_new2(sqlite3_libversion()));
|
207
213
|
|
214
|
+
#ifdef USING_PACKAGED_LIBRARIES
|
215
|
+
rb_define_const(mSqlite3, "SQLITE_PACKAGED_LIBRARIES", Qtrue);
|
216
|
+
#else
|
217
|
+
rb_define_const(mSqlite3, "SQLITE_PACKAGED_LIBRARIES", Qfalse);
|
218
|
+
#endif
|
219
|
+
|
220
|
+
#ifdef USING_PRECOMPILED_LIBRARIES
|
221
|
+
rb_define_const(mSqlite3, "SQLITE_PRECOMPILED_LIBRARIES", Qtrue);
|
222
|
+
#else
|
223
|
+
rb_define_const(mSqlite3, "SQLITE_PRECOMPILED_LIBRARIES", Qfalse);
|
224
|
+
#endif
|
208
225
|
}
|
Binary file
|
Binary file
|
Binary file
|
data/lib/sqlite3/constants.rb
CHANGED
@@ -170,5 +170,29 @@ module SQLite3
|
|
170
170
|
# This parameter records the number of separate memory allocations currently checked out.
|
171
171
|
MALLOC_COUNT = 9
|
172
172
|
end
|
173
|
+
|
174
|
+
module Optimize
|
175
|
+
# Debugging mode. Do not actually perform any optimizations but instead return one line of
|
176
|
+
# text for each optimization that would have been done. Off by default.
|
177
|
+
DEBUG = 0x00001
|
178
|
+
|
179
|
+
# Run ANALYZE on tables that might benefit. On by default.
|
180
|
+
ANALYZE_TABLES = 0x00002
|
181
|
+
|
182
|
+
# When running ANALYZE, set a temporary PRAGMA analysis_limit to prevent excess run-time. On
|
183
|
+
# by default.
|
184
|
+
LIMIT_ANALYZE = 0x00010
|
185
|
+
|
186
|
+
# Check the size of all tables, not just tables that have not been recently used, to see if
|
187
|
+
# any have grown and shrunk significantly and hence might benefit from being re-analyzed. Off
|
188
|
+
# by default.
|
189
|
+
CHECK_ALL_TABLES = 0x10000
|
190
|
+
|
191
|
+
# Useful for adding a bit to the default behavior, for example
|
192
|
+
#
|
193
|
+
# db.optimize(Optimize::DEFAULT | Optimize::CHECK_ALL_TABLES)
|
194
|
+
#
|
195
|
+
DEFAULT = ANALYZE_TABLES | LIMIT_ANALYZE
|
196
|
+
end
|
173
197
|
end
|
174
198
|
end
|
data/lib/sqlite3/fork_safety.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require "weakref"
|
4
4
|
|
5
|
-
# based on Rails's active_support/fork_tracker.rb
|
6
5
|
module SQLite3
|
6
|
+
# based on Rails's active_support/fork_tracker.rb
|
7
7
|
module ForkSafety
|
8
|
-
module CoreExt
|
8
|
+
module CoreExt # :nodoc:
|
9
9
|
def _fork
|
10
10
|
pid = super
|
11
11
|
if pid == 0
|
@@ -20,17 +20,17 @@ module SQLite3
|
|
20
20
|
@suppress = false
|
21
21
|
|
22
22
|
class << self
|
23
|
-
def hook!
|
23
|
+
def hook! # :nodoc:
|
24
24
|
::Process.singleton_class.prepend(CoreExt)
|
25
25
|
end
|
26
26
|
|
27
|
-
def track(database)
|
27
|
+
def track(database) # :nodoc:
|
28
28
|
@mutex.synchronize do
|
29
29
|
@databases << WeakRef.new(database)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def discard
|
33
|
+
def discard # :nodoc:
|
34
34
|
warned = @suppress
|
35
35
|
@databases.each do |db|
|
36
36
|
next unless db.weakref_alive?
|
data/lib/sqlite3/pragmas.rb
CHANGED
@@ -93,7 +93,7 @@ module SQLite3
|
|
93
93
|
LOCKING_MODES = [["normal"], ["exclusive"]]
|
94
94
|
|
95
95
|
# The list of valid encodings.
|
96
|
-
ENCODINGS = [["utf-8"], ["utf-16"], ["utf-16le"], ["utf-16be
|
96
|
+
ENCODINGS = [["utf-8"], ["utf-16"], ["utf-16le"], ["utf-16be"]]
|
97
97
|
|
98
98
|
# The list of valid WAL checkpoints.
|
99
99
|
WAL_CHECKPOINTS = [["passive"], ["full"], ["restart"], ["truncate"]]
|
@@ -338,6 +338,20 @@ module SQLite3
|
|
338
338
|
set_int_pragma "mmap_size", size
|
339
339
|
end
|
340
340
|
|
341
|
+
# Attempt to optimize the database.
|
342
|
+
#
|
343
|
+
# To customize the optimization options, pass +bitmask+ with a combination
|
344
|
+
# of the Constants::Optimize masks.
|
345
|
+
#
|
346
|
+
# See https://www.sqlite.org/pragma.html#pragma_optimize for more information.
|
347
|
+
def optimize(bitmask = nil)
|
348
|
+
if bitmask
|
349
|
+
set_int_pragma "optimize", bitmask
|
350
|
+
else
|
351
|
+
execute("PRAGMA optimize")
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
341
355
|
def page_count
|
342
356
|
get_int_pragma "page_count"
|
343
357
|
end
|
data/lib/sqlite3/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
module SQLite3
|
2
|
+
# a hash of descriptive metadata about the current version of the sqlite3 gem
|
3
|
+
VERSION_INFO = {
|
4
|
+
ruby: RUBY_DESCRIPTION,
|
5
|
+
gem: {
|
6
|
+
version: SQLite3::VERSION
|
7
|
+
},
|
8
|
+
sqlite: {
|
9
|
+
compiled: SQLite3::SQLITE_VERSION,
|
10
|
+
loaded: SQLite3::SQLITE_LOADED_VERSION,
|
11
|
+
packaged: SQLite3::SQLITE_PACKAGED_LIBRARIES,
|
12
|
+
precompiled: SQLite3::SQLITE_PRECOMPILED_LIBRARIES,
|
13
|
+
sqlcipher: SQLite3.sqlcipher?,
|
14
|
+
threadsafe: SQLite3.threadsafe?
|
15
|
+
}
|
16
|
+
}
|
17
|
+
end
|
data/lib/sqlite3.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqlite3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: x86-linux-musl
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2024-
|
14
|
+
date: 2024-11-20 00:00:00.000000000 Z
|
15
15
|
dependencies: []
|
16
16
|
description: |
|
17
17
|
Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org). Precompiled
|
@@ -64,6 +64,7 @@ files:
|
|
64
64
|
- lib/sqlite3/statement.rb
|
65
65
|
- lib/sqlite3/value.rb
|
66
66
|
- lib/sqlite3/version.rb
|
67
|
+
- lib/sqlite3/version_info.rb
|
67
68
|
homepage: https://github.com/sparklemotion/sqlite3-ruby
|
68
69
|
licenses:
|
69
70
|
- BSD-3-Clause
|