Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
sharkAndshark committed Feb 5, 2024
1 parent 6a44f26 commit 4dc1332
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 37 deletions.
53 changes: 19 additions & 34 deletions mbtiles/src/diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,21 @@ async fn write_metadata_diff(
dst_type: MbtType,
src_attach_name: &str,
dst_attach_name: &str,
) -> MbtResult<()> {
todo!()
}

async fn write_tiles_diff(
conn: &mut SqliteConnection,
src_type: MbtType,
dst_type: MbtType,
src_attach_name: &str,
dst_attach_name: &str,
) -> MbtResult<()> {
let tile_diff_sql = match (src_type, dst_type) {
(MbtType::Flat, MbtType::Flat) => todo!(),
(MbtType::Flat, MbtType::FlatWithHash) => todo!(),
(MbtType::Flat, MbtType::Normalized { hash_view }) => todo!(),
(MbtType::Flat, MbtType::Flat) => include_str!("scripts/diff/flat_to_others.sql"),
(MbtType::Flat, MbtType::FlatWithHash) =>include_str!("scripts/diff/flat_to_others.sql"),
(MbtType::Flat, MbtType::Normalized { hash_view }) =>include_str!("scripts/diff/flat_to_others.sql"),
(MbtType::FlatWithHash, MbtType::Flat) => todo!(),
(MbtType::FlatWithHash, MbtType::FlatWithHash) => todo!(),
(MbtType::FlatWithHash, MbtType::Normalized { hash_view }) => todo!(),
Expand All @@ -59,35 +69,8 @@ async fn write_metadata_diff(
},
) => todo!(),
};
let tile_deletion_sql = match (src_type, dst_type) {
(MbtType::Flat, MbtType::Flat) => todo!(),
(MbtType::Flat, MbtType::FlatWithHash) => todo!(),
(MbtType::Flat, MbtType::Normalized { hash_view }) => todo!(),
(MbtType::FlatWithHash, MbtType::Flat) => todo!(),
(MbtType::FlatWithHash, MbtType::FlatWithHash) => todo!(),
(MbtType::FlatWithHash, MbtType::Normalized { hash_view }) => todo!(),
(MbtType::Normalized { hash_view }, MbtType::Flat) => todo!(),
(MbtType::Normalized { hash_view }, MbtType::FlatWithHash) => todo!(),
(
MbtType::Normalized {
hash_view: hash_view1,
},
MbtType::Normalized {
hash_view: hash_view2,
},
) => todo!(),
};
todo!()
}

async fn write_tiles_diff(
conn: &mut SqliteConnection,
src_type: MbtType,
dst_type: MbtType,
src_attach_name: &str,
dst_attach_name: &str,
) -> MbtResult<()> {
todo!()
sqlx::query(tile_diff_sql).execute(conn).await?;
Ok(())
}

async fn init_mbtiles(conn: &mut SqliteConnection, mbt_type: MbtType) -> MbtResult<()> {
Expand All @@ -106,14 +89,16 @@ async fn init_mbtiles(conn: &mut SqliteConnection, mbt_type: MbtType) -> MbtResu

#[cfg(test)]
mod tests {
use crate::diff::init_mbtiles;
use sqlx::Connection;
use std::path::PathBuf;

use crate::MbtResult;
use crate::{MbtResult, MbtType, Mbtiles};

#[actix_rt::test]
async fn diff_flat_to_flat() -> MbtResult<()> {
let src = PathBuf::from("../tests/fixtures/mbtiles/world_cities.mbtiles");
let dst = PathBuf::from("file:copy_flat_tables_mem_db?mode=memory&cache=shared");
let dst = PathBuf::from("../tests/fixtures/mbtiles/json.mbtiles");
let diff = PathBuf::from("diff_flat_to_flat.mbtiles");

super::diff(src, dst, diff).await
Expand Down
16 changes: 13 additions & 3 deletions mbtiles/src/scripts/diff/flat_to_others.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
INSERT INTO table3 (zoom_level, tile_column, tile_row, tile_data)
INSERT INTO diffDb.tiles (zoom_level, tile_column, tile_row, tile_data)
SELECT zoom_level, tile_column, tile_row, tile_data
FROM table2
FROM tiles
EXCEPT
SELECT zoom_level, tile_column, tile_row, tile_data
FROM table1
FROM sourceDb.tiles;

INSERT INTO diffDb.tiles (zoom_level, tile_column, tile_row, tile_data)
SELECT zoom_level, tile_column, tile_row, NULL
FROM (
SELECT zoom_level, tile_column, tile_row
FROM sourceDb.tiles
EXCEPT
SELECT zoom_level, tile_column, tile_row
FROM tiles
);

0 comments on commit 4dc1332

Please sign in to comment.