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")
|
||||||
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
|
end
|
||||||
|
|
||||||
it "should use database option as file to open" do
|
it "should use database option as file to open" do
|
||||||
|
|
|
@ -21,7 +21,12 @@ describe DB::Pool do
|
||||||
fibers.times { channel.receive }
|
fibers.times { channel.receive }
|
||||||
|
|
||||||
# all numbers were inserted
|
# 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)
|
db.scalar("select sum(n) from numbers").should eq(s)
|
||||||
|
|
||||||
# numbers were not inserted one fiber at a time
|
# numbers were not inserted one fiber at a time
|
||||||
|
|
|
@ -19,11 +19,13 @@ ensure
|
||||||
File.delete(DB_FILENAME)
|
File.delete(DB_FILENAME)
|
||||||
end
|
end
|
||||||
|
|
||||||
def with_db(name, &block : DB::Database ->)
|
def with_db(config, &block : DB::Database ->)
|
||||||
File.delete(name) rescue nil
|
uri = "sqlite3:#{config}"
|
||||||
DB.open "sqlite3:#{name}", &block
|
filename = SQLite3::Connection.filename(URI.parse(uri))
|
||||||
|
File.delete(filename) rescue nil
|
||||||
|
DB.open uri, &block
|
||||||
ensure
|
ensure
|
||||||
File.delete(name)
|
File.delete(filename) if filename
|
||||||
end
|
end
|
||||||
|
|
||||||
def with_mem_db(&block : DB::Database ->)
|
def with_mem_db(&block : DB::Database ->)
|
||||||
|
|
|
@ -9,11 +9,15 @@ class SQLite3::Connection < DB::Connection
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.filename(uri : URI)
|
def self.filename(uri : URI)
|
||||||
URI.unescape (if path = uri.path
|
{% if compare_versions(Crystal::VERSION, "0.28.0") >= 0 %}
|
||||||
(uri.host || "") + path
|
URI.unescape((uri.host || "") + uri.path)
|
||||||
else
|
{% else %}
|
||||||
uri.opaque.not_nil!
|
URI.unescape (if path = uri.path
|
||||||
end)
|
(uri.host || "") + path
|
||||||
|
else
|
||||||
|
uri.opaque.not_nil!
|
||||||
|
end)
|
||||||
|
{% end %}
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_prepared_statement(query)
|
def build_prepared_statement(query)
|
||||||
|
|
Loading…
Reference in a new issue