[INFO] cloning repository https://github.com/devillove084/ArrowKV
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/devillove084/ArrowKV" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cd2455a2f68ffe19b9e32eeab3c6e153f7674404
[INFO] testing devillove084/ArrowKV against master#1ef7943ee607160a564655b6596f83670ef95df5 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-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-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/devillove084/ArrowKV on toolchain 1ef7943ee607160a564655b6596f83670ef95df5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+1ef7943ee607160a564655b6596f83670ef95df5" "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 test-case v2.2.2
[INFO] [stderr]   Downloaded blink-alloc v0.3.1
[INFO] [stderr]   Downloaded tonic v0.8.3
[INFO] [stderr]   Downloaded tonic-build v0.11.0
[INFO] [stderr]   Downloaded anyerror v0.1.12
[INFO] [stderr]   Downloaded ordered-float v4.2.2
[INFO] [stderr]   Downloaded predicates v3.1.2
[INFO] [stderr]   Downloaded prost-build v0.12.6
[INFO] [stderr]   Downloaded mockall_derive v0.12.1
[INFO] [stderr]   Downloaded comfy-table v7.1.1
[INFO] [stderr]   Downloaded arrow-cast v50.0.0
[INFO] [stderr]   Downloaded libtest-mimic v0.7.3
[INFO] [stderr]   Downloaded rustyline v14.0.0
[INFO] [stderr]   Downloaded sqlparser v0.44.0
[INFO] [stderr]   Downloaded arrow-ipc v50.0.0
[INFO] [stderr]   Downloaded arrow v50.0.0
[INFO] [stderr]   Downloaded arrow-json v50.0.0
[INFO] [stderr]   Downloaded arrow-select v50.0.0
[INFO] [stderr]   Downloaded arrow-ord v50.0.0
[INFO] [stderr]   Downloaded raw-cpuid v11.1.0
[INFO] [stderr]   Downloaded derive_builder_core v0.20.1
[INFO] [stderr]   Downloaded derive_builder v0.20.1
[INFO] [stderr]   Downloaded env_logger v0.11.5
[INFO] [stderr]   Downloaded arrow-row v50.0.0
[INFO] [stderr]   Downloaded mockall v0.12.1
[INFO] [stderr]   Downloaded arrow-string v50.0.0
[INFO] [stderr]   Downloaded slog-async v2.8.0
[INFO] [stderr]   Downloaded derive_builder_macro v0.20.1
[INFO] [stderr]   Downloaded prettyplease v0.2.22
[INFO] [stderr]   Downloaded arrow-csv v50.0.0
[INFO] [stderr]   Downloaded test-case-macros v2.2.2
[INFO] [stderr]   Downloaded fd-lock v4.0.2
[INFO] [stderr]   Downloaded slog-term v2.9.1
[INFO] [stderr]   Downloaded arrow-arith v50.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5f0991570a602710b2c3f899a979ed4c9146a78d976d97acd9ce2d17d9f91020
[INFO] running `Command { std: "docker" "start" "-a" "5f0991570a602710b2c3f899a979ed4c9146a78d976d97acd9ce2d17d9f91020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f0991570a602710b2c3f899a979ed4c9146a78d976d97acd9ce2d17d9f91020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f0991570a602710b2c3f899a979ed4c9146a78d976d97acd9ce2d17d9f91020", kill_on_drop: false }`
[INFO] [stdout] 5f0991570a602710b2c3f899a979ed4c9146a78d976d97acd9ce2d17d9f91020
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 84bce27d8b11de28b6c87b645d46bc336aac03b7697d604514a2afc1b268c94c
[INFO] running `Command { std: "docker" "start" "-a" "84bce27d8b11de28b6c87b645d46bc336aac03b7697d604514a2afc1b268c94c", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling arrow-schema v50.0.0
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling arrow-buffer v50.0.0
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling indexmap v2.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 getrandom v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling mio v1.0.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling arrow-data v50.0.0
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling unicode-width v0.1.13
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling lexical-write-integer v0.8.5
[INFO] [stderr]    Compiling lexical-parse-integer v0.8.6
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling lexical-parse-float v0.8.5
[INFO] [stderr]    Compiling lexical-write-float v0.8.5
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling home v0.5.9
[INFO] [stderr]    Compiling prettyplease v0.1.25
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling strum v0.26.3
[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 regex-automata v0.4.7
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling flatbuffers v23.5.26
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling which v4.4.2
[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 multimap v0.8.3
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]    Compiling slog v2.7.0
[INFO] [stderr]    Compiling event-listener v5.3.1
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling prost-derive v0.11.9
[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 pin-project-internal v1.1.5
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling arrow-array v50.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling async-trait v0.1.82
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling pin-project v1.1.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling prost v0.11.9
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling prost-types v0.11.9
[INFO] [stderr]    Compiling arrow-select v50.0.0
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling comfy-table v7.1.1
[INFO] [stderr]    Compiling prost-build v0.11.9
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]    Compiling csv-core v0.1.11
[INFO] [stderr]    Compiling arrow-cast v50.0.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling tokio-util v0.7.12
[INFO] [stderr]    Compiling tokio-io-timeout v1.2.0
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling csv v1.3.0
[INFO] [stderr]    Compiling tokio-stream v0.1.16
[INFO] [stderr]    Compiling tonic-build v0.8.4
[INFO] [stderr]    Compiling async-stream v0.3.5
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling raw-cpuid v11.1.0
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling moka v0.12.8
[INFO] [stderr]    Compiling slog-async v2.8.0
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling hyper v0.14.30
[INFO] [stderr]    Compiling arrow-ipc v50.0.0
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine)
[INFO] [stderr]    Compiling quanta v0.12.3
[INFO] [stderr]    Compiling async-lock v3.4.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling arrow-json v50.0.0
[INFO] [stderr]    Compiling arrow-csv v50.0.0
[INFO] [stderr]    Compiling time v0.3.36
[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 crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling hyper-timeout v0.4.1
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling actix_derive v0.6.2
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling is-terminal v0.4.13
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]    Compiling take_mut v0.2.2
[INFO] [stderr]    Compiling triomphe v0.1.11
[INFO] [stderr]    Compiling tagptr v0.2.0
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.18
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling blink-alloc v0.3.1
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling arrow v50.0.0
[INFO] [stderr]    Compiling slog-term v2.9.1
[INFO] [stderr]    Compiling actix v0.13.1 (https://github.com/devillove084/actix.git#d0509d35)
[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 bumpalo v3.16.0
[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 option-ext v0.2.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling radix_trie v0.2.1
[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 derive_builder_macro v0.20.1
[INFO] [stderr]    Compiling fd-lock v4.0.2
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling tonic v0.8.3
[INFO] [stderr]    Compiling clap v4.5.17
[INFO] [stderr]    Compiling futures-async-stream v0.2.12
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling derive_builder v0.20.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling sqlparser v0.44.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling derive-new v0.6.0
[INFO] [stderr]    Compiling itertools v0.12.1
[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 predicates-core v1.0.8
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling libtest-mimic v0.7.3
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling termtree v0.4.1
[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 glob v0.3.1
[INFO] [stderr]    Compiling similar v2.6.0
[INFO] [stderr]    Compiling predicates-tree v1.0.11
[INFO] [stderr]    Compiling predicates v3.1.2
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage_engine/src/db_impl/template_impl.rs:858:28
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]     |                            ^^^^^ the lifetime is elided here         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/storage_engine/src/db_impl/template_impl.rs:1147:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 1148 |         mut c: Compaction<S::F, C>,
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling sqlplannertest v0.1.0 (https://github.com/risinglightdb/sqlplannertest-rs#b49c6457)
[INFO] [stderr]    Compiling fragile v2.0.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling tonic v0.11.0
[INFO] [stderr]    Compiling bincode v1.3.3
[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 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] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(hash_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `btree_extract_if` has been stable since 1.91.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(btree_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | #![feature(extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                           ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:189:44
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                            ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<'_, Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                                                   +++
[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 43s
[INFO] running `Command { std: "docker" "inspect" "84bce27d8b11de28b6c87b645d46bc336aac03b7697d604514a2afc1b268c94c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "84bce27d8b11de28b6c87b645d46bc336aac03b7697d604514a2afc1b268c94c", kill_on_drop: false }`
[INFO] [stdout] 84bce27d8b11de28b6c87b645d46bc336aac03b7697d604514a2afc1b268c94c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e5e1e498d8274d44574a4b5bbee6ed56fe875b2814916f895075df5f0d1fa6c2
[INFO] running `Command { std: "docker" "start" "-a" "e5e1e498d8274d44574a4b5bbee6ed56fe875b2814916f895075df5f0d1fa6c2", 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] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage_engine/src/db_impl/template_impl.rs:858:28
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]     |                            ^^^^^ the lifetime is elided here         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/storage_engine/src/db_impl/template_impl.rs:1147:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 1148 |         mut c: Compaction<S::F, C>,
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]      |                                    +++
[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 yansi v1.0.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner)
[INFO] [stderr]    Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine)
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling runtime v0.1.0 (/opt/rustwide/workdir/src/runtime)
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(hash_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `btree_extract_if` has been stable since 1.91.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(btree_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | #![feature(extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling test-case-macros v2.2.2
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(async_closure)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | #![feature(hash_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `btree_extract_if` has been stable since 1.91.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(btree_extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/runtime/src/lib.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | #![feature(extract_if)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> src/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] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                           ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:189:44
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                            ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<'_, Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:185:43
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                           ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:189:44
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<Option<Instance<C>>> {
[INFO] [stdout]     |                                            ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<'_, Option<Instance<C>>> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/runtime/src/consensus/epaxos/types.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<'_, Option<Vec<Arc<Notify>>>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage_engine/src/db_impl/template_impl.rs:858:28
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]     |                            ^^^^^ the lifetime is elided here         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/storage_engine/src/db_impl/template_impl.rs:1147:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 1148 |         mut c: Compaction<S::F, C>,
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1149 |     ) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stdout]      |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 36.67s
[INFO] running `Command { std: "docker" "inspect" "e5e1e498d8274d44574a4b5bbee6ed56fe875b2814916f895075df5f0d1fa6c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e5e1e498d8274d44574a4b5bbee6ed56fe875b2814916f895075df5f0d1fa6c2", kill_on_drop: false }`
[INFO] [stdout] e5e1e498d8274d44574a4b5bbee6ed56fe875b2814916f895075df5f0d1fa6c2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1ef7943ee607160a564655b6596f83670ef95df5" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8eef4a74155ed59c9fe29e4d84fb1f39cc441bc6a6a68a30d837c7aa5a2e2684
[INFO] running `Command { std: "docker" "start" "-a" "8eef4a74155ed59c9fe29e4d84fb1f39cc441bc6a6a68a30d837c7aa5a2e2684", 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage_engine/src/db_impl/template_impl.rs:858:28
[INFO] [stderr]     |
[INFO] [stderr] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stderr]     |                            ^^^^^ the lifetime is elided here         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 858 |     fn make_room_for_write(&self, mut force: bool) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stderr]     |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/storage_engine/src/db_impl/template_impl.rs:1147:9
[INFO] [stderr]      |
[INFO] [stderr] 1147 |         &self,
[INFO] [stderr]      |         ^^^^^ the lifetime is elided here
[INFO] [stderr] 1148 |         mut c: Compaction<S::F, C>,
[INFO] [stderr] 1149 |     ) -> TemplateResult<MutexGuard<VersionSet<S, C>>> {
[INFO] [stderr]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1149 |     ) -> TemplateResult<MutexGuard<'_, VersionSet<S, C>>> {
[INFO] [stderr]      |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: `storage_engine` (lib) generated 3 warnings (run `cargo fix --lib -p storage_engine` to apply 2 suggestions)
[INFO] [stderr] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable
[INFO] [stderr]  --> src/runtime/src/lib.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | #![feature(async_closure)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(stable_features)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: the feature `hash_extract_if` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stderr]  --> src/runtime/src/lib.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | #![feature(hash_extract_if)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the feature `btree_extract_if` has been stable since 1.91.0 and no longer requires an attribute to enable
[INFO] [stderr]  --> src/runtime/src/lib.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | #![feature(btree_extract_if)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the feature `extract_if` has been stable since 1.87.0 and no longer requires an attribute to enable
[INFO] [stderr]  --> src/runtime/src/lib.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | #![feature(extract_if)]
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/runtime/src/consensus/epaxos/types.rs:185:43
[INFO] [stderr]     |
[INFO] [stderr] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<Option<Instance<C>>> {
[INFO] [stderr]     |                                           ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                           |
[INFO] [stderr]     |                                           the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 185 |     pub(crate) async fn get_instance_read(&self) -> RwLockReadGuard<'_, Option<Instance<C>>> {
[INFO] [stderr]     |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/runtime/src/consensus/epaxos/types.rs:189:44
[INFO] [stderr]     |
[INFO] [stderr] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<Option<Instance<C>>> {
[INFO] [stderr]     |                                            ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 189 |     pub(crate) async fn get_instance_write(&self) -> RwLockMappedWriteGuard<'_, Option<Instance<C>>> {
[INFO] [stderr]     |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/runtime/src/consensus/epaxos/types.rs:199:41
[INFO] [stderr]     |
[INFO] [stderr] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<Option<Vec<Arc<Notify>>>> {
[INFO] [stderr]     |                                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                         |
[INFO] [stderr]     |                                         the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 199 |     pub(crate) async fn get_notify_read(&self) -> RwLockReadGuard<'_, Option<Vec<Arc<Notify>>>> {
[INFO] [stderr]     |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: `runtime` (lib) generated 7 warnings (run `cargo fix --lib -p runtime` to apply 3 suggestions)
[INFO] [stderr] warning: `runtime` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: `storage_engine` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.60s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pro_macro-765709d4bff587b0)
[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-336c3e5760bd884f)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test named_struct ... ok
[INFO] [stdout] test unnamed_struct ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/query_engine-af536847a077b7f2)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test binder::binder_test::test_bind_select_binary_op_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_agg_func_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_limit_works ... ok
[INFO] [stdout] test binder::binder_test::test_bind_join_works ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_1_2_1_2_2_3_expects ... ok
[INFO] [stdout] test 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 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 binder::binder_test::test_bind_select_works ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_10_0_expects ... ok
[INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok
[INFO] [stdout] test executor::evaluator::evaluator_test::test_eval_column_for_type_cast ... ok
[INFO] [stdout] test executor::aggregate::hash_agg::tests::test_hash_agg_with_multiple_chunks ... ok
[INFO] [stdout] test executor::executor_test::test_executor_limit_works ... ok
[INFO] [stdout] test executor::evaluator::evaluator_test::test_eval_column_for_input_ref ... ok
[INFO] [stdout] test executor::executor_test::test_executor_hash_agg_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_simple_agg_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_left_join_filter_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_full_join_filter_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_full_join_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_filter_results ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_left_join_results ... ok
[INFO] [stdout] test binder::binder_test::test_bind_select_constant_works ... ok
[INFO] [stdout] test executor::executor_test::test_executor_order_works ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_1_2_1_2_2_3_expects ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_results ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_1_4_1_2_2_4_4_5_expects ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_right_join_results ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_10_0_expects ... ok
[INFO] [stdout] test executor::executor_test::test_executor_works ... ok
[INFO] [stdout] test executor::join::hash_join::tests::test_right_join_filter_results ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_0_10_0_6_expects ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_join_child_node_and_keep_left_right_order ... ok
[INFO] [stdout] test executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_add_plan_ref ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_children_at ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_matched_recursive ... ok
[INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_none ... 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::heuristic::graph::tests::test_graph_nodes_iter ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_to_plan ... ok
[INFO] [stdout] test optimizer::heuristic::optimizer::tests::test_hep_optimizer_works ... ok
[INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_column_ref_to_input_ref ... ok
[INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_column_ref_to_input_ref_when_join ... ok
[INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_limit_to_input_ref ... ok
[INFO] [stdout] test optimizer::physical_rewriter::physical_rewriter_test::test_physical_rewriter_works ... ok
[INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_two_tables ... ok
[INFO] [stdout] test optimizer::plan_node::plan_node_traits::tests::test_equals_two_dyn_plan_node ... ok
[INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_three_tables ... ok
[INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node_and_remove_unlink_nodes ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_into_table_scan ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_limit_project_transpose_rule ... ok
[INFO] [stdout] test optimizer::rules::util::test::is_subset_cols_return_true_when_right_contains_all_left_items ... ok
[INFO] [stdout] test optimizer::rules::util::test::is_superset_cols_return_true_when_right_contains_all_left_items_and_others ... 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 planner::operator::logical_filter::tests::test_logical_filter_split_predicates ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_distinct_works ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_with_joins_works ... ok
[INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_data ... ok
[INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_empty_data ... ok
[INFO] [stdout] test util::util_test::test_record_batch_to_string ... ok
[INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_through_join_rule ... ok
[INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_through_child_rule ... ok
[INFO] [stdout] test planner_test::planner_test::test_plan_select_works ... ok
[INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_non_join_rule ... 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_into_table_scan_rule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/query_engine-3ea1427531faa033)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/runtime-043ea61b246ed58f)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test consensus::id::tests::next_id ... ok
[INFO] [stdout] test consensus::time::tests::sim_now ... ok
[INFO] [stdout] test consensus::id::tests::atomic_next_id ... ok
[INFO] [stdout] test consensus::id::tests::dot_target ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sql_planner-6766c3bc7996634c)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sql_planner-8af78900ec11d4c3)
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sql_planner.rs (/opt/rustwide/target/debug/deps/sql_planner-0307d2826ccff85e)
[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 t1 from ../csv/t1.csv
[INFO] [stdout] create table t2 from ../csv/t2.csv
[INFO] [stdout] create table employee from ../csv/employee.csv
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] create table state from ../csv/state.csv
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] create table t2 from ../csv/t2.csv
[INFO] [stdout] create table state from ../csv/state.csv
[INFO] [stdout] create table employee from ../csv/employee.csv
[INFO] [stdout] create table state from ../csv/state.csv
[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] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t_2.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] create table t1 from ../csv/t1.csv
[INFO] [stdout] create table t2 from ../csv/t2.csv
[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] create table t2 from ../csv/t2.csv
[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: 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: 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 [t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(3): PlanRef(LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout]       LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]           LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 3
[INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(8): PlanRef(LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout]         LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]           LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 4
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 4 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Apply CombineFilter at node NodeIndex(3): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 2
[INFO] [stdout] Apply CombineFilter at node NodeIndex(2): PlanRef(LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > Cast(7 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) AND t1.c:Nullable(Int64) < Cast(2 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 3
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   LogicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       LogicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t_2.a:Nullable(Int64), t_2.b:Nullable(Int64), t_2.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalProject: exprs [(t_1.a:Nullable(Int64)) as t_2.a, (t_1.b:Nullable(Int64)) as t_2.b, (t_1.c:Nullable(Int64)) as t_2.c]
[INFO] [stdout]     PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c]
[INFO] [stdout]       PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 AND t1.c:Nullable(Int64) < 2
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(2)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(2)
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(4): PlanRef(LogicalLimit: limit Some(1), offset Some(2)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]     PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]       PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     PhysicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalFilter: expr t2.a:Nullable(Int64) > 2
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]     LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalOrder: order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalOrder: Order [BoundOrderBy { expr: t1.b:Nullable(Int64), asc: true }]
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(1): PlanRef(LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout]           LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 3
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Combine operators, iteration: 1
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: One-time simplification, iteration: 1
[INFO] [stdout] Apply SimplifyCasts at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + Cast(1 as Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64 + 1]
[INFO] [stdout]   PhysicalSimpleAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     PhysicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       PhysicalFilter: expr t1.a:Nullable(Int64) > 1
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout]   LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]     LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]       LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply RemoveNoopOperators at node NodeIndex(4): PlanRef(LogicalProject: exprs [Sum(t1.b:Nullable(Int64)):Int64]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalAgg: agg_funcs [Sum(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]   LogicalProject: exprs [t1.b:Nullable(Int64)]
[INFO] [stdout]     LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] 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] -----------------------------------------------------
[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 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] 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: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr 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 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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalProject: exprs [t2.b:Nullable(Int64)]
[INFO] [stdout]           LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]             LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 4
[INFO] [stdout] 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] -----------------------------------------------------
[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] 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] test combine-operators  ... ok
[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] 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] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit Some(1), offset Some(1)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2)
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalLimit: limit Some(1), offset None
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 2
[INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalLimit: limit Some(1), offset None
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   LogicalLimit: limit Some(1), offset None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1)
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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] -----------------------------------------------------
[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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] 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 [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] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) }
[INFO] [stdout]     LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64)
[INFO] [stdout]       LogicalTableScan: table: #t2, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)]
[INFO] [stdout]   LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None }
[INFO] [stdout]     LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)]
[INFO] [stdout]       LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id]
[INFO] [stdout]         LogicalTableScan: table: #department, columns: [id, department_name]
[INFO] [stdout]     LogicalTableScan: table: #state, columns: [state_code, state_name]
[INFO] [stdout] 
[INFO] [stdout] Batch: 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] Try next rule in batch ...
[INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] 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)]
[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] 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] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 2
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   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] 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] 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] 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] 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] 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] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)]
[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] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout] )
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   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] Batch: Predicate pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Limit pushdown, iteration: 1
[INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true
[INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 1
[INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b]
[INFO] [stdout]   LogicalJoin: type Cross, cond None
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]     LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1]
[INFO] [stdout]       LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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 PushProjectThroughChild at node NodeIndex(0): 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, 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: 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] 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)]
[INFO] [stdout]   LogicalLimit: limit None, offset Some(10)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalLimit: limit None, offset Some(10)
[INFO] [stdout]     PhysicalProject: exprs [t1.a:Nullable(Int64)]
[INFO] [stdout]       PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]         PhysicalTableScan: table: #t2, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] 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 PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b: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]   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] 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] 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), 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(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] Batch: Column pruning finished, reach_fixed_point: false
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Column pruning, iteration: 5
[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] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout]   LogicalFilter: expr t1.a:Nullable(Int64) > 2 AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64)
[INFO] [stdout]     LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)]
[INFO] [stdout]       LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None }
[INFO] [stdout]         LogicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout]         LogicalTableScan: table: #t2, columns: [a, b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: One-time simplification
[INFO] [stdout] -----------------------------------------------------
[INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] 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: 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] 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] 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] PhysicalProject: exprs [t.a:Nullable(Int64)]
[INFO] [stdout]   PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c]
[INFO] [stdout]     PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1
[INFO] [stdout]       PhysicalTableScan: table: #t1, columns: [a, b, c]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[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] test predicate-pushdown ... ok
[INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout] )
[INFO] [stdout] After apply plan tree:
[INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)]
[INFO] [stdout]   PhysicalCrossJoin: type Cross
[INFO] [stdout]     PhysicalTableScan: table: #t1, columns: [a]
[INFO] [stdout]     PhysicalProject: exprs [(Max(t1.b:Nullable(Int64)):Int64) as subquery_0.subquery_0_scalar_v0]
[INFO] [stdout]       PhysicalSimpleAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by []
[INFO] [stdout]         PhysicalTableScan: table: #t1, columns: [b]
[INFO] [stdout] 
[INFO] [stdout] Try next rule in batch ...
[INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false
[INFO] [stdout] 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.24s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 190 tests
[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_hit_and_miss ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_heavy_entries ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_zero_size_cache ... ok
[INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_empty ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_use_exceeds_cache_size ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_eviction_policy ... ok
[INFO] [stdout] test cache::new_lru_cache::tests::test_hit_and_miss ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/storage_engine-fe62511d3400a7a0)
[INFO] [stdout] test db_impl::tests::test_custom_comparator ... ok
[INFO] [stdout] test cache::lru_cache::tests::test_erase ... ok
[INFO] [stdout] test db_impl::tests::test_db_file_lock ... ok
[INFO] [stdout] test db_impl::tests::test_destroy_empty_dir ... ok
[INFO] [stdout] test db_impl::tests::test_dbopen_options ... 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_empty_key ... ok
[INFO] [stdout] test db_impl::tests::test_empty_db ... ok
[INFO] [stdout] test db_impl::tests::test_empty_value ... 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_ordered_by_levels ... 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_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_repeated_write_to_same_key ... 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_file_deleted_after_compaction ... 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_mutiple_key ... ok
[INFO] [stdout] test sstable::tests::test_simple_empty_key ... ok
[INFO] [stdout] test sstable::tests::test_single_key ... ok
[INFO] [stdout] test storage::file::tests::test_read_exact_at ... FAILED
[INFO] [stdout] test storage::mem::tests::test_mem_file_lock_unlock ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_file_read_at ... ok
[INFO] [stdout] test storage::mem::tests::test_mem_file_read_write ... ok
[INFO] [stdout] test storage::mem::tests::test_path_clean ... ok
[INFO] [stdout] test storage::mem::tests::test_reopen_file_and_read ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_basic ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_create ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_exists ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_list ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_mkdir_all ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_open ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_remove ... ok
[INFO] [stdout] test storage::mem::tests::test_storage_remove_dir ... ok
[INFO] [stdout] test util::coding::tests::test_decode_fixed_32 ... ok
[INFO] [stdout] test util::coding::tests::test_decode_fixed_64 ... ok
[INFO] [stdout] test util::coding::tests::test_encode_fixed_32 ... ok
[INFO] [stdout] test util::coding::tests::test_encode_fixed_64 ... ok
[INFO] [stdout] test sstable::tests::test_special_key ... ok
[INFO] [stdout] test util::coding::tests::test_put_fixed64 ... ok
[INFO] [stdout] test util::comparator::tests::test_bytewise_comparator_separator ... ok
[INFO] [stdout] test util::comparator::tests::test_bytewise_comparator_successor ... ok
[INFO] [stdout] test util::crc32::tests::test_extend ... ok
[INFO] [stdout] test util::crc32::tests::test_mask_unmask ... ok
[INFO] [stdout] test util::crc32::tests::test_standard_crc32_results ... ok
[INFO] [stdout] test util::crc32::tests::test_values ... ok
[INFO] [stdout] test util::hash::tests::test_signed_unsigned_issue ... ok
[INFO] [stdout] test util::varint::tests::test_put_and_get_prefixed_slice ... ok
[INFO] [stdout] test util::varint::tests::test_put_and_get_varint ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_aligned_eof ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_bad_length_at_end_is_ignored ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_bad_record_length ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_bad_record_type - should panic ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_end ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_first_block_trailer ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_last_block ... ok
[INFO] [stdout] test db_impl::tests::test_get_with_snapshot ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_middle_block ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_start ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_initial_offset_into_block_padding ... 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_past_end ... 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_one_off ... 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_second_ten_thousand ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_checksum_mismatch ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_check_read_third_start ... 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 wal::wal_record_format::tests::test_marginal_trailer ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer2 ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_missing_last_is_ignored ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_open_for_append ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_partial_last_is_ignored ... ok
[INFO] [stdout] test util::coding::tests::test_put_fixed32 ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_eof ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_error ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_read_write ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_short_trailer ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_skip_into_multi_record ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_truncated_trailing_record_is_ignored ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_first_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_full_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_last_type ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_middle_type ... ok
[INFO] [stdout] test memtable::arena::tests::test_allocate_mixed ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_random_read ... ok
[INFO] [stdout] test wal::wal_record_format::tests::test_many_blocks ... ok
[INFO] [stdout] test db_impl::tests::test_get_encounters_empty_level ... ok
[INFO] [stdout] test db_impl::tests::test_manual_compaction ... ok
[INFO] [stdout] test db_impl::tests::test_pick_correct_file ... ok
[INFO] [stdout] test db_impl::tests::test_multi_thread ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- storage::file::tests::test_read_exact_at stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'storage::file::tests::test_read_exact_at' (2634) 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:     0x5d0b845262a2 - std::backtrace_rs::backtrace::libunwind::trace::h786de35fecf3582f
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d0b845262a2 - std::backtrace_rs::backtrace::trace_unsynchronized::h4a7da1a2a64387f1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d0b845262a2 - std::sys::backtrace::_print_fmt::h6bd7d500070c788c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x5d0b845262a2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d82c1afff976903
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x5d0b8453834f - core::fmt::rt::Argument::fmt::hc4ce6d643d397690
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x5d0b8453834f - core::fmt::write::hb1e7ca88b6a3936e
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/fmt/mod.rs:1469:25
[INFO] [stdout]    6:     0x5d0b844f15a3 - std::io::default_write_fmt::haffd49d96f1984a8
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5d0b844f15a3 - std::io::Write::write_fmt::h027871c57cf57c01
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x5d0b844fd862 - std::sys::backtrace::BacktraceLock::print::ha2430613ee79d059
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x5d0b84502dcf - std::panicking::default_hook::{{closure}}::hdbd2db9e5c303cf6
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:301:27
[INFO] [stdout]   10:     0x5d0b84502c61 - std::panicking::default_hook::hed93c70cba5fdcf0
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:325:9
[INFO] [stdout]   11:     0x5d0b8434a06e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd0ee8b569efc6a07
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   12:     0x5d0b8434a06e - test::test_main_with_exit_callback::{{closure}}::hf10864b576ecd15d
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5d0b8450348f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a55ca34534c0d00
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2099:9
[INFO] [stdout]   14:     0x5d0b8450348f - std::panicking::panic_with_hook::h3862d766c2cec19b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:842:13
[INFO] [stdout]   15:     0x5d0b8450323a - std::panicking::panic_handler::{{closure}}::hb95eb402b5e28ee1
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:707:13
[INFO] [stdout]   16:     0x5d0b844fd9a9 - std::sys::backtrace::__rust_end_short_backtrace::hf73a26dc1835d85a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:174:18
[INFO] [stdout]   17:     0x5d0b844e5ded - __rustc[6ed5915ee467787]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:698:5
[INFO] [stdout]   18:     0x5d0b845402e0 - core::panicking::panic_fmt::h3454303eb8e6f7cd
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d0b8453f796 - core::result::unwrap_failed::h2380020e6daeb464
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1862:5
[INFO] [stdout]   20:     0x5d0b842a3506 - core::result::Result<T,E>::unwrap::h3b9ec9a7d4c4b8be
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5d0b842a3506 - storage_engine::storage::file::tests::test_read_exact_at::h7d4874a26e44322a
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:151:45
[INFO] [stdout]   22:     0x5d0b842a4087 - storage_engine::storage::file::tests::test_read_exact_at::{{closure}}::h420ffea3d7aac0c8
[INFO] [stdout]                                at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:150:28
[INFO] [stdout]   23:     0x5d0b8430c0d6 - core::ops::function::FnOnce::call_once::he2372071063db249
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d0b84349e4b - core::ops::function::FnOnce::call_once::ha729ee35d2fab541
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5d0b84349e4b - test::__rust_begin_short_backtrace::ha40f4db8207e1111
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5d0b8435decd - test::run_test_in_process::{{closure}}::hc1b77cda5d44f0f3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5d0b8435decd - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1dbea1de64785521
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5d0b8435decd - std::panicking::catch_unwind::do_call::hd5febe9affd5a1b3
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   29:     0x5d0b8435decd - std::panicking::catch_unwind::h51ea89627559b6f4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   30:     0x5d0b8435decd - std::panic::catch_unwind::hb8b8c2367cae3d66
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5d0b8435decd - test::run_test_in_process::ha5b55801407ea100
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5d0b8435decd - test::run_test::{{closure}}::h0b9d4072b527abf5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5d0b843373e4 - test::run_test::{{closure}}::hb1056b5731205822
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5d0b843373e4 - std::sys::backtrace::__rust_begin_short_backtrace::hb61ff5a34023c7ef
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   35:     0x5d0b8433ad1a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb0a83c0e8b353cff
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   36:     0x5d0b8433ad1a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb4f32cb008535298
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5d0b8433ad1a - std::panicking::catch_unwind::do_call::h16d110e4fc35789a
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:590:40
[INFO] [stdout]   38:     0x5d0b8433ad1a - std::panicking::catch_unwind::hea9118f355699c4b
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panicking.rs:553:19
[INFO] [stdout]   39:     0x5d0b8433ad1a - std::panic::catch_unwind::hf4b3c2a06d3f42f5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5d0b8433ad1a - std::thread::Builder::spawn_unchecked_::{{closure}}::h3f4cb733a52d53d5
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   41:     0x5d0b8433ad1a - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4052f0967b37caeb
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5d0b844f8d9f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ec433abd3f148b4
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   43:     0x5d0b844f8d9f - std::sys::thread::unix::Thread::new::thread_start::he514622d3d7ba65c
[INFO] [stdout]                                at /rustc/1ef7943ee607160a564655b6596f83670ef95df5/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   44:     0x7d6e71d12aa4 - <unknown>
[INFO] [stdout]   45:     0x7d6e71d9fa64 - 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.46s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p storage_engine --lib`
[INFO] running `Command { std: "docker" "inspect" "8eef4a74155ed59c9fe29e4d84fb1f39cc441bc6a6a68a30d837c7aa5a2e2684", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8eef4a74155ed59c9fe29e4d84fb1f39cc441bc6a6a68a30d837c7aa5a2e2684", kill_on_drop: false }`
[INFO] [stdout] 8eef4a74155ed59c9fe29e4d84fb1f39cc441bc6a6a68a30d837c7aa5a2e2684
