[INFO] cloning repository https://github.com/ChenSY0810/DB_lab_25spring
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ChenSY0810/DB_lab_25spring" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChenSY0810%2FDB_lab_25spring", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChenSY0810%2FDB_lab_25spring'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 16342d1d50163e319a11d74e0e4c555355c9e140
[INFO] checking ChenSY0810/DB_lab_25spring against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChenSY0810%2FDB_lab_25spring" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ChenSY0810/DB_lab_25spring
[INFO] finished tweaking git repo https://github.com/ChenSY0810/DB_lab_25spring
[INFO] tweaked toml for git repo https://github.com/ChenSY0810/DB_lab_25spring written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ChenSY0810/DB_lab_25spring on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ChenSY0810/DB_lab_25spring already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hashlink v0.10.0
[INFO] [stderr]   Downloaded der v0.7.10
[INFO] [stderr]   Downloaded sqlx-macros v0.8.6
[INFO] [stderr]   Downloaded bcrypt v0.17.0
[INFO] [stderr]   Downloaded sqlx-macros-core v0.8.6
[INFO] [stderr]   Downloaded sqlx-mysql v0.8.6
[INFO] [stderr]   Downloaded sqlx-core v0.8.6
[INFO] [stderr]   Downloaded cc v1.2.24
[INFO] [stderr]   Downloaded sqlx-sqlite v0.8.6
[INFO] [stderr]   Downloaded sqlx-postgres v0.8.6
[INFO] [stderr]   Downloaded sqlx v0.8.6
[INFO] [stderr]   Downloaded libsqlite3-sys v0.30.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7493e3967d7840f1d3e4cf87801bc6dd0addc19d37825904141caed03250b20f
[INFO] running `Command { std: "docker" "start" "-a" "7493e3967d7840f1d3e4cf87801bc6dd0addc19d37825904141caed03250b20f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7493e3967d7840f1d3e4cf87801bc6dd0addc19d37825904141caed03250b20f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7493e3967d7840f1d3e4cf87801bc6dd0addc19d37825904141caed03250b20f", kill_on_drop: false }`
[INFO] [stdout] 7493e3967d7840f1d3e4cf87801bc6dd0addc19d37825904141caed03250b20f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4f6d457784f77e27ad719a4585009bae2f1705f1285fee8657bf5fca135868e7
[INFO] running `Command { std: "docker" "start" "-a" "4f6d457784f77e27ad719a4585009bae2f1705f1285fee8657bf5fca135868e7", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]    Compiling base64ct v1.7.3
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling socket2 v0.5.9
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling unicode-properties v0.1.3
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rsa v0.9.8
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling whoami v1.6.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking headers v0.3.9
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking bcrypt v0.17.0
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking sqlx-mysql v0.8.6
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking warp v0.3.7
[INFO] [stderr]     Checking db_lab v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cnt = sqlx::query!(
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 21 | |     r#"
[INFO] [stdout] 22 | |     SELECT COUNT(*) as count 
[INFO] [stdout] 23 | |     FROM Teacher
[INFO] [stdout] 24 | |     "#
[INFO] [stdout] 25 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let result = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |     r#"
[INFO] [stdout] 36 | |     INSERT INTO Teacher 
[INFO] [stdout] 37 | |     (teacher_id, teacher_name, teacher_sex, teacher_title) 
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |     new_teacher.teacher_title,
[INFO] [stdout] 44 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 64 | |     models::Teacher,
[INFO] [stdout] 65 | |     r#"
[INFO] [stdout] 66 | |     SELECT teacher_id, teacher_name, teacher_sex, teacher_title
[INFO] [stdout] 67 | |     FROM Teacher
[INFO] [stdout] 68 | |     "#
[INFO] [stdout] 69 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 82 | |     models::UserName,
[INFO] [stdout] 83 | |     r#"
[INFO] [stdout] 84 | |     SELECT user_name as username
[INFO] [stdout] 85 | |     FROM User
[INFO] [stdout] 86 | |     "#
[INFO] [stdout] 87 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 102 | |     r#"
[INFO] [stdout] 103 | |     INSERT INTO User
[INFO] [stdout] 104 | |     (user_name, user_password)
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |     login_data.username, hashed
[INFO] [stdout] 108 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let pwd = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 127 | |     models::Password,
[INFO] [stdout] 128 | |     r#"
[INFO] [stdout] 129 | |     SELECT user_password as password 
[INFO] [stdout] ...   |
[INFO] [stdout] 133 | |     login_data.username,
[INFO] [stdout] 134 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let privilege = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 149 | |     models::Privilege,
[INFO] [stdout] 150 | |     r#"
[INFO] [stdout] 151 | |     SELECT user_privilege as privilege 
[INFO] [stdout] ...   |
[INFO] [stdout] 155 | |     login_data.username
[INFO] [stdout] 156 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let id = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 169 | |     models::UserId,
[INFO] [stdout] 170 | |     r#"
[INFO] [stdout] 171 | |     SELECT user_id 
[INFO] [stdout] ...   |
[INFO] [stdout] 175 | |     username.username
[INFO] [stdout] 176 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:191:16
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 192 | |     r#"
[INFO] [stdout] 193 | |     UPDATE User
[INFO] [stdout] 194 | |     SET teacher_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 197 | |     id, link.user_name,
[INFO] [stdout] 198 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:228:3
[INFO] [stdout]     |
[INFO] [stdout] 228 | /   sqlx::query!(
[INFO] [stdout] 229 | |     r#"
[INFO] [stdout] 230 | |     INSERT INTO Project
[INFO] [stdout] 231 | |     (project_id, project_name, project_src, project_type, start_year, secret_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 234 | |     id, project.name, project.source, project.project_type, project.start_year, project.secret_level
[INFO] [stdout] 235 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | /     sqlx::query!(
[INFO] [stdout] 241 | |       r#"
[INFO] [stdout] 242 | |       UPDATE Project
[INFO] [stdout] 243 | |       SET end_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |       end, id,
[INFO] [stdout] 247 | |     ).execute(&pool).await
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | /     sqlx::query!(
[INFO] [stdout] 260 | |       r#"
[INFO] [stdout] 261 | |       INSERT INTO ProjectResp
[INFO] [stdout] 262 | |       (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 265 | |       teacher_id, id, idx, teacher.fund
[INFO] [stdout] 266 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let project = sqlx::query_as!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 283 | |     models::Project,
[INFO] [stdout] 284 | |     r#"
[INFO] [stdout] 285 | |     SELECT *
[INFO] [stdout] ...   |
[INFO] [stdout] 289 | |     project_name.name
[INFO] [stdout] 290 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     let pr = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 295 | |     models::TeacherRespProject,
[INFO] [stdout] 296 | |     r#"
[INFO] [stdout] 297 | |     SELECT t.teacher_id, t.teacher_name, pr.fund
[INFO] [stdout] ...   |
[INFO] [stdout] 302 | |     project.project_id,
[INFO] [stdout] 303 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |             let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 323 | |             models::Cnt,
[INFO] [stdout] 324 | |             r#"
[INFO] [stdout] 325 | |             SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |             str, ret.project.project_id
[INFO] [stdout] 331 | |           )
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 361 | |     models::UserName,  // 借用一下
[INFO] [stdout] 362 | |     r#"
[INFO] [stdout] 363 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 367 | |     project.old_name
[INFO] [stdout] 368 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 378 | |       models::Cnt,
[INFO] [stdout] 379 | |       r#"
[INFO] [stdout] 380 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 386 | |       tid, pid
[INFO] [stdout] 387 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 398 | |     r#"
[INFO] [stdout] 399 | |       UPDATE Project
[INFO] [stdout] 400 | |       SET project_name = ?, project_src = ?, project_type = ?, start_year = ?, end_year = ?, secret_level = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 409 | |     project.old_name
[INFO] [stdout] 410 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | /       sqlx::query!(
[INFO] [stdout] 417 | |         r#"
[INFO] [stdout] 418 | |         DELETE 
[INFO] [stdout] 419 | |         FROM ProjectResp
[INFO] [stdout] ...   |
[INFO] [stdout] 422 | |         pid
[INFO] [stdout] 423 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 | /         sqlx::query!(
[INFO] [stdout] 435 | |           r#"
[INFO] [stdout] 436 | |           INSERT INTO ProjectResp
[INFO] [stdout] 437 | |           (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 440 | |           tid, pid, (idx + 1) as i32, teacher.fund
[INFO] [stdout] 441 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 464 | |     models::UserName,  // 借用一下
[INFO] [stdout] 465 | |     r#"
[INFO] [stdout] 466 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 470 | |     pname.name
[INFO] [stdout] 471 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:479:15
[INFO] [stdout]     |
[INFO] [stdout] 479 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 480 | |       models::Cnt,
[INFO] [stdout] 481 | |       r#"
[INFO] [stdout] 482 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 488 | |       tid, &pid
[INFO] [stdout] 489 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:499:16
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 500 | |     r#"
[INFO] [stdout] 501 | |     DELETE 
[INFO] [stdout] 502 | |     FROM Project
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |     pid
[INFO] [stdout] 506 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:536:16
[INFO] [stdout]     |
[INFO] [stdout] 536 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 537 | |     r#"
[INFO] [stdout] 538 | |     INSERT INTO Publication
[INFO] [stdout] 539 | |     (paper_name, paper_src, pub_year, paper_type, paper_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 546 | |     paper.paper_level,
[INFO] [stdout] 547 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:559:5
[INFO] [stdout]     |
[INFO] [stdout] 559 | /     sqlx::query!(
[INFO] [stdout] 560 | |       r#"
[INFO] [stdout] 561 | |       INSERT INTO PaperPub
[INFO] [stdout] 562 | |       (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 568 | |       teacher.comm,
[INFO] [stdout] 569 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:583:15
[INFO] [stdout]     |
[INFO] [stdout] 583 |     let paper = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 584 | |     models::Paper,
[INFO] [stdout] 585 | |     r#"
[INFO] [stdout] 586 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 596 | |     paper_name.name
[INFO] [stdout] 597 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:603:18
[INFO] [stdout]     |
[INFO] [stdout] 603 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 604 | |     models::TeacherPaper,
[INFO] [stdout] 605 | |     r#"
[INFO] [stdout] 606 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 614 | |     paper.paper_id
[INFO] [stdout] 615 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:642:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 643 | |     models::UserId, // 用 UserName 临时借用存 paper_id
[INFO] [stdout] 644 | |     r#"
[INFO] [stdout] 645 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 649 | |     paper.old_name
[INFO] [stdout] 650 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:662:31
[INFO] [stdout]     |
[INFO] [stdout] 662 |           let comm_auth_count = sqlx::query_as!(
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 663 | |           models::Cnt,
[INFO] [stdout] 664 | |           r#"
[INFO] [stdout] 665 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 672 | |           paper_id
[INFO] [stdout] 673 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:691:16
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 692 | |     r#"
[INFO] [stdout] 693 | |     UPDATE Publication
[INFO] [stdout] 694 | |     SET paper_name = ?, paper_src = ?, paper_type = ?, paper_level = ?, pub_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 702 | |     paper.old_name
[INFO] [stdout] 703 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:710:7
[INFO] [stdout]     |
[INFO] [stdout] 710 | /       sqlx::query!(
[INFO] [stdout] 711 | |         r#"
[INFO] [stdout] 712 | |         DELETE FROM PaperPub
[INFO] [stdout] 713 | |         WHERE paper_id = ?
[INFO] [stdout] 714 | |         "#,
[INFO] [stdout] 715 | |         paper_id
[INFO] [stdout] 716 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 | /         sqlx::query!(
[INFO] [stdout] 725 | |             r#"
[INFO] [stdout] 726 | |             INSERT INTO PaperPub
[INFO] [stdout] 727 | |             (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |             teacher.comm
[INFO] [stdout] 734 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:757:18
[INFO] [stdout]     |
[INFO] [stdout] 757 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 758 | |     models::UserId, // 复用结构体
[INFO] [stdout] 759 | |     r#"
[INFO] [stdout] 760 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 764 | |     pname.name
[INFO] [stdout] 765 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:773:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 774 | |       models::Cnt,
[INFO] [stdout] 775 | |       r#"
[INFO] [stdout] 776 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |       tid, &paper_id
[INFO] [stdout] 783 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:793:16
[INFO] [stdout]     |
[INFO] [stdout] 793 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 794 | |     r#"
[INFO] [stdout] 795 | |     DELETE FROM Publication
[INFO] [stdout] 796 | |     WHERE paper_id = ?
[INFO] [stdout] 797 | |     "#,
[INFO] [stdout] 798 | |     paper_id
[INFO] [stdout] 799 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:833:3
[INFO] [stdout]     |
[INFO] [stdout] 833 | /   sqlx::query!(
[INFO] [stdout] 834 | |     r#"
[INFO] [stdout] 835 | |     INSERT INTO Course (course_id, course_name, course_property)
[INFO] [stdout] 836 | |     VALUES (?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 840 | |     course.course_property
[INFO] [stdout] 841 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 853 | /     sqlx::query!(
[INFO] [stdout] 854 | |       r#"
[INFO] [stdout] 855 | |       INSERT INTO ClassTeach (teacher_id, course_id, course_year, course_semester, resp_hour)
[INFO] [stdout] 856 | |       VALUES (?, ?, ?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 862 | |       teacher.hours as i32
[INFO] [stdout] 863 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:877:16
[INFO] [stdout]     |
[INFO] [stdout] 877 |     let course = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 878 | |     models::Course,
[INFO] [stdout] 879 | |     r#"
[INFO] [stdout] 880 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 888 | |     course_name.name
[INFO] [stdout] 889 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:895:18
[INFO] [stdout]     |
[INFO] [stdout] 895 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 896 | |     models::TeacherCourseInfo,
[INFO] [stdout] 897 | |     r#"
[INFO] [stdout] 898 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 907 | |     course.course_id
[INFO] [stdout] 908 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:930:19
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let course_id = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 931 | |     models::UserName, // 复用结构体
[INFO] [stdout] 932 | |     r#"
[INFO] [stdout] 933 | |     SELECT course_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 937 | |     course.old_name
[INFO] [stdout] 938 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:949:19
[INFO] [stdout]     |
[INFO] [stdout] 949 |           let cnt = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 950 | |           models::Cnt,
[INFO] [stdout] 951 | |           r#"
[INFO] [stdout] 952 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 958 | |           course_id
[INFO] [stdout] 959 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:974:16
[INFO] [stdout]     |
[INFO] [stdout] 974 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 975 | |     r#"
[INFO] [stdout] 976 | |     UPDATE Course
[INFO] [stdout] 977 | |     SET course_name = ?, course_property = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 982 | |     course.old_name
[INFO] [stdout] 983 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:991:7
[INFO] [stdout]     |
[INFO] [stdout] 991 | /       sqlx::query!(
[INFO] [stdout] 992 | |         r#"
[INFO] [stdout] 993 | |         DELETE FROM ClassTeach
[INFO] [stdout] 994 | |         WHERE course_id = ?
[INFO] [stdout] 995 | |         "#,
[INFO] [stdout] 996 | |         course_id
[INFO] [stdout] 997 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1006:9
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /         sqlx::query!(
[INFO] [stdout] 1007 | |           r#"
[INFO] [stdout] 1008 | |           INSERT INTO ClassTeach
[INFO] [stdout] 1009 | |           (teacher_id, course_id, resp_hour, course_year, course_semester)
[INFO] [stdout] ...    |
[INFO] [stdout] 1016 | |           teacher.semester
[INFO] [stdout] 1017 | |         )
[INFO] [stdout]      | |_________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     let course_id = sqlx::query_as!(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1043 | |     models::UserName, // 复用结构体
[INFO] [stdout] 1044 | |     r#"
[INFO] [stdout] 1045 | |     SELECT course_id as username
[INFO] [stdout] ...    |
[INFO] [stdout] 1049 | |     cname.name
[INFO] [stdout] 1050 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1061:17
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1062 | |         models::Cnt,
[INFO] [stdout] 1063 | |         r#"
[INFO] [stdout] 1064 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1070 | |         course_id
[INFO] [stdout] 1071 | |       )
[INFO] [stdout]      | |_______^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1087:16
[INFO] [stdout]      |
[INFO] [stdout] 1087 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1088 | |     r#"
[INFO] [stdout] 1089 | |     DELETE FROM Course
[INFO] [stdout] 1090 | |     WHERE course_id = ?
[INFO] [stdout] 1091 | |     "#,
[INFO] [stdout] 1092 | |     course_id
[INFO] [stdout] 1093 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cnt = sqlx::query!(
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 21 | |     r#"
[INFO] [stdout] 22 | |     SELECT COUNT(*) as count 
[INFO] [stdout] 23 | |     FROM Teacher
[INFO] [stdout] 24 | |     "#
[INFO] [stdout] 25 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let teacher = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1139 | |     models::Teacher,
[INFO] [stdout] 1140 | |     r#"
[INFO] [stdout] 1141 | |     SELECT *
[INFO] [stdout] ...    |
[INFO] [stdout] 1145 | |     &tid
[INFO] [stdout] 1146 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let result = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |     r#"
[INFO] [stdout] 36 | |     INSERT INTO Teacher 
[INFO] [stdout] 37 | |     (teacher_id, teacher_name, teacher_sex, teacher_title) 
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |     new_teacher.teacher_title,
[INFO] [stdout] 44 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 64 | |     models::Teacher,
[INFO] [stdout] 65 | |     r#"
[INFO] [stdout] 66 | |     SELECT teacher_id, teacher_name, teacher_sex, teacher_title
[INFO] [stdout] 67 | |     FROM Teacher
[INFO] [stdout] 68 | |     "#
[INFO] [stdout] 69 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/handlers.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 82 | |     models::UserName,
[INFO] [stdout] 83 | |     r#"
[INFO] [stdout] 84 | |     SELECT user_name as username
[INFO] [stdout] 85 | |     FROM User
[INFO] [stdout] 86 | |     "#
[INFO] [stdout] 87 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 102 | |     r#"
[INFO] [stdout] 103 | |     INSERT INTO User
[INFO] [stdout] 104 | |     (user_name, user_password)
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |     login_data.username, hashed
[INFO] [stdout] 108 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let pwd = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 127 | |     models::Password,
[INFO] [stdout] 128 | |     r#"
[INFO] [stdout] 129 | |     SELECT user_password as password 
[INFO] [stdout] ...   |
[INFO] [stdout] 133 | |     login_data.username,
[INFO] [stdout] 134 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1151:16
[INFO] [stdout]      |
[INFO] [stdout] 1151 |     let papers = sqlx::query_as!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1152 | |     models::PaperR,
[INFO] [stdout] 1153 | |     r#"
[INFO] [stdout] 1154 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1168 | |     &tid, start_year, end_year
[INFO] [stdout] 1169 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let privilege = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 149 | |     models::Privilege,
[INFO] [stdout] 150 | |     r#"
[INFO] [stdout] 151 | |     SELECT user_privilege as privilege 
[INFO] [stdout] ...   |
[INFO] [stdout] 155 | |     login_data.username
[INFO] [stdout] 156 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let id = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 169 | |     models::UserId,
[INFO] [stdout] 170 | |     r#"
[INFO] [stdout] 171 | |     SELECT user_id 
[INFO] [stdout] ...   |
[INFO] [stdout] 175 | |     username.username
[INFO] [stdout] 176 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:191:16
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 192 | |     r#"
[INFO] [stdout] 193 | |     UPDATE User
[INFO] [stdout] 194 | |     SET teacher_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 197 | |     id, link.user_name,
[INFO] [stdout] 198 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1175:22
[INFO] [stdout]      |
[INFO] [stdout] 1175 |     let mut projects = sqlx::query_as!(
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1176 | |     models::ProjectR,
[INFO] [stdout] 1177 | |     r#"
[INFO] [stdout] 1178 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1194 | |     &tid, start_year, end_year
[INFO] [stdout] 1195 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:228:3
[INFO] [stdout]     |
[INFO] [stdout] 228 | /   sqlx::query!(
[INFO] [stdout] 229 | |     r#"
[INFO] [stdout] 230 | |     INSERT INTO Project
[INFO] [stdout] 231 | |     (project_id, project_name, project_src, project_type, start_year, secret_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 234 | |     id, project.name, project.source, project.project_type, project.start_year, project.secret_level
[INFO] [stdout] 235 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | /     sqlx::query!(
[INFO] [stdout] 241 | |       r#"
[INFO] [stdout] 242 | |       UPDATE Project
[INFO] [stdout] 243 | |       SET end_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |       end, id,
[INFO] [stdout] 247 | |     ).execute(&pool).await
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1200:17
[INFO] [stdout]      |
[INFO] [stdout] 1200 |     let courses = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1201 | |     models::CourseR,
[INFO] [stdout] 1202 | |     r#"
[INFO] [stdout] 1203 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1215 | |     &tid, start_year, end_year
[INFO] [stdout] 1216 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | /     sqlx::query!(
[INFO] [stdout] 260 | |       r#"
[INFO] [stdout] 261 | |       INSERT INTO ProjectResp
[INFO] [stdout] 262 | |       (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 265 | |       teacher_id, id, idx, teacher.fund
[INFO] [stdout] 266 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let project = sqlx::query_as!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 283 | |     models::Project,
[INFO] [stdout] 284 | |     r#"
[INFO] [stdout] 285 | |     SELECT *
[INFO] [stdout] ...   |
[INFO] [stdout] 289 | |     project_name.name
[INFO] [stdout] 290 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1264 | |         models::Cnt,
[INFO] [stdout] 1265 | |         r#"
[INFO] [stdout] 1266 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1271 | |         &utid, projects[i].project_id
[INFO] [stdout] 1272 | |       )
[INFO] [stdout]      | |_______^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     let pr = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 295 | |     models::TeacherRespProject,
[INFO] [stdout] 296 | |     r#"
[INFO] [stdout] 297 | |     SELECT t.teacher_id, t.teacher_name, pr.fund
[INFO] [stdout] ...   |
[INFO] [stdout] 302 | |     project.project_id,
[INFO] [stdout] 303 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |             let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 323 | |             models::Cnt,
[INFO] [stdout] 324 | |             r#"
[INFO] [stdout] 325 | |             SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |             str, ret.project.project_id
[INFO] [stdout] 331 | |           )
[INFO] [stdout]     | |___________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1361:16
[INFO] [stdout]      |
[INFO] [stdout] 1361 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1362 | |     r#"
[INFO] [stdout] 1363 | |     UPDATE User 
[INFO] [stdout] 1364 | |     SET user_password = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1367 | |     hashed, username.username
[INFO] [stdout] 1368 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 361 | |     models::UserName,  // 借用一下
[INFO] [stdout] 362 | |     r#"
[INFO] [stdout] 363 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 367 | |     project.old_name
[INFO] [stdout] 368 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 378 | |       models::Cnt,
[INFO] [stdout] 379 | |       r#"
[INFO] [stdout] 380 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 386 | |       tid, pid
[INFO] [stdout] 387 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 398 | |     r#"
[INFO] [stdout] 399 | |       UPDATE Project
[INFO] [stdout] 400 | |       SET project_name = ?, project_src = ?, project_type = ?, start_year = ?, end_year = ?, secret_level = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 409 | |     project.old_name
[INFO] [stdout] 410 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | /       sqlx::query!(
[INFO] [stdout] 417 | |         r#"
[INFO] [stdout] 418 | |         DELETE 
[INFO] [stdout] 419 | |         FROM ProjectResp
[INFO] [stdout] ...   |
[INFO] [stdout] 422 | |         pid
[INFO] [stdout] 423 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 | /         sqlx::query!(
[INFO] [stdout] 435 | |           r#"
[INFO] [stdout] 436 | |           INSERT INTO ProjectResp
[INFO] [stdout] 437 | |           (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 440 | |           tid, pid, (idx + 1) as i32, teacher.fund
[INFO] [stdout] 441 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 464 | |     models::UserName,  // 借用一下
[INFO] [stdout] 465 | |     r#"
[INFO] [stdout] 466 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 470 | |     pname.name
[INFO] [stdout] 471 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:479:15
[INFO] [stdout]     |
[INFO] [stdout] 479 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 480 | |       models::Cnt,
[INFO] [stdout] 481 | |       r#"
[INFO] [stdout] 482 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 488 | |       tid, &pid
[INFO] [stdout] 489 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:499:16
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 500 | |     r#"
[INFO] [stdout] 501 | |     DELETE 
[INFO] [stdout] 502 | |     FROM Project
[INFO] [stdout] ...   |
[INFO] [stdout] 505 | |     pid
[INFO] [stdout] 506 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:536:16
[INFO] [stdout]     |
[INFO] [stdout] 536 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 537 | |     r#"
[INFO] [stdout] 538 | |     INSERT INTO Publication
[INFO] [stdout] 539 | |     (paper_name, paper_src, pub_year, paper_type, paper_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 546 | |     paper.paper_level,
[INFO] [stdout] 547 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:559:5
[INFO] [stdout]     |
[INFO] [stdout] 559 | /     sqlx::query!(
[INFO] [stdout] 560 | |       r#"
[INFO] [stdout] 561 | |       INSERT INTO PaperPub
[INFO] [stdout] 562 | |       (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 568 | |       teacher.comm,
[INFO] [stdout] 569 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:583:15
[INFO] [stdout]     |
[INFO] [stdout] 583 |     let paper = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 584 | |     models::Paper,
[INFO] [stdout] 585 | |     r#"
[INFO] [stdout] 586 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 596 | |     paper_name.name
[INFO] [stdout] 597 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:603:18
[INFO] [stdout]     |
[INFO] [stdout] 603 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 604 | |     models::TeacherPaper,
[INFO] [stdout] 605 | |     r#"
[INFO] [stdout] 606 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 614 | |     paper.paper_id
[INFO] [stdout] 615 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:642:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 643 | |     models::UserId, // 用 UserName 临时借用存 paper_id
[INFO] [stdout] 644 | |     r#"
[INFO] [stdout] 645 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 649 | |     paper.old_name
[INFO] [stdout] 650 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:662:31
[INFO] [stdout]     |
[INFO] [stdout] 662 |           let comm_auth_count = sqlx::query_as!(
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 663 | |           models::Cnt,
[INFO] [stdout] 664 | |           r#"
[INFO] [stdout] 665 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 672 | |           paper_id
[INFO] [stdout] 673 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:691:16
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 692 | |     r#"
[INFO] [stdout] 693 | |     UPDATE Publication
[INFO] [stdout] 694 | |     SET paper_name = ?, paper_src = ?, paper_type = ?, paper_level = ?, pub_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 702 | |     paper.old_name
[INFO] [stdout] 703 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:710:7
[INFO] [stdout]     |
[INFO] [stdout] 710 | /       sqlx::query!(
[INFO] [stdout] 711 | |         r#"
[INFO] [stdout] 712 | |         DELETE FROM PaperPub
[INFO] [stdout] 713 | |         WHERE paper_id = ?
[INFO] [stdout] 714 | |         "#,
[INFO] [stdout] 715 | |         paper_id
[INFO] [stdout] 716 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 | /         sqlx::query!(
[INFO] [stdout] 725 | |             r#"
[INFO] [stdout] 726 | |             INSERT INTO PaperPub
[INFO] [stdout] 727 | |             (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 733 | |             teacher.comm
[INFO] [stdout] 734 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:757:18
[INFO] [stdout]     |
[INFO] [stdout] 757 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 758 | |     models::UserId, // 复用结构体
[INFO] [stdout] 759 | |     r#"
[INFO] [stdout] 760 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 764 | |     pname.name
[INFO] [stdout] 765 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:773:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 774 | |       models::Cnt,
[INFO] [stdout] 775 | |       r#"
[INFO] [stdout] 776 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |       tid, &paper_id
[INFO] [stdout] 783 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:793:16
[INFO] [stdout]     |
[INFO] [stdout] 793 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 794 | |     r#"
[INFO] [stdout] 795 | |     DELETE FROM Publication
[INFO] [stdout] 796 | |     WHERE paper_id = ?
[INFO] [stdout] 797 | |     "#,
[INFO] [stdout] 798 | |     paper_id
[INFO] [stdout] 799 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:833:3
[INFO] [stdout]     |
[INFO] [stdout] 833 | /   sqlx::query!(
[INFO] [stdout] 834 | |     r#"
[INFO] [stdout] 835 | |     INSERT INTO Course (course_id, course_name, course_property)
[INFO] [stdout] 836 | |     VALUES (?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 840 | |     course.course_property
[INFO] [stdout] 841 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 853 | /     sqlx::query!(
[INFO] [stdout] 854 | |       r#"
[INFO] [stdout] 855 | |       INSERT INTO ClassTeach (teacher_id, course_id, course_year, course_semester, resp_hour)
[INFO] [stdout] 856 | |       VALUES (?, ?, ?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 862 | |       teacher.hours as i32
[INFO] [stdout] 863 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:877:16
[INFO] [stdout]     |
[INFO] [stdout] 877 |     let course = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 878 | |     models::Course,
[INFO] [stdout] 879 | |     r#"
[INFO] [stdout] 880 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 888 | |     course_name.name
[INFO] [stdout] 889 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:895:18
[INFO] [stdout]     |
[INFO] [stdout] 895 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 896 | |     models::TeacherCourseInfo,
[INFO] [stdout] 897 | |     r#"
[INFO] [stdout] 898 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 907 | |     course.course_id
[INFO] [stdout] 908 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:930:19
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let course_id = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 931 | |     models::UserName, // 复用结构体
[INFO] [stdout] 932 | |     r#"
[INFO] [stdout] 933 | |     SELECT course_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 937 | |     course.old_name
[INFO] [stdout] 938 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:949:19
[INFO] [stdout]     |
[INFO] [stdout] 949 |           let cnt = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 950 | |           models::Cnt,
[INFO] [stdout] 951 | |           r#"
[INFO] [stdout] 952 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 958 | |           course_id
[INFO] [stdout] 959 | |         )
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:974:16
[INFO] [stdout]     |
[INFO] [stdout] 974 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 975 | |     r#"
[INFO] [stdout] 976 | |     UPDATE Course
[INFO] [stdout] 977 | |     SET course_name = ?, course_property = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 982 | |     course.old_name
[INFO] [stdout] 983 | |   )
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]    --> src/handlers.rs:991:7
[INFO] [stdout]     |
[INFO] [stdout] 991 | /       sqlx::query!(
[INFO] [stdout] 992 | |         r#"
[INFO] [stdout] 993 | |         DELETE FROM ClassTeach
[INFO] [stdout] 994 | |         WHERE course_id = ?
[INFO] [stdout] 995 | |         "#,
[INFO] [stdout] 996 | |         course_id
[INFO] [stdout] 997 | |       )
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1006:9
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /         sqlx::query!(
[INFO] [stdout] 1007 | |           r#"
[INFO] [stdout] 1008 | |           INSERT INTO ClassTeach
[INFO] [stdout] 1009 | |           (teacher_id, course_id, resp_hour, course_year, course_semester)
[INFO] [stdout] ...    |
[INFO] [stdout] 1016 | |           teacher.semester
[INFO] [stdout] 1017 | |         )
[INFO] [stdout]      | |_________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     let course_id = sqlx::query_as!(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1043 | |     models::UserName, // 复用结构体
[INFO] [stdout] 1044 | |     r#"
[INFO] [stdout] 1045 | |     SELECT course_id as username
[INFO] [stdout] ...    |
[INFO] [stdout] 1049 | |     cname.name
[INFO] [stdout] 1050 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1061:17
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1062 | |         models::Cnt,
[INFO] [stdout] 1063 | |         r#"
[INFO] [stdout] 1064 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1070 | |         course_id
[INFO] [stdout] 1071 | |       )
[INFO] [stdout]      | |_______^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1087:16
[INFO] [stdout]      |
[INFO] [stdout] 1087 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1088 | |     r#"
[INFO] [stdout] 1089 | |     DELETE FROM Course
[INFO] [stdout] 1090 | |     WHERE course_id = ?
[INFO] [stdout] 1091 | |     "#,
[INFO] [stdout] 1092 | |     course_id
[INFO] [stdout] 1093 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let teacher = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1139 | |     models::Teacher,
[INFO] [stdout] 1140 | |     r#"
[INFO] [stdout] 1141 | |     SELECT *
[INFO] [stdout] ...    |
[INFO] [stdout] 1145 | |     &tid
[INFO] [stdout] 1146 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1151:16
[INFO] [stdout]      |
[INFO] [stdout] 1151 |     let papers = sqlx::query_as!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1152 | |     models::PaperR,
[INFO] [stdout] 1153 | |     r#"
[INFO] [stdout] 1154 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1168 | |     &tid, start_year, end_year
[INFO] [stdout] 1169 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1175:22
[INFO] [stdout]      |
[INFO] [stdout] 1175 |     let mut projects = sqlx::query_as!(
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1176 | |     models::ProjectR,
[INFO] [stdout] 1177 | |     r#"
[INFO] [stdout] 1178 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1194 | |     &tid, start_year, end_year
[INFO] [stdout] 1195 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1200:17
[INFO] [stdout]      |
[INFO] [stdout] 1200 |     let courses = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1201 | |     models::CourseR,
[INFO] [stdout] 1202 | |     r#"
[INFO] [stdout] 1203 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1215 | |     &tid, start_year, end_year
[INFO] [stdout] 1216 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1264 | |         models::Cnt,
[INFO] [stdout] 1265 | |         r#"
[INFO] [stdout] 1266 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1271 | |         &utid, projects[i].project_id
[INFO] [stdout] 1272 | |       )
[INFO] [stdout]      | |_______^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]     --> src/handlers.rs:1361:16
[INFO] [stdout]      |
[INFO] [stdout] 1361 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1362 | |     r#"
[INFO] [stdout] 1363 | |     UPDATE User 
[INFO] [stdout] 1364 | |     SET user_password = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1367 | |     hashed, username.username
[INFO] [stdout] 1368 | |   )
[INFO] [stdout]      | |___^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/utils.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   sqlx::query_as!(
[INFO] [stdout] 50 | |     TeacherId,
[INFO] [stdout] 51 | |     r#"
[INFO] [stdout] 52 | |     SELECT teacher_id
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |     username
[INFO] [stdout] 57 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/utils.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 | /   sqlx::query_as!(
[INFO] [stdout] 70 | |     Privilege,
[INFO] [stdout] 71 | |     r#"
[INFO] [stdout] 72 | |     SELECT user_privilege as privilege
[INFO] [stdout] ...  |
[INFO] [stdout] 76 | |     username
[INFO] [stdout] 77 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/utils.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   sqlx::query_as!(
[INFO] [stdout] 50 | |     TeacherId,
[INFO] [stdout] 51 | |     r#"
[INFO] [stdout] 52 | |     SELECT teacher_id
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |     username
[INFO] [stdout] 57 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: set `DATABASE_URL` to use query macros online, or run `cargo sqlx prepare` to update the query cache
[INFO] [stdout]   --> src/utils.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 | /   sqlx::query_as!(
[INFO] [stdout] 70 | |     Privilege,
[INFO] [stdout] 71 | |     r#"
[INFO] [stdout] 72 | |     SELECT user_privilege as privilege
[INFO] [stdout] ...  |
[INFO] [stdout] 76 | |     username
[INFO] [stdout] 77 | |   )
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query_as` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/handlers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::*`
[INFO] [stdout]  --> src/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/handlers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::*`
[INFO] [stdout]  --> src/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cnt = sqlx::query!(
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 21 | |     r#"
[INFO] [stdout] 22 | |     SELECT COUNT(*) as count 
[INFO] [stdout] 23 | |     FROM Teacher
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |   .fetch_one(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let result = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |     r#"
[INFO] [stdout] 36 | |     INSERT INTO Teacher 
[INFO] [stdout] 37 | |     (teacher_id, teacher_name, teacher_sex, teacher_title) 
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |   .execute(&pool).await
[INFO] [stdout]    | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 64 | |     models::Teacher,
[INFO] [stdout] 65 | |     r#"
[INFO] [stdout] 66 | |     SELECT teacher_id, teacher_name, teacher_sex, teacher_title
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |   .fetch_all(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 82 | |     models::UserName,
[INFO] [stdout] 83 | |     r#"
[INFO] [stdout] 84 | |     SELECT user_name as username
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |   .fetch_all(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 102 | |     r#"
[INFO] [stdout] 103 | |     INSERT INTO User
[INFO] [stdout] 104 | |     (user_name, user_password)
[INFO] [stdout] ...   |
[INFO] [stdout] 109 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let pwd = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 127 | |     models::Password,
[INFO] [stdout] 128 | |     r#"
[INFO] [stdout] 129 | |     SELECT user_password as password 
[INFO] [stdout] ...   |
[INFO] [stdout] 135 | |   .fetch_optional(&pool).await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let privilege = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 149 | |     models::Privilege,
[INFO] [stdout] 150 | |     r#"
[INFO] [stdout] 151 | |     SELECT user_privilege as privilege 
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let id = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 169 | |     models::UserId,
[INFO] [stdout] 170 | |     r#"
[INFO] [stdout] 171 | |     SELECT user_id 
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:191:16
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 192 | |     r#"
[INFO] [stdout] 193 | |     UPDATE User
[INFO] [stdout] 194 | |     SET teacher_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 199 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:228:3
[INFO] [stdout]     |
[INFO] [stdout] 228 | /   sqlx::query!(
[INFO] [stdout] 229 | |     r#"
[INFO] [stdout] 230 | |     INSERT INTO Project
[INFO] [stdout] 231 | |     (project_id, project_name, project_src, project_type, start_year, secret_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | /     sqlx::query!(
[INFO] [stdout] 241 | |       r#"
[INFO] [stdout] 242 | |       UPDATE Project
[INFO] [stdout] 243 | |       SET end_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |       end, id,
[INFO] [stdout] 247 | |     ).execute(&pool).await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | /     sqlx::query!(
[INFO] [stdout] 260 | |       r#"
[INFO] [stdout] 261 | |       INSERT INTO ProjectResp
[INFO] [stdout] 262 | |       (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 267 | |     .execute(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let project = sqlx::query_as!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 283 | |     models::Project,
[INFO] [stdout] 284 | |     r#"
[INFO] [stdout] 285 | |     SELECT *
[INFO] [stdout] ...   |
[INFO] [stdout] 291 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     let pr = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 295 | |     models::TeacherRespProject,
[INFO] [stdout] 296 | |     r#"
[INFO] [stdout] 297 | |     SELECT t.teacher_id, t.teacher_name, pr.fund
[INFO] [stdout] ...   |
[INFO] [stdout] 304 | |   .fetch_all(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |             let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 323 | |             models::Cnt,
[INFO] [stdout] 324 | |             r#"
[INFO] [stdout] 325 | |             SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |           .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 361 | |     models::UserName,  // 借用一下
[INFO] [stdout] 362 | |     r#"
[INFO] [stdout] 363 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 369 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 378 | |       models::Cnt,
[INFO] [stdout] 379 | |       r#"
[INFO] [stdout] 380 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 388 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 398 | |     r#"
[INFO] [stdout] 399 | |       UPDATE Project
[INFO] [stdout] 400 | |       SET project_name = ?, project_src = ?, project_type = ?, start_year = ?, end_year = ?, secret_level = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 411 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | /       sqlx::query!(
[INFO] [stdout] 417 | |         r#"
[INFO] [stdout] 418 | |         DELETE 
[INFO] [stdout] 419 | |         FROM ProjectResp
[INFO] [stdout] ...   |
[INFO] [stdout] 424 | |       .execute(&pool)
[INFO] [stdout] 425 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 | /         sqlx::query!(
[INFO] [stdout] 435 | |           r#"
[INFO] [stdout] 436 | |           INSERT INTO ProjectResp
[INFO] [stdout] 437 | |           (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 442 | |         .execute(&pool).await
[INFO] [stdout]     | |_____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 464 | |     models::UserName,  // 借用一下
[INFO] [stdout] 465 | |     r#"
[INFO] [stdout] 466 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 472 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:479:15
[INFO] [stdout]     |
[INFO] [stdout] 479 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 480 | |       models::Cnt,
[INFO] [stdout] 481 | |       r#"
[INFO] [stdout] 482 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 490 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:499:16
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 500 | |     r#"
[INFO] [stdout] 501 | |     DELETE 
[INFO] [stdout] 502 | |     FROM Project
[INFO] [stdout] ...   |
[INFO] [stdout] 507 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:536:16
[INFO] [stdout]     |
[INFO] [stdout] 536 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 537 | |     r#"
[INFO] [stdout] 538 | |     INSERT INTO Publication
[INFO] [stdout] 539 | |     (paper_name, paper_src, pub_year, paper_type, paper_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 548 | |   .execute(&pool)
[INFO] [stdout] 549 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:559:5
[INFO] [stdout]     |
[INFO] [stdout] 559 | /     sqlx::query!(
[INFO] [stdout] 560 | |       r#"
[INFO] [stdout] 561 | |       INSERT INTO PaperPub
[INFO] [stdout] 562 | |       (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 570 | |     .execute(&pool)
[INFO] [stdout] 571 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:583:15
[INFO] [stdout]     |
[INFO] [stdout] 583 |     let paper = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 584 | |     models::Paper,
[INFO] [stdout] 585 | |     r#"
[INFO] [stdout] 586 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 598 | |   .fetch_one(&pool)
[INFO] [stdout] 599 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:603:18
[INFO] [stdout]     |
[INFO] [stdout] 603 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 604 | |     models::TeacherPaper,
[INFO] [stdout] 605 | |     r#"
[INFO] [stdout] 606 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 616 | |   .fetch_all(&pool)
[INFO] [stdout] 617 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:642:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 643 | |     models::UserId, // 用 UserName 临时借用存 paper_id
[INFO] [stdout] 644 | |     r#"
[INFO] [stdout] 645 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 651 | |   .fetch_one(&pool)
[INFO] [stdout] 652 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:662:31
[INFO] [stdout]     |
[INFO] [stdout] 662 |           let comm_auth_count = sqlx::query_as!(
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 663 | |           models::Cnt,
[INFO] [stdout] 664 | |           r#"
[INFO] [stdout] 665 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 674 | |         .fetch_one(&pool)
[INFO] [stdout] 675 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:691:16
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 692 | |     r#"
[INFO] [stdout] 693 | |     UPDATE Publication
[INFO] [stdout] 694 | |     SET paper_name = ?, paper_src = ?, paper_type = ?, paper_level = ?, pub_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 704 | |   .execute(&pool)
[INFO] [stdout] 705 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:710:7
[INFO] [stdout]     |
[INFO] [stdout] 710 | /       sqlx::query!(
[INFO] [stdout] 711 | |         r#"
[INFO] [stdout] 712 | |         DELETE FROM PaperPub
[INFO] [stdout] 713 | |         WHERE paper_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 717 | |       .execute(&pool)
[INFO] [stdout] 718 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 | /         sqlx::query!(
[INFO] [stdout] 725 | |             r#"
[INFO] [stdout] 726 | |             INSERT INTO PaperPub
[INFO] [stdout] 727 | |             (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 735 | |         .execute(&pool)
[INFO] [stdout] 736 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:757:18
[INFO] [stdout]     |
[INFO] [stdout] 757 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 758 | |     models::UserId, // 复用结构体
[INFO] [stdout] 759 | |     r#"
[INFO] [stdout] 760 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 766 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:773:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 774 | |       models::Cnt,
[INFO] [stdout] 775 | |       r#"
[INFO] [stdout] 776 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 784 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:793:16
[INFO] [stdout]     |
[INFO] [stdout] 793 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 794 | |     r#"
[INFO] [stdout] 795 | |     DELETE FROM Publication
[INFO] [stdout] 796 | |     WHERE paper_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 800 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:877:16
[INFO] [stdout]     |
[INFO] [stdout] 877 |     let course = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 878 | |     models::Course,
[INFO] [stdout] 879 | |     r#"
[INFO] [stdout] 880 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 890 | |   .fetch_one(&pool)
[INFO] [stdout] 891 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:895:18
[INFO] [stdout]     |
[INFO] [stdout] 895 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 896 | |     models::TeacherCourseInfo,
[INFO] [stdout] 897 | |     r#"
[INFO] [stdout] 898 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 909 | |   .fetch_all(&pool)
[INFO] [stdout] 910 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:833:3
[INFO] [stdout]     |
[INFO] [stdout] 833 | /   sqlx::query!(
[INFO] [stdout] 834 | |     r#"
[INFO] [stdout] 835 | |     INSERT INTO Course (course_id, course_name, course_property)
[INFO] [stdout] 836 | |     VALUES (?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 842 | |   .execute(&pool)
[INFO] [stdout] 843 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 853 | /     sqlx::query!(
[INFO] [stdout] 854 | |       r#"
[INFO] [stdout] 855 | |       INSERT INTO ClassTeach (teacher_id, course_id, course_year, course_semester, resp_hour)
[INFO] [stdout] 856 | |       VALUES (?, ?, ?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 864 | |     .execute(&pool)
[INFO] [stdout] 865 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:930:19
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let course_id = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 931 | |     models::UserName, // 复用结构体
[INFO] [stdout] 932 | |     r#"
[INFO] [stdout] 933 | |     SELECT course_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 939 | |   .fetch_one(&pool)
[INFO] [stdout] 940 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:949:19
[INFO] [stdout]     |
[INFO] [stdout] 949 |           let cnt = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 950 | |           models::Cnt,
[INFO] [stdout] 951 | |           r#"
[INFO] [stdout] 952 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 960 | |         .fetch_one(&pool)
[INFO] [stdout] 961 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:974:16
[INFO] [stdout]     |
[INFO] [stdout] 974 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 975 | |     r#"
[INFO] [stdout] 976 | |     UPDATE Course
[INFO] [stdout] 977 | |     SET course_name = ?, course_property = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 984 | |   .execute(&pool)
[INFO] [stdout] 985 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:991:7
[INFO] [stdout]     |
[INFO] [stdout] 991 | /       sqlx::query!(
[INFO] [stdout] 992 | |         r#"
[INFO] [stdout] 993 | |         DELETE FROM ClassTeach
[INFO] [stdout] 994 | |         WHERE course_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 998 | |       .execute(&pool)
[INFO] [stdout] 999 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1006:9
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /         sqlx::query!(
[INFO] [stdout] 1007 | |           r#"
[INFO] [stdout] 1008 | |           INSERT INTO ClassTeach
[INFO] [stdout] 1009 | |           (teacher_id, course_id, resp_hour, course_year, course_semester)
[INFO] [stdout] ...    |
[INFO] [stdout] 1018 | |         .execute(&pool)
[INFO] [stdout] 1019 | |         .await
[INFO] [stdout]      | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cnt = sqlx::query!(
[INFO] [stdout]    |  _____________^
[INFO] [stdout] 21 | |     r#"
[INFO] [stdout] 22 | |     SELECT COUNT(*) as count 
[INFO] [stdout] 23 | |     FROM Teacher
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |   .fetch_one(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let result = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 35 | |     r#"
[INFO] [stdout] 36 | |     INSERT INTO Teacher 
[INFO] [stdout] 37 | |     (teacher_id, teacher_name, teacher_sex, teacher_title) 
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |   .execute(&pool).await
[INFO] [stdout]    | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     let course_id = sqlx::query_as!(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1043 | |     models::UserName, // 复用结构体
[INFO] [stdout] 1044 | |     r#"
[INFO] [stdout] 1045 | |     SELECT course_id as username
[INFO] [stdout] ...    |
[INFO] [stdout] 1051 | |   .fetch_one(&pool)
[INFO] [stdout] 1052 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1061:17
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1062 | |         models::Cnt,
[INFO] [stdout] 1063 | |         r#"
[INFO] [stdout] 1064 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1072 | |       .fetch_one(&pool)
[INFO] [stdout] 1073 | |       .await
[INFO] [stdout]      | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1087:16
[INFO] [stdout]      |
[INFO] [stdout] 1087 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1088 | |     r#"
[INFO] [stdout] 1089 | |     DELETE FROM Course
[INFO] [stdout] 1090 | |     WHERE course_id = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1094 | |   .execute(&pool)
[INFO] [stdout] 1095 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 64 | |     models::Teacher,
[INFO] [stdout] 65 | |     r#"
[INFO] [stdout] 66 | |     SELECT teacher_id, teacher_name, teacher_sex, teacher_title
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |   .fetch_all(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1361:16
[INFO] [stdout]      |
[INFO] [stdout] 1361 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1362 | |     r#"
[INFO] [stdout] 1363 | |     UPDATE User 
[INFO] [stdout] 1364 | |     SET user_password = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1369 | |   .execute(&pool).await
[INFO] [stdout]      | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/handlers.rs:81:14
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let rows = sqlx::query_as!(
[INFO] [stdout]    |  ______________^
[INFO] [stdout] 82 | |     models::UserName,
[INFO] [stdout] 83 | |     r#"
[INFO] [stdout] 84 | |     SELECT user_name as username
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |   .fetch_all(&pool).await
[INFO] [stdout]    | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let teacher = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1139 | |     models::Teacher,
[INFO] [stdout] 1140 | |     r#"
[INFO] [stdout] 1141 | |     SELECT *
[INFO] [stdout] ...    |
[INFO] [stdout] 1147 | |   .fetch_one(&pool)
[INFO] [stdout] 1148 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1151:16
[INFO] [stdout]      |
[INFO] [stdout] 1151 |     let papers = sqlx::query_as!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1152 | |     models::PaperR,
[INFO] [stdout] 1153 | |     r#"
[INFO] [stdout] 1154 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1170 | |   .fetch_all(&pool)
[INFO] [stdout] 1171 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1175:22
[INFO] [stdout]      |
[INFO] [stdout] 1175 |     let mut projects = sqlx::query_as!(
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1176 | |     models::ProjectR,
[INFO] [stdout] 1177 | |     r#"
[INFO] [stdout] 1178 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1196 | |   .fetch_all(&pool)
[INFO] [stdout] 1197 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1200:17
[INFO] [stdout]      |
[INFO] [stdout] 1200 |     let courses = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1201 | |     models::CourseR,
[INFO] [stdout] 1202 | |     r#"
[INFO] [stdout] 1203 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1217 | |   .fetch_all(&pool)
[INFO] [stdout] 1218 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1264 | |         models::Cnt,
[INFO] [stdout] 1265 | |         r#"
[INFO] [stdout] 1266 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1273 | |       .fetch_one(&pool).await
[INFO] [stdout]      | |_____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1290:18
[INFO] [stdout]      |
[INFO] [stdout] 1290 |       Some(i) => i.to_string(),
[INFO] [stdout]      |                  ^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 102 | |     r#"
[INFO] [stdout] 103 | |     INSERT INTO User
[INFO] [stdout] 104 | |     (user_name, user_password)
[INFO] [stdout] ...   |
[INFO] [stdout] 109 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let pwd = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 127 | |     models::Password,
[INFO] [stdout] 128 | |     r#"
[INFO] [stdout] 129 | |     SELECT user_password as password 
[INFO] [stdout] ...   |
[INFO] [stdout] 135 | |   .fetch_optional(&pool).await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |     let privilege = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 149 | |     models::Privilege,
[INFO] [stdout] 150 | |     r#"
[INFO] [stdout] 151 | |     SELECT user_privilege as privilege 
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let id = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 169 | |     models::UserId,
[INFO] [stdout] 170 | |     r#"
[INFO] [stdout] 171 | |     SELECT user_id 
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:191:16
[INFO] [stdout]     |
[INFO] [stdout] 191 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 192 | |     r#"
[INFO] [stdout] 193 | |     UPDATE User
[INFO] [stdout] 194 | |     SET teacher_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 199 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:228:3
[INFO] [stdout]     |
[INFO] [stdout] 228 | /   sqlx::query!(
[INFO] [stdout] 229 | |     r#"
[INFO] [stdout] 230 | |     INSERT INTO Project
[INFO] [stdout] 231 | |     (project_id, project_name, project_src, project_type, start_year, secret_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | /     sqlx::query!(
[INFO] [stdout] 241 | |       r#"
[INFO] [stdout] 242 | |       UPDATE Project
[INFO] [stdout] 243 | |       SET end_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |       end, id,
[INFO] [stdout] 247 | |     ).execute(&pool).await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | /     sqlx::query!(
[INFO] [stdout] 260 | |       r#"
[INFO] [stdout] 261 | |       INSERT INTO ProjectResp
[INFO] [stdout] 262 | |       (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 267 | |     .execute(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let project = sqlx::query_as!(
[INFO] [stdout]     |  _________________^
[INFO] [stdout] 283 | |     models::Project,
[INFO] [stdout] 284 | |     r#"
[INFO] [stdout] 285 | |     SELECT *
[INFO] [stdout] ...   |
[INFO] [stdout] 291 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     let pr = sqlx::query_as!(
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 295 | |     models::TeacherRespProject,
[INFO] [stdout] 296 | |     r#"
[INFO] [stdout] 297 | |     SELECT t.teacher_id, t.teacher_name, pr.fund
[INFO] [stdout] ...   |
[INFO] [stdout] 304 | |   .fetch_all(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |             let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 323 | |             models::Cnt,
[INFO] [stdout] 324 | |             r#"
[INFO] [stdout] 325 | |             SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |           .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 361 | |     models::UserName,  // 借用一下
[INFO] [stdout] 362 | |     r#"
[INFO] [stdout] 363 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 369 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 378 | |       models::Cnt,
[INFO] [stdout] 379 | |       r#"
[INFO] [stdout] 380 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 388 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 398 | |     r#"
[INFO] [stdout] 399 | |       UPDATE Project
[INFO] [stdout] 400 | |       SET project_name = ?, project_src = ?, project_type = ?, start_year = ?, end_year = ?, secret_level = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 411 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:416:7
[INFO] [stdout]     |
[INFO] [stdout] 416 | /       sqlx::query!(
[INFO] [stdout] 417 | |         r#"
[INFO] [stdout] 418 | |         DELETE 
[INFO] [stdout] 419 | |         FROM ProjectResp
[INFO] [stdout] ...   |
[INFO] [stdout] 424 | |       .execute(&pool)
[INFO] [stdout] 425 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 | /         sqlx::query!(
[INFO] [stdout] 435 | |           r#"
[INFO] [stdout] 436 | |           INSERT INTO ProjectResp
[INFO] [stdout] 437 | |           (teacher_id, project_id, ranking, fund)
[INFO] [stdout] ...   |
[INFO] [stdout] 442 | |         .execute(&pool).await
[INFO] [stdout]     | |_____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let pid = sqlx::query_as!(
[INFO] [stdout]     |  _____________^
[INFO] [stdout] 464 | |     models::UserName,  // 借用一下
[INFO] [stdout] 465 | |     r#"
[INFO] [stdout] 466 | |     SELECT project_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 472 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:479:15
[INFO] [stdout]     |
[INFO] [stdout] 479 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 480 | |       models::Cnt,
[INFO] [stdout] 481 | |       r#"
[INFO] [stdout] 482 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 490 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:499:16
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 500 | |     r#"
[INFO] [stdout] 501 | |     DELETE 
[INFO] [stdout] 502 | |     FROM Project
[INFO] [stdout] ...   |
[INFO] [stdout] 507 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:536:16
[INFO] [stdout]     |
[INFO] [stdout] 536 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 537 | |     r#"
[INFO] [stdout] 538 | |     INSERT INTO Publication
[INFO] [stdout] 539 | |     (paper_name, paper_src, pub_year, paper_type, paper_level)
[INFO] [stdout] ...   |
[INFO] [stdout] 548 | |   .execute(&pool)
[INFO] [stdout] 549 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:559:5
[INFO] [stdout]     |
[INFO] [stdout] 559 | /     sqlx::query!(
[INFO] [stdout] 560 | |       r#"
[INFO] [stdout] 561 | |       INSERT INTO PaperPub
[INFO] [stdout] 562 | |       (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 570 | |     .execute(&pool)
[INFO] [stdout] 571 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:583:15
[INFO] [stdout]     |
[INFO] [stdout] 583 |     let paper = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 584 | |     models::Paper,
[INFO] [stdout] 585 | |     r#"
[INFO] [stdout] 586 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 598 | |   .fetch_one(&pool)
[INFO] [stdout] 599 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:603:18
[INFO] [stdout]     |
[INFO] [stdout] 603 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 604 | |     models::TeacherPaper,
[INFO] [stdout] 605 | |     r#"
[INFO] [stdout] 606 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 616 | |   .fetch_all(&pool)
[INFO] [stdout] 617 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:642:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 643 | |     models::UserId, // 用 UserName 临时借用存 paper_id
[INFO] [stdout] 644 | |     r#"
[INFO] [stdout] 645 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 651 | |   .fetch_one(&pool)
[INFO] [stdout] 652 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:662:31
[INFO] [stdout]     |
[INFO] [stdout] 662 |           let comm_auth_count = sqlx::query_as!(
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 663 | |           models::Cnt,
[INFO] [stdout] 664 | |           r#"
[INFO] [stdout] 665 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 674 | |         .fetch_one(&pool)
[INFO] [stdout] 675 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:691:16
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 692 | |     r#"
[INFO] [stdout] 693 | |     UPDATE Publication
[INFO] [stdout] 694 | |     SET paper_name = ?, paper_src = ?, paper_type = ?, paper_level = ?, pub_year = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 704 | |   .execute(&pool)
[INFO] [stdout] 705 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:710:7
[INFO] [stdout]     |
[INFO] [stdout] 710 | /       sqlx::query!(
[INFO] [stdout] 711 | |         r#"
[INFO] [stdout] 712 | |         DELETE FROM PaperPub
[INFO] [stdout] 713 | |         WHERE paper_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 717 | |       .execute(&pool)
[INFO] [stdout] 718 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:724:9
[INFO] [stdout]     |
[INFO] [stdout] 724 | /         sqlx::query!(
[INFO] [stdout] 725 | |             r#"
[INFO] [stdout] 726 | |             INSERT INTO PaperPub
[INFO] [stdout] 727 | |             (teacher_id, paper_id, ranking, comm_auth)
[INFO] [stdout] ...   |
[INFO] [stdout] 735 | |         .execute(&pool)
[INFO] [stdout] 736 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:757:18
[INFO] [stdout]     |
[INFO] [stdout] 757 |     let paper_id = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 758 | |     models::UserId, // 复用结构体
[INFO] [stdout] 759 | |     r#"
[INFO] [stdout] 760 | |     SELECT paper_id as user_id
[INFO] [stdout] ...   |
[INFO] [stdout] 766 | |   .fetch_one(&pool).await
[INFO] [stdout]     | |_________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:773:15
[INFO] [stdout]     |
[INFO] [stdout] 773 |       let cnt = sqlx::query_as!(
[INFO] [stdout]     |  _______________^
[INFO] [stdout] 774 | |       models::Cnt,
[INFO] [stdout] 775 | |       r#"
[INFO] [stdout] 776 | |       SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 784 | |     .fetch_one(&pool).await
[INFO] [stdout]     | |___________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:793:16
[INFO] [stdout]     |
[INFO] [stdout] 793 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 794 | |     r#"
[INFO] [stdout] 795 | |     DELETE FROM Publication
[INFO] [stdout] 796 | |     WHERE paper_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 800 | |   .execute(&pool).await
[INFO] [stdout]     | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:877:16
[INFO] [stdout]     |
[INFO] [stdout] 877 |     let course = sqlx::query_as!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 878 | |     models::Course,
[INFO] [stdout] 879 | |     r#"
[INFO] [stdout] 880 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 890 | |   .fetch_one(&pool)
[INFO] [stdout] 891 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:895:18
[INFO] [stdout]     |
[INFO] [stdout] 895 |     let teachers = sqlx::query_as!(
[INFO] [stdout]     |  __________________^
[INFO] [stdout] 896 | |     models::TeacherCourseInfo,
[INFO] [stdout] 897 | |     r#"
[INFO] [stdout] 898 | |     SELECT
[INFO] [stdout] ...   |
[INFO] [stdout] 909 | |   .fetch_all(&pool)
[INFO] [stdout] 910 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:833:3
[INFO] [stdout]     |
[INFO] [stdout] 833 | /   sqlx::query!(
[INFO] [stdout] 834 | |     r#"
[INFO] [stdout] 835 | |     INSERT INTO Course (course_id, course_name, course_property)
[INFO] [stdout] 836 | |     VALUES (?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 842 | |   .execute(&pool)
[INFO] [stdout] 843 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:853:5
[INFO] [stdout]     |
[INFO] [stdout] 853 | /     sqlx::query!(
[INFO] [stdout] 854 | |       r#"
[INFO] [stdout] 855 | |       INSERT INTO ClassTeach (teacher_id, course_id, course_year, course_semester, resp_hour)
[INFO] [stdout] 856 | |       VALUES (?, ?, ?, ?, ?)
[INFO] [stdout] ...   |
[INFO] [stdout] 864 | |     .execute(&pool)
[INFO] [stdout] 865 | |     .await
[INFO] [stdout]     | |__________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:930:19
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let course_id = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 931 | |     models::UserName, // 复用结构体
[INFO] [stdout] 932 | |     r#"
[INFO] [stdout] 933 | |     SELECT course_id as username
[INFO] [stdout] ...   |
[INFO] [stdout] 939 | |   .fetch_one(&pool)
[INFO] [stdout] 940 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:949:19
[INFO] [stdout]     |
[INFO] [stdout] 949 |           let cnt = sqlx::query_as!(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 950 | |           models::Cnt,
[INFO] [stdout] 951 | |           r#"
[INFO] [stdout] 952 | |           SELECT COUNT(1) as count
[INFO] [stdout] ...   |
[INFO] [stdout] 960 | |         .fetch_one(&pool)
[INFO] [stdout] 961 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:974:16
[INFO] [stdout]     |
[INFO] [stdout] 974 |     let result = sqlx::query!(
[INFO] [stdout]     |  ________________^
[INFO] [stdout] 975 | |     r#"
[INFO] [stdout] 976 | |     UPDATE Course
[INFO] [stdout] 977 | |     SET course_name = ?, course_property = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 984 | |   .execute(&pool)
[INFO] [stdout] 985 | |   .await
[INFO] [stdout]     | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/handlers.rs:991:7
[INFO] [stdout]     |
[INFO] [stdout] 991 | /       sqlx::query!(
[INFO] [stdout] 992 | |         r#"
[INFO] [stdout] 993 | |         DELETE FROM ClassTeach
[INFO] [stdout] 994 | |         WHERE course_id = ?
[INFO] [stdout] ...   |
[INFO] [stdout] 998 | |       .execute(&pool)
[INFO] [stdout] 999 | |       .await
[INFO] [stdout]     | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1006:9
[INFO] [stdout]      |
[INFO] [stdout] 1006 | /         sqlx::query!(
[INFO] [stdout] 1007 | |           r#"
[INFO] [stdout] 1008 | |           INSERT INTO ClassTeach
[INFO] [stdout] 1009 | |           (teacher_id, course_id, resp_hour, course_year, course_semester)
[INFO] [stdout] ...    |
[INFO] [stdout] 1018 | |         .execute(&pool)
[INFO] [stdout] 1019 | |         .await
[INFO] [stdout]      | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     let course_id = sqlx::query_as!(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1043 | |     models::UserName, // 复用结构体
[INFO] [stdout] 1044 | |     r#"
[INFO] [stdout] 1045 | |     SELECT course_id as username
[INFO] [stdout] ...    |
[INFO] [stdout] 1051 | |   .fetch_one(&pool)
[INFO] [stdout] 1052 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1061:17
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1062 | |         models::Cnt,
[INFO] [stdout] 1063 | |         r#"
[INFO] [stdout] 1064 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1072 | |       .fetch_one(&pool)
[INFO] [stdout] 1073 | |       .await
[INFO] [stdout]      | |____________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1087:16
[INFO] [stdout]      |
[INFO] [stdout] 1087 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1088 | |     r#"
[INFO] [stdout] 1089 | |     DELETE FROM Course
[INFO] [stdout] 1090 | |     WHERE course_id = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1094 | |   .execute(&pool)
[INFO] [stdout] 1095 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1361:16
[INFO] [stdout]      |
[INFO] [stdout] 1361 |     let result = sqlx::query!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1362 | |     r#"
[INFO] [stdout] 1363 | |     UPDATE User 
[INFO] [stdout] 1364 | |     SET user_password = ?
[INFO] [stdout] ...    |
[INFO] [stdout] 1369 | |   .execute(&pool).await
[INFO] [stdout]      | |_______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1138:17
[INFO] [stdout]      |
[INFO] [stdout] 1138 |     let teacher = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1139 | |     models::Teacher,
[INFO] [stdout] 1140 | |     r#"
[INFO] [stdout] 1141 | |     SELECT *
[INFO] [stdout] ...    |
[INFO] [stdout] 1147 | |   .fetch_one(&pool)
[INFO] [stdout] 1148 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1151:16
[INFO] [stdout]      |
[INFO] [stdout] 1151 |     let papers = sqlx::query_as!(
[INFO] [stdout]      |  ________________^
[INFO] [stdout] 1152 | |     models::PaperR,
[INFO] [stdout] 1153 | |     r#"
[INFO] [stdout] 1154 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1170 | |   .fetch_all(&pool)
[INFO] [stdout] 1171 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1175:22
[INFO] [stdout]      |
[INFO] [stdout] 1175 |     let mut projects = sqlx::query_as!(
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1176 | |     models::ProjectR,
[INFO] [stdout] 1177 | |     r#"
[INFO] [stdout] 1178 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1196 | |   .fetch_all(&pool)
[INFO] [stdout] 1197 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1200:17
[INFO] [stdout]      |
[INFO] [stdout] 1200 |     let courses = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1201 | |     models::CourseR,
[INFO] [stdout] 1202 | |     r#"
[INFO] [stdout] 1203 | |     SELECT 
[INFO] [stdout] ...    |
[INFO] [stdout] 1217 | |   .fetch_all(&pool)
[INFO] [stdout] 1218 | |   .await
[INFO] [stdout]      | |________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |         let cnt = sqlx::query_as!(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1264 | |         models::Cnt,
[INFO] [stdout] 1265 | |         r#"
[INFO] [stdout] 1266 | |         SELECT COUNT(1) as count
[INFO] [stdout] ...    |
[INFO] [stdout] 1273 | |       .fetch_one(&pool).await
[INFO] [stdout]      | |_____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]     --> src/handlers.rs:1290:18
[INFO] [stdout]      |
[INFO] [stdout] 1290 |       Some(i) => i.to_string(),
[INFO] [stdout]      |                  ^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/utils.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   sqlx::query_as!(
[INFO] [stdout] 50 | |     TeacherId,
[INFO] [stdout] 51 | |     r#"
[INFO] [stdout] 52 | |     SELECT teacher_id
[INFO] [stdout] ...  |
[INFO] [stdout] 58 | |   .fetch_one(pool).await
[INFO] [stdout]    | |________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/utils.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 | /   sqlx::query_as!(
[INFO] [stdout] 70 | |     Privilege,
[INFO] [stdout] 71 | |     r#"
[INFO] [stdout] 72 | |     SELECT user_privilege as privilege
[INFO] [stdout] ...  |
[INFO] [stdout] 78 | |   .fetch_one(pool).await
[INFO] [stdout]    | |________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/utils.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   sqlx::query_as!(
[INFO] [stdout] 50 | |     TeacherId,
[INFO] [stdout] 51 | |     r#"
[INFO] [stdout] 52 | |     SELECT teacher_id
[INFO] [stdout] ...  |
[INFO] [stdout] 58 | |   .fetch_one(pool).await
[INFO] [stdout]    | |________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/utils.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 | /   sqlx::query_as!(
[INFO] [stdout] 70 | |     Privilege,
[INFO] [stdout] 71 | |     r#"
[INFO] [stdout] 72 | |     SELECT user_privilege as privilege
[INFO] [stdout] ...  |
[INFO] [stdout] 78 | |   .fetch_one(pool).await
[INFO] [stdout]    | |________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/handlers.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Write as IoWrite;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/handlers.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Write as IoWrite;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `db_lab` (bin "db_lab" test) due to 111 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `db_lab` (bin "db_lab") due to 111 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4f6d457784f77e27ad719a4585009bae2f1705f1285fee8657bf5fca135868e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f6d457784f77e27ad719a4585009bae2f1705f1285fee8657bf5fca135868e7", kill_on_drop: false }`
[INFO] [stdout] 4f6d457784f77e27ad719a4585009bae2f1705f1285fee8657bf5fca135868e7
