[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/cd2455a2f68ffe19b9e32eeab3c6e153f7674404 against nightly-2024-10-28+rustflags=-Zrandomize-layout for randomize-layout
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/devillove084/ArrowKV on toolchain nightly-2024-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-6-tc2/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-6-tc2/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" "+nightly-2024-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] af629b6de289065e1415c2e5531e1c287f0daa532aba92ed878e4851c0ae42db
[INFO] running `Command { std: "docker" "start" "-a" "af629b6de289065e1415c2e5531e1c287f0daa532aba92ed878e4851c0ae42db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "af629b6de289065e1415c2e5531e1c287f0daa532aba92ed878e4851c0ae42db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "af629b6de289065e1415c2e5531e1c287f0daa532aba92ed878e4851c0ae42db", kill_on_drop: false }`
[INFO] [stdout] af629b6de289065e1415c2e5531e1c287f0daa532aba92ed878e4851c0ae42db
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Zrandomize-layout" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 68ad1c3e206ba517002e56935f2762653228565c6ee1b9d517582c5830fdc91f
[INFO] running `Command { std: "docker" "start" "-a" "68ad1c3e206ba517002e56935f2762653228565c6ee1b9d517582c5830fdc91f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling memchr v2.7.4
[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 byteorder v1.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling indexmap v2.5.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling anyhow v1.0.89
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling mio v1.0.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling arrow-schema v50.0.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]    Compiling lexical-util v0.8.5
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling arrow-buffer v50.0.0
[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 arrow-data v50.0.0
[INFO] [stderr]    Compiling lexical-parse-integer v0.8.6
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling lexical-parse-float v0.8.5
[INFO] [stderr]    Compiling lexical-write-float v0.8.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling anstyle v1.0.8
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling prettyplease v0.1.25
[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 zerocopy v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling tokio v1.40.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling arrow-array v50.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling async-trait v0.1.82
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling arrow-select v50.0.0
[INFO] [stderr]    Compiling pin-project v1.1.5
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling lexical-core v0.8.5
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling comfy-table v7.1.1
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling arrow-cast v50.0.0
[INFO] [stderr]    Compiling tokio-util v0.7.12
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling flatbuffers v23.5.26
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling prost-types v0.11.9
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.5
[INFO] [stderr]    Compiling petgraph v0.6.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 parking v2.2.1
[INFO] [stderr]    Compiling anstyle-query v1.1.1
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling colorchoice v1.0.2
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling slog v2.7.0
[INFO] [stderr]    Compiling anstream v0.6.15
[INFO] [stderr]    Compiling prost-build v0.11.9
[INFO] [stderr]    Compiling event-listener v5.3.1
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling tokio-io-timeout v1.2.0
[INFO] [stderr]    Compiling hyper v0.14.30
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling csv-core v0.1.11
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling csv v1.3.0
[INFO] [stderr]    Compiling async-stream v0.3.5
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling tonic-build v0.8.4
[INFO] [stderr]    Compiling event-listener-strategy v0.5.2
[INFO] [stderr]    Compiling tokio-stream v0.1.16
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling raw-cpuid v11.1.0
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling moka v0.12.8
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling slog-async v2.8.0
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling hyper-timeout v0.4.1
[INFO] [stderr]    Compiling arrow-json v50.0.0
[INFO] [stderr]    Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine)
[INFO] [stderr]    Compiling quanta v0.12.3
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling time v0.3.36
[INFO] [stderr]    Compiling arrow-ipc v50.0.0
[INFO] [stderr]    Compiling arrow-csv v50.0.0
[INFO] [stderr]    Compiling async-lock v3.4.0
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling arrow-string v50.0.0
[INFO] [stderr]    Compiling arrow-ord v50.0.0
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling futures-executor v0.3.30
[INFO] [stderr]    Compiling arrow-arith v50.0.0
[INFO] [stderr]    Compiling arrow-row v50.0.0
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling actix_derive v0.6.2
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling is-terminal v0.4.13
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling allocator-api2 v0.2.18
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling triomphe v0.1.11
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling clap_lex v0.7.2
[INFO] [stderr]    Compiling tonic v0.8.3
[INFO] [stderr]    Compiling clap_builder v4.5.17
[INFO] [stderr]    Compiling blink-alloc v0.3.1
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling actix v0.13.1 (https://github.com/devillove084/actix.git#d0509d35)
[INFO] [stderr]    Compiling arrow v50.0.0
[INFO] [stderr]    Compiling slog-term v2.9.1
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling futures v0.3.30
[INFO] [stderr]    Compiling crossbeam-channel v0.4.4
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling clap_derive v4.5.13
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling bumpalo v3.16.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling derive_builder_core v0.20.1
[INFO] [stderr]    Compiling env_filter v0.1.2
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling clap v4.5.17
[INFO] [stderr]    Compiling derive_builder_macro v0.20.1
[INFO] [stderr]    Compiling env_logger v0.11.5
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling futures-async-stream-macro v0.2.12
[INFO] [stderr]    Compiling fd-lock v4.0.2
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling futures-async-stream v0.2.12
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling derive_builder v0.20.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling sqlparser v0.44.0
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling ordered-float v4.2.2
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling predicates-core v1.0.8
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling escape8259 v0.5.3
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling libtest-mimic v0.7.3
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling similar v2.6.0
[INFO] [stderr]    Compiling termtree v0.4.1
[INFO] [stderr]    Compiling predicates-tree v1.0.11
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling predicates v3.1.2
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling fragile v2.0.0
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling anyerror v0.1.12
[INFO] [stderr]    Compiling sqlplannertest v0.1.0 (https://github.com/risinglightdb/sqlplannertest-rs#b49c6457)
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling pro-macro v0.1.0 (/opt/rustwide/workdir/src/util/pro-macro)
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]    Compiling tonic v0.11.0
[INFO] [stderr]    Compiling mockall v0.12.1
[INFO] [stderr]    Compiling runtime v0.1.0 (/opt/rustwide/workdir/src/runtime)
[INFO] [stderr]    Compiling query_engine v0.1.0 (/opt/rustwide/workdir/src/query_engine)
[INFO] [stderr]    Compiling sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.12s
[INFO] running `Command { std: "docker" "inspect" "68ad1c3e206ba517002e56935f2762653228565c6ee1b9d517582c5830fdc91f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68ad1c3e206ba517002e56935f2762653228565c6ee1b9d517582c5830fdc91f", kill_on_drop: false }`
[INFO] [stdout] 68ad1c3e206ba517002e56935f2762653228565c6ee1b9d517582c5830fdc91f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Zrandomize-layout" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 35dff84201f354092123a3bf7cb62421d5c5ef4671b710a0ce21c63fccf68fab
[INFO] running `Command { std: "docker" "start" "-a" "35dff84201f354092123a3bf7cb62421d5c5ef4671b710a0ce21c63fccf68fab", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[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 sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner)
[INFO] [stderr]    Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine)
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling runtime v0.1.0 (/opt/rustwide/workdir/src/runtime)
[INFO] [stderr]    Compiling test-case-macros v2.2.2
[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 6.79s
[INFO] running `Command { std: "docker" "inspect" "35dff84201f354092123a3bf7cb62421d5c5ef4671b710a0ce21c63fccf68fab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35dff84201f354092123a3bf7cb62421d5c5ef4671b710a0ce21c63fccf68fab", kill_on_drop: false }`
[INFO] [stdout] 35dff84201f354092123a3bf7cb62421d5c5ef4671b710a0ce21c63fccf68fab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Zrandomize-layout" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 906be7c2881f518fb5696491fbc000d8b6d291f7e97c9730d4b7e0a1df59a468
[INFO] running `Command { std: "docker" "start" "-a" "906be7c2881f518fb5696491fbc000d8b6d291f7e97c9730d4b7e0a1df59a468", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pro_macro-fe93c7356016b7d8)
[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-a4d1c8641f9454dd)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test named_struct ... ok
[INFO] [stdout] test unnamed_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-8fa7d5ebc98c31b5)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test binder::binder_test::test_bind_select_constant_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_order_by_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_limit_works ... ok
[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_select_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_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_10_0_expects ... ok
[INFO] [stdout] test binder::binder_test::test_bind_join_works ... 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 executor::evaluator::evaluator_test::test_eval_column_for_input_ref ... 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_type_cast ... ok
[INFO] [stdout] test executor::aggregate::hash_agg::tests::test_hash_agg_with_multiple_chunks ... ok
[INFO] [stdout] test executor::executor_test::test_executor_limit_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_simple_agg_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_hash_agg_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_full_join_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_full_join_filter_results ... ok
[INFO] [stdout] test executor::executor_test::test_executor_order_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_filter_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_left_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_6_0_10_0_6_expects ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_10_0_expects ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_left_join_results ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_right_join_results ... 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 executor::join::hash_join::tests::test_right_join_filter_results ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_children_at ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_add_plan_ref ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_nodes_iter ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_join_child_node_and_keep_left_right_order ... 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_node ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_to_plan ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate ... 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::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_matched_recursive ... 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_limit_to_input_ref ... ok
[INFO] [stdout] test optimizer::heuristic::optimizer::tests::test_hep_optimizer_works ... ok
[INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_order_by_to_input_ref ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_none ... 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::plan_node::logical_join::tests::test_join_output_schema_when_two_tables ... 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_limit_project_transpose_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::rules::pushdown_limit::tests::test_push_limit_into_table_scan ... 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 optimizer::rules::column_pruning::tests::test_push_project_into_table_scan_rule ... ok
[INFO] [stdout] test planner::operator::logical_filter::tests::test_logical_filter_split_predicates ... 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 storage::memory::storage_test::test_in_memory_storage_works_with_empty_data ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_with_joins_works ... ok
[INFO] [stdout] test util::util_test::test_record_batch_to_string ... 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_non_join_rule ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_through_join_rule ... ok
[INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_through_child_rule ... ok
[INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_join_rule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/query_engine-6e3be2c12c843ab6)
[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/lib.rs (/opt/rustwide/target/debug/deps/runtime-eb2f081f1d1f7d74)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test consensus::id::tests::atomic_next_id ... ok
[INFO] [stdout] test consensus::id::tests::dot_target ... ok
[INFO] [stdout] test consensus::id::tests::next_id ... ok
[INFO] [stdout] test consensus::time::tests::sim_now ... 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] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sql_planner-a017d1d4d4ac9771)
[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-7f68bc683986a0de)
[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-1059d4c0671be1a1)
[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 employee from ../csv/employee.csv
[INFO] [stdout] create table employee from ../csv/employee.csv
[INFO] [stdout] create table employee from ../csv/employee.csv
[INFO] [stdout] create table state from ../csv/state.csv
[INFO] [stdout] create table state from ../csv/state.csv
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] create table state from ../csv/state.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 t1 from ../csv/t1.csv
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] create table t2 from ../csv/t2.csv
[INFO] [stdout] create table t2 from ../csv/t2.csv
[INFO] [stdout] create table t2 from ../csv/t2.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] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, 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: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[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] 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] 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 [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] 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] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[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] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit 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] 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] 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] 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] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[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] 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(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c: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] Apply PushProjectThroughChild at node NodeIndex(6): 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 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]
[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] 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] 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] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Try next rule in batch ...
[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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 3
[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] 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] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(8): PlanRef(LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[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] 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] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 4
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[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] -----------------------------------------------------
[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]   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: 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: 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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]     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] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[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] 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] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Apply CombineFilter at node NodeIndex(3): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[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 PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as 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 [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] -----------------------------------------------------
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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] 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), 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 PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [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] 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)]
[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] 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] 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] 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] 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] 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(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] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[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 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] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(2), offset None
[INFO] [stdout] )
[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] 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: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[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: Limit pushdown, iteration: 2
[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] Apply SimplifyCasts at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout] )
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[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] 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] 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 PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(2), offset None
[INFO] [stdout] )
[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] 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] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout] )
[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] 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 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] 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] 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] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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]     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: 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] 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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] 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] 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] Max iteration 1 reached for batch: Rewrite physical plan
[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] 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 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] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout] )
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[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), 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] 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] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 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)]
[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] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[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] Start Batch: Column pruning, iteration: 1
[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] test -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] combine-operators  ... ok
[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 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 SimplifyCasts at node NodeIndex(1): PlanRef(LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[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] 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] 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] Batch: One-time simplification finished, reach_fixed_point: false
[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] 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(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[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] 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] 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] 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 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] 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] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[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] 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] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[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] 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: Limit pushdown, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate 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: 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: 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 LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[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)]
[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] 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 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), 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] 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] 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 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] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[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: Rewrite physical plan, iteration: 1
[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 PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[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] 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] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[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]     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] Batch: Rewrite physical plan finished, reach_fixed_point: false
[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] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[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] 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] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[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 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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] 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] 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), 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] 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] 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] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b: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)]
[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] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[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] 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] 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] 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 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 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] 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(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] 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, 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] -----------------------------------------------------
[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 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] 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)]
[INFO] [stdout] )
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(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] 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), 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] 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(9): PlanRef(LogicalProject: exprs [t2.b: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] 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] 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] 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 PushProjectIntoTableScan at node NodeIndex(10): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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]     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] 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: 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: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[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] 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] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[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] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 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 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[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] 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 [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] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[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 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] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a: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 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] 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] 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] 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] 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 [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] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[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] 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: 4
[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 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] 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: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[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] 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: 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] 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] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[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)]
[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] 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] 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] 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] 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: 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, 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]     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] 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 PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[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] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] test limit-pushdown     ... ok
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[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] Start Batch: Column pruning, iteration: 3
[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] 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] 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 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 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 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), 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] 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] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[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: 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: 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: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[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), (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: 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(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] -----------------------------------------------------
[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] 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] 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: 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 PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Batch: Limit pushdown 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 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] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Start Batch: Column pruning, 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 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 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), 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] 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]         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] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[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] Batch: Column pruning finished, reach_fixed_point: true
[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] 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[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]   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] Apply PushProjectThroughChild at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout] )
[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] 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] Try next rule in batch ...
[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] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a: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] 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] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[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 t1.v0) as sub0.v0]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate 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]         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] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[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] 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] 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 5
[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(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: 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: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[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 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), 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] 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] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b: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] 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] 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 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: 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: Rewrite physical plan 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 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[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]   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] 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] 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] 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] Try next rule in batch ...
[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] 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)]
[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(3): PlanRef(LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[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] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t.b:Nullable(Int64) > Cast(7 as 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: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[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] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[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 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] 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: 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] 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 CombineFilter at node NodeIndex(6): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as 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 [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] 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: Combine operators finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 2
[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: 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 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] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)]
[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 [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 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] -----------------------------------------------------
[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) + 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, 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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] 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] test predicate-pushdown ... ok
[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] 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.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/storage_engine-c60e3e10757dee1d)
[INFO] [stdout] 
[INFO] [stdout] running 190 tests
[INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_small ... ok
[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::lru_cache::tests::test_heavy_entries ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_eviction_policy ... 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::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_comparator_check ... 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_destroy_empty_dir ... ok
[INFO] [stdout] test db_impl::tests::test_empty_db ... ok
[INFO] [stdout] test db_impl::tests::test_empty_key ... ok
[INFO] [stdout] test db_impl::tests::test_empty_value ... ok
[INFO] [stdout] test db_impl::tests::test_db_reads_using_bloom_filter ... ok
[INFO] [stdout] test db_impl::tests::test_get_from_versions ... 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_multi_with_delete ... ok
[INFO] [stdout] test db_impl::tests::test_iter_pins_ref ... ok
[INFO] [stdout] test db_impl::tests::test_iter_single ... ok
[INFO] [stdout] test db_impl::tests::test_iter_small_and_large_mix ... ok
[INFO] [stdout] test db_impl::tests::test_get_level_0_ordering ... 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_iterate_over_empty_snapshot ... 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_repeated_write_to_same_key ... 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 memtable::arena::tests::test_allocate_mixed ... 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::inlineskiplist::tests::test_basic ... ok
[INFO] [stdout] test db_impl::tests::test_mem_compact_into_max_level ... ok
[INFO] [stdout] test memtable::inlineskiplist::tests::test_concurrent_basic_big_value ... 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::key_format::tests::test_pack_seq_and_type_panic - should panic ... ok
[INFO] [stdout] test memtable::tests::test_memtable_add_get ... ok
[INFO] [stdout] test memtable::tests::test_memtable_iter ... ok
[INFO] [stdout] test sstable::block::tests::test_add_inconsistent_key - should panic ... ok
[INFO] [stdout] test sstable::block::tests::test_block_iter ... ok
[INFO] [stdout] test sstable::block::tests::test_corrupted_block ... ok
[INFO] [stdout] test sstable::block::tests::test_iter_big_entry_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::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 memtable::inlineskiplist::tests::test_concurrent_basic_small_value ... 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 storage::mem::tests::test_storage_list ... 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 sstable::tests::test_special_key ... 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 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_one_off ... 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_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_start ... 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_start ... 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_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_fragmentation_records ... ok
[INFO] [stdout] test db_impl::tests::test_file_deleted_after_compaction ... 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 util::coding::tests::test_put_fixed32 ... 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 wal::wal_record_format::tests::test_skip_into_multi_record ... 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_unexpected_first_type ... 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_many_blocks ... ok
[INFO] [stdout] test db_impl::tests::test_get_with_snapshot ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_random_read ... ok
[INFO] [stdout] test db_impl::tests::test_get_encounters_empty_level ... ok
[INFO] [stdout] test db_impl::tests::test_manual_compaction ... ok
[INFO] [stdout] test db_impl::tests::test_pick_correct_file ... 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] 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:     0x5f4f7d14351a - std::backtrace_rs::backtrace::libunwind::trace::h207520d6e9873551
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x5f4f7d14351a - std::backtrace_rs::backtrace::trace_unsynchronized::h2ed7433f370e3eca
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5f4f7d14351a - std::sys::backtrace::_print_fmt::h916fac51166b18d7
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x5f4f7d14351a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha0a4c9b8ce3802e6
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x5f4f7d16baa3 - core::fmt::rt::Argument::fmt::h4cfc8587d52b3eb5
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x5f4f7d16baa3 - core::fmt::write::h522cc39e5b36ae9f
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/fmt/mod.rs:1190:21
[INFO] [stdout]    6:     0x5f4f7d13f963 - std::io::Write::write_fmt::h7d3c26752da97734
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/io/mod.rs:1839:15
[INFO] [stdout]    7:     0x5f4f7d143362 - std::sys::backtrace::BacktraceLock::print::h4b9e00b29e9c0942
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x5f4f7d1449aa - std::panicking::default_hook::{{closure}}::hb59b88280d0324d9
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x5f4f7d1447b4 - std::panicking::default_hook::he1dd496665be4a29
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x5f4f7cf728a9 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h4ff71de18744e1dc
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   11:     0x5f4f7cf728a9 - test::test_main::{{closure}}::hcf7c055ce117aa81
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:133:21
[INFO] [stdout]   12:     0x5f4f7d1450a8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1d66c6bbd60c9692
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   13:     0x5f4f7d1450a8 - std::panicking::rust_panic_with_hook::h2ff17fe8f26dfcf8
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x5f4f7d144e6a - std::panicking::begin_panic_handler::{{closure}}::h4fad77951c07e101
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x5f4f7d1439f9 - std::sys::backtrace::__rust_end_short_backtrace::hb1a25b3da5d0ea08
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x5f4f7d144afc - rust_begin_unwind
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x5f4f7d169520 - core::panicking::panic_fmt::ha9db07b529f9b256
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/panicking.rs:75:14
[INFO] [stdout]   18:     0x5f4f7d1699c6 - core::result::unwrap_failed::h5e8218e4d4338b8a
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/result.rs:1698:5
[INFO] [stdout]   19:     0x5f4f7cf368a4 - core::result::Result<T,E>::unwrap::h4df1bcd4d9ff604a
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/result.rs:1103:23
[INFO] [stdout]   20:     0x5f4f7cf368a4 - storage_engine::storage::file::tests::test_read_exact_at::h2513e2f08f17dfc6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:151:21
[INFO] [stdout]   21:     0x5f4f7cf36817 - storage_engine::storage::file::tests::test_read_exact_at::{{closure}}::hc9b58facfcbdb1ff
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:150:28
[INFO] [stdout]   22:     0x5f4f7ceb2b66 - core::ops::function::FnOnce::call_once::hd0174e7a33865994
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5f4f7cf7717b - core::ops::function::FnOnce::call_once::h22c3ba5715e93f05
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5f4f7cf7717b - test::__rust_begin_short_backtrace::h8e82d8113d0da17f
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:621:18
[INFO] [stdout]   25:     0x5f4f7cf76af7 - test::run_test_in_process::{{closure}}::h33235f4f20b7b7c7
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:644:60
[INFO] [stdout]   26:     0x5f4f7cf76af7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb5043206310c586f
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x5f4f7cf76af7 - std::panicking::try::do_call::h9ad4731a60ab23e2
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:557:40
[INFO] [stdout]   28:     0x5f4f7cf76af7 - std::panicking::try::h3824d23db772a716
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:520:19
[INFO] [stdout]   29:     0x5f4f7cf76af7 - std::panic::catch_unwind::h5afd514605fde46b
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panic.rs:358:14
[INFO] [stdout]   30:     0x5f4f7cf76af7 - test::run_test_in_process::h0d5cbfa7067d1720
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:644:27
[INFO] [stdout]   31:     0x5f4f7cf76af7 - test::run_test::{{closure}}::h708eb8872708115d
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:565:43
[INFO] [stdout]   32:     0x5f4f7cf3a214 - test::run_test::{{closure}}::h392c51cee94713ab
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/test/src/lib.rs:595:41
[INFO] [stdout]   33:     0x5f4f7cf3a214 - std::sys::backtrace::__rust_begin_short_backtrace::h2f40290710935a8b
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   34:     0x5f4f7cf3d9be - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h3fd968d89053a903
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/thread/mod.rs:541:17
[INFO] [stdout]   35:     0x5f4f7cf3d9be - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h743f637ba4229880
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x5f4f7cf3d9be - std::panicking::try::do_call::h07440897322525a6
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:557:40
[INFO] [stdout]   37:     0x5f4f7cf3d9be - std::panicking::try::he5a2e00188156637
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panicking.rs:520:19
[INFO] [stdout]   38:     0x5f4f7cf3d9be - std::panic::catch_unwind::hbaf3cae49b3c6433
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/panic.rs:358:14
[INFO] [stdout]   39:     0x5f4f7cf3d9be - std::thread::Builder::spawn_unchecked_::{{closure}}::h8e141ea224820bce
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/thread/mod.rs:540:30
[INFO] [stdout]   40:     0x5f4f7cf3d9be - core::ops::function::FnOnce::call_once{{vtable.shim}}::h90d312fedd7b8ea8
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5f4f7d14929b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h69aa08ddb6adb8b6
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   42:     0x5f4f7d14929b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5aa36efdb79c806f
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   43:     0x5f4f7d14929b - std::sys::pal::unix::thread::Thread::new::thread_start::h6cd80a1b4be5158d
[INFO] [stdout]                                at /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   44:     0x782e0da45ac3 - <unknown>
[INFO] [stdout]   45:     0x782e0dad6a04 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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 48.42s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p storage_engine --lib`
[INFO] running `Command { std: "docker" "inspect" "906be7c2881f518fb5696491fbc000d8b6d291f7e97c9730d4b7e0a1df59a468", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "906be7c2881f518fb5696491fbc000d8b6d291f7e97c9730d4b7e0a1df59a468", kill_on_drop: false }`
[INFO] [stdout] 906be7c2881f518fb5696491fbc000d8b6d291f7e97c9730d4b7e0a1df59a468
