[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 try#028592fec99e54cc92def5a2a849c673b066dd93 for pr-146098 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdevillove084%2FArrowKV" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain [INFO] started tweaking git repo https://github.com/devillove084/ArrowKV [INFO] finished tweaking git repo https://github.com/devillove084/ArrowKV [INFO] tweaked toml for git repo https://github.com/devillove084/ArrowKV written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/devillove084/ArrowKV on toolchain 028592fec99e54cc92def5a2a849c673b066dd93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+028592fec99e54cc92def5a2a849c673b066dd93" "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" "+028592fec99e54cc92def5a2a849c673b066dd93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+028592fec99e54cc92def5a2a849c673b066dd93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5aafc27b22aab55bfb9bc2b2f9d44bee78664d0a9e598560f1ed13a8355fc806 [INFO] running `Command { std: "docker" "start" "-a" "5aafc27b22aab55bfb9bc2b2f9d44bee78664d0a9e598560f1ed13a8355fc806", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5aafc27b22aab55bfb9bc2b2f9d44bee78664d0a9e598560f1ed13a8355fc806", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5aafc27b22aab55bfb9bc2b2f9d44bee78664d0a9e598560f1ed13a8355fc806", kill_on_drop: false }` [INFO] [stdout] 5aafc27b22aab55bfb9bc2b2f9d44bee78664d0a9e598560f1ed13a8355fc806 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+028592fec99e54cc92def5a2a849c673b066dd93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 362a3c5c8cebbb82341b5099cc61345562ff44bfd8702d8586dd67dd0841145c [INFO] running `Command { std: "docker" "start" "-a" "362a3c5c8cebbb82341b5099cc61345562ff44bfd8702d8586dd67dd0841145c", 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 itoa v1.0.11 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling arrow-schema v50.0.0 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling lexical-util v0.8.5 [INFO] [stderr] Compiling unicode-width v0.1.13 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling prettyplease v0.1.25 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling axum-core v0.3.4 [INFO] [stderr] Compiling fastrand v2.1.1 [INFO] [stderr] Compiling lexical-write-integer v0.8.5 [INFO] [stderr] Compiling lexical-parse-integer v0.8.6 [INFO] [stderr] Compiling quote v1.0.37 [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 flatbuffers v23.5.26 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling half v2.4.1 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling lexical-core v0.8.5 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling axum v0.6.20 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling csv-core v0.1.11 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling event-listener v5.3.1 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling mio v1.0.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling event-listener-strategy v0.5.2 [INFO] [stderr] Compiling raw-cpuid v11.1.0 [INFO] [stderr] Compiling moka v0.12.8 [INFO] [stderr] Compiling slog-async v2.8.0 [INFO] [stderr] Compiling snap v1.1.1 [INFO] [stderr] Compiling async-lock v3.4.0 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling uuid v1.10.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling is-terminal v0.4.13 [INFO] [stderr] Compiling crossbeam-queue v0.3.11 [INFO] [stderr] Compiling triomphe v0.1.11 [INFO] [stderr] Compiling num v0.4.3 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling arrow-buffer v50.0.0 [INFO] [stderr] Compiling tempfile v3.12.0 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling tagptr v0.2.0 [INFO] [stderr] Compiling allocator-api2 v0.2.18 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling clap_builder v4.5.17 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling crossbeam-channel v0.4.4 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling arrow-data v50.0.0 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling quanta v0.12.3 [INFO] [stderr] Compiling blink-alloc v0.3.1 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling fd-lock v4.0.2 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling ordered-float v4.2.2 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling escape8259 v0.5.3 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling predicates-core v1.0.8 [INFO] [stderr] Compiling console v0.15.8 [INFO] [stderr] Compiling termtree v0.4.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 fragile v2.0.0 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling slog-term v2.9.1 [INFO] [stderr] Compiling env_filter v0.1.2 [INFO] [stderr] Compiling env_logger v0.11.5 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling async-trait v0.1.82 [INFO] [stderr] Compiling prost-derive v0.11.9 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling tokio v1.40.0 [INFO] [stderr] Compiling actix_derive v0.6.2 [INFO] [stderr] Compiling async-stream v0.3.5 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Compiling futures-async-stream-macro v0.2.12 [INFO] [stderr] Compiling rustyline v14.0.0 [INFO] [stderr] Compiling pin-project v1.1.5 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling derive-new v0.6.0 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling prost v0.11.9 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling prost-derive v0.12.6 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling prost-types v0.11.9 [INFO] [stderr] Compiling derive_builder_core v0.20.1 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Compiling futures-async-stream v0.2.12 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [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 arrow-array v50.0.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling prost-build v0.11.9 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling comfy-table v7.1.1 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling tonic-build v0.8.4 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling clap v4.5.17 [INFO] [stderr] Compiling derive_builder_macro v0.20.1 [INFO] [stderr] Compiling libtest-mimic v0.7.3 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling prost v0.12.6 [INFO] [stderr] Compiling derive_builder v0.20.1 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine) [INFO] [stderr] Compiling mockall v0.12.1 [INFO] [stderr] Compiling arrow-select v50.0.0 [INFO] [stderr] Compiling arrow-row v50.0.0 [INFO] [stderr] Compiling arrow-arith v50.0.0 [INFO] [stderr] Compiling tokio-util v0.7.12 [INFO] [stderr] Compiling tokio-io-timeout v1.2.0 [INFO] [stderr] Compiling tokio-stream v0.1.16 [INFO] [stderr] Compiling actix-rt v2.10.0 [INFO] [stderr] Compiling arrow-cast v50.0.0 [INFO] [stderr] Compiling arrow-ord v50.0.0 [INFO] [stderr] Compiling arrow-string v50.0.0 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling actix v0.13.1 (https://github.com/devillove084/actix.git#d0509d35) [INFO] [stderr] Compiling arrow-ipc v50.0.0 [INFO] [stderr] Compiling csv v1.3.0 [INFO] [stderr] Compiling sqlparser v0.44.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling anyerror v0.1.12 [INFO] [stderr] Compiling arrow-csv v50.0.0 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling hyper v0.14.30 [INFO] [stderr] Compiling arrow-json v50.0.0 [INFO] [stderr] Compiling sqlplannertest v0.1.0 (https://github.com/risinglightdb/sqlplannertest-rs#b49c6457) [INFO] [stderr] Compiling arrow v50.0.0 [INFO] [stderr] Compiling hyper-timeout v0.4.1 [INFO] [stderr] Compiling tonic v0.8.3 [INFO] [stderr] Compiling tonic v0.11.0 [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [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>> { [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>> { [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, [INFO] [stdout] 1149 | ) -> TemplateResult>> { [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>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [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.92.0-nightly 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>> { [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>> { [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>> { [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>> { [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>>> { [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>>> { [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 2m 14s [INFO] running `Command { std: "docker" "inspect" "362a3c5c8cebbb82341b5099cc61345562ff44bfd8702d8586dd67dd0841145c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "362a3c5c8cebbb82341b5099cc61345562ff44bfd8702d8586dd67dd0841145c", kill_on_drop: false }` [INFO] [stdout] 362a3c5c8cebbb82341b5099cc61345562ff44bfd8702d8586dd67dd0841145c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+028592fec99e54cc92def5a2a849c673b066dd93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1f637f833a5d135c366cb753003bfe181133c1ddc313e924b4e38f9f5ef90f1b [INFO] running `Command { std: "docker" "start" "-a" "1f637f833a5d135c366cb753003bfe181133c1ddc313e924b4e38f9f5ef90f1b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stdout] warning: the feature `async_closure` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/storage_engine/src/lib.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | #![feature(async_closure)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pro-macro v0.1.0 (/opt/rustwide/workdir/src/util/pro-macro) [INFO] [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>> { [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>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [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, [INFO] [stdout] 1149 | ) -> TemplateResult>> { [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>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling storage_engine v0.1.0 (/opt/rustwide/workdir/src/storage_engine) [INFO] [stderr] Compiling sql_planner v0.1.0 (/opt/rustwide/workdir/tests/sql_planner) [INFO] [stderr] Compiling 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.92.0-nightly 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] [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.92.0-nightly 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: 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>> { [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>> { [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>> { [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>> { [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>>> { [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>>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling test-case v2.2.2 [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>> { [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>> { [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>> { [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>> { [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>>> { [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>>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [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/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>> { [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>> { [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, [INFO] [stdout] 1149 | ) -> TemplateResult>> { [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>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 21.52s [INFO] running `Command { std: "docker" "inspect" "1f637f833a5d135c366cb753003bfe181133c1ddc313e924b4e38f9f5ef90f1b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1f637f833a5d135c366cb753003bfe181133c1ddc313e924b4e38f9f5ef90f1b", kill_on_drop: false }` [INFO] [stdout] 1f637f833a5d135c366cb753003bfe181133c1ddc313e924b4e38f9f5ef90f1b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+028592fec99e54cc92def5a2a849c673b066dd93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4b0b18fe1303907e91ff77b3a7600f5d04b8b53fb61cdcecda2cbd7db399315e [INFO] running `Command { std: "docker" "start" "-a" "4b0b18fe1303907e91ff77b3a7600f5d04b8b53fb61cdcecda2cbd7db399315e", 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>> { [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>> { [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, [INFO] [stderr] 1149 | ) -> TemplateResult>> { [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>> { [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: `storage_engine` (lib test) generated 3 warnings (3 duplicates) [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.92.0-nightly 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>> { [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>> { [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>> { [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>> { [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>>> { [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>>> { [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] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s [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.08s [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 execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_1_2_1_2_2_3_expects ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_1_4_1_2_2_4_4_5_expects ... ok [INFO] [stdout] test 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_constant_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_order_by_works ... ok [INFO] [stdout] test execution::volcano_executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok [INFO] [stdout] test executor::aggregate::hash_agg::tests::test_hash_agg_with_multiple_chunks ... 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_input_ref ... ok [INFO] [stdout] test binder::binder_test::test_bind_join_works ... ok [INFO] [stdout] test binder::binder_test::test_bind_select_limit_works ... ok [INFO] [stdout] test binder::binder_test::test_check_ambiguous_columns_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::limit::tests::limit::_0_2_2_4_4_6_1_4_1_2_2_4_4_5_expects ... ok [INFO] [stdout] test executor::evaluator::evaluator_test::test_eval_column_for_type_cast ... ok [INFO] [stdout] test executor::executor_test::test_executor_limit_works ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_left_join_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_full_join_results ... ok [INFO] [stdout] test executor::executor_test::test_executor_order_works ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_right_join_filter_results ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_inner_join_filter_results ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_6_10_0_expects ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_6_1_4_1_5_expects ... ok [INFO] [stdout] test executor::limit::tests::limit::_0_2_2_4_4_6_3_0_expects ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_add_plan_ref ... ok [INFO] [stdout] test executor::executor_test::test_executor_hash_agg_works ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_children_at ... 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_nodes_iter ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_right_join_results ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_unmatched_children_predicate ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_column_ref_to_input_ref ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_join_child_node_and_keep_left_right_order ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node ... 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_when_join ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_replace_node_and_remove_unlink_nodes ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_simple_aggregation_column_ref_to_input_ref ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_order_by_to_input_ref ... ok [INFO] [stdout] test optimizer::heuristic::graph::tests::test_graph_to_plan ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_none ... ok [INFO] [stdout] test executor::executor_test::test_executor_simple_agg_works ... ok [INFO] [stdout] test optimizer::plan_node::plan_node_traits::tests::test_equals_two_dyn_plan_node ... ok [INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_two_tables ... ok [INFO] [stdout] test optimizer::heuristic::matcher::tests::test_match_opt_expr_with_children_predicate_matched_recursive ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_into_table_scan ... ok [INFO] [stdout] test optimizer::rules::util::test::is_subset_cols_return_true_when_right_contains_all_left_items ... ok [INFO] [stdout] test optimizer::input_ref_rewriter::input_ref_rewriter_test::test_rewrite_limit_to_input_ref ... ok [INFO] [stdout] test optimizer::plan_node::logical_join::tests::test_join_output_schema_when_three_tables ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_push_limit_through_join_rule ... ok [INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_into_table_scan_rule ... ok [INFO] [stdout] test planner_test::planner_test::test_plan_select_works ... ok [INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_data ... ok [INFO] [stdout] test util::util_test::test_record_batch_to_string ... ok [INFO] [stdout] test storage::memory::storage_test::test_in_memory_storage_works_with_empty_data ... 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 optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_non_join_rule ... ok [INFO] [stdout] test optimizer::rules::util::test::is_superset_cols_return_true_when_right_contains_all_left_items_and_others ... ok [INFO] [stdout] test planner_test::planner_test::test_plan_select_with_joins_works ... ok [INFO] [stdout] test optimizer::rules::pushdown_limit::tests::test_limit_project_transpose_rule ... ok [INFO] [stdout] test optimizer::rules::column_pruning::tests::test_push_project_through_child_rule ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_left_join_filter_results ... ok [INFO] [stdout] test optimizer::physical_rewriter::physical_rewriter_test::test_physical_rewriter_works ... ok [INFO] [stdout] test executor::executor_test::test_executor_works ... ok [INFO] [stdout] test optimizer::rules::pushdown_predicates::tests::test_push_predicate_through_join_rule ... ok [INFO] [stdout] test executor::join::hash_join::tests::test_full_join_filter_results ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [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::atomic_next_id ... ok [INFO] [stdout] test consensus::id::tests::next_id ... ok [INFO] [stdout] test consensus::time::tests::sim_now ... ok [INFO] [stdout] test consensus::id::tests::dot_target ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sql_planner-6766c3bc7996634c) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sql_planner-8af78900ec11d4c3) [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 state from ../csv/state.csv [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] create table t1 from ../csv/t1.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t_2.b:Nullable(Int64) > Cast(7 as 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 PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a: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] LogicalFilter: expr t_1.b:Nullable(Int64) > Cast(7 as Int64) [INFO] [stdout] LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t_1.a, (t1.b:Nullable(Int64)) as t_1.b, (t1.c:Nullable(Int64)) as t_1.c] [INFO] [stdout] LogicalFilter: expr t1.c:Nullable(Int64) < Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Apply PushPredicateThroughNonJoin at node NodeIndex(3): PlanRef(LogicalFilter: expr t_1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] 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] 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] 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] ----------------------------------------------------- [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 3 [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 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] 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] test combine-operators ... ok [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] create table employee from ../csv/employee.csv [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] create table state from ../csv/state.csv [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] create table t1 from ../csv/t1.csv [INFO] [stdout] create table t2 from ../csv/t2.csv [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] 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] create table employee from ../csv/employee.csv [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] create table state from ../csv/state.csv [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] create table t1 from ../csv/t1.csv [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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(4): PlanRef(LogicalLimit: limit Some(1), offset Some(2) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:2,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] 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] 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] create table t2 from ../csv/t2.csv [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.b:Nullable(Int64) > 1 [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.a:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] 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] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [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] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [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: 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: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit Some(1), offset Some(1) [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a], bounds: (offset:0,limit:2) [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(7): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 2 [INFO] [stdout] Apply PushLimitThroughJoin at node NodeIndex(1): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushLimitIntoTableScan at node NodeIndex(6): PlanRef(LogicalLimit: limit Some(1), offset None [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(5): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] 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] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, last_name, state, job_title, salary, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(0): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), employee.department_id:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] LogicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] LogicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), department.department_name:Nullable(Utf8), state.state_name:Nullable(Utf8), state.state_code:Nullable(Utf8)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(employee.state:Nullable(Utf8), state.state_code:Nullable(Utf8))], filter: None } [INFO] [stdout] PhysicalProject: exprs [employee.id:Nullable(Int64), employee.first_name:Nullable(Utf8), employee.state:Nullable(Utf8), department.department_name:Nullable(Utf8)] [INFO] [stdout] PhysicalHashJoin: type Left, cond On { on: [(employee.department_id:Nullable(Int64), department.id:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #employee, columns: [id, first_name, state, department_id] [INFO] [stdout] PhysicalTableScan: table: #department, columns: [id, department_name] [INFO] [stdout] PhysicalTableScan: table: #state, columns: [state_code, state_name] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (t2.v1:Nullable(Int64)) as t1.max_b] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v1) as t2.v1] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] 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] Apply PushProjectThroughChild at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit Some(1), offset None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalLimit: limit Some(1), offset None [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a] [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [b], bounds: (offset:0,limit:1) [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] 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] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (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] Apply LimitProjectTranspose at node NodeIndex(0): PlanRef(LogicalLimit: limit None, offset Some(10) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Limit pushdown 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] ----------------------------------------------------- [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] 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)] [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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit None, offset Some(10) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] 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] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] LogicalLimit: limit 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] 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] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 2 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply 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] 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: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 4 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(1): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64)] [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] 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] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] 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] 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: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] 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] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply 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] 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] 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: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] PhysicalFilter: expr t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > 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 PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushPredicateThroughJoin at node NodeIndex(5): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), 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] 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(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 PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] ) [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), 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] 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] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(13): PlanRef(LogicalProject: exprs [t1.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [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 PushProjectThroughChild at node NodeIndex(12): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), 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] 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] Apply PushProjectIntoTableScan at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] 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] 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: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] After apply plan tree: [INFO] [stdout] 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] 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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 5 [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] test limit-pushdown ... ok [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: 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: 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: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Batch: 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 SimplifyCasts at node NodeIndex(10): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64), sub1.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), sub0.v0:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Cross, cond None [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a] [INFO] [stdout] LogicalProject: exprs [((Max(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub0.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Max(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] LogicalProject: exprs [((Min(t1.b:Nullable(Int64)):Int64) as t1.v0) as sub1.v0] [INFO] [stdout] LogicalAgg: agg_funcs [Min(t1.b:Nullable(Int64)):Int64] group_by [] [INFO] [stdout] LogicalTableScan: table: #t1, columns: [b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > 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: One-time simplification finished, reach_fixed_point: true [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [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] 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] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] 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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(9): PlanRef(LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(1 as Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: 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(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] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 4 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), 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] 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] 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] 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 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] 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] 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] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] Batch: Limit pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Limit pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 1 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), 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] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(6): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), subquery_0.subquery_0_scalar_v0:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] 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] Batch: Column pruning 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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [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] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(4): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] PhysicalHashJoin: type Inner, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: Some(t1.a:Nullable(Int64) > t2.a:Nullable(Int64)) } [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] PhysicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] PhysicalFilter: expr t2.a:Nullable(Int64) > 2 [INFO] [stdout] PhysicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] Batch: 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] ----------------------------------------------------- [INFO] [stdout] Start Batch: Predicate pushdown, iteration: 1 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), (subquery_0.subquery_0_scalar_v0:Nullable(Int64) + 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] Apply PushPredicateThroughJoin at node NodeIndex(1): PlanRef(LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] ) [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Predicate pushdown finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Predicate pushdown, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Limit pushdown, iteration: 1 [INFO] [stdout] 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] Batch: Limit pushdown finished, reach_fixed_point: true [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] 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(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] Apply PushProjectThroughChild at node NodeIndex(0): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 2 [INFO] [stdout] Apply PushProjectThroughChild at node NodeIndex(7): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t2.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Left, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] 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] 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] 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] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Apply PushProjectIntoTableScan at node NodeIndex(8): PlanRef(LogicalProject: exprs [t2.a:Nullable(Int64), t2.b:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] LogicalFilter: expr t1.a:Nullable(Int64) > Cast(2 as Int64) AND t1.a:Nullable(Int64) > t2.a:Nullable(Int64) [INFO] [stdout] LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64), t2.a:Nullable(Int64)] [INFO] [stdout] LogicalJoin: type Right, cond On { on: [(t1.a:Nullable(Int64), t2.b:Nullable(Int64))], filter: None } [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] LogicalTableScan: table: #t2, columns: [a, b] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: false [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Column pruning, iteration: 3 [INFO] [stdout] Batch: Column pruning finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Column pruning, after 3 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Combine operators, iteration: 1 [INFO] [stdout] Batch: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 1 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(2): PlanRef(LogicalProject: exprs [t1.a:Nullable(Int64), t1.b:Nullable(Int64), t1.c:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] 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: Combine operators finished, reach_fixed_point: true [INFO] [stdout] Fixed point reached for batch: Combine operators, after 2 iterations [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: One-time simplification, iteration: 1 [INFO] [stdout] Apply SimplifyCasts at node NodeIndex(0): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] LogicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] LogicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 [INFO] [stdout] LogicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] Batch: One-time simplification finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: One-time simplification [INFO] [stdout] ----------------------------------------------------- [INFO] [stdout] Start Batch: Rewrite physical plan, iteration: 1 [INFO] [stdout] Apply PhysicalRewriteRule at node NodeIndex(3): PlanRef(LogicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] ) [INFO] [stdout] After apply plan tree: [INFO] [stdout] PhysicalProject: exprs [t.a:Nullable(Int64)] [INFO] [stdout] PhysicalProject: exprs [(t1.a:Nullable(Int64)) as t.a, (t1.b:Nullable(Int64)) as t.b, (t1.c:Nullable(Int64)) as t.c] [INFO] [stdout] PhysicalFilter: expr t1.b:Nullable(Int64) > 7 AND t1.a:Nullable(Int64) > 1 [INFO] [stdout] PhysicalTableScan: table: #t1, columns: [a, b, c] [INFO] [stdout] [INFO] [stdout] Try next rule in batch ... [INFO] [stdout] 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] Batch: Rewrite physical plan finished, reach_fixed_point: false [INFO] [stdout] Max iteration 1 reached for batch: Rewrite physical plan [INFO] [stdout] test predicate-pushdown ... ok [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.16s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/storage_engine-fe62511d3400a7a0) [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_erase ... ok [INFO] [stdout] test cache::lru_cache::tests::test_eviction_policy ... ok [INFO] [stdout] test cache::lru_cache::tests::test_entries_are_pinned ... 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::lru_cache::tests::test_use_exceeds_cache_size ... ok [INFO] [stdout] test cache::bloom_filter_cache::tests::test_bloom_filter_empty ... ok [INFO] [stdout] test cache::new_lru_cache::tests::test_hit_and_miss ... ok [INFO] [stdout] test cache::lru_cache::tests::test_hit_and_miss ... 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 cache::tests::test_concurrent_insert ... ok [INFO] [stdout] test db_impl::tests::test_comparator_check ... ok [INFO] [stdout] test db_impl::tests::test_custom_comparator ... ok [INFO] [stdout] test db_impl::tests::test_iter_empty_db ... ok [INFO] [stdout] test db_impl::tests::test_empty_key ... ok [INFO] [stdout] test db_impl::tests::test_dbopen_options ... ok [INFO] [stdout] test db_impl::tests::test_iter_single ... ok [INFO] [stdout] test db_impl::tests::test_iter_multi ... 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_iter_multi_with_delete ... ok [INFO] [stdout] test db_impl::tests::test_iter_small_and_large_mix ... ok [INFO] [stdout] test db_impl::tests::test_put_delete_get ... ok [INFO] [stdout] test db_impl::tests::test_read_write ... ok [INFO] [stdout] test db_impl::tests::test_recover_with_large_log ... ok [INFO] [stdout] test db_impl::tests::test_iter_pins_ref ... ok [INFO] [stdout] test db_impl::tests::test_snapshot ... ok [INFO] [stdout] test db_impl::tests::test_sparse_merge ... ignored [INFO] [stdout] test iterator::tests::test_concatenated_iterator ... ok [INFO] [stdout] test iterator::tests::test_merging_iterator ... ok [INFO] [stdout] test logger::tests::test_default_logger ... ok [INFO] [stdout] test manager::filename::tests::test_generate_filename ... ok [INFO] [stdout] test manager::filename::tests::test_parse_filename ... ok [INFO] [stdout] test manager::snapshot::tests::test_append_new_snapshot ... ok [INFO] [stdout] test manager::snapshot::tests::test_gc ... ok [INFO] [stdout] test manager::snapshot::tests::test_new_is_empty ... ok [INFO] [stdout] test manager::snapshot::tests::test_oldest ... ok [INFO] [stdout] test manager::snapshot::tests::test_release ... ok [INFO] [stdout] test manager::version::find_file_tests::test_empty_file_set ... ok [INFO] [stdout] test manager::version::find_file_tests::test_find_file_with_single_file ... ok [INFO] [stdout] test manager::version::find_file_tests::test_find_files_with_various_files ... ok [INFO] [stdout] test manager::version::find_file_tests::test_multiple_null_boundaries ... ok [INFO] [stdout] test manager::version::find_file_tests::test_overlap_sequence_check ... ok [INFO] [stdout] test manager::version::find_file_tests::test_overlapping_files ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_comparator_name ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_last_sequence ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_log_number ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_next_file ... ok [INFO] [stdout] test manager::version_edit::tests::test_set_prev_log_number ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_disjoint_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_compaction_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_file_sets ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_empty_level_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_no_boundary_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_one_boundary_file ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_two_boundary_files ... ok [INFO] [stdout] test manager::version_set::add_boundary_tests::test_version_builder_accumulate_and_apply ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_empty_should_panic - should panic ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_fallback ... ok [INFO] [stdout] test db_impl::tests::test_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 db_impl::tests::test_mem_compact_into_max_level ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_concurrent_basic_big_value ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_empty ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_find_near ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_mem_alloc ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_cmp ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_separator ... ok [INFO] [stdout] test memtable::key_format::tests::test_icmp_successor ... ok [INFO] [stdout] test memtable::key_format::tests::test_internal_key_encode_decode ... ok [INFO] [stdout] test memtable::key_format::tests::test_pack_seq_and_type ... ok [INFO] [stdout] test memtable::key_format::tests::test_pack_seq_and_type_panic - should panic ... ok [INFO] [stdout] test memtable::tests::test_memtable_add_get ... ok [INFO] [stdout] test memtable::tests::test_memtable_iter ... ok [INFO] [stdout] test sstable::block::tests::test_add_inconsistent_key - should panic ... ok [INFO] [stdout] test sstable::block::tests::test_block_iter ... ok [INFO] [stdout] test sstable::block::tests::test_corrupted_block ... ok [INFO] [stdout] test sstable::block::tests::test_iter_big_entry_block ... ok [INFO] [stdout] test sstable::block::tests::test_new_block_from_bytes ... ok [INFO] [stdout] test sstable::block::tests::test_new_empty_block ... ok [INFO] [stdout] test sstable::block::tests::test_read_write ... ok [INFO] [stdout] test sstable::block::tests::test_simple_empty_key ... ok [INFO] [stdout] test sstable::block::tests::test_write_entries ... ok [INFO] [stdout] test sstable::block::tests::test_write_restarts ... ok [INFO] [stdout] test sstable::filter_block::tests::test_empty_builder ... ok [INFO] [stdout] test sstable::filter_block::tests::test_multiple_chunk ... ok [INFO] [stdout] test sstable::filter_block::tests::test_single_chunk ... ok [INFO] [stdout] test sstable::table::tests::test_block_write_and_read ... ok [INFO] [stdout] test sstable::table::tests::test_build_empty_table_with_meta_block ... ok [INFO] [stdout] test sstable::table::tests::test_build_empty_table_without_meta_block ... ok [INFO] [stdout] test sstable::table::tests::test_table_add_consistency - should panic ... ok [INFO] [stdout] test sstable::table::tests::test_table_write_and_read ... ok [INFO] [stdout] test sstable::test_footer::test_encode_decode ... ok [INFO] [stdout] test sstable::test_footer::test_footer_corruption ... ok [INFO] [stdout] test sstable::tests::test_empty_harness ... ok [INFO] [stdout] test memtable::arena::tests::test_allocate_mixed ... ok [INFO] [stdout] test memtable::inlineskiplist::tests::test_concurrent_basic_small_value ... ok [INFO] [stdout] test sstable::tests::test_simple_empty_key ... ok [INFO] [stdout] test sstable::tests::test_special_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_single_key ... ok [INFO] [stdout] test util::coding::tests::test_put_fixed64 ... ok [INFO] [stdout] test sstable::tests::test_mutiple_key ... 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::comparator::tests::test_bytewise_comparator_separator ... ok [INFO] [stdout] test util::crc32::tests::test_values ... 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 util::hash::tests::test_signed_unsigned_issue ... 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_check_read_end ... 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_fourth_first_block_trailer ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_last_block ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_middle_block ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_fourth_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_past_end ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_initial_offset_into_block_padding ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_second_ten_thousand ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_third_one_off ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_third_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_checksum_mismatch ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_error_joins_records ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_fragmentation_records ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_check_read_start ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_marginal_trailer2 ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_missing_last_is_ignored ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_open_for_append ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_partial_last_is_ignored ... ok [INFO] [stdout] test db_impl::tests::test_get_from_versions ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_eof ... ok [INFO] [stdout] test db_impl::tests::test_iterate_over_empty_snapshot ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_write ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_read_error ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_short_trailer ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_truncated_trailing_record_is_ignored ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_skip_into_multi_record ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_full_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_last_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_middle_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_unexpected_first_type ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_many_blocks ... ok [INFO] [stdout] test util::coding::tests::test_put_fixed32 ... ok [INFO] [stdout] test db_impl::tests::test_db_reads_using_bloom_filter ... ok [INFO] [stdout] test wal::wal_record_format::tests::test_random_read ... ok [INFO] [stdout] test db_impl::tests::test_get_level_0_ordering ... ok [INFO] [stdout] test db_impl::tests::test_get_from_immutable_layer ... ok [INFO] [stdout] test db_impl::tests::test_get_with_identical_snapshots ... ok [INFO] [stdout] test db_impl::tests::test_get_with_snapshot ... ok [INFO] [stdout] test db_impl::tests::test_get_ordered_by_levels ... ok [INFO] [stdout] test db_impl::tests::test_file_deleted_after_compaction ... ok [INFO] [stdout] test db_impl::tests::test_pick_correct_file ... ok [INFO] [stdout] test db_impl::tests::test_manual_compaction ... ok [INFO] [stdout] test db_impl::tests::test_get_encounters_empty_level ... ok [INFO] [stdout] test db_impl::tests::test_multi_thread ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- storage::file::tests::test_read_exact_at stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'storage::file::tests::test_read_exact_at' (2650) 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: 0x61e390bec1f2 - std::backtrace_rs::backtrace::libunwind::trace::hcbb09259ca22005c [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x61e390bec1f2 - std::backtrace_rs::backtrace::trace_unsynchronized::h0fac8c223cd6e456 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x61e390bec1f2 - std::sys::backtrace::_print_fmt::he5f2b5e0c66ce66e [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x61e390bec1f2 - ::fmt::haf29e060fb6137a9 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x61e390bfe75f - core::fmt::rt::Argument::fmt::h596977d9d4f722b0 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x61e390bfe75f - core::fmt::write::h0ee4d44b8e20572d [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x61e390bb6bc1 - std::io::default_write_fmt::h5f5bf04c08f51588 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x61e390bb6bc1 - std::io::Write::write_fmt::he99637cf0d3cbc1c [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x61e390bc3122 - std::sys::backtrace::BacktraceLock::print::h3db71735b2a2861b [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x61e390bc869f - std::panicking::default_hook::{{closure}}::h0168a26bb62ec69b [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x61e390bc8531 - std::panicking::default_hook::h7454a6fd0ab61b64 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x61e3909fcf6e - as core::ops::function::Fn>::call::h8dac224212939801 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/alloc/src/boxed.rs:1987:9 [INFO] [stdout] 12: 0x61e3909fcf6e - test::test_main_with_exit_callback::{{closure}}::h18346b0063635f4a [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x61e390bc8e0f - as core::ops::function::Fn>::call::h7e5d21d6123baaaf [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/alloc/src/boxed.rs:1987:9 [INFO] [stdout] 14: 0x61e390bc8e0f - std::panicking::panic_with_hook::h2d45a49bfd4e6ec4 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x61e390bc8bba - std::panicking::panic_handler::{{closure}}::h37f0f43a266cd34d [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:707:13 [INFO] [stdout] 16: 0x61e390bc3259 - std::sys::backtrace::__rust_end_short_backtrace::h1ed0bd8883e4d747 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x61e390bab00d - __rustc[92da9811a626c906]::rust_begin_unwind [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x61e390c06770 - core::panicking::panic_fmt::hc1117383da035bf0 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/panicking.rs:78:14 [INFO] [stdout] 19: 0x61e390c05c46 - core::result::unwrap_failed::h9521c83364d1c9d7 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/result.rs:1855:5 [INFO] [stdout] 20: 0x61e39081d256 - core::result::Result::unwrap::h007ac8df7d275d63 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/result.rs:1226:23 [INFO] [stdout] 21: 0x61e39081d256 - storage_engine::storage::file::tests::test_read_exact_at::h47f62d220baee8ba [INFO] [stdout] at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:151:45 [INFO] [stdout] 22: 0x61e39081dde7 - storage_engine::storage::file::tests::test_read_exact_at::{{closure}}::h7b1001d8b2a1ee14 [INFO] [stdout] at /opt/rustwide/workdir/src/storage_engine/src/storage/file.rs:150:28 [INFO] [stdout] 23: 0x61e3906feae6 - core::ops::function::FnOnce::call_once::h833629fc4bb2ef11 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x61e3909fcd2b - core::ops::function::FnOnce::call_once::habfa9d6a6bb4aa21 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x61e3909fcd2b - test::__rust_begin_short_backtrace::hc119b5350e87269b [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x61e390a12975 - test::run_test_in_process::{{closure}}::h47f2af3109a35895 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x61e390a12975 - as core::ops::function::FnOnce<()>>::call_once::h5dba888a302c7fc3 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 28: 0x61e390a12975 - std::panicking::catch_unwind::do_call::h245c3fdea830e686 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:590:40 [INFO] [stdout] 29: 0x61e390a12975 - std::panicking::catch_unwind::he88149d1cfc3a929 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:553:19 [INFO] [stdout] 30: 0x61e390a12975 - std::panic::catch_unwind::hd43a8ff20deb6d7a [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x61e390a12975 - test::run_test_in_process::hcf11d509449005e2 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x61e390a12975 - test::run_test::{{closure}}::heb13d4899a512502 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x61e3909e9154 - test::run_test::{{closure}}::h3e08e9adf8aad35e [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x61e3909e9154 - std::sys::backtrace::__rust_begin_short_backtrace::h773f9a01402fd17f [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 35: 0x61e3909eca5a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h408f0520947b97f2 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 36: 0x61e3909eca5a - as core::ops::function::FnOnce<()>>::call_once::h1162a01751e98fdc [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 37: 0x61e3909eca5a - std::panicking::catch_unwind::do_call::hf4224593c5d108e2 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:590:40 [INFO] [stdout] 38: 0x61e3909eca5a - std::panicking::catch_unwind::h4478d419d6ab8a26 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panicking.rs:553:19 [INFO] [stdout] 39: 0x61e3909eca5a - std::panic::catch_unwind::h1e472892204dcfec [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x61e3909eca5a - std::thread::Builder::spawn_unchecked_::{{closure}}::hd555321a5ac5351d [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 41: 0x61e3909eca5a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb9947c3c1cc735ed [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x61e390bbe39f - as core::ops::function::FnOnce>::call_once::hf699f0a3c139bc19 [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/alloc/src/boxed.rs:1973:9 [INFO] [stdout] 43: 0x61e390bbe39f - std::sys::thread::unix::Thread::new::thread_start::h2d5318761291e34a [INFO] [stdout] at /rustc/028592fec99e54cc92def5a2a849c673b066dd93/library/std/src/sys/thread/unix.rs:126:17 [INFO] [stdout] 44: 0x75e1077ddaa4 - [INFO] [stdout] 45: 0x75e10786aa34 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] storage::file::tests::test_read_exact_at [INFO] [stdout] [INFO] [stdout] test result: FAILED. 188 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out; finished in 40.49s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p storage_engine --lib` [INFO] running `Command { std: "docker" "inspect" "4b0b18fe1303907e91ff77b3a7600f5d04b8b53fb61cdcecda2cbd7db399315e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4b0b18fe1303907e91ff77b3a7600f5d04b8b53fb61cdcecda2cbd7db399315e", kill_on_drop: false }` [INFO] [stdout] 4b0b18fe1303907e91ff77b3a7600f5d04b8b53fb61cdcecda2cbd7db399315e