[INFO] cloning repository https://github.com/devillove084/ArrowKV
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/devillove084/ArrowKV" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cd2455a2f68ffe19b9e32eeab3c6e153f7674404
[INFO] testing devillove084/ArrowKV against nightly-2025-01-18 for randomize-layout-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/devillove084/ArrowKV on toolchain nightly-2025-01-18
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/devillove084/ArrowKV
[INFO] finished tweaking git repo https://github.com/devillove084/ArrowKV
[INFO] tweaked toml for git repo https://github.com/devillove084/ArrowKV written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/devillove084/ArrowKV already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/devillove084/actix.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/risinglightdb/sqlplannertest-rs`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded escape8259 v0.5.3
[INFO] [stderr]   Downloaded test-case v2.2.2
[INFO] [stderr]   Downloaded test-case-macros v2.2.2
[INFO] [stderr]   Downloaded slog-term v2.9.1
[INFO] [stderr]   Downloaded libtest-mimic v0.7.3
[INFO] [stderr]   Downloaded blink-alloc v0.3.1
[INFO] [stderr]   Downloaded slog-async v2.8.0
[INFO] [stderr]   Downloaded arrow-ord v50.0.0
[INFO] [stderr]   Downloaded moka v0.12.8
[INFO] [stderr]   Downloaded arrow-data v50.0.0
[INFO] [stderr]   Downloaded arrow-string v50.0.0
[INFO] [stderr]   Downloaded arrow-cast v50.0.0
[INFO] [stderr]   Downloaded arrow-json v50.0.0
[INFO] [stderr]   Downloaded anyerror v0.1.12
[INFO] [stderr]   Downloaded rustyline v14.0.0
[INFO] [stderr]   Downloaded sqlparser v0.44.0
[INFO] [stderr]   Downloaded arrow-arith v50.0.0
[INFO] [stderr]   Downloaded arrow-csv v50.0.0
[INFO] [stderr]   Downloaded arrow-ipc v50.0.0
[INFO] [stderr]   Downloaded derive_builder_core v0.20.1
[INFO] [stderr]   Downloaded derive_builder_macro v0.20.1
[INFO] [stderr]   Downloaded derive_builder v0.20.1
[INFO] [stderr]   Downloaded futures-async-stream-macro v0.2.12
[INFO] [stderr]   Downloaded futures-async-stream v0.2.12
[INFO] [stderr]   Downloaded arrow-row v50.0.0
[INFO] [stderr]   Downloaded arrow v50.0.0
[INFO] [stderr]   Downloaded arrow-array v50.0.0
[INFO] [stderr]   Downloaded arrow-buffer v50.0.0
[INFO] [stderr]   Downloaded arrow-schema v50.0.0
[INFO] [stderr]   Downloaded arrow-select v50.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c9cd8a7052e638e1cb54453732393dd94cad34e3e6f24f5b4e9b05e274ae81a3
[INFO] running `Command { std: "docker" "start" "-a" "c9cd8a7052e638e1cb54453732393dd94cad34e3e6f24f5b4e9b05e274ae81a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c9cd8a7052e638e1cb54453732393dd94cad34e3e6f24f5b4e9b05e274ae81a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9cd8a7052e638e1cb54453732393dd94cad34e3e6f24f5b4e9b05e274ae81a3", kill_on_drop: false }`
[INFO] [stdout] c9cd8a7052e638e1cb54453732393dd94cad34e3e6f24f5b4e9b05e274ae81a3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1e546ed4dadfbee679e5571c7abd341c34630f97c6fceec55aa495eb95ee0e57
[INFO] running `Command { std: "docker" "start" "-a" "1e546ed4dadfbee679e5571c7abd341c34630f97c6fceec55aa495eb95ee0e57", 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 once_cell v1.19.0
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[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 futures-core v0.3.30
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[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 anyhow v1.0.89
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling mio v1.0.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling num-complex v0.4.6
[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 ahash v0.8.11
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling arrow-schema v50.0.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling lexical-util v0.8.5
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling num-rational v0.4.2
[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 strsim v0.11.1
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling ryu v1.0.18
[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 base64 v0.21.7
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling prettyplease v0.1.25
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling anstyle v1.0.8
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling tokio v1.40.0
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling arrow-array v50.0.0
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling async-trait v0.1.82
[INFO] [stderr]    Compiling pin-project v1.1.5
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]    Compiling arrow-select v50.0.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling comfy-table v7.1.1
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling lexical-core v0.8.5
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling tokio-util v0.7.12
[INFO] [stderr]    Compiling flatbuffers v23.5.26
[INFO] [stderr]    Compiling arrow-cast v50.0.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling prost-types v0.11.9
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling anstyle-parse v0.2.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling slog v2.7.0
[INFO] [stderr]    Compiling multimap v0.8.3
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]    Compiling colorchoice v1.0.2
[INFO] [stderr]    Compiling anstyle-query v1.1.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[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 async-stream-impl v0.3.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling hyper v0.14.30
[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 thiserror v1.0.63
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[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 dirs-next v2.0.0
[INFO] [stderr]    Compiling async-stream v0.3.5
[INFO] [stderr]    Compiling tonic-build v0.8.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[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 slog-async v2.8.0
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling moka v0.12.8
[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 time v0.3.36
[INFO] [stderr]    Compiling arrow-ipc v50.0.0
[INFO] [stderr]    Compiling hyper-timeout v0.4.1
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling quanta v0.12.3
[INFO] [stderr]    Compiling async-lock v3.4.0
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling arrow-csv v50.0.0
[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 futures-executor v0.3.30
[INFO] [stderr]    Compiling arrow-row v50.0.0
[INFO] [stderr]    Compiling arrow-arith v50.0.0
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling actix_derive v0.6.2
[INFO] [stderr]    Compiling actix-macros v0.2.4
[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 allocator-api2 v0.2.18
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling clap_lex v0.7.2
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling triomphe v0.1.11
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling clap_builder v4.5.17
[INFO] [stderr]    Compiling blink-alloc v0.3.1
[INFO] [stderr]    Compiling actix v0.13.1 (https://github.com/devillove084/actix.git#d0509d35)
[INFO] [stderr]    Compiling slog-term v2.9.1
[INFO] [stderr]    Compiling tonic v0.8.3
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling arrow v50.0.0
[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 num-derive v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.5.13
[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 paste v1.0.15
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> src/storage_engine/src/lib.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | #![feature(async_closure)]
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling derive_builder_macro v0.20.1
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling clap v4.5.17
[INFO] [stderr]    Compiling env_logger v0.11.5
[INFO] [stderr]    Compiling dirs-sys v0.4.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 dirs v5.0.1
[INFO] [stderr]    Compiling derive_builder v0.20.1
[INFO] [stderr]    Compiling sqlparser v0.44.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]    Compiling ordered-float v4.2.2
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling escape8259 v0.5.3
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling predicates-core v1.0.8
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling libtest-mimic v0.7.3
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]    Compiling similar v2.6.0
[INFO] [stderr]    Compiling termtree v0.4.1
[INFO] [stderr]    Compiling predicates v3.1.2
[INFO] [stderr]    Compiling predicates-tree v1.0.11
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling fragile v2.0.0
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling anyerror v0.1.12
[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 sqlplannertest v0.1.0 (https://github.com/risinglightdb/sqlplannertest-rs#b49c6457)
[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] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [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 4m 54s
[INFO] running `Command { std: "docker" "inspect" "1e546ed4dadfbee679e5571c7abd341c34630f97c6fceec55aa495eb95ee0e57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e546ed4dadfbee679e5571c7abd341c34630f97c6fceec55aa495eb95ee0e57", kill_on_drop: false }`
[INFO] [stdout] 1e546ed4dadfbee679e5571c7abd341c34630f97c6fceec55aa495eb95ee0e57
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67588683fe522bc26d1ad7a28f6ac12d28ef07c25061704b4c549849e66383ab
[INFO] running `Command { std: "docker" "start" "-a" "67588683fe522bc26d1ad7a28f6ac12d28ef07c25061704b4c549849e66383ab", kill_on_drop: false }`
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> src/storage_engine/src/lib.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | #![feature(async_closure)]
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling 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 diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[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] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling test-case-macros v2.2.2
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> src/storage_engine/src/lib.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | #![feature(async_closure)]
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling test-case 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 32.12s
[INFO] running `Command { std: "docker" "inspect" "67588683fe522bc26d1ad7a28f6ac12d28ef07c25061704b4c549849e66383ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67588683fe522bc26d1ad7a28f6ac12d28ef07c25061704b4c549849e66383ab", kill_on_drop: false }`
[INFO] [stdout] 67588683fe522bc26d1ad7a28f6ac12d28ef07c25061704b4c549849e66383ab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5d51c75ac0b541fdd107c2e3f902c7c2326f2a3d91372b68fb51c5664ce0c11d
[INFO] running `Command { std: "docker" "start" "-a" "5d51c75ac0b541fdd107c2e3f902c7c2326f2a3d91372b68fb51c5664ce0c11d", kill_on_drop: false }`
[INFO] [stderr] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stderr]   --> src/storage_engine/src/lib.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | #![feature(async_closure)]
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(stable_features)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `storage_engine` (lib) generated 1 warning
[INFO] [stderr] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stderr]  --> src/runtime/src/lib.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | #![feature(async_closure)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(stable_features)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `runtime` (lib) generated 1 warning
[INFO] [stderr] warning: `runtime` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `storage_engine` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pro_macro-1d56cdf6995d3982)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/success.rs (/opt/rustwide/target/debug/deps/success-8db7aa665d90a7c5)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test named_struct ... ok
[INFO] [stdout] test unnamed_struct ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/query_engine-97ba554ecff4b66d)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test binder::binder_test::test_bind_join_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_constant_works ... ok
[INFO] [stdout] test binder::binder_test::test_check_ambiguous_columns_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_order_by_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_binary_op_works ... 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_2_2_4_4_6_3_0_expects ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_agg_func_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_limit_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 executor::evaluator::evaluator_test::test_eval_column_for_type_cast ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_10_0_expects ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok
[INFO] [stdout] test executor::executor_test::test_executor_order_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_full_join_filter_results ... ok
[INFO] [stdout] test executor::executor_test::test_executor_limit_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_filter_results ... ok
[INFO] [stdout] test executor::executor_test::test_executor_hash_agg_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_results ... ok
[INFO] [stdout] test executor::aggregate::hash_agg::tests::test_hash_agg_with_multiple_chunks ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_left_join_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_right_join_filter_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_right_join_results ... ok
[INFO] [stdout] test executor::executor_test::test_executor_simple_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_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 optimizer::heuristic::graph::tests::test_graph_children_at ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_add_plan_ref ... 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 executor::limit::tests::limit::_0_6_10_0_expects ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_nodes_iter ... 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::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_unmatched_children_predicate ... 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_children_predicate_none ... 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::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_order_by_to_input_ref ... ok
[INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_simple_aggregation_column_ref_to_input_ref ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node ... ok
[INFO] [stdout] test optimizer::physical_rewriter::physical_rewriter_test::test_physical_rewriter_works ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_to_plan ... ok
[INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_three_tables ... ok
[INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_two_tables ... ok
[INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_into_table_scan_rule ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_matched_recursive ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_limit_project_transpose_rule ... ok
[INFO] [stdout] test optimizer::plan_node::plan_node_traits::tests::test_equals_two_dyn_plan_node ... ok
[INFO] [stdout] test optimizer::rules::util::test::is_subset_cols_return_true_when_right_contains_all_left_items ... ok
[INFO] [stdout] test optimizer::heuristic::optimizer::tests::test_hep_optimizer_works ... ok
[INFO] [stdout] test optimizer::rules::util::test::is_superset_cols_return_true_when_right_contains_all_left_items_and_others ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_distinct_works ... 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_with_joins_works ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_works ... ok
[INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_empty_data ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_through_join_rule ... ok
[INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_data ... ok
[INFO] [stdout] test util::util_test::test_record_batch_to_string ... ok
[INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_non_join_rule ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_into_table_scan ... ok
[INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_join_rule ... ok
[INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_through_child_rule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/query_engine-b0f51e9586de3434)
[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.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/runtime-b36e661d64a27fec)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test consensus::id::tests::dot_target ... ok
[INFO] [stdout] test consensus::id::tests::atomic_next_id ... 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.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sql_planner-50f700b00e9e293a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sql_planner-90b7ff8de7655b45)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 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] [stderr]      Running tests/sql_planner.rs (/opt/rustwide/target/debug/deps/sql_planner-95304242ec123c38)
[INFO] [stdout] 
[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 state from ../csv/state.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 state from ../csv/state.csv
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] create table t1 from ../csv/t1.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] create table t2 from ../csv/t2.csv
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] 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] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t_2.b:Nullable(Int64) > Cast(7 as Int64)
[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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout]       LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]           LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] Try next rule in batch ...
[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] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[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] Apply PushPredicateThroughNonJoin at node NodeIndex(3): PlanRef(LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout]       LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]           LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 3
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(8): PlanRef(LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] 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] 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] -----------------------------------------------------
[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] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 4
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a: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] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[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] 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] Fixed point reached for batch: Column pruning, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, 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] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Apply CombineFilter at node NodeIndex(3): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 2
[INFO] [stdout] 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: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout] )
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] Apply CombineFilter at node NodeIndex(2): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) AND t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalOrder: Order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalLimit: limit Some(2), offset None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(2), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalLimit: limit Some(2), offset None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(2), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:0,limit:2)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout]   PhysicalSimpleAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     PhysicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] 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] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     PhysicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[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 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] 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] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply RemoveNoopOperators at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]   LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(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]       LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(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]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]   LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalSimpleAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]   PhysicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]     PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       PhysicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2)
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[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 t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.b:Nullable(Int64) > 1
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] test combine-operators  ... ok
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]           PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalLimit: limit Some(1), offset None
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] 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 [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]   PhysicalFilter: expr t2.b:Nullable(Int64) > 1
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[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] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None
[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)]
[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] 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] 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 [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.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] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset 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 PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit Some(1), offset None
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit None, offset Some(10)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit None, offset Some(10)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]             LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]               LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(10): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[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] 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] 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 [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(9): PlanRef(LogicalProject: exprs [state.state_code:Nullable(Utf8), state.state_name:Nullable(Utf8)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id]
[INFO] [stdout]         LogicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     LogicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id]
[INFO] [stdout]         LogicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     LogicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id]
[INFO] [stdout]         LogicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     LogicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: 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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id]
[INFO] [stdout]         LogicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     LogicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   PhysicalHashJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #employee, columns: [id, first_name, state, department_id]
[INFO] [stdout]         PhysicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     PhysicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] 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] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]             LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] 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] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] 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] 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] test limit-pushdown     ... ok
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[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: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     PhysicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1]
[INFO] [stdout]       LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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] Apply PushProjectThroughChild at node NodeIndex(3): PlanRef(LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]     LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1]
[INFO] [stdout]       LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]     LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1]
[INFO] [stdout]       LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (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] 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 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] 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 t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply 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 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] 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] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalFilter: expr t2.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] 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 t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] 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 t1.v0) as sub1.v0]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Cross, cond None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(13): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Cross, cond None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), 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 PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Cross, cond None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Cross, cond None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]               LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] 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), 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] 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] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 5
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalFilter: expr 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] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[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 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Apply CombineFilter at node NodeIndex(6): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t.a:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c]
[INFO] [stdout]     LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 2
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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] 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), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Cross, cond None
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout]     LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)]
[INFO] [stdout]   PhysicalCrossJoin: type Cross
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)]
[INFO] [stdout]       PhysicalCrossJoin: type Cross
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         PhysicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0]
[INFO] [stdout]           PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]             PhysicalTableScan: table: #t1, columns: [b]
[INFO] [stdout]     PhysicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0]
[INFO] [stdout]       PhysicalSimpleAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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] 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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]     LogicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0]
[INFO] [stdout]       LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), 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)]
[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: 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), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] test predicate-pushdown ... ok
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout]   PhysicalCrossJoin: type Cross
[INFO] [stdout]     PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]     PhysicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0]
[INFO] [stdout]       PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] 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] 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.30s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/storage_engine-48d51495f51bac0e)
[INFO] [stdout] 
[INFO] [stdout] running 190 tests
[INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_empty ... ok
[INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_small ... 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_heavy_entries ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_hit_and_miss ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_eviction_policy ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_use_exceeds_cache_size ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_zero_size_cache ... ok
[INFO] [stdout] test cache::new_lru_cache::tests::test_hit_and_miss ... ok
[INFO] [stdout] test db_impl::tests::test_empty_db ... 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_dbopen_options ... ok
[INFO] [stdout] test db_impl::tests::test_destroy_empty_dir ... ok
[INFO] [stdout] test db_impl::tests::test_custom_comparator ... ok
[INFO] [stdout] test db_impl::tests::test_db_file_lock ... ok
[INFO] [stdout] test db_impl::tests::test_empty_value ... ok
[INFO] [stdout] test db_impl::tests::test_empty_key ... ok
[INFO] [stdout] test db_impl::tests::test_get_from_versions ... ok
[INFO] [stdout] test db_impl::tests::test_db_reads_using_bloom_filter ... 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_with_identical_snapshots ... ok
[INFO] [stdout] test db_impl::tests::test_get_ordered_by_levels ... 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_mem_compact_into_max_level ... ok
[INFO] [stdout] test db_impl::tests::test_snapshot ... ok
[INFO] [stdout] test db_impl::tests::test_sparse_merge ... ignored
[INFO] [stdout] test iterator::tests::test_concatenated_iterator ... ok
[INFO] [stdout] test iterator::tests::test_merging_iterator ... ok
[INFO] [stdout] test logger::tests::test_default_logger ... ok
[INFO] [stdout] test manager::filename::tests::test_generate_filename ... ok
[INFO] [stdout] test manager::filename::tests::test_parse_filename ... ok
[INFO] [stdout] test manager::snapshot::tests::test_append_new_snapshot ... ok
[INFO] [stdout] test manager::snapshot::tests::test_gc ... ok
[INFO] [stdout] test manager::snapshot::tests::test_new_is_empty ... ok
[INFO] [stdout] test manager::snapshot::tests::test_oldest ... ok
[INFO] [stdout] test manager::snapshot::tests::test_release ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_empty_file_set ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_find_file_with_single_file ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_find_files_with_various_files ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_multiple_null_boundaries ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_overlap_sequence_check ... ok
[INFO] [stdout] test manager::version::find_file_tests::test_overlapping_files ... ok
[INFO] [stdout] test manager::version_edit::tests::test_set_comparator_name ... ok
[INFO] [stdout] test manager::version_edit::tests::test_set_last_sequence ... ok
[INFO] [stdout] test manager::version_edit::tests::test_set_log_number ... ok
[INFO] [stdout] test manager::version_edit::tests::test_set_next_file ... ok
[INFO] [stdout] test manager::version_edit::tests::test_set_prev_log_number ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_disjoint_files ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_compaction_files ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_file_sets ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_level_files ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_no_boundary_files ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_one_boundary_file ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_two_boundary_files ... ok
[INFO] [stdout] test manager::version_set::add_boundary_tests::test_version_builder_accumulate_and_apply ... ok
[INFO] [stdout] test memtable::arena::tests::test_allocate_empty_should_panic - should panic ... ok
[INFO] [stdout] test memtable::arena::tests::test_allocate_fallback ... ok
[INFO] [stdout] test db_impl::tests::test_file_deleted_after_compaction ... 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 memtable::inlineskiplist::tests::test_concurrent_basic_big_value ... ok
[INFO] [stdout] test db_impl::tests::test_get_with_snapshot ... 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 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_mutiple_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 sstable::tests::test_special_key ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_file_lock_unlock ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_file_read_write ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_file_read_at ... 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_path_clean ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_exists ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_create ... 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 storage::mem::tests::test_storage_list ... 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 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 memtable::arena::tests::test_allocate_mixed ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer2 ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_missing_last_is_ignored ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_open_for_append ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_partial_last_is_ignored ... ok
[INFO] [stdout] test db_impl::tests::test_get_encounters_empty_level ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_eof ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_error ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_write ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_short_trailer ... ok
[INFO] [stdout] test db_impl::tests::test_repeated_write_to_same_key ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_truncated_trailing_record_is_ignored ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_skip_into_multi_record ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_full_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_last_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_middle_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_first_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_many_blocks ... ok
[INFO] [stdout] test util::coding::tests::test_put_fixed32 ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_random_read ... 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] 
[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:     0x606134cd47ea - std::backtrace_rs::backtrace::libunwind::trace::hb059275cfc8d6126
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x606134cd47ea - std::backtrace_rs::backtrace::trace_unsynchronized::h2da071e4327ce3ee
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x606134cd47ea - std::sys::backtrace::_print_fmt::h842a1474e6f8d23f
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x606134cd47ea - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h71a62eb3b9696b12
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x606134cfde83 - core::fmt::rt::Argument::fmt::hdb6b616786b41dc1
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x606134cfde83 - core::fmt::write::h2cc1698af7e2d686
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/fmt/mod.rs:1440:21
[INFO] [stdout]    6:     0x606134cd0b43 - std::io::Write::write_fmt::hab1b4cd059a79022
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/io/mod.rs:1887:15
[INFO] [stdout]    7:     0x606134cd4632 - std::sys::backtrace::BacktraceLock::print::h147fe35b4ea13b08
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x606134cd5c0f - std::panicking::default_hook::{{closure}}::hbd44223dbdc0d208
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:298:22
[INFO] [stdout]    9:     0x606134cd5a28 - std::panicking::default_hook::h20f81eb0576efcec
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:322:9
[INFO] [stdout]   10:     0x606134b15ec3 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hdb53814c496a4d34
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/alloc/src/boxed.rs:2027:9
[INFO] [stdout]   11:     0x606134b15ec3 - test::test_main::{{closure}}::hc0a4963c59427c24
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x606134cd6703 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h591b2225413a77e9
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/alloc/src/boxed.rs:2027:9
[INFO] [stdout]   13:     0x606134cd6703 - std::panicking::rust_panic_with_hook::h625eea43051b2edc
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:839:13
[INFO] [stdout]   14:     0x606134cd63ba - std::panicking::begin_panic_handler::{{closure}}::h4f9159cfbc3f6bd3
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:704:13
[INFO] [stdout]   15:     0x606134cd4ce9 - std::sys::backtrace::__rust_end_short_backtrace::h0390abce48353151
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   16:     0x606134cd604d - rust_begin_unwind
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:695:5
[INFO] [stdout]   17:     0x606134cfb7f0 - core::panicking::panic_fmt::h9e7c637e9e5f29c9
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/panicking.rs:75:14
[INFO] [stdout]   18:     0x606134cfbcc6 - core::result::unwrap_failed::h7979f09313fe1849
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/result.rs:1704:5
[INFO] [stdout]   19:     0x6061348575e4 - core::result::Result<T,E>::unwrap::hf31246abe632f2b4
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/result.rs:1109:23
[INFO] [stdout]   20:     0x6061348575e4 - storage_engine::storage::file::tests::test_read_exact_at::h0a412c6ff3ad37cd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:151:21
[INFO] [stdout]   21:     0x606134857557 - storage_engine::storage::file::tests::test_read_exact_at::{{closure}}::ha53692443a66ec6d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:150:28
[INFO] [stdout]   22:     0x60613485fc56 - core::ops::function::FnOnce::call_once::hcb48c8b0adb96933
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x606134b1b61b - core::ops::function::FnOnce::call_once::he27718dfdd183f43
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x606134b1b61b - test::__rust_begin_short_backtrace::h4e84902998457a5d
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:632:18
[INFO] [stdout]   25:     0x606134b1a553 - test::run_test_in_process::{{closure}}::h7176fd18fc1feca0
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:655:60
[INFO] [stdout]   26:     0x606134b1a553 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hf79cff2a624d8cf7
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x606134b1a553 - std::panicking::try::do_call::h3da0561d9ab99c25
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:587:40
[INFO] [stdout]   28:     0x606134b1a553 - std::panicking::try::h41c9fa508bc61df6
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:550:19
[INFO] [stdout]   29:     0x606134b1a553 - std::panic::catch_unwind::h6b3ff07bb5afad93
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panic.rs:358:14
[INFO] [stdout]   30:     0x606134b1a553 - test::run_test_in_process::hc7253dd11b39b9f4
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:655:27
[INFO] [stdout]   31:     0x606134b1a553 - test::run_test::{{closure}}::hfb2007f8649c30bb
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:576:43
[INFO] [stdout]   32:     0x606134add635 - test::run_test::{{closure}}::h56a17aa7a282a9f4
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/test/src/lib.rs:606:41
[INFO] [stdout]   33:     0x606134add635 - std::sys::backtrace::__rust_begin_short_backtrace::hd2d2d2fb8e8c6aac
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   34:     0x606134ae0f1a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h4faa3f9db6133423
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   35:     0x606134ae0f1a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hf2e855a36a4ea846
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x606134ae0f1a - std::panicking::try::do_call::h2f73af3616c35465
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:587:40
[INFO] [stdout]   37:     0x606134ae0f1a - std::panicking::try::hd1660ce9efadef5a
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panicking.rs:550:19
[INFO] [stdout]   38:     0x606134ae0f1a - std::panic::catch_unwind::h5ee8d7823b8ca744
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/panic.rs:358:14
[INFO] [stdout]   39:     0x606134ae0f1a - std::thread::Builder::spawn_unchecked_::{{closure}}::h53c3a1894dce8407
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   40:     0x606134ae0f1a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h048ce291ad4f62bf
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x606134cdaa3b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha52bedf99a3b4981
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/alloc/src/boxed.rs:2013:9
[INFO] [stdout]   42:     0x606134cdaa3b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h567748934d80ccf8
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/alloc/src/boxed.rs:2013:9
[INFO] [stdout]   43:     0x606134cdaa3b - std::sys::pal::unix::thread::Thread::new::thread_start::h2d970728ae887adc
[INFO] [stdout]                                at /rustc/6067b36314ab5eb2eb47cecc464545ba58e1ad24/library/std/src/sys/pal/unix/thread.rs:106:17
[INFO] [stdout]   44:     0x7833bd201ac3 - <unknown>
[INFO] [stdout]   45:     0x7833bd292a04 - 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.80s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p storage_engine --lib`
[INFO] running `Command { std: "docker" "inspect" "5d51c75ac0b541fdd107c2e3f902c7c2326f2a3d91372b68fb51c5664ce0c11d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d51c75ac0b541fdd107c2e3f902c7c2326f2a3d91372b68fb51c5664ce0c11d", kill_on_drop: false }`
[INFO] [stdout] 5d51c75ac0b541fdd107c2e3f902c7c2326f2a3d91372b68fb51c5664ce0c11d
