sqlite3 2.6.0 → 2.7.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6b103e65a63d9c0e62ca2cbce8f09ba23b5873f03257be161dcdd2b93994089
4
- data.tar.gz: 858e6d9ecb8a349e49b22802c717d946c54aff00d005f56788ade89a3be5dece
3
+ metadata.gz: c3f581fa0e339580baea01de88c08793788ceb262189571721c6f65ee1e17886
4
+ data.tar.gz: 4d4850eb320b44437fe4458085a1d81f307265609e08db0849ddd39c1dcd1b09
5
5
  SHA512:
6
- metadata.gz: 3752aff46fdf0a5605549fe513ebe8744ef70cd6e9e46fcfdfac20f7e0dea7ce7cbe9e8e257c1be1605321350689bfc17faa3a8db8fe654497bd86e92837b2e2
7
- data.tar.gz: 32d4207d7388e903189987e484a0d4f296e7b89d5b44f169d93a70a1de78b7fa0a58953289880e273ece9155dc1b66d74919b3688e9df1fa8d6c4eb99dcf645c
6
+ metadata.gz: 88c36cc69a4f9b3fd425a99b2b66cbbf8b064ce55a355439140e2b478a9c0c121fe852c62e3e6f9a7c7d55168f8fb016d37331995ff14be2c9853fbad5266b5b
7
+ data.tar.gz: 6ef877f2998fec24724ffae67000e299053acc721354ae36cac909bc688dd8ac54061037ebd16aca8ad953323a6067c2cf5f86d79d99e189da783310b1414f39
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # sqlite3-ruby Changelog
2
2
 
3
+ ## 2.7.0 / 2025-06-09
4
+
5
+ - Vendored sqlite is updated to [v3.50.1](https://sqlite.org/releaselog/3_50_1.html) (from v3.49.1). #630 @flavorjones
6
+
7
+
3
8
  ## 2.6.0 / 2025-02-20
4
9
 
5
10
  ### Dependencies
data/dependencies.yml CHANGED
@@ -1,13 +1,13 @@
1
1
  sqlite3:
2
2
  # checksum verified by first checking the published sha3(256) checksum against https://sqlite.org/download.html:
3
- # 6cc831c9f588b637e5bd48d9fbf28e58737e08daf825c81085fb8e0a0b8ad14c
3
+ # c12e84ba9772391d41644a0a9be37bad25791fc2a9b9395962e5f83f805e877f
4
4
  #
5
- # $ sha3sum -a 256 ports/archives/sqlite-autoconf-3490100.tar.gz
6
- # 6cc831c9f588b637e5bd48d9fbf28e58737e08daf825c81085fb8e0a0b8ad14c ports/archives/sqlite-autoconf-3490100.tar.gz
5
+ # $ sha3sum -a 256 ports/archives/sqlite-autoconf-3500100.tar.gz
6
+ # c12e84ba9772391d41644a0a9be37bad25791fc2a9b9395962e5f83f805e877f ports/archives/sqlite-autoconf-3500100.tar.gz
7
7
  #
8
- # $ sha256sum ports/archives/sqlite-autoconf-3490100.tar.gz
9
- # 106642d8ccb36c5f7323b64e4152e9b719f7c0215acf5bfeac3d5e7f97b59254 ports/archives/sqlite-autoconf-3490100.tar.gz
10
- version: "3.49.1"
8
+ # $ sha256sum ports/archives/sqlite-autoconf-3500100.tar.gz
9
+ # 00a65114d697cfaa8fe0630281d76fd1b77afcd95cd5e40ec6a02cbbadbfea71 ports/archives/sqlite-autoconf-3500100.tar.gz
10
+ version: "3.50.1"
11
11
  files:
12
- - url: "https://sqlite.org/2025/sqlite-autoconf-3490100.tar.gz"
13
- sha256: "106642d8ccb36c5f7323b64e4152e9b719f7c0215acf5bfeac3d5e7f97b59254"
12
+ - url: "https://sqlite.org/2025/sqlite-autoconf-3500100.tar.gz"
13
+ sha256: "00a65114d697cfaa8fe0630281d76fd1b77afcd95cd5e40ec6a02cbbadbfea71"
@@ -82,6 +82,7 @@ module SQLite3
82
82
  # extensions:
83
83
  # - .sqlpkg/nalgeon/crypto/crypto.so # a filesystem path
84
84
  # - <%= SQLean::UUID.to_path %> # or ruby code returning a path
85
+ # - SQLean::Crypto # Rails 8.1+ accepts the name of a constant that responds to `to_path`
85
86
  #
86
87
  class Database
87
88
  attr_reader :collations
@@ -196,7 +197,7 @@ module SQLite3
196
197
  #
197
198
  # Fetch the encoding set on this database
198
199
  def encoding
199
- prepare("PRAGMA encoding") { |stmt| Encoding.find(stmt.first.first) }
200
+ Encoding.find super
200
201
  end
201
202
 
202
203
  # Installs (or removes) a block that will be invoked for every access
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "sqlite3/errors"
2
4
 
3
5
  module SQLite3
@@ -58,11 +60,20 @@ module SQLite3
58
60
  # have duplicate values. See #synchronous, #default_synchronous,
59
61
  # #temp_store, and #default_temp_store for usage examples.
60
62
  def set_enum_pragma(name, mode, enums)
61
- match = enums.find { |p| p.find { |i| i.to_s.downcase == mode.to_s.downcase } }
63
+ match = if enums.is_a?(Array)
64
+ # maybe deprecate this?
65
+ enums.find { |p| p.find { |i| i.to_s.downcase == mode.to_s.downcase } }
66
+ elsif mode.is_a?(String)
67
+ enums.fetch(mode.downcase)
68
+ else
69
+ mode
70
+ end
71
+
62
72
  unless match
63
73
  raise SQLite3::Exception, "unrecognized #{name} #{mode.inspect}"
64
74
  end
65
- execute("PRAGMA #{name}='#{match.first.upcase}'")
75
+
76
+ execute("PRAGMA #{name}='#{match}'")
66
77
  end
67
78
 
68
79
  # Returns the value of the given pragma as an integer.
@@ -77,26 +88,57 @@ module SQLite3
77
88
  end
78
89
 
79
90
  # The enumeration of valid synchronous modes.
80
- SYNCHRONOUS_MODES = [["full", 2], ["normal", 1], ["off", 0]]
91
+ SYNCHRONOUS_MODES = {
92
+ "full" => 2,
93
+ "normal" => 1,
94
+ "off" => 0
95
+ }.freeze
81
96
 
82
97
  # The enumeration of valid temp store modes.
83
- TEMP_STORE_MODES = [["default", 0], ["file", 1], ["memory", 2]]
98
+ TEMP_STORE_MODES = {
99
+ "default" => 0,
100
+ "file" => 1,
101
+ "memory" => 2
102
+ }.freeze
84
103
 
85
104
  # The enumeration of valid auto vacuum modes.
86
- AUTO_VACUUM_MODES = [["none", 0], ["full", 1], ["incremental", 2]]
105
+ AUTO_VACUUM_MODES = {
106
+ "none" => 0,
107
+ "full" => 1,
108
+ "incremental" => 2
109
+ }.freeze
87
110
 
88
111
  # The list of valid journaling modes.
89
- JOURNAL_MODES = [["delete"], ["truncate"], ["persist"], ["memory"],
90
- ["wal"], ["off"]]
112
+ JOURNAL_MODES = {
113
+ "delete" => "delete",
114
+ "truncate" => "truncate",
115
+ "persist" => "persist",
116
+ "memory" => "memory",
117
+ "wal" => "wal",
118
+ "off" => "off"
119
+ }.freeze
91
120
 
92
121
  # The list of valid locking modes.
93
- LOCKING_MODES = [["normal"], ["exclusive"]]
122
+ LOCKING_MODES = {
123
+ "normal" => "normal",
124
+ "exclusive" => "exclusive"
125
+ }.freeze
94
126
 
95
127
  # The list of valid encodings.
96
- ENCODINGS = [["utf-8"], ["utf-16"], ["utf-16le"], ["utf-16be"]]
128
+ ENCODINGS = {
129
+ "utf-8" => "utf-8",
130
+ "utf-16" => "utf-16",
131
+ "utf-16le" => "utf-16le",
132
+ "utf-16be" => "utf-16be"
133
+ }.freeze
97
134
 
98
135
  # The list of valid WAL checkpoints.
99
- WAL_CHECKPOINTS = [["passive"], ["full"], ["restart"], ["truncate"]]
136
+ WAL_CHECKPOINTS = {
137
+ "passive" => "passive",
138
+ "full" => "full",
139
+ "restart" => "restart",
140
+ "truncate" => "truncate"
141
+ }.freeze
100
142
 
101
143
  def application_id
102
144
  get_int_pragma "application_id"
@@ -227,7 +269,7 @@ module SQLite3
227
269
  end
228
270
 
229
271
  def encoding=(mode)
230
- set_enum_pragma "encoding", mode, ENCODINGS
272
+ set_string_pragma "encoding", mode, ENCODINGS
231
273
  end
232
274
 
233
275
  def foreign_key_check(*table, &block) # :yields: row
@@ -295,7 +337,7 @@ module SQLite3
295
337
  end
296
338
 
297
339
  def journal_mode=(mode)
298
- set_enum_pragma "journal_mode", mode, JOURNAL_MODES
340
+ set_string_pragma "journal_mode", mode, JOURNAL_MODES
299
341
  end
300
342
 
301
343
  def journal_size_limit
@@ -319,7 +361,7 @@ module SQLite3
319
361
  end
320
362
 
321
363
  def locking_mode=(mode)
322
- set_enum_pragma "locking_mode", mode, LOCKING_MODES
364
+ set_string_pragma "locking_mode", mode, LOCKING_MODES
323
365
  end
324
366
 
325
367
  def max_page_count
@@ -525,7 +567,7 @@ module SQLite3
525
567
  end
526
568
 
527
569
  def wal_checkpoint=(mode)
528
- set_enum_pragma "wal_checkpoint", mode, WAL_CHECKPOINTS
570
+ set_string_pragma "wal_checkpoint", mode, WAL_CHECKPOINTS
529
571
  end
530
572
 
531
573
  def writable_schema=(mode)
@@ -568,6 +610,13 @@ module SQLite3
568
610
 
569
611
  private
570
612
 
613
+ def set_string_pragma(pragma_name, value, valid_values)
614
+ valid_values.fetch(value.to_s.downcase) {
615
+ raise SQLite3::Exception, "unrecognized #{pragma_name} #{value.inspect}"
616
+ }
617
+ set_enum_pragma(pragma_name, value, valid_values)
618
+ end
619
+
571
620
  # Compares two version strings
572
621
  def version_compare(v1, v2)
573
622
  v1 = v1.split(".").map { |i| i.to_i }
@@ -1,4 +1,4 @@
1
1
  module SQLite3
2
2
  # (String) the version of the sqlite3 gem, e.g. "2.1.1"
3
- VERSION = "2.6.0"
3
+ VERSION = "2.7.0"
4
4
  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: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -10,7 +10,7 @@ authors:
10
10
  - Mike Dalessio
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-02-20 00:00:00.000000000 Z
13
+ date: 1980-01-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mini_portile2
@@ -75,7 +75,7 @@ files:
75
75
  - lib/sqlite3/value.rb
76
76
  - lib/sqlite3/version.rb
77
77
  - lib/sqlite3/version_info.rb
78
- - ports/archives/sqlite-autoconf-3490100.tar.gz
78
+ - ports/archives/sqlite-autoconf-3500100.tar.gz
79
79
  homepage: https://github.com/sparklemotion/sqlite3-ruby
80
80
  licenses:
81
81
  - BSD-3-Clause
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.6.2
106
+ rubygems_version: 3.6.8
107
107
  specification_version: 4
108
108
  summary: Ruby library to interface with the SQLite3 database engine (http://www.sqlite.org).
109
109
  test_files: []