mirror of
https://github.com/maplibre/martin.git
synced 2024-12-26 08:26:13 +03:00
ccd550a2cf
* `mbtiles diff` now has an additional `--patch-type` param with `whole`, `bin-diff-raw` and `bin-diff-gz` values: * `whole` stores different tiles as before - as whole tiles in the `tiles` table * `bin-diff-raw` computes binary difference between tiles, and stores them as brotli-encoded value in a `bsdiffraw` table, together with a `xxh3_64` hash of the tile as it will be stored after patching * `bin-diff-gz` same as `bin-diff-raw`, but assumes the tiles are gzip-compressed, so it uncompresses them before comparing. The `xxh3_64` stores the hash of the uncompressed tile. The data will be stored in the `bsdiffrawgz` table (identical structure with above) * `mbtiles copy --apply-patch` will automatically detect if `bsdiffrawgz` or `bsdiffraw` tables exist, and will use binary patching. * `mbtiles apply-patch` does not support binary patching yet * `mbtiles copy --diff-with-file ... --patch-type ...` is an alias to `mbtiles diff --patch-type ...`
76 lines
2.0 KiB
Plaintext
76 lines
2.0 KiB
Plaintext
---
|
|
source: mbtiles/tests/copy.rs
|
|
expression: actual_value
|
|
---
|
|
[[]]
|
|
type = 'table'
|
|
tbl_name = 'bsdiffraw'
|
|
sql = '''
|
|
CREATE TABLE bsdiffraw (
|
|
zoom_level integer NOT NULL,
|
|
tile_column integer NOT NULL,
|
|
tile_row integer NOT NULL,
|
|
patch_data blob NOT NULL,
|
|
tile_xxh3_64_hash integer NOT NULL,
|
|
PRIMARY KEY(zoom_level, tile_column, tile_row))'''
|
|
values = [
|
|
'( 5, 1, 1, blob(1B1E00F80799700B0AE100F45284A210A00708A0C03B), 479130493 )',
|
|
'( 5, 1, 2, blob(1B2000F8079970D30C62EDF2D8285E11400000BB2F01), -1097843426 )',
|
|
'( 5, 1, 3, blob(;), 953390274 )',
|
|
'( 6, 1, 4, blob(1B1F00F8077163E37063303653B324A12804E8010450E0ED01), 386481748 )',
|
|
]
|
|
|
|
[[]]
|
|
type = 'table'
|
|
tbl_name = 'metadata'
|
|
sql = '''
|
|
CREATE TABLE metadata (
|
|
name text NOT NULL PRIMARY KEY,
|
|
value text)'''
|
|
values = [
|
|
'( "agg_tiles_hash", "585A88FEEC740448FF1EB4F96088FFE3" )',
|
|
'( "agg_tiles_hash_after_apply", "3BCDEE3F52407FF1315629298CB99133" )',
|
|
'( "agg_tiles_hash_before_apply", "9ED9178D7025276336C783C2B54D6258" )',
|
|
'( "md-edit", "value - v2" )',
|
|
'( "md-new", "value - new" )',
|
|
'( "md-remove", NULL )',
|
|
]
|
|
|
|
[[]]
|
|
type = 'table'
|
|
tbl_name = 'tiles_with_hash'
|
|
sql = '''
|
|
CREATE TABLE tiles_with_hash (
|
|
zoom_level integer NOT NULL,
|
|
tile_column integer NOT NULL,
|
|
tile_row integer NOT NULL,
|
|
tile_data blob,
|
|
tile_hash text,
|
|
PRIMARY KEY(zoom_level, tile_column, tile_row))'''
|
|
values = [
|
|
'( 5, 2, 2, NULL, "" )',
|
|
'( 5, 2, 3, NULL, "" )',
|
|
'( 5, 3, 7, blob(new), "22AF645D1859CB5CA6DA0C484F1F37EA" )',
|
|
'( 5, 3, 8, blob(new), "22AF645D1859CB5CA6DA0C484F1F37EA" )',
|
|
'( 6, 2, 6, NULL, "" )',
|
|
]
|
|
|
|
[[]]
|
|
type = 'index'
|
|
tbl_name = 'bsdiffraw'
|
|
|
|
[[]]
|
|
type = 'index'
|
|
tbl_name = 'metadata'
|
|
|
|
[[]]
|
|
type = 'index'
|
|
tbl_name = 'tiles_with_hash'
|
|
|
|
[[]]
|
|
type = 'view'
|
|
tbl_name = 'tiles'
|
|
sql = '''
|
|
CREATE VIEW tiles AS
|
|
SELECT zoom_level, tile_column, tile_row, tile_data FROM tiles_with_hash'''
|