mirror of
https://gitea.invidious.io/iv-org/shard-crystal-sqlite3.git
synced 2024-08-15 00:53:26 +00:00
Upgrade to Crystal 0.28.0 (#38)
This commit is contained in:
parent
a95182be08
commit
c621a9b701
4 changed files with 32 additions and 10 deletions
|
@ -18,6 +18,17 @@ describe Driver do
|
|||
|
||||
assert_filename("sqlite3:/path/to/file.db", "/path/to/file.db")
|
||||
assert_filename("sqlite3:///path/to/file.db", "/path/to/file.db")
|
||||
|
||||
{% if compare_versions(Crystal::VERSION, "0.28.0") >= 0 %}
|
||||
# Before 0.28.0 the filename had the query string in this case
|
||||
# but it didn't bother when deleting the file in pool_spec.cr.
|
||||
# After 0.28.0 the behavior is changed, but can't be fixed prior that
|
||||
# due to the use of URI#opaque.
|
||||
assert_filename("sqlite3:./file.db?max_pool_size=5", "./file.db")
|
||||
{% end %}
|
||||
assert_filename("sqlite3:/path/to/file.db?max_pool_size=5", "/path/to/file.db")
|
||||
assert_filename("sqlite3://./file.db?max_pool_size=5", "./file.db")
|
||||
assert_filename("sqlite3:///path/to/file.db?max_pool_size=5", "/path/to/file.db")
|
||||
end
|
||||
|
||||
it "should use database option as file to open" do
|
||||
|
|
|
@ -21,7 +21,12 @@ describe DB::Pool do
|
|||
fibers.times { channel.receive }
|
||||
|
||||
# all numbers were inserted
|
||||
s = fibers * max_n * (max_n + 1) / 2
|
||||
s : Int32
|
||||
{% if compare_versions(Crystal::VERSION, "0.28.0") >= 0 %}
|
||||
s = fibers * max_n * (max_n + 1) // 2
|
||||
{% else %}
|
||||
s = fibers * max_n * (max_n + 1) / 2
|
||||
{% end %}
|
||||
db.scalar("select sum(n) from numbers").should eq(s)
|
||||
|
||||
# numbers were not inserted one fiber at a time
|
||||
|
|
|
@ -19,11 +19,13 @@ ensure
|
|||
File.delete(DB_FILENAME)
|
||||
end
|
||||
|
||||
def with_db(name, &block : DB::Database ->)
|
||||
File.delete(name) rescue nil
|
||||
DB.open "sqlite3:#{name}", &block
|
||||
def with_db(config, &block : DB::Database ->)
|
||||
uri = "sqlite3:#{config}"
|
||||
filename = SQLite3::Connection.filename(URI.parse(uri))
|
||||
File.delete(filename) rescue nil
|
||||
DB.open uri, &block
|
||||
ensure
|
||||
File.delete(name)
|
||||
File.delete(filename) if filename
|
||||
end
|
||||
|
||||
def with_mem_db(&block : DB::Database ->)
|
||||
|
|
|
@ -9,11 +9,15 @@ class SQLite3::Connection < DB::Connection
|
|||
end
|
||||
|
||||
def self.filename(uri : URI)
|
||||
URI.unescape (if path = uri.path
|
||||
(uri.host || "") + path
|
||||
else
|
||||
uri.opaque.not_nil!
|
||||
end)
|
||||
{% if compare_versions(Crystal::VERSION, "0.28.0") >= 0 %}
|
||||
URI.unescape((uri.host || "") + uri.path)
|
||||
{% else %}
|
||||
URI.unescape (if path = uri.path
|
||||
(uri.host || "") + path
|
||||
else
|
||||
uri.opaque.not_nil!
|
||||
end)
|
||||
{% end %}
|
||||
end
|
||||
|
||||
def build_prepared_statement(query)
|
||||
|
|
Loading…
Reference in a new issue