[INFO] cloning repository https://github.com/devillove084/ArrowKV [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/devillove084/ArrowKV" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cd2455a2f68ffe19b9e32eeab3c6e153f7674404 [INFO] testing devillove084/ArrowKV against master#414482f6a0d4e7290f614300581a0b55442552a3 for pr-140985 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/devillove084/ArrowKV on toolchain 414482f6a0d4e7290f614300581a0b55442552a3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain [INFO] started tweaking git repo https://github.com/devillove084/ArrowKV [INFO] finished tweaking git repo https://github.com/devillove084/ArrowKV [INFO] tweaked toml for git repo https://github.com/devillove084/ArrowKV written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/devillove084/ArrowKV 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" "+414482f6a0d4e7290f614300581a0b55442552a3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/devillove084/actix.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/risinglightdb/sqlplannertest-rs` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded colorchoice v1.0.2 [INFO] [stderr] Downloaded escape8259 v0.5.3 [INFO] [stderr] Downloaded anstyle v1.0.8 [INFO] [stderr] Downloaded const-random v0.1.18 [INFO] [stderr] Downloaded const-random-macro v0.1.16 [INFO] [stderr] Downloaded test-case v2.2.2 [INFO] [stderr] Downloaded clap_lex v0.7.2 [INFO] [stderr] Downloaded anstyle-parse v0.2.5 [INFO] [stderr] Downloaded downcast v0.11.0 [INFO] [stderr] Downloaded anyerror v0.1.12 [INFO] [stderr] Downloaded mockall_derive v0.12.1 [INFO] [stderr] Downloaded prettyplease v0.2.22 [INFO] [stderr] Downloaded arrow-ipc v50.0.0 [INFO] [stderr] Downloaded pretty_assertions v1.4.1 [INFO] [stderr] Downloaded raw-cpuid v11.1.0 [INFO] [stderr] Downloaded lexical-write-float v0.8.5 [INFO] [stderr] Downloaded arrow v50.0.0 [INFO] [stderr] Downloaded arrow-array v50.0.0 [INFO] [stderr] Downloaded crossbeam-channel v0.4.4 [INFO] [stderr] Downloaded sqlparser v0.44.0 [INFO] [stderr] Downloaded lexical-parse-float v0.8.5 [INFO] [stderr] Downloaded tonic v0.8.3 [INFO] [stderr] Downloaded moka v0.12.8 [INFO] [stderr] Downloaded regex v1.10.6 [INFO] [stderr] Downloaded clap_builder v4.5.17 [INFO] [stderr] Downloaded arrow-cast v50.0.0 [INFO] [stderr] Downloaded lexical-util v0.8.5 [INFO] [stderr] Downloaded cc v1.1.19 [INFO] [stderr] Downloaded arrow-buffer v50.0.0 [INFO] [stderr] Downloaded blink-alloc v0.3.1 [INFO] [stderr] Downloaded arrow-arith v50.0.0 [INFO] [stderr] Downloaded arrow-csv v50.0.0 [INFO] [stderr] Downloaded comfy-table v7.1.1 [INFO] [stderr] Downloaded lexical-write-integer v0.8.5 [INFO] [stderr] Downloaded lexical-core v0.8.5 [INFO] [stderr] Downloaded arrow-json v50.0.0 [INFO] [stderr] Downloaded arrow-data v50.0.0 [INFO] [stderr] Downloaded arrow-schema v50.0.0 [INFO] [stderr] Downloaded arrow-select v50.0.0 [INFO] [stderr] Downloaded arrow-ord v50.0.0 [INFO] [stderr] Downloaded slog v2.7.0 [INFO] [stderr] Downloaded prost-types v0.11.9 [INFO] [stderr] Downloaded clap v4.5.17 [INFO] [stderr] Downloaded predicates v3.1.2 [INFO] [stderr] Downloaded yaml-rust v0.4.5 [INFO] [stderr] Downloaded derive_builder_core v0.20.1 [INFO] [stderr] Downloaded derive_builder v0.20.1 [INFO] [stderr] Downloaded enum_dispatch v0.3.13 [INFO] [stderr] Downloaded env_logger v0.11.5 [INFO] [stderr] Downloaded lexical-parse-integer v0.8.6 [INFO] [stderr] Downloaded quanta v0.12.3 [INFO] [stderr] Downloaded tagptr v0.2.0 [INFO] [stderr] Downloaded triomphe v0.1.11 [INFO] [stderr] Downloaded slog-term v2.9.1 [INFO] [stderr] Downloaded snap v1.1.1 [INFO] [stderr] Downloaded prost v0.11.9 [INFO] [stderr] Downloaded prost-build v0.11.9 [INFO] [stderr] Downloaded tonic-build v0.8.4 [INFO] [stderr] Downloaded test-case-macros v2.2.2 [INFO] [stderr] Downloaded anyhow v1.0.89 [INFO] [stderr] Downloaded libtest-mimic v0.7.3 [INFO] [stderr] Downloaded fragile v2.0.0 [INFO] [stderr] Downloaded predicates-core v1.0.8 [INFO] [stderr] Downloaded predicates-tree v1.0.11 [INFO] [stderr] Downloaded mockall v0.12.1 [INFO] [stderr] Downloaded derive-new v0.6.0 [INFO] [stderr] Downloaded env_filter v0.1.2 [INFO] [stderr] Downloaded futures-async-stream-macro v0.2.12 [INFO] [stderr] Downloaded futures-async-stream v0.2.12 [INFO] [stderr] Downloaded ordered-float v4.2.2 [INFO] [stderr] Downloaded actix_derive v0.6.2 [INFO] [stderr] Downloaded flatbuffers v23.5.26 [INFO] [stderr] Downloaded arrow-row v50.0.0 [INFO] [stderr] Downloaded arrow-string v50.0.0 [INFO] [stderr] Downloaded slog-async v2.8.0 [INFO] [stderr] Downloaded multimap v0.8.3 [INFO] [stderr] Downloaded prost-derive v0.11.9 [INFO] [stderr] Downloaded derive_builder_macro v0.20.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3a240c93515df60505c0e8fe3f2d32defd66678c99cb1a28fbe7f04ff715aa64 [INFO] running `Command { std: "docker" "start" "-a" "3a240c93515df60505c0e8fe3f2d32defd66678c99cb1a28fbe7f04ff715aa64", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3a240c93515df60505c0e8fe3f2d32defd66678c99cb1a28fbe7f04ff715aa64", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a240c93515df60505c0e8fe3f2d32defd66678c99cb1a28fbe7f04ff715aa64", kill_on_drop: false }` [INFO] [stdout] 3a240c93515df60505c0e8fe3f2d32defd66678c99cb1a28fbe7f04ff715aa64 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 625548d32bfddf533f6f3f2d34de1012de20aa34b72924ed19f84958d64ad763 [INFO] running `Command { std: "docker" "start" "-a" "625548d32bfddf533f6f3f2d34de1012de20aa34b72924ed19f84958d64ad763", 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 autocfg v1.3.0 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling bytes v1.7.1 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling iana-time-zone v0.1.61 [INFO] [stderr] Compiling arrow-schema v50.0.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling lexical-util v0.8.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling unicode-width v0.1.13 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Compiling lexical-write-integer v0.8.5 [INFO] [stderr] Compiling lexical-parse-integer v0.8.6 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling lexical-parse-float v0.8.5 [INFO] [stderr] Compiling lexical-write-float v0.8.5 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling prettyplease v0.1.25 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling anstyle v1.0.8 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling mio v1.0.2 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling half v2.4.1 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling lexical-core v0.8.5 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling axum-core v0.3.4 [INFO] [stderr] Compiling fastrand v2.1.1 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling flatbuffers v23.5.26 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling anstyle-parse v0.2.5 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling axum v0.6.20 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Compiling slog v2.7.0 [INFO] [stderr] Compiling anstyle-query v1.1.1 [INFO] [stderr] Compiling colorchoice v1.0.2 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling tempfile v3.12.0 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Compiling event-listener v5.3.1 [INFO] [stderr] Compiling anstream v0.6.15 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling csv-core v0.1.11 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling sync_wrapper v0.1.2 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling event-listener-strategy v0.5.2 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling raw-cpuid v11.1.0 [INFO] [stderr] Compiling slog-async v2.8.0 [INFO] [stderr] Compiling num v0.4.3 [INFO] [stderr] Compiling arrow-buffer v50.0.0 [INFO] [stderr] Compiling moka v0.12.8 [INFO] [stderr] Compiling snap v1.1.1 [INFO] [stderr] Compiling async-lock v3.4.0 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling uuid v1.10.0 [INFO] [stderr] Compiling is-terminal v0.4.13 [INFO] [stderr] Compiling crossbeam-queue v0.3.11 [INFO] [stderr] Compiling clap_lex v0.7.2 [INFO] [stderr] Compiling triomphe v0.1.11 [INFO] [stderr] Compiling arrow-data v50.0.0 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling tagptr v0.2.0 [INFO] [stderr] Compiling allocator-api2 v0.2.18 [INFO] [stderr] Compiling take_mut v0.2.2 [INFO] [stderr] Compiling clap_builder v4.5.17 [INFO] [stderr] Compiling crossbeam-channel v0.4.4 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling bumpalo v3.16.0 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling fd-lock v4.0.2 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling blink-alloc v0.3.1 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling quanta v0.12.3 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling slog-term v2.9.1 [INFO] [stderr] Compiling ordered-float v4.2.2 [INFO] [stderr] Compiling predicates-core v1.0.8 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling escape8259 v0.5.3 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling console v0.15.8 [INFO] [stderr] Compiling env_filter v0.1.2 [INFO] [stderr] Compiling termtree v0.4.1 [INFO] [stderr] Compiling env_logger v0.11.5 [INFO] [stderr] Compiling similar v2.6.0 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling predicates-tree v1.0.11 [INFO] [stderr] Compiling predicates v3.1.2 [INFO] [stderr] Compiling prost-derive v0.11.9 [INFO] [stderr] Compiling rustyline v14.0.0 [INFO] [stderr] Compiling fragile v2.0.0 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling async-trait v0.1.82 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Compiling prost v0.11.9 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling prost-types v0.11.9 [INFO] [stderr] Compiling async-stream v0.3.5 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling actix_derive v0.6.2 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling tokio v1.40.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling derive_builder_core v0.20.1 [INFO] [stderr] Compiling futures-async-stream-macro v0.2.12 [INFO] [stderr] Compiling derive-new v0.6.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling pin-project v1.1.5 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling prost-build v0.11.9 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling prost-derive v0.12.6 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Compiling pro-macro v0.1.0 (/opt/rustwide/workdir/src/util/pro-macro) [INFO] [stderr] Compiling arrow-array v50.0.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling tonic-build v0.8.4 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling derive_builder_macro v0.20.1 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling futures-async-stream v0.2.12 [INFO] [stderr] Compiling comfy-table v7.1.1 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling derive_builder v0.20.1 [INFO] [stderr] Compiling clap v4.5.17 [INFO] [stderr] Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine) [INFO] [stderr] Compiling libtest-mimic v0.7.3 [INFO] [stderr] Compiling prost v0.12.6 [INFO] [stderr] Compiling mockall v0.12.1 [INFO] [stderr] Compiling arrow-select v50.0.0 [INFO] [stderr] Compiling arrow-row v50.0.0 [INFO] [stderr] Compiling arrow-arith v50.0.0 [INFO] [stderr] Compiling arrow-cast v50.0.0 [INFO] [stderr] Compiling arrow-ord v50.0.0 [INFO] [stderr] Compiling arrow-string v50.0.0 [INFO] [stderr] Compiling tokio-util v0.7.12 [INFO] [stderr] Compiling tokio-io-timeout v1.2.0 [INFO] [stderr] Compiling tokio-stream v0.1.16 [INFO] [stderr] Compiling actix-rt v2.10.0 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling actix v0.13.1 (https://github.com/devillove084/actix.git#d0509d35) [INFO] [stderr] Compiling csv v1.3.0 [INFO] [stderr] Compiling sqlparser v0.44.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling anyerror v0.1.12 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling arrow-ipc v50.0.0 [INFO] [stderr] Compiling arrow-csv v50.0.0 [INFO] [stderr] Compiling arrow-json v50.0.0 [INFO] [stderr] Compiling sqlplannertest v0.1.0 (https://github.com/risinglightdb/sqlplannertest-rs#b49c6457) [INFO] [stderr] Compiling arrow v50.0.0 [INFO] [stderr] Compiling hyper v0.14.30 [INFO] [stderr] Compiling hyper-timeout v0.4.1 [INFO] [stderr] Compiling tonic v0.8.3 [INFO] [stderr] Compiling tonic v0.11.0 [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling query_engine v0.1.0 (/opt/rustwide/workdir/src/query_engine) [INFO] [stderr] Compiling runtime v0.1.0 (/opt/rustwide/workdir/src/runtime) [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(hash_extract_if)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | #![feature(extract_if)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s [INFO] running `Command { std: "docker" "inspect" "625548d32bfddf533f6f3f2d34de1012de20aa34b72924ed19f84958d64ad763", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "625548d32bfddf533f6f3f2d34de1012de20aa34b72924ed19f84958d64ad763", kill_on_drop: false }` [INFO] [stdout] 625548d32bfddf533f6f3f2d34de1012de20aa34b72924ed19f84958d64ad763 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 05d6fd82926e305d83ead5d1d10071055a8863db087f1885ce79688463583d88 [INFO] running `Command { std: "docker" "start" "-a" "05d6fd82926e305d83ead5d1d10071055a8863db087f1885ce79688463583d88", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pro-macro v0.1.0 (/opt/rustwide/workdir/src/util/pro-macro) [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine) [INFO] [stderr] Compiling sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner) [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling runtime v0.1.0 (/opt/rustwide/workdir/src/runtime) [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling test-case-macros v2.2.2 [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(hash_extract_if)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | #![feature(extract_if)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(hash_extract_if)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/runtime/src/lib.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | #![feature(extract_if)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling test-case v2.2.2 [INFO] [stderr] Compiling query_engine v0.1.0 (/opt/rustwide/workdir/src/query_engine) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 14.91s [INFO] running `Command { std: "docker" "inspect" "05d6fd82926e305d83ead5d1d10071055a8863db087f1885ce79688463583d88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "05d6fd82926e305d83ead5d1d10071055a8863db087f1885ce79688463583d88", kill_on_drop: false }` [INFO] [stdout] 05d6fd82926e305d83ead5d1d10071055a8863db087f1885ce79688463583d88 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d5962e5e2a3fb1f9228116d0048dc21792853b0fb290598910cccb8d5b44c633 [INFO] running `Command { std: "docker" "start" "-a" "d5962e5e2a3fb1f9228116d0048dc21792853b0fb290598910cccb8d5b44c633", kill_on_drop: false }` [INFO] [stderr] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | #![feature(async_closure)] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `storage_engine` (lib) generated 1 warning [INFO] [stderr] warning: `storage_engine` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/runtime/src/lib.rs:4:12 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(async_closure)] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/runtime/src/lib.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | #![feature(hash_extract_if)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/runtime/src/lib.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | #![feature(extract_if)] [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `runtime` (lib) generated 3 warnings [INFO] [stderr] warning: `runtime` (lib test) generated 3 warnings (3 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.89s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pro_macro-1d56cdf6995d3982) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/success.rs (/opt/rustwide/target/debug/deps/success-8db7aa665d90a7c5) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test unnamed_struct ... ok [INFO] [stdout] test named_struct ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/query_engine-97ba554ecff4b66d) [INFO] [stdout] [INFO] [stdout] running 73 tests [INFO] [stdout] test binder::binder_test::test_bind_select_binary_op_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_agg_func_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_join_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_constant_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_limit_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_order_by_works ... ok [INFO] [stdout] test binder::binder_test::test_check_ambiguous_columns_works ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_10_0_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_1_2_1_2_2_3_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_1_4_1_2_2_4_4_5_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok [INFO] [stdout] test executor::evaluator::evaluator_test::test_eval_column_for_input_ref ... ok [INFO] [stdout] test executor::evaluator::evaluator_test::test_eval_column_for_type_cast ... ok [INFO] [stdout] test executor::executor_test::test_executor_limit_works ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_left_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_full_join_filter_results ... ok [INFO] [stdout] test executor::aggregate::hash_agg::tests::test_hash_agg_with_multiple_chunks ... ok [INFO] [stdout] test executor::executor_test::test_executor_works ... ok [INFO] [stdout] test executor::executor_test::test_executor_order_works ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_filter_results ... ok [INFO] [stdout] test executor::executor_test::test_executor_simple_agg_works ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_right_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_full_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_right_join_filter_results ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_1_2_1_2_2_3_expects ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_1_4_1_2_2_4_4_5_expects ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_nodes_iter ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node_and_remove_unlink_nodes ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_join_child_node_and_keep_left_right_order ... ok [INFO] [stdout] test executor::executor_test::test_executor_hash_agg_works ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_matched_recursive ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_6_10_0_expects ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_add_plan_ref ... ok [INFO] [stdout] test optimizer::heuristic::optimizer::tests::test_hep_optimizer_works ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_unmatched_children_predicate ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_none ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_column_ref_to_input_ref ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_to_plan ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_children_at ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_limit_to_input_ref ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_column_ref_to_input_ref_when_join ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_order_by_to_input_ref ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_simple_aggregation_column_ref_to_input_ref ... ok [INFO] [stdout] test optimizer::physical_rewriter::physical_rewriter_test::test_physical_rewriter_works ... ok [INFO] [stdout] test optimizer::plan_node::plan_node_traits::tests::test_equals_two_dyn_plan_node ... ok [INFO] [stdout] test optimizer::rules::util::test::is_superset_cols_return_true_when_right_contains_all_left_items_and_others ... ok [INFO] [stdout] test planner::operator::logical_filter::tests::test_logical_filter_split_predicates ... ok [INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_three_tables ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_into_table_scan ... ok [INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_into_table_scan_rule ... ok [INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_empty_data ... ok [INFO] [stdout] test util::util_test::test_record_batch_to_string ... ok [INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_non_join_rule ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_through_join_rule ... ok [INFO] [stdout] test optimizer::rules::util::test::is_subset_cols_return_true_when_right_contains_all_left_items ... ok [INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_two_tables ... ok [INFO] [stdout] test planner_test::planner_test::test_plan_select_with_joins_works ... ok [INFO] [stdout] test planner_test::planner_test::test_plan_select_works ... ok [INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_data ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_limit_project_transpose_rule ... ok [INFO] [stdout] test planner_test::planner_test::test_plan_select_distinct_works ... ok [INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_join_rule ... ok [INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_through_child_rule ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_left_join_filter_results ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/query_engine-b0f51e9586de3434) [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/runtime-b36e661d64a27fec) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test consensus::id::tests::dot_target ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sql_planner-50f700b00e9e293a) [INFO] [stdout] test consensus::time::tests::sim_now ... ok [INFO] [stdout] test consensus::id::tests::atomic_next_id ... ok [INFO] [stdout] test consensus::id::tests::next_id ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sql_planner-90b7ff8de7655b45) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/sql_planner.rs (/opt/rustwide/target/debug/deps/sql_planner-95304242ec123c38) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] create table department from ../csv/department.csv [INFO] [stdout] create table department from ../csv/department.csv [INFO] [stdout] create table department from ../csv/department.csv [INFO] [stdout] create table department from ../csv/department.csv [INFO] [stdout] create table employee from ../csv/employee.csv [INFO] [stdout] create table state from ../csv/state.csv [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] create table employee from ../csv/employee.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t_2.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(3): PlanRef(LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 3 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(8): PlanRef(LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 4 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Apply CombineFilter at node NodeIndex(3): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 2 [INFO] [stdout] Apply CombineFilter at node NodeIndex(2): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) AND t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 3 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)] [INFO] [stdout] PhysicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c] [INFO] [stdout] PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] create table employee from ../csv/employee.csv [INFO] [stdout] create table state from ../csv/state.csv [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] create table employee from ../csv/employee.csv [INFO] [stdout] create table state from ../csv/state.csv [INFO] [stdout] test combine-operators ... ok [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] create table state from ../csv/state.csv [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] ) [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(4): PlanRef(LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)] [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)] [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)] [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1] [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64] [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply RemoveNoopOperators at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalOrder: Order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalLimit: limit Some(2), offset None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(2), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] ) [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalLimit: limit Some(2), offset None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(2), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2) [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > 1 [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.b:Nullable(Int64) > 1 [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalProject: exprs [state.state_code:Nullable(Utf8), state.state_name:Nullable(Utf8)] [INFO] [stdout] LogicalTableScan: table: #state, columns: [id, state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit Some(1), offset None [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit None, offset Some(10) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit None, offset Some(10) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [state.state_code:Nullable(Utf8), state.state_name:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] PhysicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] PhysicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] test limit-pushdown ... ok [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(10): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(3): PlanRef(LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] ) [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(13): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 5 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Fixed point reached for batch: Column pruning, after 5 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(10): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] PhysicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(3): PlanRef(LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Apply CombineFilter at node NodeIndex(6): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] ) [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(13): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 5 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 5 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(10): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] LogicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + subquery_1.subquery_1_scalar_v0:Nullable(Int64)) as t1.mix_b] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] PhysicalProject: exprs [(Min(t1.b:Nullable(Int64)):Int64) as subquery_1.subquery_1_scalar_v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] test predicate-pushdown ... ok [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(9): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(10): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] LogicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) >= subquery_0.subquery_0_scalar_v0:Nullable(Int64) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] PhysicalCrossJoin: type Cross [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b] [INFO] [stdout] PhysicalProject: exprs [(Max(t1.a:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0] [INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Max(t1.a:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] test column-pruning ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/storage_engine-48d51495f51bac0e) [INFO] [stdout] [INFO] [stdout] running 190 tests [INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_empty ... ok [INFO] [stdout] test cache::lru_cache::tests::test_entries_are_pinned ... ok [INFO] [stdout] test cache::lru_cache::tests::test_erase ... ok [INFO] [stdout] test cache::lru_cache::tests::test_hit_and_miss ... ok [INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_small ... ok [INFO] [stdout] test cache::lru_cache::tests::test_zero_size_cache ... ok [INFO] [stdout] test cache::lru_cache::tests::test_use_exceeds_cache_size ... ok [INFO] [stdout] test cache::lru_cache::tests::test_eviction_policy ... ok [INFO] [stdout] test cache::lru_cache::tests::test_heavy_entries ... ok [INFO] [stdout] test cache::new_lru_cache::tests::test_hit_and_miss ... ok [INFO] [stdout] test cache::tests::test_concurrent_insert ... ok [INFO] [stdout] test db_impl::tests::test_destroy_empty_dir ... ok [INFO] [stdout] test db_impl::tests::test_comparator_check ... ok [INFO] [stdout] test db_impl::tests::test_empty_value ... ok [INFO] [stdout] test db_impl::tests::test_db_file_lock ... ok [INFO] [stdout] test db_impl::tests::test_dbopen_options ... ok [INFO] [stdout] test db_impl::tests::test_custom_comparator ... ok [INFO] [stdout] test db_impl::tests::test_empty_key ... ok [INFO] [stdout] test db_impl::tests::test_iter_single ... ok [INFO] [stdout] test db_impl::tests::test_empty_db ... ok [INFO] [stdout] test db_impl::tests::test_iter_empty_db ... ok [INFO] [stdout] test db_impl::tests::test_iter_multi ... ok [INFO] [stdout] test db_impl::tests::test_iter_small_and_large_mix ... ok [INFO] [stdout] test db_impl::tests::test_iter_multi_with_delete ... ok [INFO] [stdout] test db_impl::tests::test_put_delete_get ... ok [INFO] [stdout] test db_impl::tests::test_read_write ... ok [INFO] [stdout] test db_impl::tests::test_recover_with_large_log ... ok [INFO] [stdout] test db_impl::tests::test_iter_pins_ref ... ok [INFO] [stdout] test db_impl::tests::test_snapshot ... ok [INFO] [stdout] test db_impl::tests::test_sparse_merge ... ignored [INFO] [stdout] test iterator::tests::test_concatenated_iterator ... ok [INFO] [stdout] test iterator::tests::test_merging_iterator ... ok [INFO] [stdout] test logger::tests::test_default_logger ... ok [INFO] [stdout] test manager::filename::tests::test_generate_filename ... ok [INFO] [stdout] test manager::filename::tests::test_parse_filename ... ok [INFO] [stdout] test manager::snapshot::tests::test_append_new_snapshot ... ok [INFO] [stdout] test manager::snapshot::tests::test_gc ... ok [INFO] [stdout] test manager::snapshot::tests::test_new_is_empty ... ok [INFO] [stdout] test manager::snapshot::tests::test_oldest ... ok [INFO] [stdout] test manager::snapshot::tests::test_release ... ok [INFO] [stdout] test manager::version::find_file_tests::test_empty_file_set ... ok [INFO] [stdout] test manager::version::find_file_tests::test_find_file_with_single_file ... ok [INFO] [stdout] test manager::version::find_file_tests::test_find_files_with_various_files ... ok [INFO] [stdout] test manager::version::find_file_tests::test_multiple_null_boundaries ... ok [INFO] [stdout] test manager::version::find_file_tests::test_overlap_sequence_check ... ok [INFO] [stdout] test manager::version::find_file_tests::test_overlapping_files ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_comparator_name ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_last_sequence ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_log_number ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_next_file ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_prev_log_number ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_disjoint_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_compaction_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_file_sets ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_level_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_no_boundary_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_one_boundary_file ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_two_boundary_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_version_builder_accumulate_and_apply ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_empty_should_panic - should panic ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_fallback ... ok [INFO] [stdout] test db_impl::tests::test_mem_compact_into_max_level ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_new_block ... ok [INFO] [stdout] test memtable::arena::tests::test_new_arena ... ok [INFO] [stdout] test memtable::batch::tests::test_append_batch ... ok [INFO] [stdout] test memtable::batch::tests::test_approximate_size ... ok [INFO] [stdout] test memtable::batch::tests::test_corrupted_batch ... ok [INFO] [stdout] test memtable::batch::tests::test_empty_batch ... ok [INFO] [stdout] test memtable::batch::tests::test_multiple_records ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_mixed ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_basic ... ok [INFO] [stdout] test db_impl::tests::test_repeated_write_to_same_key ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_empty ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_find_near ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_mem_alloc ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_cmp ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_separator ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_successor ... ok [INFO] [stdout] test memtable::key_format::tests::test_internal_key_encode_decode ... ok [INFO] [stdout] test memtable::key_format::tests::test_pack_seq_and_type ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_concurrent_basic_big_value ... ok [INFO] [stdout] test memtable::tests::test_memtable_add_get ... ok [INFO] [stdout] test memtable::tests::test_memtable_iter ... ok [INFO] [stdout] test memtable::key_format::tests::test_pack_seq_and_type_panic - should panic ... ok [INFO] [stdout] test sstable::block::tests::test_block_iter ... ok [INFO] [stdout] test sstable::block::tests::test_add_inconsistent_key - should panic ... ok [INFO] [stdout] test sstable::block::tests::test_corrupted_block ... ok [INFO] [stdout] test sstable::block::tests::test_new_block_from_bytes ... ok [INFO] [stdout] test sstable::block::tests::test_new_empty_block ... ok [INFO] [stdout] test sstable::block::tests::test_read_write ... ok [INFO] [stdout] test sstable::block::tests::test_simple_empty_key ... ok [INFO] [stdout] test sstable::block::tests::test_write_entries ... ok [INFO] [stdout] test sstable::block::tests::test_write_restarts ... ok [INFO] [stdout] test sstable::block::tests::test_iter_big_entry_block ... ok [INFO] [stdout] test sstable::filter_block::tests::test_empty_builder ... ok [INFO] [stdout] test sstable::filter_block::tests::test_multiple_chunk ... ok [INFO] [stdout] test sstable::filter_block::tests::test_single_chunk ... ok [INFO] [stdout] test sstable::table::tests::test_block_write_and_read ... ok [INFO] [stdout] test sstable::table::tests::test_build_empty_table_with_meta_block ... ok [INFO] [stdout] test sstable::table::tests::test_build_empty_table_without_meta_block ... ok [INFO] [stdout] test sstable::table::tests::test_table_add_consistency - should panic ... ok [INFO] [stdout] test sstable::table::tests::test_table_write_and_read ... ok [INFO] [stdout] test sstable::test_footer::test_encode_decode ... ok [INFO] [stdout] test sstable::test_footer::test_footer_corruption ... ok [INFO] [stdout] test sstable::tests::test_empty_harness ... ok [INFO] [stdout] test sstable::tests::test_mutiple_key ... ok [INFO] [stdout] test sstable::tests::test_simple_empty_key ... ok [INFO] [stdout] test sstable::tests::test_single_key ... ok [INFO] [stdout] test storage::file::tests::test_read_exact_at ... FAILED [INFO] [stdout] test storage::mem::tests::test_mem_file_lock_unlock ... ok [INFO] [stdout] test storage::mem::tests::test_mem_file_read_at ... ok [INFO] [stdout] test storage::mem::tests::test_mem_file_read_write ... ok [INFO] [stdout] test storage::mem::tests::test_path_clean ... ok [INFO] [stdout] test storage::mem::tests::test_reopen_file_and_read ... ok [INFO] [stdout] test storage::mem::tests::test_storage_basic ... ok [INFO] [stdout] test storage::mem::tests::test_storage_create ... ok [INFO] [stdout] test storage::mem::tests::test_storage_exists ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_concurrent_basic_small_value ... ok [INFO] [stdout] test storage::mem::tests::test_storage_mkdir_all ... ok [INFO] [stdout] test storage::mem::tests::test_storage_open ... ok [INFO] [stdout] test storage::mem::tests::test_storage_remove ... ok [INFO] [stdout] test storage::mem::tests::test_storage_remove_dir ... ok [INFO] [stdout] test util::coding::tests::test_decode_fixed_32 ... ok [INFO] [stdout] test util::coding::tests::test_decode_fixed_64 ... ok [INFO] [stdout] test util::coding::tests::test_encode_fixed_32 ... ok [INFO] [stdout] test util::coding::tests::test_encode_fixed_64 ... ok [INFO] [stdout] test storage::mem::tests::test_storage_list ... ok [INFO] [stdout] test util::coding::tests::test_put_fixed64 ... ok [INFO] [stdout] test util::comparator::tests::test_bytewise_comparator_separator ... ok [INFO] [stdout] test util::comparator::tests::test_bytewise_comparator_successor ... ok [INFO] [stdout] test util::crc32::tests::test_extend ... ok [INFO] [stdout] test util::crc32::tests::test_mask_unmask ... ok [INFO] [stdout] test util::crc32::tests::test_standard_crc32_results ... ok [INFO] [stdout] test util::crc32::tests::test_values ... ok [INFO] [stdout] test util::hash::tests::test_signed_unsigned_issue ... ok [INFO] [stdout] test util::varint::tests::test_put_and_get_prefixed_slice ... ok [INFO] [stdout] test util::varint::tests::test_put_and_get_varint ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_aligned_eof ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_bad_length_at_end_is_ignored ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_bad_record_length ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_bad_record_type - should panic ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_end ... ok [INFO] [stdout] test sstable::tests::test_special_key ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_first_block_trailer ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_last_block ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_middle_block ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_initial_offset_into_block_padding ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_past_end ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_ten_thousand ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_third_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_checksum_mismatch ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_error_joins_records ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_third_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_fragmentation_records ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer2 ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_missing_last_is_ignored ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_open_for_append ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_partial_last_is_ignored ... ok [INFO] [stdout] test db_impl::tests::test_get_from_versions ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_eof ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_error ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_write ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_short_trailer ... ok [INFO] [stdout] test db_impl::tests::test_iterate_over_empty_snapshot ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_truncated_trailing_record_is_ignored ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_skip_into_multi_record ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_full_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_last_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_middle_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_first_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_random_read ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_many_blocks ... ok [INFO] [stdout] test util::coding::tests::test_put_fixed32 ... ok [INFO] [stdout] test db_impl::tests::test_get_level_0_ordering ... ok [INFO] [stdout] test db_impl::tests::test_db_reads_using_bloom_filter ... ok [INFO] [stdout] test db_impl::tests::test_get_ordered_by_levels ... ok [INFO] [stdout] test db_impl::tests::test_get_with_identical_snapshots ... ok [INFO] [stdout] test db_impl::tests::test_get_from_immutable_layer ... ok [INFO] [stdout] test db_impl::tests::test_get_with_snapshot ... ok [INFO] [stdout] test db_impl::tests::test_file_deleted_after_compaction ... ok [INFO] [stdout] test db_impl::tests::test_pick_correct_file ... ok [INFO] [stdout] test db_impl::tests::test_manual_compaction ... ok [INFO] [stdout] test db_impl::tests::test_get_encounters_empty_level ... ok [INFO] [stdout] test db_impl::tests::test_multi_thread ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- storage::file::tests::test_read_exact_at stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'storage::file::tests::test_read_exact_at' panicked at src/storage_engine/src/storage/file.rs:151:45: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x613ad0dd2342 - std::backtrace_rs::backtrace::libunwind::trace::h2a54ddf40adf8cf8 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x613ad0dd2342 - std::backtrace_rs::backtrace::trace_unsynchronized::h332dec2b3594a10b [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x613ad0dd2342 - std::sys::backtrace::_print_fmt::hcb3dee91dccac105 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x613ad0dd2342 - ::fmt::h2f02338d4ae6d8b0 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x613ad0df8253 - core::fmt::rt::Argument::fmt::h8705d664b1839d6c [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x613ad0df8253 - core::fmt::write::h5e77c22335cabc7f [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/fmt/mod.rs:1446:25 [INFO] [stdout] 6: 0x613ad0dcea43 - std::io::default_write_fmt::h5c16109ce8878b06 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x613ad0dcea43 - std::io::Write::write_fmt::h183cd11c08a12e04 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/io/mod.rs:1914:13 [INFO] [stdout] 8: 0x613ad0dd2192 - std::sys::backtrace::BacktraceLock::print::hb22254026b13323e [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x613ad0dd397c - std::panicking::default_hook::{{closure}}::h15ac4e3ee7801be5 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:300:22 [INFO] [stdout] 10: 0x613ad0dd37d2 - std::panicking::default_hook::h15db2a3343942a16 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:324:9 [INFO] [stdout] 11: 0x613ad0c1f054 - as core::ops::function::Fn>::call::ha02114eecd5b8f69 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 12: 0x613ad0c1f054 - test::test_main_with_exit_callback::{{closure}}::hfb76c9b760818eb2 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x613ad0dd4473 - as core::ops::function::Fn>::call::h325134fa51136753 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 14: 0x613ad0dd4473 - std::panicking::rust_panic_with_hook::h67f3fa85499b6cf9 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:841:13 [INFO] [stdout] 15: 0x613ad0dd412a - std::panicking::begin_panic_handler::{{closure}}::h40a30e994b26720e [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:706:13 [INFO] [stdout] 16: 0x613ad0dd2849 - std::sys::backtrace::__rust_end_short_backtrace::hb5bcb2f6ea295c8b [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/backtrace.rs:168:18 [INFO] [stdout] 17: 0x613ad0dd3dbd - __rustc[bf3627c2b8b7eae9]::rust_begin_unwind [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:697:5 [INFO] [stdout] 18: 0x613ad0df5c30 - core::panicking::panic_fmt::h20722ae9d0312a90 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x613ad0df60f6 - core::result::unwrap_failed::h3a549f59308089dd [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/result.rs:1732:5 [INFO] [stdout] 20: 0x613ad0b443c6 - core::result::Result::unwrap::hc77f2b831bf6c3f4 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/result.rs:1137:23 [INFO] [stdout] 21: 0x613ad0b443c6 - storage_engine::storage::file::tests::test_read_exact_at::h1f2aa8af05384866 [INFO] [stdout] at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:151:21 [INFO] [stdout] 22: 0x613ad0b44337 - storage_engine::storage::file::tests::test_read_exact_at::{{closure}}::h4edcdda55f96bda6 [INFO] [stdout] at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:150:28 [INFO] [stdout] 23: 0x613ad09104d6 - core::ops::function::FnOnce::call_once::hdc4b3468965c69a0 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x613ad0c2480b - core::ops::function::FnOnce::call_once::h57f6f31c364c320b [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x613ad0c2480b - test::__rust_begin_short_backtrace::h517520f4c2bfc013 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:648:18 [INFO] [stdout] 26: 0x613ad0c23a62 - test::run_test_in_process::{{closure}}::h0914ac5f2719bf90 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:671:60 [INFO] [stdout] 27: 0x613ad0c23a62 - as core::ops::function::FnOnce<()>>::call_once::h6fe627a8560ee122 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 28: 0x613ad0c23a62 - std::panicking::try::do_call::h8e4a522b2d07b5d9 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:589:40 [INFO] [stdout] 29: 0x613ad0c23a62 - std::panicking::try::h254b443d279d1f8a [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:552:19 [INFO] [stdout] 30: 0x613ad0c23a62 - std::panic::catch_unwind::he39107e495b94aed [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x613ad0c23a62 - test::run_test_in_process::hb9053e7102e6de40 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:671:27 [INFO] [stdout] 32: 0x613ad0c23a62 - test::run_test::{{closure}}::hed53f683e9967fc9 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:592:43 [INFO] [stdout] 33: 0x613ad0be6e54 - test::run_test::{{closure}}::h1b1395a97621c24c [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/test/src/lib.rs:622:41 [INFO] [stdout] 34: 0x613ad0be6e54 - std::sys::backtrace::__rust_begin_short_backtrace::hd15d7342920b94e4 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/backtrace.rs:152:18 [INFO] [stdout] 35: 0x613ad0bea87a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf7d3403d2a997ad4 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 36: 0x613ad0bea87a - as core::ops::function::FnOnce<()>>::call_once::h804cb151403aed57 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 37: 0x613ad0bea87a - std::panicking::try::do_call::h83a3328114f83651 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:589:40 [INFO] [stdout] 38: 0x613ad0bea87a - std::panicking::try::h5371451a86d476d0 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panicking.rs:552:19 [INFO] [stdout] 39: 0x613ad0bea87a - std::panic::catch_unwind::h2d1b89e7535ca74a [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x613ad0bea87a - std::thread::Builder::spawn_unchecked_::{{closure}}::h169c242c7f876b92 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 41: 0x613ad0bea87a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4115e0f997976371 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x613ad0dd5fcb - as core::ops::function::FnOnce>::call_once::hbc3fa83432d7fd73 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 43: 0x613ad0dd5fcb - as core::ops::function::FnOnce>::call_once::heba5519d10f2c030 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 44: 0x613ad0dd5fcb - std::sys::pal::unix::thread::Thread::new::thread_start::h211a36f354245501 [INFO] [stdout] at /rustc/414482f6a0d4e7290f614300581a0b55442552a3/library/std/src/sys/pal/unix/thread.rs:97:17 [INFO] [stdout] 45: 0x79010f16baa4 - [INFO] [stdout] 46: 0x79010f1f8a34 - clone [INFO] [stdout] 47: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] storage::file::tests::test_read_exact_at [INFO] [stdout] [INFO] [stdout] test result: FAILED. 188 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out; finished in 40.52s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p storage_engine --lib` [INFO] running `Command { std: "docker" "inspect" "d5962e5e2a3fb1f9228116d0048dc21792853b0fb290598910cccb8d5b44c633", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5962e5e2a3fb1f9228116d0048dc21792853b0fb290598910cccb8d5b44c633", kill_on_drop: false }` [INFO] [stdout] d5962e5e2a3fb1f9228116d0048dc21792853b0fb290598910cccb8d5b44c633