diff --git a/Cargo.lock b/Cargo.lock index a2d4c7fd7..9472756f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -397,7 +397,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.4.0", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -863,7 +863,7 @@ version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.96", @@ -1439,12 +1439,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.4.0" @@ -1462,7 +1456,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.4.0", + "event-listener", "pin-project-lite", ] @@ -1580,6 +1574,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "fontconfig-parser" version = "0.5.7" @@ -1885,7 +1885,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", ] [[package]] @@ -1893,23 +1892,28 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashlink" -version = "0.8.4" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ "hashbrown 0.14.5", ] [[package]] -name = "heck" -version = "0.4.1" +name = "hashlink" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "unicode-segmentation", + "hashbrown 0.15.2", ] [[package]] @@ -2630,9 +2634,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.27.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "pkg-config", @@ -2925,7 +2929,7 @@ dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "event-listener 5.4.0", + "event-listener", "futures-util", "loom", "parking_lot", @@ -4061,14 +4065,14 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.30.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d" +checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ "bitflags 2.8.0", "fallible-iterator 0.3.0", "fallible-streaming-iterator", - "hashlink", + "hashlink 0.9.1", "libsqlite3-sys", "smallvec", ] @@ -4535,6 +4539,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "socket2" @@ -4582,16 +4589,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - [[package]] name = "sqlite-compressions" version = "0.2.18" @@ -4617,9 +4614,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" dependencies = [ "sqlx-core", "sqlx-macros", @@ -4630,37 +4627,31 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" dependencies = [ - "ahash", - "atoi", - "byteorder", "bytes", "crc", "crossbeam-queue", "either", - "event-listener 2.5.3", - "futures-channel", + "event-listener", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashlink", - "hex", + "hashbrown 0.15.2", + "hashlink 0.10.0", "indexmap 2.7.1", "log", "memchr", "once_cell", - "paste", "percent-encoding", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tokio-stream", "tracing", @@ -4669,26 +4660,26 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" dependencies = [ "proc-macro2", "quote", "sqlx-core", "sqlx-macros-core", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] name = "sqlx-macros-core" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" dependencies = [ "dotenvy", "either", - "heck 0.4.1", + "heck", "hex", "once_cell", "proc-macro2", @@ -4698,8 +4689,9 @@ dependencies = [ "sha2", "sqlx-core", "sqlx-mysql", + "sqlx-postgres", "sqlx-sqlite", - "syn 1.0.109", + "syn 2.0.96", "tempfile", "tokio", "url", @@ -4707,12 +4699,12 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bitflags 2.8.0", "byteorder", "bytes", @@ -4742,19 +4734,19 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" dependencies = [ "atoi", - "base64 0.21.7", + "base64 0.22.1", "bitflags 2.8.0", "byteorder", "crc", @@ -4762,7 +4754,6 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -4780,16 +4771,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" dependencies = [ "atoi", "flume", @@ -4802,10 +4793,10 @@ dependencies = [ "log", "percent-encoding", "serde", + "serde_urlencoded", "sqlx-core", "tracing", "url", - "urlencoding", ] [[package]] @@ -5582,12 +5573,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -5612,12 +5597,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "usvg" version = "0.36.0" diff --git a/Cargo.toml b/Cargo.toml index 0acf6e357..ea0f127e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,7 +83,7 @@ size_format = "1.0.2" spreet = { version = "0.11", default-features = false } sqlite-compressions = { version = "0.2.16", default-features = false, features = ["bsdiffraw", "gzip"] } sqlite-hashes = { version = "0.7.9", default-features = false, features = ["md5", "aggregate", "hex"] } -sqlx = { version = "0.7", features = ["sqlite", "runtime-tokio"] } +sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] } static-files = "0.2" subst = { version = "0.3", features = ["yaml"] } testcontainers-modules = { version = "0.11.6", features = ["postgres"] } diff --git a/justfile b/justfile index b072eb811..ff6e652ec 100644 --- a/justfile +++ b/justfile @@ -62,6 +62,11 @@ clean-martin-ui: clean-test: rm -rf tests/output +# Update dependencies, including breaking changes +update: + cargo +nightly -Z unstable-options update --breaking + cargo update + # Start a test database start: (docker-up "db") docker-is-ready diff --git a/mbtiles/.sqlx/query-176e99c6945b0789119d0d21a99de564de47dde1d588f17e68ec58115ac73a39.json b/mbtiles/.sqlx/query-176e99c6945b0789119d0d21a99de564de47dde1d588f17e68ec58115ac73a39.json index 25354e993..8e6f5e748 100644 --- a/mbtiles/.sqlx/query-176e99c6945b0789119d0d21a99de564de47dde1d588f17e68ec58115ac73a39.json +++ b/mbtiles/.sqlx/query-176e99c6945b0789119d0d21a99de564de47dde1d588f17e68ec58115ac73a39.json @@ -6,7 +6,7 @@ { "name": "has_rows", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { diff --git a/mbtiles/.sqlx/query-208681caa7185b4014e7eda4120962954cdd3d913e8a786599da8a3f9799ed4b.json b/mbtiles/.sqlx/query-208681caa7185b4014e7eda4120962954cdd3d913e8a786599da8a3f9799ed4b.json index 3550f54e0..7995f68d1 100644 --- a/mbtiles/.sqlx/query-208681caa7185b4014e7eda4120962954cdd3d913e8a786599da8a3f9799ed4b.json +++ b/mbtiles/.sqlx/query-208681caa7185b4014e7eda4120962954cdd3d913e8a786599da8a3f9799ed4b.json @@ -6,7 +6,7 @@ { "name": "page_size", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { diff --git a/mbtiles/.sqlx/query-41798c456136acb48ce59769a8abd1c6fb638f84d35457093b5dfbb3c8005433.json b/mbtiles/.sqlx/query-41798c456136acb48ce59769a8abd1c6fb638f84d35457093b5dfbb3c8005433.json index b389139d1..52857b067 100644 --- a/mbtiles/.sqlx/query-41798c456136acb48ce59769a8abd1c6fb638f84d35457093b5dfbb3c8005433.json +++ b/mbtiles/.sqlx/query-41798c456136acb48ce59769a8abd1c6fb638f84d35457093b5dfbb3c8005433.json @@ -6,22 +6,22 @@ { "name": "zoom", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "count", "ordinal": 1, - "type_info": "Int" + "type_info": "Integer" }, { "name": "smallest", "ordinal": 2, - "type_info": "Int" + "type_info": "Integer" }, { "name": "largest", "ordinal": 3, - "type_info": "Int" + "type_info": "Integer" }, { "name": "average", @@ -31,22 +31,22 @@ { "name": "min_tile_x", "ordinal": 5, - "type_info": "Int" + "type_info": "Integer" }, { "name": "min_tile_y", "ordinal": 6, - "type_info": "Int" + "type_info": "Integer" }, { "name": "max_tile_x", "ordinal": 7, - "type_info": "Int" + "type_info": "Integer" }, { "name": "max_tile_y", "ordinal": 8, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { diff --git a/mbtiles/.sqlx/query-5b298df51dccbf0d8a22433a99febc59c27dbf204d09a9c1fb0b3bf9aaad284b.json b/mbtiles/.sqlx/query-5b298df51dccbf0d8a22433a99febc59c27dbf204d09a9c1fb0b3bf9aaad284b.json index b73b48bb2..60ca153c9 100644 --- a/mbtiles/.sqlx/query-5b298df51dccbf0d8a22433a99febc59c27dbf204d09a9c1fb0b3bf9aaad284b.json +++ b/mbtiles/.sqlx/query-5b298df51dccbf0d8a22433a99febc59c27dbf204d09a9c1fb0b3bf9aaad284b.json @@ -6,12 +6,12 @@ { "name": "tile_column", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "tile_row", "ordinal": 1, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "tile_data", diff --git a/mbtiles/.sqlx/query-7341bfc10beb4719811556a57ae8098085994c8fba93e0293359afd43079c50c.json b/mbtiles/.sqlx/query-7341bfc10beb4719811556a57ae8098085994c8fba93e0293359afd43079c50c.json index 2b9d7474d..df630d0b5 100644 --- a/mbtiles/.sqlx/query-7341bfc10beb4719811556a57ae8098085994c8fba93e0293359afd43079c50c.json +++ b/mbtiles/.sqlx/query-7341bfc10beb4719811556a57ae8098085994c8fba93e0293359afd43079c50c.json @@ -6,14 +6,14 @@ { "name": "is_valid", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { "Right": 0 }, "nullable": [ - null + false ] }, "hash": "7341bfc10beb4719811556a57ae8098085994c8fba93e0293359afd43079c50c" diff --git a/mbtiles/.sqlx/query-73b5d12b379c0fb2d8560d99653729d96dd1288005f47872c6a79b5bbf1ca8de.json b/mbtiles/.sqlx/query-73b5d12b379c0fb2d8560d99653729d96dd1288005f47872c6a79b5bbf1ca8de.json index e72960107..c73c455e9 100644 --- a/mbtiles/.sqlx/query-73b5d12b379c0fb2d8560d99653729d96dd1288005f47872c6a79b5bbf1ca8de.json +++ b/mbtiles/.sqlx/query-73b5d12b379c0fb2d8560d99653729d96dd1288005f47872c6a79b5bbf1ca8de.json @@ -6,7 +6,7 @@ { "name": "page_count", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { diff --git a/mbtiles/.sqlx/query-748436831449877b242d6e167a2f8fe1b1e7b6fb87c4e04ad7406a2bbfd35bec.json b/mbtiles/.sqlx/query-748436831449877b242d6e167a2f8fe1b1e7b6fb87c4e04ad7406a2bbfd35bec.json index ad0518d11..6f43f10c8 100644 --- a/mbtiles/.sqlx/query-748436831449877b242d6e167a2f8fe1b1e7b6fb87c4e04ad7406a2bbfd35bec.json +++ b/mbtiles/.sqlx/query-748436831449877b242d6e167a2f8fe1b1e7b6fb87c4e04ad7406a2bbfd35bec.json @@ -6,17 +6,17 @@ { "name": "zoom_level", "ordinal": 0, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "tile_column", "ordinal": 1, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "tile_row", "ordinal": 2, - "type_info": "Int64" + "type_info": "Integer" }, { "name": "tile_data", diff --git a/mbtiles/.sqlx/query-77b2f46851c4e991230ec6a5d33aaca18373bbdd548a8378ae7fbeed351b4b87.json b/mbtiles/.sqlx/query-77b2f46851c4e991230ec6a5d33aaca18373bbdd548a8378ae7fbeed351b4b87.json index acb0b2ecc..677e780d8 100644 --- a/mbtiles/.sqlx/query-77b2f46851c4e991230ec6a5d33aaca18373bbdd548a8378ae7fbeed351b4b87.json +++ b/mbtiles/.sqlx/query-77b2f46851c4e991230ec6a5d33aaca18373bbdd548a8378ae7fbeed351b4b87.json @@ -6,14 +6,14 @@ { "name": "is_valid", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { "Right": 0 }, "nullable": [ - null + false ] }, "hash": "77b2f46851c4e991230ec6a5d33aaca18373bbdd548a8378ae7fbeed351b4b87" diff --git a/mbtiles/.sqlx/query-809e89c3b223e28c6716d405e13ba30fbf018805fe9ca2acd2b2e225183d1f13.json b/mbtiles/.sqlx/query-809e89c3b223e28c6716d405e13ba30fbf018805fe9ca2acd2b2e225183d1f13.json index faf6b51f7..e8a351f93 100644 --- a/mbtiles/.sqlx/query-809e89c3b223e28c6716d405e13ba30fbf018805fe9ca2acd2b2e225183d1f13.json +++ b/mbtiles/.sqlx/query-809e89c3b223e28c6716d405e13ba30fbf018805fe9ca2acd2b2e225183d1f13.json @@ -6,14 +6,14 @@ { "name": "is_valid", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { "Right": 0 }, "nullable": [ - null + false ] }, "hash": "809e89c3b223e28c6716d405e13ba30fbf018805fe9ca2acd2b2e225183d1f13" diff --git a/mbtiles/.sqlx/query-85b46712c445679053e768cc98b22ea61633c21afb45d3d2b9aeec068d72cce0.json b/mbtiles/.sqlx/query-85b46712c445679053e768cc98b22ea61633c21afb45d3d2b9aeec068d72cce0.json index 45fdc4f2a..ab4bd17ba 100644 --- a/mbtiles/.sqlx/query-85b46712c445679053e768cc98b22ea61633c21afb45d3d2b9aeec068d72cce0.json +++ b/mbtiles/.sqlx/query-85b46712c445679053e768cc98b22ea61633c21afb45d3d2b9aeec068d72cce0.json @@ -6,14 +6,14 @@ { "name": "is_valid", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { "Right": 0 }, "nullable": [ - null + false ] }, "hash": "85b46712c445679053e768cc98b22ea61633c21afb45d3d2b9aeec068d72cce0" diff --git a/mbtiles/.sqlx/query-96f3201d2151fbef63593c0e87648a2991e05060e71aa96141ece0867afa2d6c.json b/mbtiles/.sqlx/query-96f3201d2151fbef63593c0e87648a2991e05060e71aa96141ece0867afa2d6c.json index 855a012f9..7d5f576d6 100644 --- a/mbtiles/.sqlx/query-96f3201d2151fbef63593c0e87648a2991e05060e71aa96141ece0867afa2d6c.json +++ b/mbtiles/.sqlx/query-96f3201d2151fbef63593c0e87648a2991e05060e71aa96141ece0867afa2d6c.json @@ -6,12 +6,12 @@ { "name": "min_zoom", "ordinal": 0, - "type_info": "Int" + "type_info": "Integer" }, { "name": "max_zoom", "ordinal": 1, - "type_info": "Int" + "type_info": "Integer" } ], "parameters": { diff --git a/mbtiles/src/queries.rs b/mbtiles/src/queries.rs index 427ccc1d3..e0095424d 100644 --- a/mbtiles/src/queries.rs +++ b/mbtiles/src/queries.rs @@ -61,12 +61,7 @@ where ) AS is_valid;" ); - Ok(sql - .fetch_one(&mut *conn) - .await? - .is_valid - .unwrap_or_default() - == 1) + Ok(sql.fetch_one(&mut *conn).await?.is_valid == 1) } /// Check if `MBTiles` has a table or a view named `tiles_with_hash` with needed fields @@ -90,12 +85,7 @@ where ) as is_valid;" ); - Ok(sql - .fetch_one(&mut *conn) - .await? - .is_valid - .unwrap_or_default() - == 1) + Ok(sql.fetch_one(&mut *conn).await?.is_valid == 1) } pub async fn is_flat_with_hash_tables_type<T>(conn: &mut T) -> MbtResult<bool> @@ -115,7 +105,7 @@ where let is_valid = sql.fetch_one(&mut *conn).await?.is_valid; - Ok(is_valid.unwrap_or_default() == 1 && has_tiles_with_hash(&mut *conn).await?) + Ok(is_valid == 1 && has_tiles_with_hash(&mut *conn).await?) } pub async fn is_flat_tables_type<T>(conn: &mut T) -> MbtResult<bool> @@ -144,12 +134,7 @@ where ) as is_valid;" ); - Ok(sql - .fetch_one(&mut *conn) - .await? - .is_valid - .unwrap_or_default() - == 1) + Ok(sql.fetch_one(&mut *conn).await?.is_valid == 1) } pub async fn create_metadata_table<T>(conn: &mut T) -> MbtResult<()> @@ -382,7 +367,7 @@ where Ok(()) } -fn validate_zoom(zoom: Option<i32>, zoom_name: &'static str) -> MbtResult<Option<u8>> { +fn validate_zoom(zoom: Option<i64>, zoom_name: &'static str) -> MbtResult<Option<u8>> { if let Some(zoom) = zoom { let z = u8::try_from(zoom).ok().filter(|v| *v <= MAX_ZOOM); if z.is_none() { diff --git a/mbtiles/tests/copy.rs b/mbtiles/tests/copy.rs index f64140a86..ced0add2f 100644 --- a/mbtiles/tests/copy.rs +++ b/mbtiles/tests/copy.rs @@ -180,7 +180,11 @@ macro_rules! assert_dump { let mut settings = insta::Settings::clone_current(); settings.set_snapshot_suffix(format!($($arg)*)); let actual_value = &$actual_value; - settings.bind(|| insta::assert_toml_snapshot!(actual_value)); + settings.bind(|| + allow_duplicates! { + insta::assert_toml_snapshot!(actual_value) + } + ); }}; } @@ -326,7 +330,7 @@ fn databases() -> Databases { let (v2z_mbt, mut v2z_cn) = new_file!(+GZIP_TILES, databases, mbt_typ, METADATA_V2, TILES_V2, "{typ}__v2z"); let dmp = dump(&mut v2z_cn).await.unwrap(); - assert_dump!(&dmp, "{typ}__v2"); + assert_dump!(&dmp, "{typ}__v2z"); let hash = v2z_mbt.open_and_validate(Off, Verify).await.unwrap(); allow_duplicates! { assert_snapshot!(hash, @"A18D0C39730FB52E5A547F096F5C60E8"); @@ -447,9 +451,7 @@ async fn convert( copy => CopyType::Metadata, dst_type_cli => Some(dst_type), }; - allow_duplicates! { - assert_dump!(dmp, "v1__meta__{to}"); - } + assert_dump!(dmp, "v1__meta__{to}"); let dmp = copy_dump! { path(&frm_mbt), @@ -457,9 +459,7 @@ async fn convert( copy => CopyType::Tiles, dst_type_cli => Some(dst_type), }; - allow_duplicates! { - assert_dump!(dmp, "v1__tiles__{to}"); - } + assert_dump!(dmp, "v1__tiles__{to}"); let z6only = copy_dump! { path(&frm_mbt), @@ -467,9 +467,7 @@ async fn convert( dst_type_cli => Some(dst_type), zoom_levels => vec![6], }; - allow_duplicates! { - assert_dump!(z6only, "v1__z6__{to}"); - } + assert_dump!(z6only, "v1__z6__{to}"); // Filter (0, 0, 2, 2) in mbtiles coordinates, which is (0, 2^5-1-2, 2, 2^5-1-0) = (0, 29, 2, 31) in XYZ coordinates, and slightly decrease it let mut bbox = xyz_to_bbox(5, 0, invert_y_value(5, 2), 2, invert_y_value(5, 0)); @@ -484,9 +482,7 @@ async fn convert( dst_type_cli => Some(dst_type), bbox => vec![bbox.into()], }; - allow_duplicates! { - assert_dump!(dmp, "v1__bbox__{to}"); - } + assert_dump!(dmp, "v1__bbox__{to}"); pretty_assert_eq!( &z6only,