sqlite3 1.6.8-x64-mingw32 → 1.6.9-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -2
- data/dependencies.yml +8 -8
- data/lib/sqlite3/2.7/sqlite3_native.so +0 -0
- data/lib/sqlite3/3.0/sqlite3_native.so +0 -0
- data/lib/sqlite3/database.rb +22 -7
- data/lib/sqlite3/version.rb +2 -2
- data/test/test_database.rb +40 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d052ca6f5cf319a020128106abedea6b7f00b3499285d2c2751fa36b98669534
|
4
|
+
data.tar.gz: 8bdee0c9de143c48fa8df79fb06da2bdcaeaca5bc95cae7ef2f4fddb05d6b379
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b8e217fed4a5557b3d2da7e4a961fa21332386d588b4468e97812e8728362cdcccaa32848d410bd415af3e9149c7e7d1be25bfe890e3625dff7a58841067103
|
7
|
+
data.tar.gz: 692520336e0cd93bd809792a7735ede99a2ccec509a7f075f8d741c2e3986ddbe2aa8b6919d2286749ca4f5a4b1de05e5ea75e3e49f801ee557e4a05f1b1620a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# sqlite3-ruby Changelog
|
2
2
|
|
3
|
+
## 1.6.9 / 2023-11-26
|
4
|
+
|
5
|
+
### Dependencies
|
6
|
+
|
7
|
+
- Vendored sqlite is update to [v3.44.2](https://sqlite.org/releaselog/3_44_2.html). @flavorjones
|
8
|
+
|
9
|
+
### Added
|
10
|
+
|
11
|
+
- `Database.new` now accepts a `:default_transaction_mode` option (defaulting to `:deferred`), and `Database#transaction` no longer requires a transaction mode to be specified. This should allow higher-level adapters to more easily choose a transaction mode for a database connection. [#426] @masamitsu-murase
|
12
|
+
|
13
|
+
|
3
14
|
## 1.6.8 / 2023-11-01
|
4
15
|
|
5
16
|
### Dependencies
|
data/Gemfile
CHANGED
@@ -5,6 +5,6 @@ gemspec
|
|
5
5
|
gem("minitest", "5.20.0")
|
6
6
|
gem("rake-compiler", "1.2.5")
|
7
7
|
gem("rake-compiler-dock", "1.3.1")
|
8
|
-
gem("rdoc", "6.
|
8
|
+
gem("rdoc", "6.6.0")
|
9
9
|
|
10
|
-
gem("ruby_memcheck", "2.2.
|
10
|
+
gem("ruby_memcheck", "2.2.1") if Gem::Platform.local.os == "linux"
|
data/dependencies.yml
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# TODO: stop using symbols here once we no longer support Ruby 2.7 and can rely on symbolize_names
|
2
2
|
:sqlite3:
|
3
3
|
# checksum verified by first checking the published sha3(256) checksum against https://sqlite.org/download.html:
|
4
|
-
#
|
4
|
+
# 6c427f0547e2f7babe636b748dd5d5a1f2f31601adadef7e2805e7d1f7171861
|
5
5
|
#
|
6
|
-
# $ sha3sum -a 256 ports/archives/sqlite-autoconf-
|
7
|
-
#
|
6
|
+
# $ sha3sum -a 256 ports/archives/sqlite-autoconf-3440200.tar.gz
|
7
|
+
# 6c427f0547e2f7babe636b748dd5d5a1f2f31601adadef7e2805e7d1f7171861 ports/archives/sqlite-autoconf-3440200.tar.gz
|
8
8
|
#
|
9
|
-
# $ sha256sum ports/archives/sqlite-autoconf-
|
10
|
-
#
|
11
|
-
:version: "3.44.
|
9
|
+
# $ sha256sum ports/archives/sqlite-autoconf-3440200.tar.gz
|
10
|
+
# 1c6719a148bc41cf0f2bbbe3926d7ce3f5ca09d878f1246fcc20767b175bb407 ports/archives/sqlite-autoconf-3440200.tar.gz
|
11
|
+
:version: "3.44.2"
|
12
12
|
:files:
|
13
|
-
- :url: "https://sqlite.org/2023/sqlite-autoconf-
|
14
|
-
:sha256: "
|
13
|
+
- :url: "https://sqlite.org/2023/sqlite-autoconf-3440200.tar.gz"
|
14
|
+
:sha256: "1c6719a148bc41cf0f2bbbe3926d7ce3f5ca09d878f1246fcc20767b175bb407"
|
Binary file
|
Binary file
|
data/lib/sqlite3/database.rb
CHANGED
@@ -71,12 +71,23 @@ module SQLite3
|
|
71
71
|
|
72
72
|
# call-seq: SQLite3::Database.new(file, options = {})
|
73
73
|
#
|
74
|
-
# Create a new Database object that opens the given file.
|
75
|
-
#
|
74
|
+
# Create a new Database object that opens the given file.
|
75
|
+
#
|
76
|
+
# Supported permissions +options+:
|
77
|
+
# - the default mode is <tt>READWRITE | CREATE</tt>
|
78
|
+
# - +:readonly+: boolean (default false), true to set the mode to +READONLY+
|
79
|
+
# - +:readwrite+: boolean (default false), true to set the mode to +READWRITE+
|
80
|
+
# - +:flags+: set the mode to a combination of SQLite3::Constants::Open flags.
|
81
|
+
#
|
82
|
+
# Supported encoding +options+:
|
83
|
+
# - +:utf16+: boolean (default false), is the filename's encoding UTF-16 (only needed if the filename encoding is not UTF_16LE or BE)
|
84
|
+
#
|
85
|
+
# Other supported +options+:
|
86
|
+
# - +:strict+: boolean (default false), disallow the use of double-quoted string literals (see https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted)
|
87
|
+
# - +:results_as_hash+: boolean (default false), return rows as hashes instead of arrays
|
88
|
+
# - +:type_translation+: boolean (default false), enable type translation
|
89
|
+
# - +:default_transaction_mode+: one of +:deferred+ (default), +:immediate+, or +:exclusive+. If a mode is not specified in a call to #transaction, this will be the default transaction mode.
|
76
90
|
#
|
77
|
-
# By default, the new database will return result rows as arrays
|
78
|
-
# (#results_as_hash) and has type translation disabled (#type_translation=).
|
79
|
-
|
80
91
|
def initialize file, options = {}, zvfs = nil
|
81
92
|
mode = Constants::Open::READWRITE | Constants::Open::CREATE
|
82
93
|
|
@@ -119,6 +130,7 @@ module SQLite3
|
|
119
130
|
@type_translation = options[:type_translation]
|
120
131
|
@type_translator = make_type_translator @type_translation
|
121
132
|
@readonly = mode & Constants::Open::READONLY != 0
|
133
|
+
@default_transaction_mode = options[:default_transaction_mode] || :deferred
|
122
134
|
|
123
135
|
if block_given?
|
124
136
|
begin
|
@@ -622,8 +634,10 @@ module SQLite3
|
|
622
634
|
# by SQLite, so attempting to nest a transaction will result in a runtime
|
623
635
|
# exception.
|
624
636
|
#
|
625
|
-
# The +mode+ parameter may be either <tt>:deferred</tt
|
637
|
+
# The +mode+ parameter may be either <tt>:deferred</tt>,
|
626
638
|
# <tt>:immediate</tt>, or <tt>:exclusive</tt>.
|
639
|
+
# If `nil` is specified, the default transaction mode, which was
|
640
|
+
# passed to #initialize, is used.
|
627
641
|
#
|
628
642
|
# If a block is given, the database instance is yielded to it, and the
|
629
643
|
# transaction is committed when the block terminates. If the block
|
@@ -634,7 +648,8 @@ module SQLite3
|
|
634
648
|
# If a block is not given, it is the caller's responsibility to end the
|
635
649
|
# transaction explicitly, either by calling #commit, or by calling
|
636
650
|
# #rollback.
|
637
|
-
def transaction( mode =
|
651
|
+
def transaction( mode = nil )
|
652
|
+
mode = @default_transaction_mode if mode.nil?
|
638
653
|
execute "begin #{mode.to_s} transaction"
|
639
654
|
|
640
655
|
if block_given?
|
data/lib/sqlite3/version.rb
CHANGED
data/test/test_database.rb
CHANGED
@@ -624,5 +624,45 @@ module SQLite3
|
|
624
624
|
db.execute("insert into foo values (?)", Float::INFINITY)
|
625
625
|
assert_equal Float::INFINITY, db.execute("select avg(temperature) from foo").first.first
|
626
626
|
end
|
627
|
+
|
628
|
+
def test_default_transaction_mode
|
629
|
+
tf = Tempfile.new 'database_default_transaction_mode'
|
630
|
+
SQLite3::Database.new(tf.path) do |db|
|
631
|
+
db.execute("create table foo (score int)")
|
632
|
+
db.execute("insert into foo values (?)", 1)
|
633
|
+
end
|
634
|
+
|
635
|
+
test_cases = [
|
636
|
+
{mode: nil, read: true, write: true},
|
637
|
+
{mode: :deferred, read: true, write: true},
|
638
|
+
{mode: :immediate, read: true, write: false},
|
639
|
+
{mode: :exclusive, read: false, write: false},
|
640
|
+
]
|
641
|
+
|
642
|
+
test_cases.each do |item|
|
643
|
+
db = SQLite3::Database.new tf.path, default_transaction_mode: item[:mode]
|
644
|
+
db2 = SQLite3::Database.new tf.path
|
645
|
+
db.transaction do
|
646
|
+
sql_for_read_test = "select * from foo"
|
647
|
+
if item[:read]
|
648
|
+
assert_nothing_raised{ db2.execute(sql_for_read_test) }
|
649
|
+
else
|
650
|
+
assert_raises(SQLite3::BusyException){ db2.execute(sql_for_read_test) }
|
651
|
+
end
|
652
|
+
|
653
|
+
sql_for_write_test = "insert into foo values (2)"
|
654
|
+
if item[:write]
|
655
|
+
assert_nothing_raised{ db2.execute(sql_for_write_test) }
|
656
|
+
else
|
657
|
+
assert_raises(SQLite3::BusyException){ db2.execute(sql_for_write_test) }
|
658
|
+
end
|
659
|
+
end
|
660
|
+
ensure
|
661
|
+
db.close if db && !db.closed?
|
662
|
+
db2.close if db2 && !db2.closed?
|
663
|
+
end
|
664
|
+
ensure
|
665
|
+
tf.unlink if tf
|
666
|
+
end
|
627
667
|
end
|
628
668
|
end
|
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: 1.6.
|
4
|
+
version: 1.6.9
|
5
5
|
platform: x64-mingw32
|
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: 2023-11-
|
14
|
+
date: 2023-11-26 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
|