From 19c3c6b5ea6bbb68f3b8b7a5f3c814c09ab5f017 Mon Sep 17 00:00:00 2001 From: Jonah <73760377+jonerrr@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:19:51 -0400 Subject: [PATCH] add indexes for trips --- backend/Cargo.lock | 88 ++++++++++--------- backend/Cargo.toml | 3 +- .../20240730230831_trip_indexes.down.sql | 15 ++++ .../20240730230831_trip_indexes.up.sql | 17 ++++ backend/src/routes/bus/trips.rs | 2 - frontend/package.json | 2 +- 6 files changed, 81 insertions(+), 46 deletions(-) create mode 100644 backend/migrations/20240730230831_trip_indexes.down.sql create mode 100644 backend/migrations/20240730230831_trip_indexes.up.sql diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 34369fe..8d00dd4 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -87,9 +87,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd066d0b4ef8ecb03a55319dc13aa6910616d0f44008a045bb1835af830abff5" +checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" dependencies = [ "flate2", "futures-core", @@ -181,7 +181,7 @@ dependencies = [ [[package]] name = "backend" -version = "0.4.7" +version = "0.4.8" dependencies = [ "axum", "chrono", @@ -278,9 +278,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" [[package]] name = "bzip2" @@ -305,13 +305,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.0" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaff6f8ce506b9773fa786672d63fc7a191ffea1be33f72bbd4aeacefca9ffc8" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -848,9 +847,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -911,7 +910,7 @@ dependencies = [ "http", "hyper", "hyper-util", - "rustls 0.23.11", + "rustls 0.23.12", "rustls-pki-types", "tokio", "tokio-rustls", @@ -1036,9 +1035,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1273,9 +1272,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.36.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" dependencies = [ "memchr", ] @@ -1316,7 +1315,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.2", + "redox_syscall 0.5.3", "smallvec", "windows-targets 0.52.6", ] @@ -1470,9 +1469,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" [[package]] name = "powerfmt" @@ -1482,9 +1481,13 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "2288c0e17cc8d342c712bb43a257a80ebffce59cdb33d5000d8348f3ec02528b" +dependencies = [ + "zerocopy", + "zerocopy-derive", +] [[package]] name = "prettyplease" @@ -1569,7 +1572,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.11", + "rustls 0.23.12", "thiserror", "tokio", "tracing", @@ -1585,7 +1588,7 @@ dependencies = [ "rand", "ring", "rustc-hash", - "rustls 0.23.11", + "rustls 0.23.12", "slab", "thiserror", "tinyvec", @@ -1594,14 +1597,13 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ "libc", "once_cell", "socket2", - "tracing", "windows-sys 0.52.0", ] @@ -1675,9 +1677,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags 2.6.0", ] @@ -1750,7 +1752,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.11", + "rustls 0.23.12", "rustls-pemfile 2.1.2", "rustls-pki-types", "serde", @@ -1841,14 +1843,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.11" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.5", + "rustls-webpki 0.102.6", "subtle", "zeroize", ] @@ -1890,9 +1892,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.5" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring", "rustls-pki-types", @@ -1949,11 +1951,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1993,9 +1996,9 @@ dependencies = [ [[package]] name = "sha1_smol" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" [[package]] name = "sha2" @@ -2329,9 +2332,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.70" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -2461,7 +2464,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.11", + "rustls 0.23.12", "rustls-pki-types", "tokio", ] @@ -2694,9 +2697,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "want" @@ -3006,6 +3009,7 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] diff --git a/backend/Cargo.toml b/backend/Cargo.toml index a4b77ba..8fcf593 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,8 +1,9 @@ [package] name = "backend" -version = "0.4.7" +version = "0.4.8" edition = "2021" + [dependencies] axum = "0.7.5" chrono = { version = "0.4.38", features = ["serde"] } diff --git a/backend/migrations/20240730230831_trip_indexes.down.sql b/backend/migrations/20240730230831_trip_indexes.down.sql new file mode 100644 index 0000000..74d48d5 --- /dev/null +++ b/backend/migrations/20240730230831_trip_indexes.down.sql @@ -0,0 +1,15 @@ +DROP INDEX IF EXISTS idx_trips_id; + +DROP INDEX IF EXISTS idx_positions_trip_id; + +DROP INDEX IF EXISTS idx_stop_times_trip_id; + +DROP INDEX IF EXISTS idx_stop_times_arrival; + +DROP INDEX IF EXISTS idx_bus_trips_id; + +DROP INDEX IF EXISTS idx_bus_positions_trip_id; + +DROP INDEX IF EXISTS idx_bus_stop_times_trip_id; + +DROP INDEX IF EXISTS idx_bus_stop_times_arrival; \ No newline at end of file diff --git a/backend/migrations/20240730230831_trip_indexes.up.sql b/backend/migrations/20240730230831_trip_indexes.up.sql new file mode 100644 index 0000000..31f9f4c --- /dev/null +++ b/backend/migrations/20240730230831_trip_indexes.up.sql @@ -0,0 +1,17 @@ +-- Train stuff +CREATE INDEX idx_trips_id ON trips(id); + +CREATE INDEX idx_positions_trip_id ON positions(trip_id); + +CREATE INDEX idx_stop_times_trip_id ON stop_times(trip_id); + +CREATE INDEX idx_stop_times_arrival ON stop_times(arrival); + +-- Bus stuff +CREATE INDEX idx_bus_trips_id ON bus_trips(id); + +CREATE INDEX idx_bus_positions_trip_id ON bus_positions(vehicle_id); + +CREATE INDEX idx_bus_stop_times_trip_id ON bus_stop_times(trip_id); + +CREATE INDEX idx_bus_stop_times_arrival ON bus_stop_times(arrival); \ No newline at end of file diff --git a/backend/src/routes/bus/trips.rs b/backend/src/routes/bus/trips.rs index ce41c45..2979b12 100644 --- a/backend/src/routes/bus/trips.rs +++ b/backend/src/routes/bus/trips.rs @@ -86,8 +86,6 @@ WHERE Ok(Json(trips)) } -// - #[derive(FromRow, Serialize)] pub struct BusTripData { id: Uuid, diff --git a/frontend/package.json b/frontend/package.json index 819364e..245900e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "trainstatus", - "version": "0.4.7", + "version": "0.4.8", "private": true, "scripts": { "dev": "vite dev",