[INFO] cloning repository https://github.com/DINGDANGMAOUP/rocket-app [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DINGDANGMAOUP/rocket-app" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDINGDANGMAOUP%2Frocket-app", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDINGDANGMAOUP%2Frocket-app'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 71dfc88897d8570cc2f160eed63b0d0324af13ab [INFO] testing DINGDANGMAOUP/rocket-app against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDINGDANGMAOUP%2Frocket-app" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/DINGDANGMAOUP/rocket-app [INFO] finished tweaking git repo https://github.com/DINGDANGMAOUP/rocket-app [INFO] tweaked toml for git repo https://github.com/DINGDANGMAOUP/rocket-app written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/DINGDANGMAOUP/rocket-app on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/DINGDANGMAOUP/rocket-app 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rbs v4.5.18 [INFO] [stderr] Downloaded validator v0.18.1 [INFO] [stderr] Downloaded dark-std v0.2.16 [INFO] [stderr] Downloaded validator_derive v0.18.2 [INFO] [stderr] Downloaded rbdc-pool-fast v4.5.9 [INFO] [stderr] Downloaded rbdc v4.5.35 [INFO] [stderr] Downloaded fast_pool v0.2.0 [INFO] [stderr] Downloaded impl-more v0.1.6 [INFO] [stderr] Downloaded dirs-sys v0.4.1 [INFO] [stderr] Downloaded v_htmlescape v0.15.8 [INFO] [stderr] Downloaded actix-files v0.6.6 [INFO] [stderr] Downloaded pest_meta v2.7.12 [INFO] [stderr] Downloaded zip v0.6.6 [INFO] [stderr] Downloaded pest v2.7.12 [INFO] [stderr] Downloaded serde_yml v0.0.12 [INFO] [stderr] Downloaded actix-http v3.9.0 [INFO] [stderr] Downloaded actix-web v4.9.0 [INFO] [stderr] Downloaded cc v1.1.20 [INFO] [stderr] Downloaded bigdecimal v0.4.5 [INFO] [stderr] Downloaded webpki-roots v0.26.5 [INFO] [stderr] Downloaded gimli v0.31.0 [INFO] [stderr] Downloaded rbatis v4.5.30 [INFO] [stderr] Downloaded rustls v0.23.13 [INFO] [stderr] Downloaded libyml v0.0.5 [INFO] [stderr] Downloaded pest_derive v2.7.12 [INFO] [stderr] Downloaded addr2line v0.24.1 [INFO] [stderr] Downloaded unicode-properties v0.1.2 [INFO] [stderr] Downloaded actix-server v2.5.0 [INFO] [stderr] Downloaded ucd-trie v0.1.6 [INFO] [stderr] Downloaded html_parser v0.6.3 [INFO] [stderr] Downloaded password-hash v0.4.2 [INFO] [stderr] Downloaded fast_log v1.7.4 [INFO] [stderr] Downloaded rustls-pemfile v2.1.3 [INFO] [stderr] Downloaded rbdc-pg v4.5.13 [INFO] [stderr] Downloaded pest_generator v2.7.12 [INFO] [stderr] Downloaded dirs v5.0.1 [INFO] [stderr] Downloaded redox_syscall v0.5.4 [INFO] [stderr] Downloaded rbatis-macro-driver v4.5.6 [INFO] [stderr] Downloaded fastdate v0.3.33 [INFO] [stderr] Downloaded rbatis-codegen v4.5.20 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 78fa65468d13e9d1f891c3e293c755683c6923cb124bf4e155a3b79f1c9a2c3c [INFO] running `Command { std: "docker" "start" "-a" "78fa65468d13e9d1f891c3e293c755683c6923cb124bf4e155a3b79f1c9a2c3c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "78fa65468d13e9d1f891c3e293c755683c6923cb124bf4e155a3b79f1c9a2c3c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "78fa65468d13e9d1f891c3e293c755683c6923cb124bf4e155a3b79f1c9a2c3c", kill_on_drop: false }` [INFO] [stdout] 78fa65468d13e9d1f891c3e293c755683c6923cb124bf4e155a3b79f1c9a2c3c [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] a54f3b6626a315d9aa7852ef7b619435f581f009fe23420af309e942b3383173 [INFO] running `Command { std: "docker" "start" "-a" "a54f3b6626a315d9aa7852ef7b619435f581f009fe23420af309e942b3383173", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling bytes v1.7.1 [INFO] [stderr] Compiling allocator-api2 v0.2.18 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling cpufeatures v0.2.14 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling tinyvec v1.8.0 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls-pki-types v1.8.0 [INFO] [stderr] Compiling unicode-bidi v0.3.15 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling miniz_oxide v0.8.0 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling cc v1.1.20 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling mio v1.0.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling rustls v0.23.13 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling bigdecimal v0.4.5 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling zstd-safe v7.2.1 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling local-waker v0.1.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling flate2 v1.0.33 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling flume v0.11.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling url v2.5.2 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling actix-service v2.0.2 [INFO] [stderr] Compiling brotli-decompressor v4.0.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling actix-utils v3.0.1 [INFO] [stderr] Compiling inout v0.1.3 [INFO] [stderr] Compiling uuid v1.10.0 [INFO] [stderr] Compiling rustls-pemfile v2.1.3 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling webpki-roots v0.26.5 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling base64ct v1.6.0 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling password-hash v0.4.2 [INFO] [stderr] Compiling brotli v6.0.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling local-channel v0.1.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling encoding_rs v0.8.34 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling unicode-xid v0.2.5 [INFO] [stderr] Compiling gimli v0.31.0 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling language-tags v0.3.2 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling twox-hash v1.6.3 [INFO] [stderr] Compiling bzip2 v0.4.4 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling rust-embed-utils v8.5.0 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling pbkdf2 v0.11.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.11 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Compiling object v0.36.4 [INFO] [stderr] Compiling constant_time_eq v0.1.5 [INFO] [stderr] Compiling impl-more v0.1.6 [INFO] [stderr] Compiling rustc-demangle v0.1.24 [INFO] [stderr] Compiling unicode-properties v0.1.2 [INFO] [stderr] Compiling rust-format v0.3.4 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling libyml v0.0.5 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling lz4_flex v0.11.3 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling addr2line v0.24.1 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling http-range v0.1.5 [INFO] [stderr] Compiling iana-time-zone v0.1.61 [INFO] [stderr] Compiling whoami v1.5.2 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling async-trait v0.1.82 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling rust-embed-impl v8.5.0 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling tokio v1.40.0 [INFO] [stderr] Compiling validator_derive v0.18.2 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling rust-embed v8.5.0 [INFO] [stderr] Compiling pest v2.7.12 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling backtrace v0.3.74 [INFO] [stderr] Compiling lru v0.12.4 [INFO] [stderr] Compiling pest_meta v2.7.12 [INFO] [stderr] Compiling pest_generator v2.7.12 [INFO] [stderr] Compiling failure v0.1.8 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling rustls-webpki v0.102.8 [INFO] [stderr] Compiling pest_derive v2.7.12 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling rbs v4.5.18 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling serde_bytes v0.11.15 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling zstd v0.13.2 [INFO] [stderr] Compiling zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling dark-std v0.2.16 [INFO] [stderr] Compiling html_parser v0.6.3 [INFO] [stderr] Compiling validator v0.18.1 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling rbatis-codegen v4.5.20 [INFO] [stderr] Compiling tokio-util v0.7.12 [INFO] [stderr] Compiling actix-rt v2.10.0 [INFO] [stderr] Compiling fast_pool v0.2.0 [INFO] [stderr] Compiling actix-server v2.5.0 [INFO] [stderr] Compiling tokio-rustls v0.26.0 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling fastdate v0.3.33 [INFO] [stderr] Compiling zip v0.6.6 [INFO] [stderr] Compiling rbdc v4.5.35 [INFO] [stderr] Compiling rbatis-macro-driver v4.5.6 [INFO] [stderr] Compiling fast_log v1.7.4 [INFO] [stderr] Compiling rbdc-pool-fast v4.5.9 [INFO] [stderr] Compiling rbdc-pg v4.5.13 [INFO] [stderr] Compiling actix-http v3.9.0 [INFO] [stderr] Compiling rbatis v4.5.30 [INFO] [stderr] Compiling actix-web v4.9.0 [INFO] [stderr] Compiling actix-files v0.6.6 [INFO] [stderr] Compiling rust-platform v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Dict], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Dict > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Dict > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Dict > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [DictDetail], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < DictDetail > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < DictDetail > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < DictDetail > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Menu], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Menu > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Menu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Menu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Role], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Role > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Role > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Role > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [RoleMenu], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < RoleMenu > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < RoleMenu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < RoleMenu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [User], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < User > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < User > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < User > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [UserRole], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < UserRole > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < UserRole > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < UserRole > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[html_sql] 'select_page_by_params'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_page_by_params(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] do_count : bool, page_no : u64, page_size : u64, params : & & UserPageQuery,) [INFO] [stdout] -> std :: result :: Result < rbs :: Value, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let _ = include_bytes! ("/opt/rustwide/workdir/sql/html/user.html"); let [INFO] [stdout] mut rb_arg_map = rbs :: value :: map :: ValueMap :: with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("do_count".to_string().into(), rbs :: to_value(do_count) [INFO] [stdout] ?); [INFO] [stdout] rb_arg_map.insert("page_no".to_string().into(), rbs :: to_value(page_no) [INFO] [stdout] ?); [INFO] [stdout] rb_arg_map.insert("page_size".to_string().into(), rbs :: [INFO] [stdout] to_value(page_size) ?); [INFO] [stdout] rb_arg_map.insert("params".to_string().into(), rbs :: to_value(params) ?); [INFO] [stdout] {} use rbatis :: executor :: { RBatisRef }; let driver_type = [INFO] [stdout] executor.rb_ref().driver_type() ? ; use rbatis :: rbatis_codegen; pub fn [INFO] [stdout] impl_html_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1260usize); let mut args = Vec :: with_capacity(4usize); [INFO] [stdout] sql.push_str("select "); if [INFO] [stdout] { (& arg ["do_count"]).op_eq(& true) }.to_owned().into() [INFO] [stdout] { sql.push_str("count(1)"); } if [INFO] [stdout] { (& arg ["do_count"]).op_eq(& false) }.to_owned().into() [INFO] [stdout] { sql.push_str("*"); } sql.push_str(" from t_user"); [INFO] [stdout] sql.push_str(" where "); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(224usize); if [INFO] [stdout] { [INFO] [stdout] (& arg ["params"]).op_ne(& rbs :: Value :: Null) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["id"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["id"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["id"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and id = ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["username"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["username"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["username"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and username ~* ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["nickName"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["nickName"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["nickName"]) [INFO] [stdout] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(" and nick_name ~* ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["enable"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["enable"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["enable"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and enable = ?"); [INFO] [stdout] } [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(bool :: [INFO] [stdout] op_from(bool :: [INFO] [stdout] op_from(bool :: op_from((& arg ["do_count"]).op_eq(& false)) [INFO] [stdout] && bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["orderBy"])).op_ne(& rbs :: Value :: Null))) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["orderBy"])).op_ne(& ""))) && bool [INFO] [stdout] :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["orderDirection"])).op_ne(& rbs :: Value :: Null))) && bool [INFO] [stdout] :: [INFO] [stdout] op_from(((& arg ["params"] ["orderDirection"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" order by {} {}", & [INFO] [stdout] { (& arg ["params"] ["orderBy"]) }.string(), & [INFO] [stdout] { (& arg ["params"] ["orderDirection"]) }.string())); [INFO] [stdout] } if { (& arg ["do_count"]).op_eq(& false) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" limit {} offset {}", & { & arg ["page_size"] }.string(), & [INFO] [stdout] { & arg ["page_no"] }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(" ").trim_start_matches("and ").trim_start_matches("or ").trim_end_matches(" ").trim_end_matches(" and").trim_end_matches(" or").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(" "); sql = [INFO] [stdout] sql.trim_end_matches(" where ").to_string(); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] impl_html_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: [INFO] [stdout] executor :: { Executor }; let r = executor.query(& sql, rb_args).await ? ; [INFO] [stdout] rbatis :: decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s [INFO] running `Command { std: "docker" "inspect" "a54f3b6626a315d9aa7852ef7b619435f581f009fe23420af309e942b3383173", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a54f3b6626a315d9aa7852ef7b619435f581f009fe23420af309e942b3383173", kill_on_drop: false }` [INFO] [stdout] a54f3b6626a315d9aa7852ef7b619435f581f009fe23420af309e942b3383173 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] ebd0ccb1924488c8424ae3de1abff689964f096a2014cd73d17529e3f3801a8b [INFO] running `Command { std: "docker" "start" "-a" "ebd0ccb1924488c8424ae3de1abff689964f096a2014cd73d17529e3f3801a8b", kill_on_drop: false }` [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rust-platform v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Dict], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Dict > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Dict > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Dict > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [DictDetail], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < DictDetail > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < DictDetail > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < DictDetail > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Menu], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Menu > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Menu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Menu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [Role], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < Role > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < Role > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < Role > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [RoleMenu], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < RoleMenu > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < RoleMenu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < RoleMenu > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [User], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < User > , rbatis [INFO] [stdout] :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < User > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < User > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [UserRole], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_all'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_all(executor : & dyn rbatis :: executor :: Executor, table_column : & [INFO] [stdout] str, table_name : & str,) -> std :: result :: Result < Vec < UserRole > , [INFO] [stdout] rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1044usize); let mut args = Vec :: with_capacity(0usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} ", & { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_by_column'............ [INFO] [stdout] pub async fn select_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_value : V,) -> std :: result :: [INFO] [stdout] Result < Vec < UserRole > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} = ?", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'select_in_column'............ [INFO] [stdout] pub async fn select_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_column : & str, [INFO] [stdout] table_name : & str, column : & str, column_values : & [V],) -> std :: result [INFO] [stdout] :: Result < Vec < UserRole > , rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("table_column".to_string().into(), rbs :: [INFO] [stdout] to_value(table_column) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1080usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("select {} from {} where {} in (", & [INFO] [stdout] { & arg ["table_column"] }.string(), & [INFO] [stdout] { & arg ["table_name"] }.string(), & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; let r = executor.query(& sql, rb_args).await ? ; rbatis :: [INFO] [stdout] decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'update_by_column_value'............ [INFO] [stdout] pub async fn [INFO] [stdout] update_by_column_value(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] table_name : String, table : & rbs :: Value, skip_null : bool, column : & str, [INFO] [stdout] column_value : & rbs :: Value, skip_null : bool,) -> std :: result :: Result < [INFO] [stdout] rbatis :: rbdc :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(6usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("table".to_string().into(), rbs :: to_value(table) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); [INFO] [stdout] rb_arg_map.insert("skip_null".to_string().into(), rbs :: [INFO] [stdout] to_value(skip_null) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1077usize); let mut args = Vec :: with_capacity(2usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("update {} set ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(12usize); for (ref k, v) in [INFO] [stdout] { & arg ["table"] } [INFO] [stdout] { [INFO] [stdout] if { (k).op_eq(& & arg ["column"]) }.to_owned().into() [INFO] [stdout] { continue } if [INFO] [stdout] { [INFO] [stdout] bool :: op_from((& arg ["skip_null"]).op_eq(& true)) && bool [INFO] [stdout] :: op_from((v).op_eq(& rbs :: Value :: Null)) [INFO] [stdout] }.to_owned().into() { continue } [INFO] [stdout] args.push(rbs :: to_value({ v }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! ("{}=?,", & { k }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" where {} = ?", & { & arg ["column"] }.string())); return [INFO] [stdout] (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[html_sql] 'select_page_by_params'............ [INFO] [stdout] pub async fn [INFO] [stdout] select_page_by_params(executor : & dyn rbatis :: executor :: Executor, [INFO] [stdout] do_count : bool, page_no : u64, page_size : u64, params : & & UserPageQuery,) [INFO] [stdout] -> std :: result :: Result < rbs :: Value, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let _ = include_bytes! ("/opt/rustwide/workdir/sql/html/user.html"); let [INFO] [stdout] mut rb_arg_map = rbs :: value :: map :: ValueMap :: with_capacity(4usize); [INFO] [stdout] rb_arg_map.insert("do_count".to_string().into(), rbs :: to_value(do_count) [INFO] [stdout] ?); [INFO] [stdout] rb_arg_map.insert("page_no".to_string().into(), rbs :: to_value(page_no) [INFO] [stdout] ?); [INFO] [stdout] rb_arg_map.insert("page_size".to_string().into(), rbs :: [INFO] [stdout] to_value(page_size) ?); [INFO] [stdout] rb_arg_map.insert("params".to_string().into(), rbs :: to_value(params) ?); [INFO] [stdout] {} use rbatis :: executor :: { RBatisRef }; let driver_type = [INFO] [stdout] executor.rb_ref().driver_type() ? ; use rbatis :: rbatis_codegen; pub fn [INFO] [stdout] impl_html_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1260usize); let mut args = Vec :: with_capacity(4usize); [INFO] [stdout] sql.push_str("select "); if [INFO] [stdout] { (& arg ["do_count"]).op_eq(& true) }.to_owned().into() [INFO] [stdout] { sql.push_str("count(1)"); } if [INFO] [stdout] { (& arg ["do_count"]).op_eq(& false) }.to_owned().into() [INFO] [stdout] { sql.push_str("*"); } sql.push_str(" from t_user"); [INFO] [stdout] sql.push_str(" where "); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(224usize); if [INFO] [stdout] { [INFO] [stdout] (& arg ["params"]).op_ne(& rbs :: Value :: Null) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["id"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["id"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["id"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and id = ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["username"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["username"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["username"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and username ~* ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["nickName"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["nickName"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["nickName"]) [INFO] [stdout] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(" and nick_name ~* ?"); [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["enable"])).op_ne(& rbs :: Value :: Null)) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["enable"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["params"] ["enable"]) [INFO] [stdout] }).unwrap_or_default()); sql.push_str(" and enable = ?"); [INFO] [stdout] } [INFO] [stdout] } if [INFO] [stdout] { [INFO] [stdout] bool :: [INFO] [stdout] op_from(bool :: [INFO] [stdout] op_from(bool :: [INFO] [stdout] op_from(bool :: op_from((& arg ["do_count"]).op_eq(& false)) [INFO] [stdout] && bool :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["orderBy"])).op_ne(& rbs :: Value :: Null))) && bool :: [INFO] [stdout] op_from(((& arg ["params"] ["orderBy"])).op_ne(& ""))) && bool [INFO] [stdout] :: [INFO] [stdout] op_from(((& arg ["params"] [INFO] [stdout] ["orderDirection"])).op_ne(& rbs :: Value :: Null))) && bool [INFO] [stdout] :: [INFO] [stdout] op_from(((& arg ["params"] ["orderDirection"])).op_ne(& "")) [INFO] [stdout] }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" order by {} {}", & [INFO] [stdout] { (& arg ["params"] ["orderBy"]) }.string(), & [INFO] [stdout] { (& arg ["params"] ["orderDirection"]) }.string())); [INFO] [stdout] } if { (& arg ["do_count"]).op_eq(& false) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] (" limit {} offset {}", & { & arg ["page_size"] }.string(), & [INFO] [stdout] { & arg ["page_no"] }.string())); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(" ").trim_start_matches("and ").trim_start_matches("or ").trim_end_matches(" ").trim_end_matches(" and").trim_end_matches(" or").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(" "); sql = [INFO] [stdout] sql.trim_end_matches(" where ").to_string(); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] impl_html_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: [INFO] [stdout] executor :: { Executor }; let r = executor.query(& sql, rb_args).await ? ; [INFO] [stdout] rbatis :: decode :: decode(r) [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Fail` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/error.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | #[derive(Debug, Fail)] [INFO] [stdout] | ^--- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error` [INFO] [stdout] 10 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 42.10s [INFO] running `Command { std: "docker" "inspect" "ebd0ccb1924488c8424ae3de1abff689964f096a2014cd73d17529e3f3801a8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebd0ccb1924488c8424ae3de1abff689964f096a2014cd73d17529e3f3801a8b", kill_on_drop: false }` [INFO] [stdout] ebd0ccb1924488c8424ae3de1abff689964f096a2014cd73d17529e3f3801a8b [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 0ae0fa19b8e6f3d3e6e8bf4a6c8c6e12794a2e5cd05d56b907787e55b50459f9 [INFO] running `Command { std: "docker" "start" "-a" "0ae0fa19b8e6f3d3e6e8bf4a6c8c6e12794a2e5cd05d56b907787e55b50459f9", kill_on_drop: false }` [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/error.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Debug, Fail)] [INFO] [stderr] | ^--- [INFO] [stderr] | | [INFO] [stderr] | `Fail` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error` [INFO] [stderr] 10 | pub enum Error { [INFO] [stderr] | ----- `Error` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stderr] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stderr] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stderr] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stderr] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/error.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Debug, Fail)] [INFO] [stderr] | ^--- [INFO] [stderr] | | [INFO] [stderr] | `Display` is not local [INFO] [stderr] | move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error` [INFO] [stderr] 10 | pub enum Error { [INFO] [stderr] | ----- `Error` is not local [INFO] [stderr] | [INFO] [stderr] = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive` [INFO] [stderr] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stderr] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stderr] = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `rust-platform` (lib) generated 2 warnings [INFO] [stderr] warning: `rust-platform` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.60s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/rust_platform-da0fed684d9d1457) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test config::config::test::test_config ... ok [INFO] [stdout] test config::log::test::test_config ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- config::log::test::test_config stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'config::log::test::test_config' panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fast_log-1.7.4/src/config.rs:94:63: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: E("No such file or directory (os error 2)") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x77c4f5f63fa2 - std::backtrace_rs::backtrace::libunwind::trace::h559918daaaf51ab7 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x77c4f5f63fa2 - std::backtrace_rs::backtrace::trace_unsynchronized::hb04fbcf80d07af8b [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x77c4f5f63fa2 - std::sys::backtrace::_print_fmt::h7c0bbbbfac0065d4 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x77c4f5f63fa2 - ::fmt::hb62c8ed31943daa5 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x77c4f5fa0853 - core::fmt::rt::Argument::fmt::he5eaa7dd607ed4c9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x77c4f5fa0853 - core::fmt::write::h375399f8cb90b45a [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/fmt/mod.rs:1460:25 [INFO] [stdout] 6: 0x77c4f5f612b3 - std::io::default_write_fmt::hdc1b4dd565dd0099 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x77c4f5f612b3 - std::io::Write::write_fmt::h29f6044e9bc43c23 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x77c4f5f63df2 - std::sys::backtrace::BacktraceLock::print::ha189c586374f916a [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x77c4f5f6556c - std::panicking::default_hook::{{closure}}::ha3a26c98ff210e12 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:300:27 [INFO] [stdout] 10: 0x77c4f5f653c2 - std::panicking::default_hook::h8c8a86b4390ab794 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:324:9 [INFO] [stdout] 11: 0x77c4f5ec8e04 - as core::ops::function::Fn>::call::ha39ae63ed1e9a130 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 12: 0x77c4f5ec8e04 - test::test_main_with_exit_callback::{{closure}}::h9df7c328ebe18c28 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x77c4f5f65ef3 - as core::ops::function::Fn>::call::h96b7201b552e9069 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 14: 0x77c4f5f65ef3 - std::panicking::rust_panic_with_hook::hb3b66c2e80efa371 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:841:13 [INFO] [stdout] 15: 0x77c4f5f65cba - std::panicking::begin_panic_handler::{{closure}}::h9c68d0f839e62070 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:706:13 [INFO] [stdout] 16: 0x77c4f5f64499 - std::sys::backtrace::__rust_end_short_backtrace::h68d22ddde4a73ad6 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:168:18 [INFO] [stdout] 17: 0x77c4f5f6594d - __rustc[f4ffc7196a45a630]::rust_begin_unwind [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:697:5 [INFO] [stdout] 18: 0x77c4f5e28f20 - core::panicking::panic_fmt::h8cdd4c81eb9069aa [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x77c4f5e29386 - core::result::unwrap_failed::h8476ffaa6db8205b [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/result.rs:1761:5 [INFO] [stdout] 20: 0x77c4f5ed74e1 - core::result::Result::unwrap::h5c4c15d3c9e97c4a [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/result.rs:1167:23 [INFO] [stdout] 21: 0x77c4f5ed74e1 - fast_log::config::Config::file::h5e629e4524f552ec [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fast_log-1.7.4/src/config.rs:94:63 [INFO] [stdout] 22: 0x77c4f5e402b7 - rust_platform::config::log::test::test_config::h082a7923a06ccbe2 [INFO] [stdout] at /opt/rustwide/workdir/src/config/log.rs:158:38 [INFO] [stdout] 23: 0x77c4f5e40267 - rust_platform::config::log::test::test_config::{{closure}}::ha0dc2dc3060cfd11 [INFO] [stdout] at /opt/rustwide/workdir/src/config/log.rs:154:21 [INFO] [stdout] 24: 0x77c4f5e3d536 - core::ops::function::FnOnce::call_once::hf27ebb91a2c0ac02 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x77c4f5ece4fb - core::ops::function::FnOnce::call_once::h9633dcf760ae81b2 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 26: 0x77c4f5ece4fb - test::__rust_begin_short_backtrace::h12ad5e04c8d7b4a5 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:648:18 [INFO] [stdout] 27: 0x77c4f5ecd76e - test::run_test_in_process::{{closure}}::he596b4fd3fa4893c [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:671:74 [INFO] [stdout] 28: 0x77c4f5ecd76e - as core::ops::function::FnOnce<()>>::call_once::hc746bc3fa75190e0 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 29: 0x77c4f5ecd76e - std::panicking::catch_unwind::do_call::hf4843906108d6299 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:589:40 [INFO] [stdout] 30: 0x77c4f5ecd76e - std::panicking::catch_unwind::h849d4e8b03577bb9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:552:19 [INFO] [stdout] 31: 0x77c4f5ecd76e - std::panic::catch_unwind::ha1f814c1dec025d2 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panic.rs:359:14 [INFO] [stdout] 32: 0x77c4f5ecd76e - test::run_test_in_process::h542aad3fe61255e7 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:671:27 [INFO] [stdout] 33: 0x77c4f5ecd76e - test::run_test::{{closure}}::h612788d75908cb63 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:592:43 [INFO] [stdout] 34: 0x77c4f5e925f4 - test::run_test::{{closure}}::hbfeea3bcb7245123 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:622:41 [INFO] [stdout] 35: 0x77c4f5e925f4 - std::sys::backtrace::__rust_begin_short_backtrace::h72542b83b4f87d5b [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:152:18 [INFO] [stdout] 36: 0x77c4f5e95dea - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hff26a7547ea762c9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 37: 0x77c4f5e95dea - as core::ops::function::FnOnce<()>>::call_once::hbee49bc759312884 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 38: 0x77c4f5e95dea - std::panicking::catch_unwind::do_call::h61de12ce5e04e28f [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:589:40 [INFO] [stdout] 39: 0x77c4f5e95dea - std::panicking::catch_unwind::h454dd49873d22e18 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:552:19 [INFO] [stdout] 40: 0x77c4f5e95dea - std::panic::catch_unwind::h5c15187324f8cebb [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panic.rs:359:14 [INFO] [stdout] 41: 0x77c4f5e95dea - std::thread::Builder::spawn_unchecked_::{{closure}}::hbc9d9c7427673d42 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 42: 0x77c4f5e95dea - core::ops::function::FnOnce::call_once{{vtable.shim}}::hefd458a129ddca13 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 43: 0x77c4f5f68947 - as core::ops::function::FnOnce>::call_once::h2d6e2e526b02c3da [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 44: 0x77c4f5f68947 - as core::ops::function::FnOnce>::call_once::h1aefced482b33c72 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 45: 0x77c4f5f68947 - std::sys::pal::unix::thread::Thread::new::thread_start::h7c9c6951b48f721d [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/pal/unix/thread.rs:97:17 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] config::log::test::test_config [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "0ae0fa19b8e6f3d3e6e8bf4a6c8c6e12794a2e5cd05d56b907787e55b50459f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ae0fa19b8e6f3d3e6e8bf4a6c8c6e12794a2e5cd05d56b907787e55b50459f9", kill_on_drop: false }` [INFO] [stdout] 0ae0fa19b8e6f3d3e6e8bf4a6c8c6e12794a2e5cd05d56b907787e55b50459f9