[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 try#ce3348c21531b911ca5aadbbbe7ad63a1bc4c382 for pr-149596 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDINGDANGMAOUP%2Frocket-app" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-2-tc2/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-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/DINGDANGMAOUP/rocket-app on toolchain ce3348c21531b911ca5aadbbbe7ad63a1bc4c382 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ce3348c21531b911ca5aadbbbe7ad63a1bc4c382" "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" "+ce3348c21531b911ca5aadbbbe7ad63a1bc4c382" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+ce3348c21531b911ca5aadbbbe7ad63a1bc4c382" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 213058c093c99a5e05d1a539573ec7ff215a77225ae13ce77290bd30de85c742 [INFO] running `Command { std: "docker" "start" "-a" "213058c093c99a5e05d1a539573ec7ff215a77225ae13ce77290bd30de85c742", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "213058c093c99a5e05d1a539573ec7ff215a77225ae13ce77290bd30de85c742", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "213058c093c99a5e05d1a539573ec7ff215a77225ae13ce77290bd30de85c742", kill_on_drop: false }` [INFO] [stdout] 213058c093c99a5e05d1a539573ec7ff215a77225ae13ce77290bd30de85c742 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+ce3348c21531b911ca5aadbbbe7ad63a1bc4c382" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 34ff237feda12187777e4505e65603c12bb31fcc30ce51d396833165c64f31bf [INFO] running `Command { std: "docker" "start" "-a" "34ff237feda12187777e4505e65603c12bb31fcc30ce51d396833165c64f31bf", 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 shlex v1.3.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking cpufeatures v0.2.14 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking rustls-pki-types v1.8.0 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Compiling rustls v0.23.13 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Compiling tinyvec v1.8.0 [INFO] [stderr] Compiling bigdecimal v0.4.5 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking local-waker v0.1.4 [INFO] [stderr] Compiling zstd-safe v7.2.1 [INFO] [stderr] Checking flate2 v1.0.33 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling bytes v1.7.1 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling cc v1.1.20 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking inout v0.1.3 [INFO] [stderr] Checking actix-service v2.0.2 [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] Compiling cookie v0.16.2 [INFO] [stderr] Checking base64ct v1.6.0 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Checking password-hash v0.4.2 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking language-tags v0.3.2 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking gimli v0.31.0 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling unicode-xid v0.2.5 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Compiling rust-embed-utils v8.5.0 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking pbkdf2 v0.11.0 [INFO] [stderr] Checking object v0.36.4 [INFO] [stderr] Checking crossbeam-queue v0.3.11 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Checking impl-more v0.1.6 [INFO] [stderr] Compiling rust-format v0.3.4 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking unicode-properties v0.1.2 [INFO] [stderr] Checking libyml v0.0.5 [INFO] [stderr] Checking lz4_flex v0.11.3 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Compiling zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking atoi v2.0.0 [INFO] [stderr] Checking whoami v1.5.2 [INFO] [stderr] Checking http-range v0.1.5 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Checking addr2line v0.24.1 [INFO] [stderr] Checking rustls-webpki v0.102.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] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling rust-embed-impl v8.5.0 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking rust-embed v8.5.0 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling pest v2.7.12 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Compiling validator_derive v0.18.2 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Compiling zstd-safe v5.0.2+zstd.1.5.2 [INFO] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Checking zstd v0.11.2+zstd.1.5.2 [INFO] [stderr] Checking hashbrown v0.14.5 [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 lru v0.12.4 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Compiling pest_generator v2.7.12 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Compiling pest_derive v2.7.12 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Checking tokio-rustls v0.26.0 [INFO] [stderr] Checking fast_pool v0.2.0 [INFO] [stderr] Checking actix-server v2.5.0 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking serde_bytes v0.11.15 [INFO] [stderr] Checking actix-router v0.5.3 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking rbs v4.5.18 [INFO] [stderr] Checking dark-std v0.2.16 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking html_parser v0.6.3 [INFO] [stderr] Checking validator v0.18.1 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking rbatis-codegen v4.5.20 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Checking fastdate v0.3.33 [INFO] [stderr] Checking zip v0.6.6 [INFO] [stderr] Checking rbdc v4.5.35 [INFO] [stderr] Checking rbdc-pool-fast v4.5.9 [INFO] [stderr] Checking rbdc-pg v4.5.13 [INFO] [stderr] Checking fast_log v1.7.4 [INFO] [stderr] Compiling rbatis-macro-driver v4.5.6 [INFO] [stderr] Checking rbatis v4.5.30 [INFO] [stderr] Checking actix-http v3.9.0 [INFO] [stderr] Checking actix-web v4.9.0 [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] '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] '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_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_by_column'............ [INFO] [stdout] pub async fn delete_by_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_value : V,) -> std :: result :: Result < rbatis :: rbdc :: db [INFO] [stdout] :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_value".to_string().into(), rbs :: [INFO] [stdout] to_value(column_value) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & arg ["column_value"] }).unwrap_or_default()); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} = ?", & { & arg ["table_name"] }.string(), & [INFO] [stdout] { & arg ["column"] }.string())); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'delete_in_column'............ [INFO] [stdout] pub async fn delete_in_column < V : serde :: Serialize, > [INFO] [stdout] (executor : & dyn rbatis :: executor :: Executor, table_name : String, column [INFO] [stdout] : & str, column_values : & [V],) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(3usize); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); [INFO] [stdout] rb_arg_map.insert("column".to_string().into(), rbs :: to_value(column) ?); [INFO] [stdout] rb_arg_map.insert("column_values".to_string().into(), rbs :: [INFO] [stdout] to_value(column_values) ?); {} use rbatis :: executor :: { RBatisRef }; [INFO] [stdout] let driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1063usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("delete from {} where {} in (", & { & arg ["table_name"] }.string(), [INFO] [stdout] & { & arg ["column"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(10usize); for [INFO] [stdout] (ref index, item) in { & arg ["column_values"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: to_value({ item }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); sql.push_str(")"); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] 'insert_batch'............ [INFO] [stdout] pub async fn [INFO] [stdout] insert_batch(executor : & dyn rbatis :: executor :: Executor, tables : & [INFO] [stdout] [RoleMenu], table_name : & str,) -> std :: result :: Result < rbatis :: rbdc [INFO] [stdout] :: db :: ExecResult, rbatis :: rbdc :: Error > [INFO] [stdout] { [INFO] [stdout] let mut rb_arg_map = rbs :: value :: map :: ValueMap :: [INFO] [stdout] with_capacity(2usize); [INFO] [stdout] rb_arg_map.insert("tables".to_string().into(), rbs :: to_value(tables) ?); [INFO] [stdout] rb_arg_map.insert("table_name".to_string().into(), rbs :: [INFO] [stdout] to_value(table_name) ?); {} use rbatis :: executor :: { RBatisRef }; let [INFO] [stdout] driver_type = executor.rb_ref().driver_type() ? ; use rbatis :: [INFO] [stdout] rbatis_codegen; pub fn do_py_sql(mut arg : rbs :: Value, _tag : char) -> [INFO] [stdout] (String, Vec < rbs :: Value >) [INFO] [stdout] { [INFO] [stdout] use rbatis_codegen :: ops :: * ; let mut sql = String :: [INFO] [stdout] with_capacity(1072usize); let mut args = Vec :: with_capacity(1usize); [INFO] [stdout] sql.push_str(& format! [INFO] [stdout] ("insert into {} ", & { & arg ["table_name"] }.string())); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(42usize); if arg ["columns"] [INFO] [stdout] == rbs :: Value :: Null [INFO] [stdout] { [INFO] [stdout] arg.insert(rbs :: Value :: String("columns".to_string()), rbs [INFO] [stdout] :: Value :: Null); [INFO] [stdout] } arg ["columns"] = rbs :: [INFO] [stdout] to_value({ [INFO] [stdout] (& arg ["tables"]).column_sets() [INFO] [stdout] }).unwrap_or_default(); for (ref idx, table) in [INFO] [stdout] { & arg ["tables"] } [INFO] [stdout] { [INFO] [stdout] if { (idx).op_eq(& 0i64) }.to_owned().into() [INFO] [stdout] { [INFO] [stdout] sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(7usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { sql.push_str(& format! ("{},", & { v }.string())); } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str(") VALUES "); [INFO] [stdout] } sql.push_str("("); [INFO] [stdout] sql.push_str(& [INFO] [stdout] { [INFO] [stdout] let mut sql = String :: with_capacity(14usize); for [INFO] [stdout] (ref index, v) in { & arg ["columns"] } [INFO] [stdout] { [INFO] [stdout] args.push(rbs :: [INFO] [stdout] to_value({ & table [v] }).unwrap_or_default()); [INFO] [stdout] sql.push_str("?,"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); [INFO] [stdout] sql [INFO] [stdout] }); sql.push_str("),"); [INFO] [stdout] } sql = [INFO] [stdout] sql.trim_start_matches(",").trim_end_matches(",").to_string(); sql [INFO] [stdout] }); return (sql, args); [INFO] [stdout] } let (mut sql, rb_args) = [INFO] [stdout] do_py_sql(rbs :: Value :: Map(rb_arg_map), '?'); use rbatis :: executor :: [INFO] [stdout] { Executor }; executor.exec(& sql, rb_args).await [INFO] [stdout] } [INFO] [stdout] ....................................................... [INFO] [stdout] ............#[py_sql] '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 1m 56s [INFO] running `Command { std: "docker" "inspect" "34ff237feda12187777e4505e65603c12bb31fcc30ce51d396833165c64f31bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "34ff237feda12187777e4505e65603c12bb31fcc30ce51d396833165c64f31bf", kill_on_drop: false }` [INFO] [stdout] 34ff237feda12187777e4505e65603c12bb31fcc30ce51d396833165c64f31bf