[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] checking DINGDANGMAOUP/rocket-app against master#b2fabe39bde5174e8d728bb85f2b8d0572c35b74 for pr-145108-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDINGDANGMAOUP%2Frocket-app" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-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-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/DINGDANGMAOUP/rocket-app on toolchain b2fabe39bde5174e8d728bb85f2b8d0572c35b74 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b2fabe39bde5174e8d728bb85f2b8d0572c35b74" "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" "+b2fabe39bde5174e8d728bb85f2b8d0572c35b74" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded validator v0.18.1 [INFO] [stderr] Downloaded darling_core v0.20.10 [INFO] [stderr] Downloaded http-range v0.1.5 [INFO] [stderr] Downloaded validator_derive v0.18.2 [INFO] [stderr] Downloaded crossbeam v0.8.4 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.93 [INFO] [stderr] Downloaded darling_macro v0.20.10 [INFO] [stderr] Downloaded fast_pool v0.2.0 [INFO] [stderr] Downloaded failure_derive v0.1.8 [INFO] [stderr] Downloaded zstd-safe v7.2.1 [INFO] [stderr] Downloaded whoami v1.5.2 [INFO] [stderr] Downloaded inout v0.1.3 [INFO] [stderr] Downloaded impl-more v0.1.6 [INFO] [stderr] Downloaded v_htmlescape v0.15.8 [INFO] [stderr] Downloaded actix-files v0.6.6 [INFO] [stderr] Downloaded lz4_flex v0.11.3 [INFO] [stderr] Downloaded actix-server v2.5.0 [INFO] [stderr] Downloaded bigdecimal v0.4.5 [INFO] [stderr] Downloaded tokio-util v0.7.12 [INFO] [stderr] Downloaded pest v2.7.12 [INFO] [stderr] Downloaded actix-http v3.9.0 [INFO] [stderr] Downloaded rustls-webpki v0.102.8 [INFO] [stderr] Downloaded serde_json v1.0.128 [INFO] [stderr] Downloaded actix-web v4.9.0 [INFO] [stderr] Downloaded webpki-roots v0.26.5 [INFO] [stderr] Downloaded gimli v0.31.0 [INFO] [stderr] Downloaded rustls v0.23.13 [INFO] [stderr] Downloaded object v0.36.4 [INFO] [stderr] Downloaded regex v1.10.6 [INFO] [stderr] Downloaded syn v2.0.77 [INFO] [stderr] Downloaded serde_yml v0.0.12 [INFO] [stderr] Downloaded flate2 v1.0.33 [INFO] [stderr] Downloaded web-sys v0.3.70 [INFO] [stderr] Downloaded backtrace v0.3.74 [INFO] [stderr] Downloaded bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Downloaded zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Downloaded tokio v1.40.0 [INFO] [stderr] Downloaded fast_log v1.7.4 [INFO] [stderr] Downloaded rbatis-macro-driver v4.5.6 [INFO] [stderr] Downloaded fastdate v0.3.33 [INFO] [stderr] Downloaded rbs v4.5.18 [INFO] [stderr] Downloaded rbatis-codegen v4.5.20 [INFO] [stderr] Downloaded rbdc v4.5.35 [INFO] [stderr] Downloaded rust-embed v8.5.0 [INFO] [stderr] Downloaded libc v0.2.158 [INFO] [stderr] Downloaded mio v1.0.2 [INFO] [stderr] Downloaded libyml v0.0.5 [INFO] [stderr] Downloaded cc v1.1.20 [INFO] [stderr] Downloaded indexmap v2.5.0 [INFO] [stderr] Downloaded serde v1.0.210 [INFO] [stderr] Downloaded unicode-normalization v0.1.24 [INFO] [stderr] Downloaded zip v0.6.6 [INFO] [stderr] Downloaded pest_meta v2.7.12 [INFO] [stderr] Downloaded html_parser v0.6.3 [INFO] [stderr] Downloaded rustls-pemfile v2.1.3 [INFO] [stderr] Downloaded addr2line v0.24.1 [INFO] [stderr] Downloaded miniz_oxide v0.8.0 [INFO] [stderr] Downloaded bytes v1.7.1 [INFO] [stderr] Downloaded unicode-properties v0.1.2 [INFO] [stderr] Downloaded js-sys v0.3.70 [INFO] [stderr] Downloaded rbdc-pg v4.5.13 [INFO] [stderr] Downloaded anyhow v1.0.89 [INFO] [stderr] Downloaded serde_derive v1.0.210 [INFO] [stderr] Downloaded bzip2 v0.4.4 [INFO] [stderr] Downloaded rbatis v4.5.30 [INFO] [stderr] Downloaded mime_guess v2.0.5 [INFO] [stderr] Downloaded ucd-trie v0.1.6 [INFO] [stderr] Downloaded pest_derive v2.7.12 [INFO] [stderr] Downloaded redox_syscall v0.5.4 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.93 [INFO] [stderr] Downloaded wasm-bindgen v0.2.93 [INFO] [stderr] Downloaded iana-time-zone v0.1.61 [INFO] [stderr] Downloaded synstructure v0.12.6 [INFO] [stderr] Downloaded twox-hash v1.6.3 [INFO] [stderr] Downloaded password-hash v0.4.2 [INFO] [stderr] Downloaded unicase v2.7.0 [INFO] [stderr] Downloaded pest_generator v2.7.12 [INFO] [stderr] Downloaded ppv-lite86 v0.2.20 [INFO] [stderr] Downloaded async-trait v0.1.82 [INFO] [stderr] Downloaded rustls-pki-types v1.8.0 [INFO] [stderr] Downloaded quote v1.0.37 [INFO] [stderr] Downloaded unicode-ident v1.0.13 [INFO] [stderr] Downloaded unicode-xid v0.2.5 [INFO] [stderr] Downloaded failure v0.1.8 [INFO] [stderr] Downloaded constant_time_eq v0.1.5 [INFO] [stderr] Downloaded rust-format v0.3.4 [INFO] [stderr] Downloaded lru v0.12.4 [INFO] [stderr] Downloaded serde_bytes v0.11.15 [INFO] [stderr] Downloaded adler2 v2.0.0 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.93 [INFO] [stderr] Downloaded rust-embed-impl v8.5.0 [INFO] [stderr] Downloaded rust-embed-utils v8.5.0 [INFO] [stderr] Downloaded dark-std v0.2.16 [INFO] [stderr] Downloaded dirs v5.0.1 [INFO] [stderr] Downloaded dirs-sys v0.4.1 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.93 [INFO] [stderr] Downloaded cpufeatures v0.2.14 [INFO] [stderr] Downloaded pbkdf2 v0.11.0 [INFO] [stderr] Downloaded darling v0.20.10 [INFO] [stderr] Downloaded rbdc-pool-fast v4.5.9 [INFO] [stderr] Downloaded tokio-macros v2.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b2fabe39bde5174e8d728bb85f2b8d0572c35b74" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 501f8e766b56f99fde54b4e57c0da48fc112e4c5b6c543e50a7b41817a76bd4e [INFO] running `Command { std: "docker" "start" "-a" "501f8e766b56f99fde54b4e57c0da48fc112e4c5b6c543e50a7b41817a76bd4e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "501f8e766b56f99fde54b4e57c0da48fc112e4c5b6c543e50a7b41817a76bd4e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "501f8e766b56f99fde54b4e57c0da48fc112e4c5b6c543e50a7b41817a76bd4e", kill_on_drop: false }` [INFO] [stdout] 501f8e766b56f99fde54b4e57c0da48fc112e4c5b6c543e50a7b41817a76bd4e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b2fabe39bde5174e8d728bb85f2b8d0572c35b74" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7180a3ffe2fb3204eda1f3f83a77c6bae27647e2305bba3ebff952987bdbfe1d [INFO] running `Command { std: "docker" "start" "-a" "7180a3ffe2fb3204eda1f3f83a77c6bae27647e2305bba3ebff952987bdbfe1d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling cc v1.1.20 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking bytes v1.7.1 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking equivalent v1.0.1 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Checking cpufeatures v0.2.14 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Compiling zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Checking rustls-pki-types v1.8.0 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling rustls v0.23.13 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Compiling bigdecimal v0.4.5 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking local-waker v0.1.4 [INFO] [stderr] Compiling zstd-safe v7.2.1 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking flate2 v1.0.33 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [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] Checking tokio v1.40.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Compiling pest v2.7.12 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling pest_meta v2.7.12 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling pest_generator v2.7.12 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Compiling pest_derive v2.7.12 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Checking tokio-rustls v0.26.0 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking serde_bytes v0.11.15 [INFO] [stderr] Checking rbs v4.5.18 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Checking lru v0.12.4 [INFO] [stderr] Checking actix-service v2.0.2 [INFO] [stderr] Checking brotli-decompressor v4.0.1 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking rustls-pemfile v2.1.3 [INFO] [stderr] Checking webpki-roots v0.26.5 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking inout v0.1.3 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking base64ct v1.6.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking password-hash v0.4.2 [INFO] [stderr] Checking brotli v6.0.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking fastdate v0.3.33 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Checking rbdc v4.5.35 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling html_parser v0.6.3 [INFO] [stderr] Checking dark-std v0.2.16 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking encoding_rs v0.8.34 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Compiling unicode-xid v0.2.5 [INFO] [stderr] Checking language-tags v0.3.2 [INFO] [stderr] Checking gimli v0.31.0 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Compiling rbatis-codegen v4.5.20 [INFO] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking fast_pool v0.2.0 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Compiling rust-embed-utils v8.5.0 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Checking pbkdf2 v0.11.0 [INFO] [stderr] Checking actix-server v2.5.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Checking crossbeam-channel v0.5.13 [INFO] [stderr] Checking crossbeam-queue v0.3.11 [INFO] [stderr] Checking object v0.36.4 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Checking unicode-properties v0.1.2 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking addr2line v0.24.1 [INFO] [stderr] Compiling rust-format v0.3.4 [INFO] [stderr] Checking impl-more v0.1.6 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking zip v0.6.6 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking libyml v0.0.5 [INFO] [stderr] Compiling rust-embed-impl v8.5.0 [INFO] [stderr] Compiling rbatis-macro-driver v4.5.6 [INFO] [stderr] Compiling validator_derive v0.18.2 [INFO] [stderr] Checking actix-http v3.9.0 [INFO] [stderr] Checking rbdc-pool-fast v4.5.9 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking lz4_flex v0.11.3 [INFO] [stderr] Checking atoi v2.0.0 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking http-range v0.1.5 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking whoami v1.5.2 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking fast_log v1.7.4 [INFO] [stderr] Checking rbdc-pg v4.5.13 [INFO] [stderr] Checking rust-embed v8.5.0 [INFO] [stderr] Checking validator v0.18.1 [INFO] [stderr] Checking rbatis v4.5.30 [INFO] [stderr] Checking actix-web v4.9.0 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking actix-files v0.6.6 [INFO] [stderr] Checking 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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] '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_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_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] '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] '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_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] '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] ............#[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] [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 2m 54s [INFO] running `Command { std: "docker" "inspect" "7180a3ffe2fb3204eda1f3f83a77c6bae27647e2305bba3ebff952987bdbfe1d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7180a3ffe2fb3204eda1f3f83a77c6bae27647e2305bba3ebff952987bdbfe1d", kill_on_drop: false }` [INFO] [stdout] 7180a3ffe2fb3204eda1f3f83a77c6bae27647e2305bba3ebff952987bdbfe1d