[INFO] fetching crate rdbms-playground 0.2.0...
[INFO] testing rdbms-playground-0.2.0 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate rdbms-playground 0.2.0 into /workspace/builds/worker-4-tc1/source
[INFO] removed /workspace/builds/worker-4-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-4-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate rdbms-playground 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rdbms-playground 0.2.0
[INFO] tweaked toml for crates.io crate rdbms-playground 0.2.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rdbms-playground 0.2.0 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rdbms-playground 0.2.0 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zip v5.1.1
[INFO] [stderr]   Downloaded rsqlite-vfs v0.1.0
[INFO] [stderr]   Downloaded hashlink v0.11.0
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.0
[INFO] [stderr]   Downloaded ratatui v0.30.0
[INFO] [stderr]   Downloaded rusqlite v0.39.0
[INFO] [stderr]   Downloaded ratatui-macros v0.7.0
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.0
[INFO] [stderr]   Downloaded ratatui-core v0.1.0
[INFO] [stderr]   Downloaded sysinfo v0.39.0
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.0
[INFO] [stderr]   Downloaded arboard v3.6.1
[INFO] [stderr]   Downloaded fake v5.1.0
[INFO] [stderr]   Downloaded clipboard-win v5.4.1
[INFO] [stderr]   Downloaded error-code v3.3.2
[INFO] [stderr]   Downloaded tokio v1.52.2
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.2
[INFO] [stderr]   Downloaded libsqlite3-sys v0.37.0
[INFO] [stderr]   Downloaded sqlite-wasm-rs v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8
[INFO] running `Command { std: "docker" "start" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling unsafe-libyaml-norway v0.2.15
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling deunicode v1.6.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde_norway v0.9.42
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling fake v5.1.0
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling tokio v1.52.2
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling sysinfo v0.39.0
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling zip v5.1.1
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling rdbms-playground v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.11s
[INFO] running `Command { std: "docker" "inspect" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling rdbms-playground v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 54.80s
[INFO] running `Command { std: "docker" "inspect" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rdbms_playground-2393cb11f70bc836)
[INFO] [stdout] 
[INFO] [stdout] running 1809 tests
[INFO] [stdout] test app::tests::a_bare_colon_is_not_recorded_in_history ... ok
[INFO] [stdout] test app::tests::add_column_client_side_notes_render_as_category_three_prose ... ok
[INFO] [stdout] test app::tests::auto_inserted_space_can_be_removed_with_backspace ... ok
[INFO] [stdout] test app::tests::backspace_at_start_is_a_noop ... ok
[INFO] [stdout] test app::tests::backspace_after_multi_tab_restores_original_in_one_keystroke ... ok
[INFO] [stdout] test app::tests::backspace_removes_last_char ... ok
[INFO] [stdout] test app::tests::backspace_removes_char_before_cursor ... ok
[INFO] [stdout] test app::tests::colon_one_shot_validity_is_clean_for_a_valid_query ... ok
[INFO] [stdout] test app::tests::advanced_mode_submit_with_all_values_for_serials_succeeds_no_preflight ... ok
[INFO] [stdout] test app::tests::advanced_command_recalls_bare_in_advanced_mode ... ok
[INFO] [stdout] test app::tests::bucket_b_multi_line_echo_renders_one_line_per_statement_beneath_ok ... ok
[INFO] [stdout] test app::tests::colon_prefix_in_simple_mode_evaluates_as_advanced_one_shot ... ok
[INFO] [stdout] test app::tests::change_column_dont_convert_renders_the_caveat_between_notes_and_structure ... ok
[INFO] [stdout] test app::tests::app_command_does_not_clear_the_hint_class ... ok
[INFO] [stdout] test app::tests::app_command_recalls_bare_even_when_typed_with_colon ... ok
[INFO] [stdout] test app::tests::add_column_command_with_unknown_type_reports_parse_error ... ok
[INFO] [stdout] test app::tests::copy_last_slices_from_the_most_recent_echo ... ok
[INFO] [stdout] test app::tests::advanced_mode_submit_of_form_b_value_count_mismatch_shows_preflight_note ... ok
[INFO] [stdout] test app::tests::bare_create_table_emits_friendly_parse_error ... ok
[INFO] [stdout] test app::tests::copy_on_empty_panel_notes_nothing_and_emits_no_action ... ok
[INFO] [stdout] test app::tests::copy_last_without_an_echo_notes_nothing ... ok
[INFO] [stdout] test app::tests::add_column_with_text_type_emits_execute_action ... ok
[INFO] [stdout] test app::tests::copy_all_emits_action_with_whole_panel_and_confirms ... ok
[INFO] [stdout] test app::tests::copy_bare_is_identical_to_copy_all ... ok
[INFO] [stdout] test app::tests::bucket_a_success_events_render_the_teaching_echo_beneath_ok ... ok
[INFO] [stdout] test app::tests::colon_one_shot_gives_sql_completion_the_stripped_view ... ok
[INFO] [stdout] test app::tests::copy_with_unknown_target_is_a_friendly_error ... ok
[INFO] [stdout] test app::tests::ctrl_a_moves_cursor_to_start ... ok
[INFO] [stdout] test app::tests::ctrl_c_returns_quit_action ... ok
[INFO] [stdout] test app::tests::ctrl_e_moves_cursor_to_end ... ok
[INFO] [stdout] test app::tests::ctrl_g_in_demo_mode_aliases_f1_on_empty_input ... ok
[INFO] [stdout] test app::tests::ctrl_g_in_demo_mode_aliases_f1_on_input ... ok
[INFO] [stdout] test app::tests::ctrl_g_outside_demo_mode_is_inert ... ok
[INFO] [stdout] test app::tests::ctrl_k_at_end_of_line_is_a_noop ... ok
[INFO] [stdout] test app::tests::ctrl_k_at_start_kills_the_whole_line ... ok
[INFO] [stdout] test app::tests::ctrl_k_kills_to_end_of_line ... ok
[INFO] [stdout] test app::tests::ctrl_u_at_end_kills_the_whole_line ... ok
[INFO] [stdout] test app::tests::ctrl_u_at_start_of_line_is_a_noop ... ok
[INFO] [stdout] test app::tests::ctrl_u_cancels_history_navigation ... ok
[INFO] [stdout] test app::tests::ctrl_o_cycles_navigation_focus ... ok
[INFO] [stdout] test app::tests::ctrl_u_kills_to_start_of_line ... ok
[INFO] [stdout] test app::tests::ctrl_w_at_start_is_a_noop ... ok
[INFO] [stdout] test app::tests::ctrl_w_cancels_history_navigation ... ok
[INFO] [stdout] test app::tests::ctrl_w_deletes_the_previous_word ... ok
[INFO] [stdout] test app::tests::ctrl_w_eats_trailing_whitespace_then_the_word ... ok
[INFO] [stdout] test app::tests::ctrl_w_handles_multibyte_words ... ok
[INFO] [stdout] test app::tests::ctrl_w_on_whitespace_only_clears_it ... ok
[INFO] [stdout] test app::tests::ctrl_w_only_deletes_back_to_the_cursor ... ok
[INFO] [stdout] test app::tests::cursor_handles_multibyte_chars ... ok
[INFO] [stdout] test app::tests::cursor_movement_clears_the_completion_memo ... ok
[INFO] [stdout] test app::tests::delete_at_end_is_a_noop ... ok
[INFO] [stdout] test app::tests::delete_removes_char_at_cursor ... ok
[INFO] [stdout] test app::tests::demo_badge_fires_over_an_open_modal ... ok
[INFO] [stdout] test app::tests::demo_badge_label_maps_the_invisible_keys ... ok
[INFO] [stdout] test app::tests::demo_badge_label_none_for_glyphs_and_excluded_chords ... ok
[INFO] [stdout] test app::tests::demo_caption_captures_over_an_open_modal ... ok
[INFO] [stdout] test app::tests::demo_caption_cleared_by_next_ordinary_keystroke ... ok
[INFO] [stdout] test app::tests::demo_caption_empty_commit_dismisses ... ok
[INFO] [stdout] test app::tests::demo_caption_other_keys_are_inert_while_capturing ... ok
[INFO] [stdout] test app::tests::demo_caption_toggle_captures_then_commits ... ok
[INFO] [stdout] test app::tests::demo_mode_off_makes_ctrl_rbracket_inert ... ok
[INFO] [stdout] test app::tests::dsl_failure_event_emits_journal_failure_carrying_the_source ... ok
[INFO] [stdout] test app::tests::dsl_failure_event_renders_through_friendly_translator ... ok
[INFO] [stdout] test app::tests::demo_mode_off_never_sets_a_badge ... ok
[INFO] [stdout] test app::tests::demo_mode_on_sets_badge_and_bumps_seq ... ok
[INFO] [stdout] test app::tests::dsl_success_event_records_table_view_and_appends_summary ... ok
[INFO] [stdout] test app::tests::dsl_failure_threads_facts_value_into_unique_insert_headline ... ok
[INFO] [stdout] test app::tests::effective_mode_reflects_persistent_mode_when_no_input ... ok
[INFO] [stdout] test app::tests::drop_table_command_emits_execute_action ... ok
[INFO] [stdout] test app::tests::dsl_failure_threads_facts_value_into_unique_update_headline ... ok
[INFO] [stdout] test app::tests::editing_during_history_navigation_cancels_it ... ok
[INFO] [stdout] test app::tests::dsl_failure_sets_hint_class_and_a_later_dsl_command_clears_it ... ok
[INFO] [stdout] test app::tests::esc_after_multi_tab_restores_original_in_one_keystroke ... ok
[INFO] [stdout] test app::tests::esc_clears_a_partly_typed_command ... ok
[INFO] [stdout] test app::tests::esc_on_empty_input_is_harmless ... ok
[INFO] [stdout] test app::tests::esc_after_multiple_tabs_restores_original_state_not_previous_cycle ... ok
[INFO] [stdout] test app::tests::empty_submission_is_a_noop ... ok
[INFO] [stdout] test app::tests::esc_clear_cancels_history_navigation ... ok
[INFO] [stdout] test app::tests::effective_mode_flips_to_one_shot_when_colon_typed_in_simple_mode ... ok
[INFO] [stdout] test app::tests::esc_exiting_nav_mode_does_not_clear_the_input ... ok
[INFO] [stdout] test app::tests::explain_success_event_renders_display_sql_and_plan_tree ... ok
[INFO] [stdout] test app::tests::esc_clear_resets_horizontal_scroll ... ok
[INFO] [stdout] test app::tests::f1_disambiguates_drop_forms ... ok
[INFO] [stdout] test app::tests::esc_exits_navigation_mode ... ok
[INFO] [stdout] test app::tests::f1_disambiguates_show_forms ... ok
[INFO] [stdout] test app::tests::dsl_success_renders_the_teaching_echo_beneath_ok ... ok
[INFO] [stdout] test app::tests::f1_on_empty_input_with_no_error_shows_getting_started ... ok
[INFO] [stdout] test app::tests::f1_on_create_table_renders_its_hint_block ... ok
[INFO] [stdout] test app::tests::f1_on_add_relationship_renders_the_relationship_block ... ok
[INFO] [stdout] test app::tests::f1_on_add_column_does_not_render_the_relationship_block ... ok
[INFO] [stdout] test app::tests::f1_on_update_renders_its_hint_block ... ok
[INFO] [stdout] test app::tests::f1_on_insert_input_renders_the_insert_hint_block ... ok
[INFO] [stdout] test app::tests::f1_on_an_app_command_renders_its_hint_block ... ok
[INFO] [stdout] test app::tests::f1_in_advanced_mode_renders_the_sql_insert_hint ... ok
[INFO] [stdout] test app::tests::f1_preserves_the_completion_memo ... ok
[INFO] [stdout] test app::tests::f1_is_a_read_only_overlay ... ok
[INFO] [stdout] test app::tests::demo_caption_backspace_edits_the_buffer ... ok
[INFO] [stdout] test app::tests::help_hint_describes_the_hint_command ... ok
[INFO] [stdout] test app::tests::hint_command_parses_to_app_hint ... ok
[INFO] [stdout] test app::tests::hint_after_error_emits_a_hint_without_panicking ... ok
[INFO] [stdout] test app::tests::hint_renders_the_foreign_key_error_block ... ok
[INFO] [stdout] test app::tests::history_recall_places_cursor_at_end ... ok
[INFO] [stdout] test app::tests::hint_command_with_no_recent_error_shows_getting_started ... ok
[INFO] [stdout] test app::tests::history_records_submitted_lines ... ok
[INFO] [stdout] test app::tests::history_skips_consecutive_duplicates ... ok
[INFO] [stdout] test app::tests::hint_renders_a_runtime_error_block ... ok
[INFO] [stdout] test app::tests::invalid_dsl_in_simple_mode_produces_parse_error_in_output ... ok
[INFO] [stdout] test app::tests::home_and_end_jump_to_extremes ... ok
[INFO] [stdout] test app::tests::input_validity_verdict_fires_for_colon_one_shot ... ok
[INFO] [stdout] test app::tests::input_validity_verdict_fires_in_advanced_mode_for_incomplete_input ... ok
[INFO] [stdout] test app::tests::input_scroll_offset_resets_when_the_buffer_is_replaced ... ok
[INFO] [stdout] test app::tests::input_validity_verdict_fires_warning_for_sql_predicate_in_advanced ... ok
[INFO] [stdout] test app::tests::input_validity_verdict_flags_a_broken_simple_command ... ok
[INFO] [stdout] test app::tests::input_validity_verdict_is_none_for_clean_input ... ok
[INFO] [stdout] test app::tests::left_arrow_at_zero_does_not_underflow ... ok
[INFO] [stdout] test app::tests::left_arrow_moves_cursor_back_one_char ... ok
[INFO] [stdout] test app::tests::mark_oldest_pending_echo_resolves_in_submission_order ... ok
[INFO] [stdout] test app::tests::messages_command_toggles_verbosity_and_reports ... ok
[INFO] [stdout] test app::tests::mode_command_via_one_shot_escape_persists_advanced ... ok
[INFO] [stdout] test app::tests::mode_command_changes_mode_and_emits_persist_action ... ok
[INFO] [stdout] test app::tests::navigation_mode_ignores_input_keys ... ok
[INFO] [stdout] test app::tests::nav_scroll_keys_move_only_the_focused_panel ... ok
[INFO] [stdout] test app::tests::note_output_viewport_clamps_a_drifted_scroll_value ... ok
[INFO] [stdout] test app::tests::new_output_resets_scroll_to_zero ... ok
[INFO] [stdout] test app::tests::page_up_at_top_of_buffer_does_not_shrink_visible_window ... ok
[INFO] [stdout] test app::tests::page_down_scrolls_output_back_to_bottom ... ok
[INFO] [stdout] test app::tests::one_shot_advanced_command_recalls_with_colon_in_simple_mode ... ok
[INFO] [stdout] test app::tests::page_up_caps_at_top_of_buffer ... ok
[INFO] [stdout] test app::tests::output_buffer_is_capped ... ok
[INFO] [stdout] test app::tests::page_up_scrolls_output_back ... ok
[INFO] [stdout] test app::tests::persistent_advanced_command_recalls_with_colon_back_in_simple_mode ... ok
[INFO] [stdout] test app::tests::redo_command_emits_prepare_redo ... ok
[INFO] [stdout] test app::tests::project_switched_event_restores_the_stored_mode ... ok
[INFO] [stdout] test app::tests::quit_command_returns_quit_action ... ok
[INFO] [stdout] test app::tests::replay_command_dispatches_replay_action_not_execute_dsl ... ok
[INFO] [stdout] test app::tests::nav_page_scroll_uses_the_panels_visible_rows ... ok
[INFO] [stdout] test app::tests::replay_completed_event_renders_skip_warnings ... ok
[INFO] [stdout] test app::tests::replay_completed_event_writes_ok_summary ... ok
[INFO] [stdout] test app::tests::replay_failed_event_renders_line_number_and_command_echo ... ok
[INFO] [stdout] test app::tests::replay_failed_with_line_zero_skips_command_echo ... ok
[INFO] [stdout] test app::tests::parse_error_echo_stays_pending_and_keeps_running_prefix ... ok
[INFO] [stdout] test app::tests::seed_success_renders_count_preview_and_advisory ... ok
[INFO] [stdout] test app::tests::resubmitting_a_recalled_command_does_not_strand_the_cursor ... ok
[INFO] [stdout] test app::tests::shift_tab_cycles_backward_starting_from_last ... ok
[INFO] [stdout] test app::tests::simple_command_recalls_bare_in_either_mode ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_form_b_extra_value_shows_only_one_advice_line ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_a_count_mismatch_does_not_dispatch ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_b_count_mismatch_does_not_dispatch ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_b_extra_value_teaches_serial_skip ... ok
[INFO] [stdout] test app::tests::down_arrow_returns_through_history_to_the_draft ... ok
[INFO] [stdout] test app::tests::down_arrow_with_no_history_navigation_is_a_noop ... ok
[INFO] [stdout] test app::tests::enter_in_advanced_mode_dispatches_select_with_advanced_tag ... ok
[INFO] [stdout] test app::tests::esc_with_live_completion_memo_undoes_rather_than_clears ... ok
[INFO] [stdout] test app::tests::f1_on_select_renders_the_select_hint ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_b_oversupply_beyond_total_teaches ... ok
[INFO] [stdout] test app::tests::help_list_includes_hint ... ok
[INFO] [stdout] test app::tests::messages_short_drops_the_hint_in_dsl_failure_render ... ok
[INFO] [stdout] test app::tests::right_arrow_moves_cursor_forward ... ok
[INFO] [stdout] test app::tests::seed_success_reports_a_cap ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_b_undersupply_does_not_dispatch ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_form_b_undersupply_teaches ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_pure_dsl_error_has_no_advanced_pointer ... ok
[INFO] [stdout] test app::tests::sql_delete_returning_renders_cascade_and_result_table ... ok
[INFO] [stdout] test app::tests::space_after_multi_candidate_tab_commits_the_choice ... ok
[INFO] [stdout] test app::tests::sql_delete_success_renders_count_and_cascade_summary ... ok
[INFO] [stdout] test app::tests::successful_command_resolves_its_echo_to_ok_with_no_summary_line ... ok
[INFO] [stdout] test app::tests::sql_update_success_shows_count_without_no_rows_band ... ok
[INFO] [stdout] test app::tests::submitting_an_unparseable_line_emits_journal_failure ... ok
[INFO] [stdout] test app::tests::submit_carries_the_three_way_effective_submission_mode ... ok
[INFO] [stdout] test app::tests::submit_resets_cursor_to_zero ... ok
[INFO] [stdout] test app::tests::tab_with_multi_candidates_inserts_without_space_and_creates_memo ... ok
[INFO] [stdout] test app::tests::typing_colon_after_other_chars_does_not_auto_insert_space ... ok
[INFO] [stdout] test app::tests::mode_command_switches_persistently ... ok
[INFO] [stdout] test app::tests::tab_at_word_boundary_inserts_next_expected_keyword ... ok
[INFO] [stdout] test app::tests::tab_with_unique_candidate_inserts_with_space_and_no_memo ... ok
[INFO] [stdout] test app::tests::polished_echo_carries_teaching_echo_kind_and_caveat_a_hint_span ... ok
[INFO] [stdout] test app::tests::simple_mode_submit_of_sql_construct_appends_advanced_pointer ... ok
[INFO] [stdout] test app::tests::tab_cycles_forward_through_multi_candidate_set ... ok
[INFO] [stdout] test app::tests::typing_moves_cursor_to_end_of_input ... ok
[INFO] [stdout] test app::tests::tab_with_no_candidates_is_a_noop ... ok
[INFO] [stdout] test app::tests::typing_inserts_at_cursor_position ... ok
[INFO] [stdout] test app::tests::tables_refreshed_event_replaces_cached_list ... ok
[INFO] [stdout] test app::tests::typing_accumulates_in_input_buffer ... ok
[INFO] [stdout] test app::tests::redo_modal_y_emits_redo ... ok
[INFO] [stdout] test app::tests::typing_colon_first_in_simple_mode_auto_inserts_a_space ... ok
[INFO] [stdout] test app::tests::relationships_refreshed_event_updates_the_field ... ok
[INFO] [stdout] test app::tests::mode_command_with_unknown_arg_errors ... ok
[INFO] [stdout] test app::tests::typing_colon_in_advanced_mode_does_not_auto_insert_space ... ok
[INFO] [stdout] test app::tests::undo_modal_esc_cancels_without_action ... ok
[INFO] [stdout] test app::tests::undo_modal_y_confirms_and_emits_undo ... ok
[INFO] [stdout] test app::tests::undo_prepared_opens_modal_naming_the_command ... ok
[INFO] [stdout] test app::tests::undo_command_emits_prepare_undo ... ok
[INFO] [stdout] test app::tests::undo_unavailable_notes_nothing_to_undo ... ok
[INFO] [stdout] test app::tests::typing_a_letter_clears_the_completion_memo ... ok
[INFO] [stdout] test app::tests::undo_succeeded_closes_modal_and_notes_command ... ok
[INFO] [stdout] test app::tests::undo_when_disabled_notes_and_emits_no_action ... ok
[INFO] [stdout] test app::tests::update_success_with_columns_renders_the_table ... ok
[INFO] [stdout] test app::tests::version_command_emits_the_cargo_version ... ok
[INFO] [stdout] test app::tests::up_arrow_recalls_most_recent_history_entry ... ok
[INFO] [stdout] test app::tests::unique_tab_then_another_unique_tab_chains_naturally ... ok
[INFO] [stdout] test app::tests::up_arrow_walks_backwards_through_history ... ok
[INFO] [stdout] test archive::tests::next_export_sequence_starts_at_one ... ok
[INFO] [stdout] test archive::tests::next_export_sequence_skips_taken_slots ... ok
[INFO] [stdout] test app::tests::insert_hint_block_renders_in_the_labelled_format ... ok
[INFO] [stdout] test archive::tests::resolve_import_target_appends_suffix_on_collision ... ok
[INFO] [stdout] test archive::tests::export_carries_the_stored_input_mode ... ok
[INFO] [stdout] test archive::tests::export_excludes_db_history_lock ... ok
[INFO] [stdout] test archive::tests::inspect_rejects_zip_with_multiple_top_folders ... ok
[INFO] [stdout] test app::tests::valid_dsl_in_simple_mode_emits_execute_action ... ok
[INFO] [stdout] test archive::tests::extract_into_refuses_existing_target ... ok
[INFO] [stdout] test app::tests::version_command_parses_to_app_version ... ok
[INFO] [stdout] test archive::tests::inspect_rejects_zip_without_project_yaml ... ok
[INFO] [stdout] test archive::tests::extract_into_unwraps_top_folder ... ok
[INFO] [stdout] test archive::tests::resolve_import_target_uses_direct_when_free ... ok
[INFO] [stdout] test cli::tests::demo_defaults_off ... ok
[INFO] [stdout] test cli::tests::demo_env_value_truthiness ... ok
[INFO] [stdout] test cli::tests::demo_flag_parses ... ok
[INFO] [stdout] test cli::tests::mode_flag_invalid_value ... ok
[INFO] [stdout] test cli::tests::data_dir_and_positional_can_coexist ... ok
[INFO] [stdout] test cli::tests::data_dir_flag_missing_value ... ok
[INFO] [stdout] test cli::tests::data_dir_flag_parses ... ok
[INFO] [stdout] test cli::tests::demo_flag_coexists_with_positional_path ... ok
[INFO] [stdout] test cli::tests::demo_flag_combines_with_resume_and_mode ... ok
[INFO] [stdout] test cli::tests::help_flag_long_form_sets_help ... ok
[INFO] [stdout] test cli::tests::help_flag_short_form_sets_help ... ok
[INFO] [stdout] test cli::tests::mode_flag_combines_with_resume ... ok
[INFO] [stdout] test cli::tests::no_undo_coexists_with_positional_path ... ok
[INFO] [stdout] test cli::tests::positional_path_parses ... ok
[INFO] [stdout] test cli::tests::positional_path_with_resume_errors_in_either_order ... ok
[INFO] [stdout] test cli::tests::resume_flag_parses ... ok
[INFO] [stdout] test cli::tests::resume_with_positional_path_errors ... ok
[INFO] [stdout] test cli::tests::theme_flag_dark ... ok
[INFO] [stdout] test cli::tests::theme_flag_light ... ok
[INFO] [stdout] test cli::tests::no_undo_flag_parses ... ok
[INFO] [stdout] test cli::tests::no_undo_defaults_off ... ok
[INFO] [stdout] test cli::tests::theme_flag_missing_value ... ok
[INFO] [stdout] test cli::tests::two_positional_paths_error ... ok
[INFO] [stdout] test cli::tests::no_args_yields_default_theme ... ok
[INFO] [stdout] test cli::tests::unknown_double_dash_flag_errors_even_with_positional ... ok
[INFO] [stdout] test cli::tests::mode_flag_missing_value ... ok
[INFO] [stdout] test cli::tests::mode_flag_simple_and_advanced ... ok
[INFO] [stdout] test cli::tests::theme_flag_invalid ... ok
[INFO] [stdout] test cli::tests::no_mode_flag_yields_none ... ok
[INFO] [stdout] test cli::tests::unknown_flag_errors ... ok
[INFO] [stdout] test clipboard::tests::deliver_still_calls_native_when_the_writer_errors ... ok
[INFO] [stdout] test cli::tests::version_text_carries_the_cargo_version ... ok
[INFO] [stdout] test cli::tests::version_defaults_off ... ok
[INFO] [stdout] test clipboard::tests::deliver_writes_osc52_and_calls_native_once ... ok
[INFO] [stdout] test clipboard::tests::osc52_base64_round_trips_the_payload ... ok
[INFO] [stdout] test archive::tests::round_trip_export_then_inspect ... ok
[INFO] [stdout] test clipboard::tests::osc52_sequence_is_the_canonical_escape ... ok
[INFO] [stdout] test cli::tests::version_long_flag_parses ... ok
[INFO] [stdout] test clipboard::tests::tmux_wraps_in_passthrough_and_doubles_the_esc ... ok
[INFO] [stdout] test completion::tests::at_token_boundary_offers_next_expected_keyword ... ok
[INFO] [stdout] test archive::tests::export_top_level_folder_is_project_name ... ok
[INFO] [stdout] test completion::tests::bare_expr_slot_offers_in_scope_aliases ... ok
[INFO] [stdout] test completion::tests::bare_expr_slot_narrows_aliases_by_partial_prefix ... ok
[INFO] [stdout] test clipboard::tests::emit_osc52_writes_the_sequence_to_the_sink ... ok
[INFO] [stdout] test completion::tests::alias_not_offered_after_a_qualifier_dot ... ok
[INFO] [stdout] test completion::tests::cast_is_not_offered_as_a_function_candidate ... ok
[INFO] [stdout] test completion::tests::complete_command_offers_no_candidates ... ok
[INFO] [stdout] test cli::tests::version_short_flag_parses ... ok
[INFO] [stdout] test completion::tests::cursor_at_word_boundary_has_empty_partial_prefix ... ok
[INFO] [stdout] test completion::tests::drop_in_advanced_mode_surfaces_all_merged_continuations ... ok
[INFO] [stdout] test completion::tests::drop_offers_all_five_subcommands_in_simple_mode ... ok
[INFO] [stdout] test completion::tests::flag_candidates_are_classified_as_flag_kind ... ok
[INFO] [stdout] test completion::tests::create_table_after_column_spec_offers_constraints ... ok
[INFO] [stdout] test completion::tests::flag_candidates_filter_by_partial_prefix ... ok
[INFO] [stdout] test completion::tests::drop_column_from_offers_only_current_table_columns ... ok
[INFO] [stdout] test completion::tests::function_candidates_absent_at_non_expression_slots ... ok
[INFO] [stdout] test completion::tests::dash_at_a_value_position_is_not_treated_as_a_flag ... ok
[INFO] [stdout] test completion::tests::identity_ranker_preserves_input_order ... ok
[INFO] [stdout] test completion::tests::function_candidate_deduped_against_a_like_named_column ... ok
[INFO] [stdout] test completion::tests::identifiers_come_before_keywords_in_grammar_order ... ok
[INFO] [stdout] test completion::tests::identifiers_precede_keywords_at_expression_position ... ok
[INFO] [stdout] test completion::tests::empty_input_offers_app_command_entry_keywords ... ok
[INFO] [stdout] test completion::tests::delete_filter_position_offers_where_and_all_rows ... ok
[INFO] [stdout] test completion::tests::insert_into_open_paren_offers_current_table_columns ... ok
[INFO] [stdout] test completion::tests::double_dash_replaces_both_dashes_on_accept ... ok
[INFO] [stdout] test completion::tests::empty_cache_at_table_slot_returns_no_candidates ... ok
[INFO] [stdout] test completion::tests::empty_input_offers_all_command_entry_keywords ... ok
[INFO] [stdout] test completion::tests::excluded_prefix_completes_to_target_columns ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_for_column_prefix_at_sql_expr_slot ... ok
[INFO] [stdout] test completion::tests::insert_into_offers_table_names_at_target_slot ... ok
[INFO] [stdout] test completion::tests::cursor_mid_keyword_replaces_only_the_partial_prefix ... ok
[INFO] [stdout] test completion::tests::insert_into_open_paren_does_not_offer_unrelated_columns ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_at_keyword_slot ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_for_function_prefix_at_sql_expr_slot ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_for_generator_prefix ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_when_cursor_not_at_partial_token ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_in_new_name_slot ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_fire_when_partial_matches_some_schema_entry ... ok
[INFO] [stdout] test completion::tests::invalid_ident_does_not_flag_a_table_alias_used_before_its_from_clause ... ok
[INFO] [stdout] test completion::tests::invalid_ident_fires_for_unknown_column_in_seed_set_and_column_fill ... ok
[INFO] [stdout] test completion::tests::invalid_ident_fires_for_unknown_table_prefix ... ok
[INFO] [stdout] test completion::tests::invalid_ident_fires_for_unknown_generator_after_as ... ok
[INFO] [stdout] test completion::tests::invalid_ident_fires_for_genuine_typo_at_sql_expr_slot ... ok
[INFO] [stdout] test completion::tests::last_completion_prev_idx_wraps_around ... ok
[INFO] [stdout] test completion::tests::mode_then_space_offers_simple_and_advanced ... ok
[INFO] [stdout] test completion::tests::keyword_wins_when_keyword_text_collides_with_schema_name ... ok
[INFO] [stdout] test completion::tests::last_completion_next_idx_wraps_around ... ok
[INFO] [stdout] test completion::tests::lookahead_with_partial_prefix_filters_correctly ... ok
[INFO] [stdout] test completion::tests::load_prefix_offers_load_only ... ok
[INFO] [stdout] test completion::tests::lookahead_multi_table_from_unions_columns ... ok
[INFO] [stdout] test completion::tests::numeric_literal_in_where_is_not_flagged_as_invalid_column ... ok
[INFO] [stdout] test completion::tests::lookahead_qualified_resolves_alias_with_from_after_cursor ... ok
[INFO] [stdout] test completion::tests::new_name_slot_offers_no_candidates_even_with_populated_cache ... ok
[INFO] [stdout] test completion::tests::lookahead_narrows_unqualified_completion_when_from_follows_cursor ... ok
[INFO] [stdout] test completion::tests::non_branching_punctuation_is_not_surfaced_as_candidate ... ok
[INFO] [stdout] test completion::tests::multi_candidate_position_offers_add_subcommands ... ok
[INFO] [stdout] test completion::tests::projection_slot_offers_known_function_candidates ... ok
[INFO] [stdout] test completion::tests::qualified_prefix_alias_narrows_through_alias ... ok
[INFO] [stdout] test completion::tests::projection_after_item_offers_alias_keyword ... ok
[INFO] [stdout] test completion::tests::qualified_prefix_cte_columns_narrow ... ok
[INFO] [stdout] test completion::tests::qualified_prefix_narrows_to_table_columns ... ok
[INFO] [stdout] test completion::tests::messages_space_offers_short_and_verbose_via_tail_expected ... ok
[INFO] [stdout] test completion::tests::one_to_n_filters_to_prefix_match ... ok
[INFO] [stdout] test completion::tests::open_paren_branching_punct_surfaces_after_insert_into_table ... ok
[INFO] [stdout] test completion::tests::open_paren_candidate_is_classified_as_punct_kind ... ok
[INFO] [stdout] test completion::tests::order_by_after_sort_item_offers_direction ... ok
[INFO] [stdout] test completion::tests::order_by_completion_omits_preceding_clause_keywords ... ok
[INFO] [stdout] test completion::tests::partial_keyword_is_case_insensitive ... ok
[INFO] [stdout] test completion::tests::save_prefix_offers_save ... ok
[INFO] [stdout] test completion::tests::show_offers_all_subcommands ... ok
[INFO] [stdout] test completion::tests::schema_cache_offers_relationship_names_at_relationship_slot ... ok
[INFO] [stdout] test completion::tests::save_space_offers_as_via_tail_expected ... ok
[INFO] [stdout] test completion::tests::partial_keyword_narrows_to_matching_entries ... ok
[INFO] [stdout] test completion::tests::schema_cache_offers_table_names_at_table_slot ... ok
[INFO] [stdout] test completion::tests::qualified_prefix_with_partial_filters_prefix ... ok
[INFO] [stdout] test completion::tests::schema_cache_offers_column_names_at_column_slot ... ok
[INFO] [stdout] test completion::tests::qualified_prefix_unresolved_qualifier_no_columns ... ok
[INFO] [stdout] test completion::tests::sql_expr_column_completion_inside_having ... ok
[INFO] [stdout] test completion::tests::shared_entry_word_drop_merges_all_continuations ... ok
[INFO] [stdout] test completion::tests::shared_entry_word_drop_partial_keeps_matching_continuation ... ok
[INFO] [stdout] test completion::tests::single_dash_offers_flags_not_keywords_and_replaces_the_dash ... ok
[INFO] [stdout] test completion::tests::ranker_can_filter_to_empty ... ok
[INFO] [stdout] test completion::tests::schema_candidates_filtered_by_partial_prefix ... ok
[INFO] [stdout] test completion::tests::ranker_can_reorder_candidates ... ok
[INFO] [stdout] test completion::tests::sql_function_candidates_carry_function_kind ... ok
[INFO] [stdout] test completion::tests::typing_name_fires_at_new_column_slot_with_next_token ... ok
[INFO] [stdout] test completion::tests::typing_name_does_not_fire_at_table_name_slot ... ok
[INFO] [stdout] test completion::tests::typing_name_does_not_fire_at_keyword_slot ... ok
[INFO] [stdout] test completion::tests::typed_dashes_offer_the_change_column_conversion_flags ... ok
[INFO] [stdout] test completion::tests::typing_name_yields_no_next_when_probe_succeeds ... ok
[INFO] [stdout] test completion::tests::type_slot_narrows_to_da_for_date_family ... ok
[INFO] [stdout] test completion::tests::type_slot_no_match_for_invalid_prefix ... ok
[INFO] [stdout] test completion::tests::type_slot_offers_full_type_vocabulary_when_partial_empty ... ok
[INFO] [stdout] test completion::tests::typed_dashes_still_offer_an_optional_trailing_flag ... ok
[INFO] [stdout] test completion::tests::typed_dashes_offer_the_optional_cascade_flag_on_drop_column ... ok
[INFO] [stdout] test completion::tests::sql_expr_column_completion_inside_where ... ok
[INFO] [stdout] test completion::tests::sql_expr_slot_offers_known_function_candidates ... ok
[INFO] [stdout] test completion::tests::typing_name_fires_when_partial_name_already_typed ... ok
[INFO] [stdout] test completion::tests::sql_function_candidates_filter_by_prefix ... ok
[INFO] [stdout] test completion::tests::value_literal_hint_does_not_fire_at_partial_prefix ... ok
[INFO] [stdout] test completion::tests::value_literal_hint_does_not_fire_at_keyword_slot ... ok
[INFO] [stdout] test completion::tests::update_where_offers_only_current_table_columns ... ok
[INFO] [stdout] test completion::tests::value_literal_slot_after_first_value_also_suppresses ... ok
[INFO] [stdout] test completion::tests::update_set_offers_only_current_table_columns ... ok
[INFO] [stdout] test completion::tests::value_literal_hint_fires_at_empty_value_slot ... ok
[INFO] [stdout] test completion::tests::update_set_value_slot_suppresses ... ok
[INFO] [stdout] test db::check_references_column_tests::detects_a_bare_identifier ... ok
[INFO] [stdout] test completion::tests::value_literal_slot_suppresses_keyword_candidates_at_empty_prefix ... ok
[INFO] [stdout] test db::check_references_column_tests::ignores_identifier_inside_a_string_literal ... ok
[INFO] [stdout] test completion::tests::where_value_slot_suppresses ... ok
[INFO] [stdout] test completion::tests::update_filter_position_offers_where_and_all_rows ... ok
[INFO] [stdout] test completion::tests::type_slot_narrows_to_prefix_matches ... ok
[INFO] [stdout] test completion::tests::type_slot_single_match_for_unique_prefix ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::does_not_match_a_longer_identifier ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::is_case_insensitive_on_the_qualifier ... ok
[INFO] [stdout] test db::check_references_column_tests::is_case_insensitive ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::rewrites_a_bare_qualifier ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::rewrites_a_quoted_qualifier ... ok
[INFO] [stdout] test completion::tests::value_literal_slot_with_partial_prefix_still_completes ... ok
[INFO] [stdout] test db::check_references_column_tests::ignores_a_longer_identifier_that_merely_contains_the_name ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::leaves_a_bare_name_that_is_not_a_qualifier ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::leaves_string_literals_untouched ... ok
[INFO] [stdout] test db::rewrite_check_table_qualifier_tests::unqualified_check_is_a_no_op ... ok
[INFO] [stdout] test db::tests::add_column_to_missing_table_returns_no_such_table ... ok
[INFO] [stdout] test db::tests::add_column_appends_to_existing_table ... ok
[INFO] [stdout] test db::tests::add_constraint_check_refused_when_rows_violate_it ... ok
[INFO] [stdout] test db::tests::add_column_serial_to_empty_table_succeeds ... ok
[INFO] [stdout] test db::tests::add_constraint_default_on_serial_column_is_refused ... ok
[INFO] [stdout] test db::tests::add_constraint_not_null_on_pk_column_is_refused ... ok
[INFO] [stdout] test db::tests::add_constraint_check_is_enforced_after_being_added ... ok
[INFO] [stdout] test db::tests::add_column_shortid_to_non_empty_table_auto_fills ... ok
[INFO] [stdout] test db::tests::add_column_check_constraint_is_enforced ... ok
[INFO] [stdout] test db::tests::add_constraint_unique_on_compound_pk_member_is_allowed ... ok
[INFO] [stdout] test db::tests::add_column_serial_emits_unique_constraint ... ok
[INFO] [stdout] test db::tests::add_constraint_not_null_refused_when_rows_are_null ... ok
[INFO] [stdout] test db::tests::add_column_with_default_fills_existing_rows ... ok
[INFO] [stdout] test db::tests::add_constraint_to_missing_column_errors ... ok
[INFO] [stdout] test db::tests::add_column_serial_to_non_empty_table_auto_fills ... ok
[INFO] [stdout] test db::tests::add_constraint_check_succeeds_when_data_satisfies_it ... ok
[INFO] [stdout] test db::tests::add_constraint_default_succeeds ... ok
[INFO] [stdout] test db::tests::add_index_rejects_missing_table ... ok
[INFO] [stdout] test db::tests::add_constraint_not_null_succeeds_on_clean_column ... ok
[INFO] [stdout] test db::tests::add_constraint_unique_on_single_column_pk_is_refused ... ok
[INFO] [stdout] test db::tests::add_index_appears_in_description ... ok
[INFO] [stdout] test db::tests::add_index_rejects_missing_column ... ok
[INFO] [stdout] test db::tests::add_index_auto_generates_name ... ok
[INFO] [stdout] test db::tests::add_column_for_each_value_type ... ok
[INFO] [stdout] test db::tests::add_constraint_unique_refused_on_duplicate_values ... ok
[INFO] [stdout] test db::tests::add_constraint_unique_succeeds_on_distinct_values ... ok
[INFO] [stdout] test db::tests::add_index_rejects_duplicate_name ... ok
[INFO] [stdout] test db::tests::add_index_rejects_redundant_column_set ... ok
[INFO] [stdout] test db::tests::add_index_composite_auto_name_joins_columns ... ok
[INFO] [stdout] test db::tests::add_not_null_column_without_default_to_populated_table_is_refused ... ok
[INFO] [stdout] test db::tests::add_not_null_column_without_default_to_empty_table_succeeds ... ok
[INFO] [stdout] test db::tests::add_relationship_without_create_fk_errors_when_column_missing ... ok
[INFO] [stdout] test db::tests::add_relationship_against_non_pk_errors ... ok
[INFO] [stdout] test db::tests::add_relationship_with_type_mismatch_errors_with_advice ... ok
[INFO] [stdout] test db::tests::add_serial_column_with_a_default_is_refused ... ok
[INFO] [stdout] test db::tests::add_relationship_appears_outbound_on_child ... ok
[INFO] [stdout] test db::tests::add_serial_column_with_a_check_is_refused ... ok
[INFO] [stdout] test db::tests::change_column_type_blob_target_refused_statically ... ok
[INFO] [stdout] test db::tests::add_relationship_with_create_fk_creates_the_column ... ok
[INFO] [stdout] test db::tests::add_relationship_appears_inbound_on_parent ... ok
[INFO] [stdout] test db::tests::add_relationship_with_user_supplied_name ... ok
[INFO] [stdout] test db::tests::add_relationship_with_duplicate_name_errors ... ok
[INFO] [stdout] test db::tests::add_unique_column_applies_the_constraint_via_rebuild ... ok
[INFO] [stdout] test db::tests::cascade_delete_propagates_to_children ... ok
[INFO] [stdout] test db::tests::change_column_type_no_op_to_same_type_errors ... ok
[INFO] [stdout] test db::tests::change_column_type_int_to_serial_refuses_duplicate_values ... ok
[INFO] [stdout] test db::tests::change_column_type_dont_convert_skips_client_side ... ok
[INFO] [stdout] test db::tests::change_column_type_int_to_bool_refuses_other_values ... ok
[INFO] [stdout] test db::tests::change_column_type_no_op_when_no_rows ... ok
[INFO] [stdout] test db::tests::change_column_type_text_to_serial_routes_via_int_hint ... ok
[INFO] [stdout] test db::tests::change_column_type_int_to_bool_with_zero_one_succeeds ... ok
[INFO] [stdout] test db::tests::change_column_type_refuses_lossy_by_default ... ok
[INFO] [stdout] test db::tests::change_column_type_int_to_serial_succeeds ... ok
[INFO] [stdout] test db::tests::change_column_type_pk_without_inbound_fk_allowed ... ok
[INFO] [stdout] test db::tests::change_column_type_pk_with_inbound_fk_allowed_when_target_type_preserved ... ok
[INFO] [stdout] test db::tests::change_column_type_outbound_fk_refused ... ok
[INFO] [stdout] test db::tests::change_column_type_refuses_incompatible_even_with_force ... ok
[INFO] [stdout] test db::tests::create_table_rejects_an_internal_name ... ok
[INFO] [stdout] test db::tests::change_column_type_refuses_relationship_column ... ok
[INFO] [stdout] test db::tests::create_table_check_constraint_is_enforced ... ok
[INFO] [stdout] test db::tests::create_table_duplicate_returns_already_exists ... ok
[INFO] [stdout] test db::tests::change_column_type_pk_with_inbound_fk_refused_when_target_type_changes ... ok
[INFO] [stdout] test db::tests::change_column_type_int_to_serial_with_nulls_auto_fills ... ok
[INFO] [stdout] test db::tests::create_table_rejects_zero_columns ... ok
[INFO] [stdout] test db::tests::change_column_type_uniqueness_collision_on_pk_refused ... ok
[INFO] [stdout] test db::tests::change_column_type_text_to_shortid_with_nulls_auto_fills ... ok
[INFO] [stdout] test db::tests::create_table_with_pedagogically_unusual_pk_type_still_works ... ok
[INFO] [stdout] test db::tests::create_table_not_null_column_rejects_a_null_insert ... ok
[INFO] [stdout] test db::tests::create_table_default_applies_when_the_column_is_omitted ... ok
[INFO] [stdout] test db::tests::create_table_with_compound_pk_works ... ok
[INFO] [stdout] test db::tests::create_table_with_serial_pk_appears_in_list ... ok
[INFO] [stdout] test db::tests::create_table_with_serial_pk_describes_correctly ... ok
[INFO] [stdout] test db::tests::create_table_with_text_pk_works ... ok
[INFO] [stdout] test db::tests::describe_missing_table_returns_no_such_table ... ok
[INFO] [stdout] test db::tests::create_table_unique_column_rejects_a_duplicate_insert ... ok
[INFO] [stdout] test db::tests::add_unique_column_with_default_to_a_multi_row_table_is_refused ... ok
[INFO] [stdout] test db::tests::change_column_type_force_conversion_accepts_lossy ... ok
[INFO] [stdout] test db::tests::add_not_null_column_with_a_default_succeeds_on_a_populated_table ... ok
[INFO] [stdout] test db::tests::describe_surfaces_the_column_constraints ... ok
[INFO] [stdout] test db::tests::change_column_type_works_for_compatible_data ... ok
[INFO] [stdout] test db::tests::describe_surfaces_the_check_constraint ... ok
[INFO] [stdout] test db::tests::delete_with_where_removes_matching_rows ... ok
[INFO] [stdout] test db::tests::delete_with_between_filters_rows ... ok
[INFO] [stdout] test db::tests::drop_column_refuses_primary_key ... ok
[INFO] [stdout] test db::tests::delete_with_and_expression_filters_rows ... ok
[INFO] [stdout] test db::tests::delete_with_in_filters_rows ... ok
[INFO] [stdout] test db::tests::delete_with_like_filters_rows ... ok
[INFO] [stdout] test db::tests::drop_column_for_missing_column_errors ... ok
[INFO] [stdout] test db::tests::delete_with_not_expression_filters_rows ... ok
[INFO] [stdout] test db::tests::drop_nonexistent_table_returns_no_such_table ... ok
[INFO] [stdout] test db::tests::drop_child_table_cleans_relationship_metadata ... ok
[INFO] [stdout] test db::tests::delete_with_or_expression_filters_rows ... ok
[INFO] [stdout] test db::tests::drop_column_refuses_indexed_column_without_cascade ... ok
[INFO] [stdout] test db::tests::drop_table_removes_it_from_list ... ok
[INFO] [stdout] test db::tests::drop_index_unknown_name_errors ... ok
[INFO] [stdout] test db::tests::drop_column_cascade_drops_covering_index ... ok
[INFO] [stdout] test db::tests::drop_column_refuses_column_in_a_relationship ... ok
[INFO] [stdout] test db::tests::drop_constraint_absent_constraint_is_refused ... ok
[INFO] [stdout] test db::tests::drop_column_removes_column_and_data ... ok
[INFO] [stdout] test db::tests::drop_table_clears_metadata_so_recreate_starts_fresh ... ok
[INFO] [stdout] test db::tests::drop_index_by_name_removes_it ... ok
[INFO] [stdout] test db::tests::drop_index_by_columns_removes_it ... ok
[INFO] [stdout] test db::tests::drop_table_with_inbound_relationship_errors ... ok
[INFO] [stdout] test db::tests::explain_of_a_missing_table_is_an_error ... ok
[INFO] [stdout] test db::tests::drop_constraint_removes_not_null ... ok
[INFO] [stdout] test db::tests::drop_constraint_not_null_on_pk_is_refused ... ok
[INFO] [stdout] test db::tests::explain_display_sql_shows_the_implicit_order_by_for_limit ... ok
[INFO] [stdout] test db::tests::explain_sql_of_a_missing_table_is_an_error ... ok
[INFO] [stdout] test db::tests::explain_display_sql_inlines_literals_and_quotes_idents ... ok
[INFO] [stdout] test db::tests::explain_delete_does_not_remove_any_rows ... ok
[INFO] [stdout] test db::tests::explain_display_sql_writes_inequality_as_angle_brackets ... ok
[INFO] [stdout] test db::tests::format_real_display_keeps_whole_numbers_and_sign ... ok
[INFO] [stdout] test db::tests::format_real_display_passes_through_non_finite ... ok
[INFO] [stdout] test db::tests::format_real_display_preserves_clean_values_no_regression ... ok
[INFO] [stdout] test db::tests::format_real_display_rounds_to_fifteen_significant_figures ... ok
[INFO] [stdout] test db::tests::format_real_display_trims_ieee754_noise ... ok
[INFO] [stdout] test db::tests::drop_constraint_check_clears_the_constraint ... ok
[INFO] [stdout] test db::tests::explain_show_data_returns_a_scan_plan ... ok
[INFO] [stdout] test db::tests::drop_relationship_by_endpoints_works ... ok
[INFO] [stdout] test db::tests::explain_sql_display_sql_is_the_verbatim_query ... ok
[INFO] [stdout] test db::tests::explain_sql_delete_does_not_remove_any_rows ... ok
[INFO] [stdout] test db::tests::drop_relationship_by_name_clears_both_sides ... ok
[INFO] [stdout] test db::tests::explain_sql_update_does_not_change_any_data ... ok
[INFO] [stdout] test db::tests::explain_show_data_uses_an_index_when_one_exists ... ok
[INFO] [stdout] test db::tests::explain_sql_select_returns_a_scan_plan ... ok
[INFO] [stdout] test db::tests::list_names_for_new_name_short_circuits_to_empty ... ok
[INFO] [stdout] test db::tests::explain_sql_select_uses_an_index_when_one_exists ... ok
[INFO] [stdout] test db::tests::insert_explicit_columns_uses_user_values ... ok
[INFO] [stdout] test db::tests::insert_short_form_skips_serial_column ... ok
[INFO] [stdout] test db::tests::insert_with_type_mismatch_returns_invalid_value ... ok
[INFO] [stdout] test db::tests::explain_sql_insert_does_not_add_a_row ... ok
[INFO] [stdout] test db::tests::explain_sql_insert_from_select_returns_a_plan ... ok
[INFO] [stdout] test db::tests::explain_sql_with_cte_returns_a_plan ... ok
[INFO] [stdout] test db::tests::explain_update_does_not_change_any_data ... ok
[INFO] [stdout] test db::tests::insert_short_form_auto_generates_shortid ... ok
[INFO] [stdout] test db::tests::list_names_for_table_filters_internal_metadata_tables ... ok
[INFO] [stdout] test db::tests::list_names_for_column_returns_distinct_columns_alphabetised ... ok
[INFO] [stdout] test db::tests::fk_violation_returns_engine_classified_constraint_error ... ok
[INFO] [stdout] test db::tests::open_in_memory_succeeds ... ok
[INFO] [stdout] test db::tests::quoted_table_names_round_trip ... ok
[INFO] [stdout] test db::tests::list_tables_excludes_internal_metadata_table ... ok
[INFO] [stdout] test db::tests::list_names_for_table_returns_user_tables_alphabetised ... ok
[INFO] [stdout] test db::tests::query_data_renders_bools_as_words ... ok
[INFO] [stdout] test db::tests::read_schema_ignores_compound_unique_constraints ... ok
[INFO] [stdout] test db::tests::query_data_renders_null_as_none ... ok
[INFO] [stdout] test db::tests::render_value_keeps_full_precision_for_identity_grouping ... ok
[INFO] [stdout] test db::tests::read_schema_detects_single_column_unique ... ok
[INFO] [stdout] test db::tests::query_data_with_limit_caps_rows_by_primary_key ... ok
[INFO] [stdout] test db::tests::list_names_for_relationship_returns_named_relationships ... ok
[INFO] [stdout] test db::tests::schema_to_ddl_emits_unique_for_marked_column ... ok
[INFO] [stdout] test db::tests::query_data_with_where_filters_rows ... ok
[INFO] [stdout] test db::tests::query_data_with_where_and_limit_combines_both ... ok
[INFO] [stdout] test db::tests::insert_auto_fills_non_pk_serial_column_sequentially ... ok
[INFO] [stdout] test db::tests::insert_non_pk_serial_continues_past_explicit_value ... ok
[INFO] [stdout] test db::tests::rename_column_refuses_collision ... ok
[INFO] [stdout] test db::tests::rebuild_preserves_a_check_constraint ... ok
[INFO] [stdout] test dsl::action::tests::keyword_round_trip ... ok
[INFO] [stdout] test db::tests::rebuild_preserves_column_constraints ... ok
[INFO] [stdout] test dsl::action::tests::sql_clause_mapping ... ok
[INFO] [stdout] test dsl::action::tests::unknown_action_lists_alternatives ... ok
[INFO] [stdout] test dsl::action::tests::parsing_is_case_insensitive_and_whitespace_tolerant ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::advanced_explain_completion_offers_the_sql_verbs ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::bare_explain_is_a_parse_error ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_does_not_cover_ddl ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_delete_wraps_a_delete ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_does_not_cover_show_table ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_of_an_incomplete_update_is_a_parse_error ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_select_is_rejected_in_simple_mode ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_select_wraps_a_select_with_clean_sql ... ok
[INFO] [stdout] test db::tests::rename_column_propagates_to_relationship_metadata ... ok
[INFO] [stdout] test db::tests::update_with_all_rows_affects_everything ... ok
[INFO] [stdout] test db::tests::update_with_where_affects_only_matching_rows ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_show_data_still_uses_dsl_in_advanced ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_show_data_wraps_a_show_data ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_show_data_carries_where_and_limit_through ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_sql_insert_wraps_a_sql_insert ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_sql_update_wraps_a_sql_update_with_clean_sql ... ok
[INFO] [stdout] test db::tests::rebuild_table_preserves_indexes ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_sql_delete_wraps_a_sql_delete ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_column_parses_a_unique_constraint ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_column_parses_a_check_constraint ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_column_parses_its_constraint_suffix ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_with_cte_wraps_a_select ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_constraint_default_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_constraint_check_parses ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_update_with_all_rows_flag_falls_back_to_dsl_in_advanced ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_constraint_not_null_parses ... ok
[INFO] [stdout] test dsl::grammar::data::explain_tests::explain_update_wraps_an_update ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::create_table_parses_a_check_constraint ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::add_constraint_unique_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::an_unconstrained_create_table_still_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::check_with_a_parenthesised_sub_expression_parses ... ok
[INFO] [stdout] test db::tests::self_referential_cascade_counts_only_cascaded_rows ... ok
[INFO] [stdout] test db::tests::user_facing_types_round_trip_through_metadata ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::create_table_parses_a_numeric_default_on_a_compound_pk_member ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::drop_constraint_not_null_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::unique_on_a_single_column_pk_is_a_redundancy_error ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::unique_on_a_compound_pk_member_is_allowed ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_column_accepts_sql_type_alias ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_column_plain ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::not_null_on_a_pk_column_is_a_redundancy_error ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_column_with_default_and_check_capture_raw_text ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_foreign_key_named_and_bare ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_composite_unique ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_table_check_unnamed_and_named ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_primary_key_is_refused ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_drop_default_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_drop_not_null_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_gap_fill_does_not_steal_the_existing_actions ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_set_data_type_is_a_type_synonym ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_set_default_captures_raw_expr ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_type_accepts_sql_type_alias ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_is_advanced_only ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_type_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::drop_column ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::drop_constraint_by_name ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::four_branch_dispatch_still_routes_the_column_actions ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::internal_table_is_rejected_at_parse ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::named_unique_is_refused ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::rename_column ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::rename_table_does_not_steal_rename_column ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::rename_to_internal_target_refused_at_parse ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::six_branch_dispatch_still_routes_column_actions ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::type_discriminator_probe_column_named_type ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::if_not_exists_sets_the_flag ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::multi_column_index_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::named_create_index_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::create_table_and_create_index_each_dispatch_to_the_right_advanced_node ... ok
[INFO] [stdout] test db::tests::rename_column_refuses_identity_rename ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::unique_sets_the_flag ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_index_tests::drop_index_parses_as_sql_drop_index_in_advanced_mode ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::unnamed_create_index_leaves_name_none ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_create_index_tests::simple_create_table_dsl_still_parses_in_advanced_mode ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_index_tests::named_drop_index_in_simple_mode_is_the_dsl_command ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_index_tests::if_exists_sets_the_flag ... ok
[INFO] [stdout] test db::tests::rebuild_preserves_existing_data_through_relationship_change ... ok
[INFO] [stdout] test db::tests::rename_column_updates_schema_and_metadata ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_index_tests::positional_drop_index_falls_back_to_the_simple_node_in_advanced_mode ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_index_tests::drop_table_and_drop_index_each_dispatch_to_the_right_advanced_node ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_table_tests::drop_table_parses_as_sql_drop_table_in_advanced_mode ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::between_predicate_consumes_its_inner_and ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_table_tests::if_exists_sets_the_flag ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::builds_a_simple_comparison ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_table_tests::other_drops_fall_back_to_the_simple_node_in_advanced_mode ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_drop_table_tests::simple_drop_table_in_simple_mode_is_the_dsl_command ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::and_is_n_ary_and_flattens ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::in_predicate_collects_its_items ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::nested_parentheses_round_trip ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::builds_every_comparison_operator ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::like_predicate_with_and_without_not ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::case_insensitive_keywords ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::not_wraps_its_operand ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::is_null_predicate_with_and_without_not ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::or_binds_looser_than_and ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::parentheses_override_precedence ... ok
[INFO] [stdout] test dsl::grammar::expr::tests::string_and_keyword_literal_operands ... ok
[INFO] [stdout] test dsl::grammar::hint_key_tests::every_command_form_has_a_tier3_block ... ok
[INFO] [stdout] test dsl::grammar::hint_key_tests::every_runtime_error_class_has_a_tier3_block ... ok
[INFO] [stdout] test dsl::grammar::hint_key_tests::hint_key_resolves_the_typed_form ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::check_captures_raw_inner_sql_text ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::column_check_and_table_check_route_separately ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::column_level_primary_key_populates_pk ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::composite_unique_collected_as_constraint ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::default_captures_raw_sql_text ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::check_with_nested_parens_captures_balanced_text ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::column_check_after_length_arg_stays_column_level ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::bare_inline_reference_has_no_parent_column ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::inline_reference_captured ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::default_expression_stops_before_following_constraint ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::double_precision_maps_to_real ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::if_not_exists_sets_the_flag ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::inline_reference_with_referential_actions ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::integer_primary_key_is_plain_int_not_serial ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::inline_fk_coexists_with_check_and_pk ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::minimal_columns_and_types ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::multiple_foreign_keys_collected_in_order ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::length_args_are_ignored ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::not_null_and_unique_attach_to_their_column ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::parenthesised_default_captures_expression_with_parens ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::redundant_constraints_deduped_off_sole_pk_column ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::simple_create_still_parses_as_dsl_in_both_modes ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::self_referencing_foreign_key_captured ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::referential_action_order_is_flexible ... ok
[INFO] [stdout] test dsl::grammar::hint_key_tests::every_cmd_hint_example_parses_in_its_mode ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::sql_create_is_advanced_only ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_check_after_table_unique ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::standard_sql_aliases_map_to_playground_types ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::single_column_table_unique_folds_into_the_column ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_check_before_a_later_column_is_table_level ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_check_after_table_primary_key ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_level_check_captured_as_raw_text ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_check_captures_balanced_nested_parens ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_level_fk_is_not_inline ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_level_foreign_key_with_constraint_name ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_level_compound_primary_key ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::table_level_foreign_key_captured ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::column_default_and_check_accepted ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::double_precision_two_word_type ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::integer_primary_key_parses ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::column_level_constraints ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::if_not_exists_admitted ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::minimal_single_column ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::multiple_columns ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::internal_target_table_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::foreign_keys_accepted ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::length_precision_args_accepted_and_ignored ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::standard_sql_type_aliases ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::table_level_primary_key_single_and_compound ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::structurally_incomplete_or_wrong_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::table_level_check_accepted ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::unknown_type_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::internal_target_table_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::delete_without_where_runs_across_all_rows ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::tests::table_level_unique_accepted ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::delete_with_where ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::structurally_incomplete_or_wrong_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::where_admits_subquery_r2 ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::returning_tail_admitted ... ok
[INFO] [stdout] test dsl::grammar::sql_delete::tests::where_admits_sql_expr ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::rename_table ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::bare_operands_are_expressions ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::arithmetic_and_precedence ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::create_table_parses_a_text_default ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::deeply_nested_parentheses_are_capped ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::exists_primary ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::case_searched_and_simple ... ok
[INFO] [stdout] test dsl::grammar::ddl::constraint_tests::drop_constraint_each_kind_parses ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::add_column_with_not_null_and_unique ... ok
[INFO] [stdout] test dsl::grammar::ddl::sql_alter_table_tests::alter_column_set_not_null_parses ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::function_calls ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::in_subquery_predicate ... ok
[INFO] [stdout] test dsl::grammar::sql_create_table::builder_tests::multiple_table_checks_preserve_declaration_order ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::in_value_list_still_works ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::qualified_ref_not_admitted_as_function ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::malformed_expressions_do_not_walk ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::qualified_ref_function_call_disambiguation ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::scalar_subquery_dispatches_against_paren_group ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::nested_parentheses_walk ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::scalar_subquery_as_primary ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::string_concatenation ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::qualified_ref_basic_shapes ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::subquery_recursion_through_compound ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::predicates_over_arithmetic_operands ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::the_predicate_set ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::explicit_column_list ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::incomplete_select_row_source_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::on_conflict_structurally_incomplete_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::multi_row_values ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::boolean_connectives_and_precedence ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::internal_target_table_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::select_row_source ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::structurally_incomplete_or_wrong_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::returning_tail_admitted ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::select_row_source_rejects_internal_from_table ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::select_row_source_with_column_list ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::comma_from_is_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::with_prefixed_select_row_source ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::chained_joins ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::compound_fragment_walks_with_or_without_with_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::all_modifier ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::single_row_values ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::bare_constant_select_with_no_from ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::bare_recursive_without_with_is_invalid ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cte_missing_as ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cross_join_with_no_on ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cte_missing_body ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cross_join ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::on_conflict_clause_admitted ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cte_body_references_qualified_columns ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::empty_projection_rejected ... ok
[INFO] [stdout] test db::tests::update_with_complex_where_updates_only_matching_rows ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::cte_with_column_list_rename ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::except_two_selects ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::from_with_table_alias ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::full_outer_join ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::group_by_multiple_columns ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::group_by_expression ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::distinct_modifier ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::exists_subquery_in_where_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::derived_table_in_from_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::having_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::group_by_single_column ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::dangling_set_op ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::inner_join_bare ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::in_subquery_in_where_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::inner_join_explicit ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::dangling_clauses ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::internal_table_as_cte_name_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::internal_table_in_cte_body_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::internal_table_in_from_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::internal_table_in_join_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::legacy_limit_comma_form_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::limit_only ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::left_outer_join ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::intersect_two_selects ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::join_with_table_aliases ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::limit_with_offset ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::missing_join_target ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::lateral_join_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::grammar::sql_insert::tests::value_expressions_admit_sql_expr ... ok
[INFO] [stdout] test dsl::grammar::sql_expr::tests::every_comparison_operator ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::mixed_projection_with_qualified_star ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::natural_join_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::multiple_ctes ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::non_recursive_cte_select_star ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::non_recursive_cte ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::order_by_column_position ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::order_by_multiple_items ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::nested_subqueries ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::nested_cte_body_with_union ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::order_by_single_column ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_bare_alias_does_not_swallow_from ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::order_by_with_direction ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::recursive_cte ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_function_calls ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::qualified_star_projection ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_with_as_alias ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::pathological_nesting_capped ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::right_outer_join ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_with_bare_alias ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_alias_mixed_forms ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::single_table_select_star ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::scalar_subquery_in_where_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::set_op_with_outer_order_by_and_limit ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::set_op_chain ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::single_column_projection ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::union_two_selects ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::trailing_semicolon_tolerated ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::qualified_ref_in_where_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::using_clause_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::subquery_in_projection ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::internal_target_table_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::returning_tail_admitted ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::assignment_rhs_admits_sql_expr ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::no_where_runs_across_all_rows ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::multi_assignment ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::values_row_source_rejected ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_bare_alias_does_not_swallow_where_or_group_etc ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::projection_expression_with_arithmetic ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::where_clause ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::union_all_two_selects ... ok
[INFO] [stdout] test dsl::grammar::sql_select::tests::window_function_rejected ... ok
[INFO] [stdout] test dsl::grammar::usage_key_tests::a_bare_multi_form_entry_word_resolves_to_no_single_form ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::single_assignment_with_where ... ok
[INFO] [stdout] test dsl::grammar::sql_update::tests::structurally_incomplete_or_wrong_rejected ... ok
[INFO] [stdout] test dsl::grammar::usage_key_tests::a_single_form_command_resolves_to_its_one_key ... ok
[INFO] [stdout] test dsl::grammar::usage_key_tests::multi_form_commands_resolve_to_the_typed_form ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_accepts_table_alone ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_accepts_bare_table_name ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_simple ... ok
[INFO] [stdout] test dsl::parser::tests::add_index_unnamed ... ok
[INFO] [stdout] test dsl::grammar::usage_key_tests::no_two_registered_commands_share_a_help_id ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_minimal ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_with_each_supported_type ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_repeated_clause_errors ... ok
[INFO] [stdout] test dsl::parser::tests::add_index_composite_columns ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_accepts_to_alone ... ok
[INFO] [stdout] test dsl::parser::tests::add_column_tolerates_whitespace_around_punctuation ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_create_fk_flag ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_name ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_on_delete ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_on_delete_set_null ... ok
[INFO] [stdout] test dsl::parser::tests::add_index_named ... ok
[INFO] [stdout] test dsl::parser::tests::advanced_ambiguous_delete_routes_to_sql ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_unknown_action_errors ... ok
[INFO] [stdout] test dsl::parser::tests::advanced_ambiguous_insert_routes_to_sql ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_both_actions_in_either_order ... ok
[INFO] [stdout] test dsl::parser::tests::add_relationship_with_name_actions_and_flag ... ok
[INFO] [stdout] test dsl::parser::tests::advanced_dsl_only_delete_falls_back_to_dsl ... ok
[INFO] [stdout] test dsl::parser::tests::advanced_ambiguous_update_routes_to_sql ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_with_force_conversion_flag ... ok
[INFO] [stdout] test dsl::parser::tests::advanced_internal_table_insert_is_rejected_not_fallen_back ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::parser::tests::bare_create_table_errors_with_helpful_message ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_with_compound_pk ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_pk_tolerates_whitespace ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_accepts_bare_identifiers ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_pk_accepts_any_user_type ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_rejects_both_flags ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_rejects_both_flags_in_either_order ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_simple ... ok
[INFO] [stdout] test dsl::parser::tests::change_column_with_dont_convert_flag ... ok
[INFO] [stdout] test dsl::parser::tests::delete_with_all_rows_flag ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_with_named_typed_pk ... ok
[INFO] [stdout] test dsl::parser::tests::delete_with_where ... ok
[INFO] [stdout] test dsl::parser::tests::create_table_with_pk_default_is_id_serial ... ok
[INFO] [stdout] test dsl::parser::tests::drop_column_accepts_bare_identifiers ... ok
[INFO] [stdout] test dsl::parser::tests::drop_column_cascade_flag ... ok
[INFO] [stdout] test dsl::parser::tests::drop_column_simple ... ok
[INFO] [stdout] test dsl::parser::tests::drop_index_by_columns ... ok
[INFO] [stdout] test dsl::parser::tests::drop_index_by_name ... ok
[INFO] [stdout] test dsl::parser::tests::drop_relationship_by_endpoints ... ok
[INFO] [stdout] test dsl::parser::tests::drop_relationship_by_name ... ok
[INFO] [stdout] test dsl::parser::tests::identifier_allows_underscores_and_digits_after_start ... ok
[INFO] [stdout] test dsl::parser::tests::drop_table_simple ... ok
[INFO] [stdout] test dsl::parser::tests::identifier_must_start_with_letter_or_underscore ... ok
[INFO] [stdout] test dsl::parser::tests::insert_accepts_mixed_value_kinds ... ok
[INFO] [stdout] test dsl::parser::tests::empty_input_is_an_explicit_empty_error ... ok
[INFO] [stdout] test dsl::parser::tests::insert_short_form_omitting_values_keyword ... ok
[INFO] [stdout] test dsl::parser::tests::insert_short_form_without_column_list ... ok
[INFO] [stdout] test dsl::parser::tests::insert_supports_negative_numbers ... ok
[INFO] [stdout] test dsl::parser::tests::replay_with_bare_relative_path ... ok
[INFO] [stdout] test dsl::parser::tests::rename_column_accepts_bare_identifiers ... ok
[INFO] [stdout] test dsl::parser::tests::replay_keyword_is_case_insensitive ... ok
[INFO] [stdout] test dsl::parser::tests::replay_with_bare_absolute_path ... ok
[INFO] [stdout] test dsl::parser::tests::replay_with_empty_quoted_path_errors ... ok
[INFO] [stdout] test dsl::parser::tests::insert_with_explicit_column_list ... ok
[INFO] [stdout] test dsl::parser::tests::replay_with_quoted_path_supports_escaped_quote ... ok
[INFO] [stdout] test dsl::parser::tests::replay_without_path_errors ... ok
[INFO] [stdout] test dsl::parser::tests::replay_with_quoted_path_supports_whitespace ... ok
[INFO] [stdout] test dsl::parser::tests::show_data_command ... ok
[INFO] [stdout] test dsl::parser::tests::rename_column_simple ... ok
[INFO] [stdout] test dsl::parser::tests::simple_sql_only_entry_word_points_at_advanced_mode ... ok
[INFO] [stdout] test dsl::parser::tests::simple_dsl_delete_stays_dsl ... ok
[INFO] [stdout] test dsl::parser::tests::string_literal_supports_escaped_single_quote ... ok
[INFO] [stdout] test dsl::parser::tests::simple_mode_data_commands_reject_internal_tables ... ok
[INFO] [stdout] test dsl::parser::tests::show_table_simple ... ok
[INFO] [stdout] test dsl::parser::tests::unknown_command_errors ... ok
[INFO] [stdout] test dsl::parser::tests::structural_error_for_change_column_with_swapped_args ... ok
[INFO] [stdout] test dsl::parser::tests::trailing_garbage_errors ... ok
[INFO] [stdout] test dsl::parser::tests::structural_error_for_show_data_without_arg ... ok
[INFO] [stdout] test dsl::parser::tests::update_with_all_rows_flag ... ok
[INFO] [stdout] test dsl::parser::tests::unknown_pk_type_errors_with_alternatives_listed ... ok
[INFO] [stdout] test dsl::parser::tests::unknown_type_errors_with_alternatives_listed ... ok
[INFO] [stdout] test dsl::parser::tests::simple_shared_word_with_sql_construct_is_a_dsl_parse_error ... ok
[INFO] [stdout] test dsl::parser::tests::update_with_where ... ok
[INFO] [stdout] test dsl::parser::tests::update_without_where_or_flag_errors ... ok
[INFO] [stdout] test dsl::shortid::tests::generated_ids_are_not_all_identical ... ok
[INFO] [stdout] test dsl::shortid::tests::generated_ids_have_default_length ... ok
[INFO] [stdout] test dsl::parser::tests::update_with_multiple_assignments ... ok
[INFO] [stdout] test dsl::shortid::tests::generated_ids_use_only_base58_alphabet ... ok
[INFO] [stdout] test dsl::shortid::tests::validate_accepts_well_formed_values ... ok
[INFO] [stdout] test dsl::shortid::tests::validate_rejects_ambiguous_glyphs ... ok
[INFO] [stdout] test dsl::sql_functions::tests::cast_is_excluded ... ok
[INFO] [stdout] test dsl::shortid::tests::validate_rejects_too_short_or_too_long ... ok
[INFO] [stdout] test dsl::types::tests::fk_target_type_is_identity_for_plain_value_types ... ok
[INFO] [stdout] test dsl::types::tests::blob_type_maps_to_blob_storage ... ok
[INFO] [stdout] test dsl::types::tests::fk_target_type_strips_auto_gen_semantics ... ok
[INFO] [stdout] test dsl::types::tests::keyword_round_trip_for_every_type ... ok
[INFO] [stdout] test dsl::sql_functions::tests::empty_prefix_matches_all ... ok
[INFO] [stdout] test dsl::types::tests::parsing_is_case_insensitive ... ok
[INFO] [stdout] test dsl::types::tests::serial_maps_to_integer_with_primary_key ... ok
[INFO] [stdout] test dsl::types::tests::shortid_maps_to_text ... ok
[INFO] [stdout] test dsl::types::tests::sql_resolver_does_not_accept_serial_aliases ... ok
[INFO] [stdout] test dsl::types::tests::sql_resolver_accepts_the_ten_canonical_keywords ... ok
[INFO] [stdout] test dsl::types::tests::sql_resolver_is_case_insensitive ... ok
[INFO] [stdout] test dsl::types::tests::sql_resolver_maps_standard_sql_aliases ... ok
[INFO] [stdout] test dsl::types::tests::sql_resolver_rejects_genuinely_unknown_names ... ok
[INFO] [stdout] test dsl::sql_functions::tests::list_has_no_duplicates ... ok
[INFO] [stdout] test dsl::sql_functions::tests::list_is_sorted_and_lowercase ... ok
[INFO] [stdout] test dsl::types::tests::temporal_and_decimal_types_map_to_text_storage ... ok
[INFO] [stdout] test dsl::sql_functions::tests::prefix_match_is_case_insensitive ... ok
[INFO] [stdout] test dsl::sql_functions::tests::unknown_prefix_does_not_match ... ok
[INFO] [stdout] test dsl::types::tests::unknown_type_lists_expected_alternatives ... ok
[INFO] [stdout] test dsl::tests::echo_prefix_matches_catalog_template ... ok
[INFO] [stdout] test dsl::types::tests::unknown_type_message_lists_all_ten ... ok
[INFO] [stdout] test dsl::types::tests::all_ten_types_are_present_and_distinct ... ok
[INFO] [stdout] test dsl::value::tests::blob_inserts_are_explicitly_unsupported_for_now ... ok
[INFO] [stdout] test dsl::value::tests::bool_for_bool_column_maps_to_zero_or_one ... ok
[INFO] [stdout] test dsl::value::tests::date_iso_only ... ok
[INFO] [stdout] test dsl::value::tests::datetime_iso_only ... ok
[INFO] [stdout] test dsl::value::tests::date_range_check ... ok
[INFO] [stdout] test dsl::value::tests::shortid_validation_runs_on_text_for_shortid_column ... ok
[INFO] [stdout] test dsl::value::tests::string_for_int_column_is_type_mismatch ... ok
[INFO] [stdout] test dsl::value::tests::null_binds_to_null_for_any_type ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::advanced_mode_dsl_only_entry_word_commits_dsl ... ok
[INFO] [stdout] test dsl::value::tests::integer_for_int_column ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::simple_mode_shared_word_commits_dsl_even_for_sql_input ... ok
[INFO] [stdout] test dsl::value::tests::text_for_text_column ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::simple_mode_sql_only_entry_word_is_this_is_sql ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::advanced_mode_sql_input_matches_sql ... ok
[INFO] [stdout] test dsl::walker::driver::tests::bare_alias_on_from_table_is_captured ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_body_bindings_do_not_leak_to_outer_scope ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::simple_mode_dsl_input_matches_dsl ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_body_aliases_do_not_leak_to_outer_scope ... ok
[INFO] [stdout] test dsl::value::tests::decimal_validates_numeric_string ... ok
[INFO] [stdout] test dsl::value::tests::non_integer_for_int_column_is_format_error ... ok
[INFO] [stdout] test dsl::walker::dispatch_3a_tests::advanced_mode_dsl_input_falls_back_to_dsl ... ok
[INFO] [stdout] test dsl::walker::driver::tests::as_alias_on_from_table_is_captured ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_col_list_renames_positionally ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_bare_ref_without_alias_uses_column_name ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_computed_with_alias ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_nested_with_in_cte_body ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_compound_takes_first_leg ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_qualified_ref ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_qualified_star_expands_one_binding ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_recursive_uses_non_recursive_leg ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_computed_no_alias_is_unnamed ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_star_expands_from_scope ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_sibling_b_sees_a_columns ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_name_pushes_placeholder_binding ... ok
[INFO] [stdout] test dsl::walker::driver::tests::from_scope_empty_for_select_without_from ... ok
[INFO] [stdout] test dsl::walker::driver::tests::join_with_aliases ... ok
[INFO] [stdout] test dsl::walker::driver::tests::projection_aliases_empty_when_no_aliases ... ok
[INFO] [stdout] test dsl::walker::driver::tests::resolve_dynamic_memoizes_identical_context ... ok
[INFO] [stdout] test dsl::walker::driver::tests::recursive_cte_name_visible_in_body ... ok
[INFO] [stdout] test dsl::walker::driver::tests::resolve_dynamic_distinct_context_does_not_share ... ok
[INFO] [stdout] test dsl::walker::driver::tests::projection_aliases_mixed_forms ... ok
[INFO] [stdout] test dsl::walker::driver::tests::scoped_subgrammar_baseline_frame_is_always_present ... ok
[INFO] [stdout] test dsl::walker::driver::tests::resolve_dynamic_cache_is_populated ... ok
[INFO] [stdout] test dsl::walker::driver::tests::multiple_ctes_push_in_order ... ok
[INFO] [stdout] test dsl::walker::driver::tests::projection_aliases_captured_via_as_form ... ok
[INFO] [stdout] test dsl::walker::driver::tests::join_pushes_a_second_binding ... ok
[INFO] [stdout] test dsl::walker::driver::tests::cte_harvest_bare_ref_with_alias ... ok
[INFO] [stdout] test dsl::walker::driver::tests::projection_aliases_captured_via_bare_form ... ok
[INFO] [stdout] test dsl::walker::driver::tests::scoped_subgrammar_walks_a_recursive_grammar ... ok
[INFO] [stdout] test dsl::walker::driver::tests::scoped_subgrammar_shares_depth_cap_with_subgrammar ... ok
[INFO] [stdout] test dsl::walker::driver::tests::single_from_table_pushes_one_binding ... ok
[INFO] [stdout] test dsl::walker::driver::tests::subgrammar_walks_a_recursive_grammar ... ok
[INFO] [stdout] test dsl::walker::driver::tests::subgrammar_depth_cap_allows_exactly_the_limit ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::advanced_double_precision_classified_as_type ... ok
[INFO] [stdout] test dsl::walker::driver::tests::three_way_join_pushes_three_bindings ... ok
[INFO] [stdout] test dsl::walker::driver::tests::subgrammar_depth_cap_rejects_pathological_nesting ... ok
[INFO] [stdout] test dsl::walker::driver::tests::subquery_bindings_do_not_leak_to_outer_scope ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::advanced_type_keywords_classified_as_type ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::bare_double_dash_classified_as_error ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::create_m2n_relationship_highlights_cleanly ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::empty_input_yields_no_runs ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::dsl_type_keyword_classified_as_type ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::flag_classified_via_fallback ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::entry_keyword_classified_as_keyword ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::sql_select_keywords_classified ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::full_command_walks_with_each_class ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::keyword_plus_identifier_via_walker ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::number_classified_via_fallback ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::punct_classified_via_fallback ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::seed_generator_name_highlighted_as_function ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::sql_expression_operators_classified_as_keywords ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::unknown_command_word_classified_by_byte_shape ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::sql_case_expression_keywords_classified ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::string_literal_classified ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::unknown_chars_classified_as_error ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::string_with_multi_byte_unicode_classified_as_string ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::sql_dml_keywords_classified ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::unterminated_string_classified_as_error_through_to_eof ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::trailing_tokens_after_partial_walk_are_byte_scanned ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::utf8_unknown_char_advances_one_codepoint ... ok
[INFO] [stdout] test dsl::walker::highlight::tests::whitespace_gaps_are_not_represented_as_runs ... ok
[INFO] [stdout] test dsl::walker::order_by_expected_set_tests::order_by_after_sort_item_offers_direction ... ok
[INFO] [stdout] test dsl::walker::order_by_expected_set_tests::order_by_still_offers_a_sort_item ... ok
[INFO] [stdout] test dsl::walker::order_by_expected_set_tests::order_by_excludes_preceding_clause_keywords ... ok
[INFO] [stdout] test dsl::walker::projection_before_from_tests::multi_projection_before_from_flags_only_unknowns ... ok
[INFO] [stdout] test dsl::walker::projection_before_from_tests::projection_before_from_resolves_via_eventual_from ... ok
[INFO] [stdout] test dsl::walker::projection_before_from_tests::projection_before_from_flags_unknown_column ... ok
[INFO] [stdout] test dsl::walker::tests::alias_in_inner_subquery_does_not_affect_outer_aliases ... ok
[INFO] [stdout] test dsl::walker::projection_before_from_tests::projection_without_from_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::alias_resolves_qualifier ... ok
[INFO] [stdout] test dsl::walker::tests::aliased_table_referenced_by_real_name_is_not_table_hint ... ok
[INFO] [stdout] test dsl::walker::tests::auto_column_overridden_fires_on_explicit_shortid ... ok
[INFO] [stdout] test dsl::walker::tests::bare_table_alias_in_projection_is_alias_hint ... ok
[INFO] [stdout] test dsl::walker::tests::auto_column_overridden_fires_on_explicit_serial ... ok
[INFO] [stdout] test dsl::walker::tests::bare_unaliased_table_used_as_column_is_table_hint ... ok
[INFO] [stdout] test dsl::walker::tests::ambiguous_bare_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::bare_table_alias_in_group_by_is_alias_hint_not_unknown_column ... ok
[INFO] [stdout] test dsl::walker::tests::auto_column_overridden_conflict_target_not_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::auto_column_overridden_silent_when_omitted ... ok
[INFO] [stdout] test dsl::walker::tests::compound_arity_inside_cte_body_detected ... ok
[INFO] [stdout] test dsl::walker::tests::compound_arity_with_function_call_args_not_confused ... ok
[INFO] [stdout] test dsl::walker::tests::between_warning_spans_each_offending_bound ... ok
[INFO] [stdout] test dsl::walker::tests::compound_union_arity_match_no_diagnostic ... ok
[INFO] [stdout] test dsl::walker::tests::compound_three_leg_chain_emits_per_mismatch ... ok
[INFO] [stdout] test dsl::walker::tests::cte_arity_match_no_diagnostic ... ok
[INFO] [stdout] test dsl::walker::tests::conflict_target_unknown_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::compound_union_all_arity_mismatch_fires ... ok
[INFO] [stdout] test dsl::walker::tests::compound_except_arity_mismatch_fires ... ok
[INFO] [stdout] test dsl::walker::tests::compound_intersect_arity_mismatch_fires ... ok
[INFO] [stdout] test dsl::walker::tests::cte_arity_mismatch_when_col_list_longer ... ok
[INFO] [stdout] test dsl::walker::tests::conflict_target_in_insert_select_validated_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::do_update_bare_ref_known_column_silent ... ok
[INFO] [stdout] test dsl::walker::tests::cte_arity_mismatch_when_col_list_shorter ... ok
[INFO] [stdout] test dsl::walker::tests::cte_arity_no_col_list_no_diagnostic ... ok
[INFO] [stdout] test dsl::walker::tests::do_update_bare_rhs_in_insert_select_validated_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::cte_name_is_valid_table_source ... ok
[INFO] [stdout] test dsl::walker::tests::compound_union_arity_mismatch_fires ... ok
[INFO] [stdout] test dsl::walker::tests::create_table_fk_to_genuinely_unknown_table_still_flags ... ok
[INFO] [stdout] test dsl::walker::tests::do_update_bare_ref_unknown_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_new_name_slot_for_create_table ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_none_for_complete_command ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_new_name_slot_for_add_column_name ... ok
[INFO] [stdout] test dsl::walker::tests::dsl_bare_table_name_in_where_keeps_unknown_column ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_value_literal_slot_after_update_set_assign ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_value_literal_slot_after_insert_open_paren ... ok
[INFO] [stdout] test dsl::walker::tests::duplicate_cte_in_same_with_block_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_value_literal_slot_in_where_clause ... ok
[INFO] [stdout] test dsl::walker::tests::eq_null_warning_span_covers_the_null_literal ... ok
[INFO] [stdout] test dsl::walker::tests::excluded_in_values_flagged_even_when_do_update_present ... ok
[INFO] [stdout] test dsl::walker::tests::excluded_outside_do_update_is_unknown_qualifier ... ok
[INFO] [stdout] test dsl::walker::tests::genuine_unknown_column_still_reports_no_such_column ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_none_at_schema_ident_slot ... ok
[INFO] [stdout] test dsl::walker::tests::hint_mode_none_for_keyword_position ... ok
[INFO] [stdout] test dsl::walker::tests::in_warning_spans_only_the_mismatched_item ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_clean_command_is_none ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_empty_input_is_none ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_eq_null_is_warning ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_error_outranks_warning ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_incomplete_command_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_compatible_comparison_is_clean ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_known_table_and_column_is_clean ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_known_entities_across_commands_are_clean ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_mismatched_token_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_unknown_table_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_type_mismatch_is_warning ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_sweep_unknown_column_across_commands ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_unknown_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_unknown_command_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::input_verdict_sweep_unknown_table_across_commands ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_advanced_form_b_still_uses_full_column_count ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_clean_with_on_conflict_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_emits_per_row ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_simple_all_auto_table ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_ignores_commas_nested_in_a_value ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_simple_form_a_uses_listed_count ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_match_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_simple_form_b_uses_user_fillable_count ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_simple_form_c_uses_user_fillable_count ... ok
[INFO] [stdout] test dsl::walker::tests::insert_column_list_known_columns_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_with_returning_flags_only_tuple ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_mismatch_single_row_fires ... ok
[INFO] [stdout] test dsl::walker::tests::insert_arity_with_on_conflict_flags_only_the_tuple ... ok
[INFO] [stdout] test dsl::walker::tests::insert_column_list_unknown_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::insert_form_b_arity_match_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_form_b_arity_mismatch_under_supply_fires ... ok
[INFO] [stdout] test dsl::walker::tests::insert_form_b_arity_unknown_table_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_form_b_arity_mismatch_over_supply_fires ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_arity_match_is_silent ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_target_only_column_not_misflagged ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_genuinely_unknown_insert_column_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_where_predicate_warns ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_unknown_projection_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::like_on_a_text_column_is_clean ... ok
[INFO] [stdout] test dsl::walker::tests::like_on_a_numeric_column_is_a_warning ... ok
[INFO] [stdout] test dsl::walker::tests::insert_select_arity_mismatch_fires ... ok
[INFO] [stdout] test dsl::walker::tests::not_null_missing_silent_when_included ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_delete_where_permits_decimal_at_int_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_falls_back_when_table_not_in_schema ... ok
[INFO] [stdout] test dsl::walker::tests::not_null_missing_fires_when_required_column_omitted ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_form_a_accepts_serial_when_listed ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_delete_where_uses_typed_column_value ... ok
[INFO] [stdout] test dsl::walker::tests::not_like_on_a_numeric_column_is_also_a_warning ... ok
[INFO] [stdout] test dsl::walker::tests::not_null_missing_silent_when_column_has_default ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_form_a_filters_to_user_listed_columns ... ok
[INFO] [stdout] test dsl::walker::tests::not_null_missing_excludes_auto_generated ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_accepts_null_at_any_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_accepts_bool_value_for_bool_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_form_b_skips_serial_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_rejects_decimal_in_int_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_insert_with_schema_accepts_typed_values_per_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_schemaless_parse_command_still_works ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_update_accepts_text_value_for_text_column ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_update_multi_assignment_uses_per_column_types ... ok
[INFO] [stdout] test dsl::walker::tests::predicate_warning_fires_on_sql_update_values_context ... ok
[INFO] [stdout] test dsl::walker::tests::phase_d_update_rejects_decimal_in_int_set_column ... ok
[INFO] [stdout] test dsl::walker::tests::projection_alias_in_group_by_is_misplaced ... ok
[INFO] [stdout] test dsl::walker::tests::projection_alias_in_having_is_misplaced ... ok
[INFO] [stdout] test dsl::walker::tests::qualified_refs_in_join_on_resolve_cleanly ... ok
[INFO] [stdout] test dsl::walker::tests::projection_alias_in_where_is_misplaced ... ok
[INFO] [stdout] test dsl::walker::tests::projection_alias_in_order_by_is_allowed ... ok
[INFO] [stdout] test dsl::walker::tests::real_column_shadowed_by_alias_is_not_misplaced ... ok
[INFO] [stdout] test dsl::walker::tests::returning_ref_in_insert_select_validated_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::returning_ref_in_plain_insert_validated_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::sql_case_predicate_warning_fires ... ok
[INFO] [stdout] test dsl::walker::tests::sql_join_on_predicate_warning_fires ... ok
[INFO] [stdout] test dsl::walker::tests::returning_ref_unknown_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::self_referencing_fk_in_create_table_is_not_flagged_unknown ... ok
[INFO] [stdout] test dsl::walker::tests::sql_having_predicate_warning_fires ... ok
[INFO] [stdout] test dsl::walker::tests::sql_order_by_predicate_warning_fires ... ok
[INFO] [stdout] test dsl::walker::tests::select_unknown_argument_inside_function_call_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::select_unknown_column_inside_distinct_arg_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::sql_delete_where_like_numeric_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_delete_where_unknown_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::sql_projection_predicate_warning_fires ... ok
[INFO] [stdout] test dsl::walker::tests::sql_where_type_mismatch_text_vs_number_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_update_set_case_predicate_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_update_unknown_set_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::sql_where_eq_null_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_where_like_numeric_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_where_type_compatible_does_not_warn ... ok
[INFO] [stdout] test dsl::walker::tests::sql_update_eq_null_in_where_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_where_type_mismatch_number_vs_text_warns ... ok
[INFO] [stdout] test dsl::walker::tests::sql_update_where_unknown_column_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::target_qualified_ref_in_returning_resolves_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::target_qualified_ref_unknown_column_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::target_qualified_star_in_returning_resolves_against_target ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_at_insert_second_value_position_for_text_column ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_at_insert_first_value_position_for_int_column ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_at_update_set_value_for_int_column ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_at_where_value_uses_column_type ... ok
[INFO] [stdout] test dsl::walker::tests::type_mismatch_warning_span_covers_only_the_literal ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_at_update_set_value_uses_column_type ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_form_b_skips_serial_column_to_generic_or_text_neighbor ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_for_auto_generated_types_routes_via_form_a ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_not_emitted_after_complete_value ... ok
[INFO] [stdout] test dsl::walker::tests::select_aggregate_function_name_not_flagged_as_unknown_column ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_falls_back_to_generic_when_schema_missing ... ok
[INFO] [stdout] test dsl::walker::tests::typed_hint_for_each_user_settable_type_routes_via_form_b ... ok
[INFO] [stdout] test dsl::walker::tests::unambiguous_bare_column_no_error ... ok
[INFO] [stdout] test dsl::walker::tests::unknown_column_error_span_covers_the_identifier ... ok
[INFO] [stdout] test dsl::walker::tests::unrelated_qualified_star_in_returning_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::unknown_column_via_qualified_ref ... ok
[INFO] [stdout] test dsl::walker::tests::unknown_table_in_from_still_flags ... ok
[INFO] [stdout] test dsl::walker::tests::unknown_qualifier_in_qualified_ref_is_error ... ok
[INFO] [stdout] test dsl::walker::tests::unrelated_qualifier_in_returning_still_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::upsert_do_update_unknown_set_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::upsert_excluded_resolves_in_do_update_where ... ok
[INFO] [stdout] test dsl::walker::tests::upsert_do_update_known_set_column_silent ... ok
[INFO] [stdout] test dsl::walker::tests::walker_delete_without_where_or_flag_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_does_not_engage_for_non_app_keywords ... ok
[INFO] [stdout] test dsl::walker::tests::upsert_excluded_unknown_column_is_flagged ... ok
[INFO] [stdout] test dsl::walker::tests::walker_add_column_unknown_type_errors_with_friendly_wording ... ok
[INFO] [stdout] test dsl::walker::tests::upsert_excluded_resolves_in_do_update ... ok
[INFO] [stdout] test dsl::walker::tests::walker_change_column_rejects_both_flags ... ok
[INFO] [stdout] test dsl::walker::tests::walker_add_relationship_repeated_clause_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_does_not_engage_for_unknown_first_token ... ok
[INFO] [stdout] test dsl::walker::tests::walker_create_table_keywords_are_case_insensitive ... ok
[INFO] [stdout] test dsl::walker::tests::walker_create_table_pk_tolerates_whitespace_around_punct ... ok
[INFO] [stdout] test dsl::walker::tests::walker_bare_create_table_errors_with_with_pk_hint ... ok
[INFO] [stdout] test dsl::walker::tests::walker_export_trims_trailing_whitespace ... ok
[INFO] [stdout] test dsl::walker::tests::walker_import_keeps_as_inside_path ... ok
[INFO] [stdout] test dsl::walker::tests::walker_import_trailing_as_without_target_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_messages_unknown_value_emits_friendly_error ... ok
[INFO] [stdout] test dsl::walker::tests::walker_mode_unknown_value_emits_friendly_error ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_add_column ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_add_relationship_minimal ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_add_relationship_with_name_and_actions_and_flag ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_change_column ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_change_column_with_force_conversion_flag ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_create_table_compound_pk ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_create_table_named_typed_pk ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_create_table_with_pk_default_id_serial ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_delete_with_all_rows ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_delete_with_or_where ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_delete_with_where ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_drop_column_with_optional_connectives ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_drop_relationship_endpoints ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_export_with_path ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_drop_relationship_named ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_drop_table ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_export_bare ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_help ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_import_with_path ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_import_bare ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_insert_supports_negative_numbers ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_load ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_messages_bare ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_messages_short ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_messages_verbose ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_insert_with_explicit_column_list ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_insert_with_values_keyword_only ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_mode_advanced ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_import_with_path_and_target ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_mode_simple ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_new ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_quit ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_insert_short_form_without_column_list ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_rebuild ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_redo ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_rename_column ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_replay_with_bare_absolute_path ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_replay_with_bare_relative_path ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_replay_with_quoted_path_supports_escaped_quote ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_save_as ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_show_data_with_limit_only ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_replay_with_quoted_path_supports_whitespace ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_show_data ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_save ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_show_table ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_undo ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_undo_case_insensitive ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_update_with_multiple_assignments ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_update_with_complex_where ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_update_with_all_rows_flag ... ok
[INFO] [stdout] test dsl::walker::tests::walker_quit_with_trailing_garbage_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_replay_keyword_case_insensitive ... ok
[INFO] [stdout] test dsl::walker::tests::walker_replay_without_path_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_replay_with_empty_quoted_path_parses_as_empty ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_show_data_with_where_and_limit ... ok
[INFO] [stdout] test dsl::walker::tests::walker_save_with_trailing_garbage_errors ... ok
[INFO] [stdout] test dsl::walker::tests::walker_tolerates_leading_and_internal_whitespace ... ok
[INFO] [stdout] test dsl::walker::tests::walker_update_without_where_or_flag_errors ... ok
[INFO] [stdout] test echo::tests::add_column_renders_type_and_constraints_and_round_trips ... ok
[INFO] [stdout] test echo::tests::add_column_with_unique_and_check_round_trips ... ok
[INFO] [stdout] test echo::tests::add_constraint_check_round_trips ... ok
[INFO] [stdout] test echo::tests::add_constraint_default_round_trips ... ok
[INFO] [stdout] test echo::tests::add_constraint_not_null_round_trips ... ok
[INFO] [stdout] test dsl::walker::tests::walker_save_keywords_case_insensitive ... ok
[INFO] [stdout] test dsl::walker::tests::walker_parses_update_with_where ... ok
[INFO] [stdout] test echo::tests::add_constraint_unique_round_trips ... ok
[INFO] [stdout] test echo::tests::add_index_auto_name_format_matches_worker ... ok
[INFO] [stdout] test echo::tests::add_index_renders_and_round_trips ... ok
[INFO] [stdout] test echo::tests::change_column_to_playground_type_keyword_round_trips ... ok
[INFO] [stdout] test echo::tests::add_relationship_create_fk_emits_add_column_then_fk_and_each_round_trips ... ok
[INFO] [stdout] test echo::tests::create_table_compound_pk_renders_table_level ... ok
[INFO] [stdout] test echo::tests::add_relationship_no_referential_actions_round_trips ... ok
[INFO] [stdout] test echo::tests::create_m2n_echo_renders_junction_and_round_trips ... ok
[INFO] [stdout] test echo::tests::add_relationship_create_fk_with_shortid_parent_targets_text_column ... ok
[INFO] [stdout] test echo::tests::add_relationship_with_cascade_and_set_null_round_trips ... ok
[INFO] [stdout] test echo::tests::bucket_c_no_echo_commands_all_return_none ... ok
[INFO] [stdout] test echo::tests::create_table_single_serial_pk_renders_inline ... ok
[INFO] [stdout] test echo::tests::delete_all_rows_round_trips ... ok
[INFO] [stdout] test echo::tests::delete_with_where_has_no_echo ... ok
[INFO] [stdout] test echo::tests::drop_column_cascade_emits_drop_indexes_then_drop_column_and_each_round_trips ... ok
[INFO] [stdout] test echo::tests::drop_column_cascade_has_no_echo_yet ... ok
[INFO] [stdout] test dsl::parser::tests::delete_without_where_or_flag_errors ... ok
[INFO] [stdout] test echo::tests::create_table_renders_default_and_check_constraints ... ok
[INFO] [stdout] test echo::tests::change_column_renders_set_data_type_for_every_mode ... ok
[INFO] [stdout] test echo::tests::create_table_echo_round_trips_in_advanced_mode ... ok
[INFO] [stdout] test echo::tests::drop_column_cascade_with_no_covering_indexes_is_single_line ... ok
[INFO] [stdout] test echo::tests::drop_constraint_unique_and_check_have_no_echo ... ok
[INFO] [stdout] test echo::tests::drop_relationship_round_trips ... ok
[INFO] [stdout] test echo::tests::echo_for_gates_on_advanced_mode ... ok
[INFO] [stdout] test echo::tests::expr_renders_boolean_combinators_and_operators ... ok
[INFO] [stdout] test echo::tests::drop_column_plain_round_trips ... ok
[INFO] [stdout] test echo::tests::drop_constraint_default_round_trips ... ok
[INFO] [stdout] test echo::tests::select_is_not_echoed_as_a_query ... ok
[INFO] [stdout] test echo::tests::drop_constraint_not_null_round_trips ... ok
[INFO] [stdout] test echo::tests::show_data_with_limit_and_compound_pk_orders_by_all_pk_columns ... ok
[INFO] [stdout] test echo::tests::show_data_is_silent_in_simple_mode ... ok
[INFO] [stdout] test echo::tests::show_data_plain_round_trips ... ok
[INFO] [stdout] test echo::tests::show_data_with_limit_but_no_primary_key_omits_order_by ... ok
[INFO] [stdout] test echo::tests::show_data_with_limit_orders_by_primary_key ... ok
[INFO] [stdout] test echo::tests::sql_entered_command_is_not_echoed ... ok
[INFO] [stdout] test echo::tests::update_all_rows_round_trips ... ok
[INFO] [stdout] test echo::tests::update_with_where_has_no_echo ... ok
[INFO] [stdout] test echo::tests::show_data_with_where_round_trips ... ok
[INFO] [stdout] test echo::tests::rename_column_round_trips ... ok
[INFO] [stdout] test friendly::error::tests::multi_line_headline_splits_at_newlines ... ok
[INFO] [stdout] test echo::tests::value_literal_renders_null_uppercase_and_quotes_text ... ok
[INFO] [stdout] test friendly::error::tests::renders_all_three_with_blank_separators ... ok
[INFO] [stdout] test friendly::format::tests::catalog_loads_at_least_the_test_entry ... ok
[INFO] [stdout] test friendly::format::tests::substitute_handles_multiple_placeholders ... ok
[INFO] [stdout] test friendly::format::tests::substitute_passes_display_values_unchanged ... ok
[INFO] [stdout] test friendly::error::tests::renders_headline_blank_then_hint ... ok
[INFO] [stdout] test friendly::error::tests::renders_headline_blank_table_with_no_hint ... ok
[INFO] [stdout] test friendly::error::tests::renders_headline_only_when_no_hint_no_table ... ok
[INFO] [stdout] test friendly::format::tests::t_macro_dispatches_to_translate ... ok
[INFO] [stdout] test friendly::format::tests::substitute_replaces_named_placeholder ... ok
[INFO] [stdout] test friendly::translate::tests::aggregate_misuse_engine_message_routes_through_catalog ... ok
[INFO] [stdout] test friendly::translate::tests::check_uses_typed_template_and_falls_back_to_context ... ok
[INFO] [stdout] test friendly::translate::tests::check_with_a_resolved_rule_names_the_rule_and_value ... ok
[INFO] [stdout] test friendly::translate::tests::compound_arity_engine_message_routes_through_catalog ... ok
[INFO] [stdout] test friendly::translate::tests::constraint_templates_degrade_to_prose_without_context ... ok
[INFO] [stdout] test friendly::translate::tests::already_exists_quoted_table_uses_table_template ... ok
[INFO] [stdout] test friendly::translate::tests::already_exists_quoted_column_uses_column_template ... ok
[INFO] [stdout] test friendly::translate::tests::extract_quoted_pulls_first_backtick_run ... ok
[INFO] [stdout] test friendly::translate::tests::fk_child_side_renders_every_column_of_a_compound_key ... ok
[INFO] [stdout] test friendly::translate::tests::fk_with_delete_op_renders_parent_side_wording ... ok
[INFO] [stdout] test friendly::translate::tests::generic_engine_message_is_not_surfaced ... ok
[INFO] [stdout] test friendly::translate::tests::fk_with_insert_op_renders_child_side_wording ... ok
[INFO] [stdout] test friendly::translate::tests::generic_hint_has_no_unsubstituted_table_without_context ... ok
[INFO] [stdout] test friendly::translate::tests::generic_path_uses_operation_keyword ... ok
[INFO] [stdout] test friendly::translate::tests::group_by_required_engine_message_routes_through_catalog ... ok
[INFO] [stdout] test friendly::translate::tests::hint_class_maps_runtime_error_kinds ... ok
[INFO] [stdout] test friendly::translate::tests::no_such_column_qualified ... ok
[INFO] [stdout] test friendly::translate::tests::invalid_value_passes_through ... ok
[INFO] [stdout] test friendly::translate::tests::hint_class_resolves_foreign_key_sides ... ok
[INFO] [stdout] test friendly::translate::tests::no_such_column_unqualified_uses_unqualified_key ... ok
[INFO] [stdout] test friendly::translate::tests::no_such_table_uses_anchor_phrase ... ok
[INFO] [stdout] test friendly::translate::tests::parse_qualified_target_none_when_no_dot ... ok
[INFO] [stdout] test friendly::translate::tests::not_null_uses_typed_template ... ok
[INFO] [stdout] test friendly::translate::tests::parse_qualified_target_returns_first_for_compound ... ok
[INFO] [stdout] test friendly::translate::tests::parse_qualified_target_works_for_unique_message ... ok
[INFO] [stdout] test friendly::translate::tests::scalar_subquery_too_many_rows_routes_through_catalog ... ok
[INFO] [stdout] test friendly::translate::tests::unique_insert_uses_anchor_phrase_and_picks_insert_template ... ok
[INFO] [stdout] test friendly::keys::tests::keys_validate_against_catalog ... ok
[INFO] [stdout] test friendly::translate::tests::unique_update_picks_update_template ... ok
[INFO] [stdout] test friendly::translate::tests::unsupported_passes_through ... ok
[INFO] [stdout] test input_render::tests::advanced_create_table_element_position_introduces_column_name ... ok
[INFO] [stdout] test input_render::tests::advanced_create_table_offers_open_paren_after_name ... ok
[INFO] [stdout] test input_render::tests::advanced_mode_ambient_offers_sql_from_slot_candidate ... ok
[INFO] [stdout] test input_render::tests::advanced_mode_ambient_offers_dml_slot_candidates ... ok
[INFO] [stdout] test input_render::tests::advanced_partial_typing_does_not_leak_bare_double_in_prose ... ok
[INFO] [stdout] test input_render::tests::advanced_select_genuine_column_typo_before_from_warns_at_typing_time ... ok
[INFO] [stdout] test input_render::tests::advanced_select_partial_function_name_not_flagged_as_invalid_column ... ok
[INFO] [stdout] test input_render::tests::advanced_mode_wrong_arity_insert_keeps_friendly_diagnostic_over_fallback ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_after_last_value_points_to_close_paren ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_insert_first_value_mentions_column_name ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_insert_first_value_shows_int_prose ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_insert_second_value_shows_text_prose ... ok
[INFO] [stdout] test input_render::tests::advanced_type_position_offers_double_precision_not_bare_double ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_partial_keyword_position_returns_candidates ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_update_set_mentions_column_name ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_value_slot_falls_back_to_generic_without_schema ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_second_insert_value_mentions_second_column ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_where_mentions_column_name ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_clean_command_still_invites_submit ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_combines_dsl_error_with_advanced_sql_pointer ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_between_values_points_to_comma_not_close_paren ... ok
[INFO] [stdout] test echo::tests::drop_index_round_trips ... ok
[INFO] [stdout] test friendly::format::tests::substitute_supports_doubled_braces_as_literals ... ok
[INFO] [stdout] test friendly::translate::tests::short_mode_omits_hint ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_update_set_shows_per_column_prose ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_during_cycling_shows_memo_list_not_recomputed ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_does_not_add_pointer_for_a_valid_dsl_command ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_for_invalid_identifier_says_no_such ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_for_unknown_command_falls_back_to_message ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_for_definite_error_includes_usage_template ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_is_none_for_empty_input ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_for_valid_input_invites_submit ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_diagnostic_follows_the_cursor ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_with_memo_carries_selected_index ... ok
[INFO] [stdout] test input_render::tests::classify_complete_command_is_valid ... ok
[INFO] [stdout] test input_render::tests::classify_empty_input ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_surfaces_unknown_table_diagnostic ... ok
[INFO] [stdout] test input_render::tests::classify_partial_command_mid_clause_is_incomplete ... ok
[INFO] [stdout] test input_render::tests::classify_partial_keyword_only_is_incomplete ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_surfaces_type_mismatch_over_submit_prose ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_surfaces_like_numeric_warning ... ok
[INFO] [stdout] test input_render::tests::classify_trailing_whitespace_does_not_create_definite_error ... ok
[INFO] [stdout] test input_render::tests::classify_unknown_command_is_definite_error_at_zero ... ok
[INFO] [stdout] test input_render::tests::classify_wrong_token_mid_command_is_definite_error_at_token_position ... ok
[INFO] [stdout] test input_render::tests::cursor_inside_token_splits_into_three_runs_keeping_colour ... ok
[INFO] [stdout] test input_render::tests::cursor_inside_multi_byte_string_literal_advances_to_char_boundary ... ok
[INFO] [stdout] test input_render::tests::empty_input_renders_only_the_end_of_input_cursor ... ok
[INFO] [stdout] test input_render::tests::cursor_on_whitespace_inverts_a_single_space ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_usage_matches_the_add_form_typed ... ok
[INFO] [stdout] test input_render::tests::end_of_input_cursor_is_an_empty_range ... ok
[INFO] [stdout] test input_render::tests::f1_mid_typed_table_prefix_shows_completion_not_error ... ok
[INFO] [stdout] test input_render::tests::f1_genuinely_unknown_table_still_shows_error ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_omits_advanced_pointer_when_form_b_value_count_wouldnt_match ... ok
[INFO] [stdout] test input_render::tests::f2_empty_projection_narrows_to_from_table ... ok
[INFO] [stdout] test input_render::tests::clean_schema_aware_command_has_no_diagnostic_overlay ... ok
[INFO] [stdout] test input_render::tests::f1_simple_mode_dsl_mid_typed_table_completes ... ok
[INFO] [stdout] test input_render::tests::genuine_column_typo_in_complete_select_still_hints_via_diagnostic ... ok
[INFO] [stdout] test input_render::tests::full_valid_command_lexes_to_each_token_class ... ok
[INFO] [stdout] test input_render::tests::keyword_token_takes_keyword_colour ... ok
[INFO] [stdout] test input_render::tests::lex_error_token_renders_in_error_colour ... ok
[INFO] [stdout] test input_render::tests::like_on_numeric_column_is_overlaid_in_warning_colour ... ok
[INFO] [stdout] test input_render::tests::in_progress_form_a_values_list_classifies_as_incomplete_not_definite_error ... ok
[INFO] [stdout] test input_render::tests::issue31_group_by_partial_alias_shows_alias_hint ... ok
[INFO] [stdout] test input_render::tests::render_input_runs_does_not_overlay_for_incomplete_input ... ok
[INFO] [stdout] test input_render::tests::render_input_runs_overlays_error_on_failing_token ... ok
[INFO] [stdout] test input_render::tests::one_shot_colon_highlights_the_sql_and_overlays_no_error ... ok
[INFO] [stdout] test input_render::tests::render_input_runs_does_not_overlay_for_valid_input ... ok
[INFO] [stdout] test input_render::tests::seed_count_hint_also_fires_after_a_column_fill_target ... ok
[INFO] [stdout] test input_render::tests::seed_count_is_advertised_at_the_optional_position ... ok
[INFO] [stdout] test input_render::tests::type_mismatch_literal_is_overlaid_in_warning_colour ... ok
[INFO] [stdout] test input_render::tests::simple_mode_ambient_does_not_surface_sql_candidates ... ok
[INFO] [stdout] test mode::tests::from_keyword_is_case_insensitive_and_trims ... ok
[INFO] [stdout] test mode::tests::from_keyword_rejects_unknown ... ok
[INFO] [stdout] test mode::tests::keyword_is_lowercase_distinct_from_label ... ok
[INFO] [stdout] test input_render::tests::seed_count_hint_does_not_leak_once_the_count_or_a_clause_is_given ... ok
[INFO] [stdout] test input_render::tests::unknown_column_is_overlaid_in_error_colour ... ok
[INFO] [stdout] test input_render::tests::whitespace_between_tokens_takes_default_fg ... ok
[INFO] [stdout] test mode::tests::keyword_round_trips_through_from_keyword ... ok
[INFO] [stdout] test output_render::tests::alignment_for_unknown_type_is_left ... ok
[INFO] [stdout] test mode::tests::resolve_startup_applies_flag_then_stored_then_default ... ok
[INFO] [stdout] test output_render::tests::alignment_for_numeric_types_is_right ... ok
[INFO] [stdout] test output_render::tests::alignment_for_other_types_is_left ... ok
[INFO] [stdout] test output_render::tests::cell_width_counts_codepoints_not_bytes ... ok
[INFO] [stdout] test input_render::tests::unknown_table_is_overlaid_in_error_colour ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_carries_names_cardinality_arrow_and_actions ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_title_uses_table_name_style ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_compound_fk_routes_a_bus_and_pairing_line ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_self_referential_shows_two_same_named_boxes ... ok
[INFO] [stdout] test output_render::tests::render_data_table_basic_shape ... ok
[INFO] [stdout] test output_render::tests::render_data_table_empty_rows_shows_no_rows_marker ... ok
[INFO] [stdout] test output_render::tests::render_data_table_handles_newline_in_cell ... ok
[INFO] [stdout] test output_render::tests::render_data_table_left_aligns_text ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_single_column_side_by_side_snapshot ... ok
[INFO] [stdout] test output_render::tests::render_data_table_nulls_render_as_null_marker ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_colours_a_full_scan_expensive ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_colours_an_index_search_efficient ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_covering_index_scan_classifies_on_the_index ... ok
[INFO] [stdout] test output_render::tests::render_data_table_right_aligns_numerics ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_display_sql_line_is_neutral ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_flags_an_automatic_index ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_nests_children_under_parents ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_survives_a_self_referential_node ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_puts_display_sql_first ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_temp_btree_is_expensive ... ok
[INFO] [stdout] test output_render::tests::render_explain_plan_unrecognised_detail_is_neutral ... ok
[INFO] [stdout] test input_render::tests::ambient_hint_at_word_boundary_after_show_returns_all_subcommands ... ok
[INFO] [stdout] test output_render::tests::render_relationship_diagram_marks_all_compound_endpoints_from_data ... ok
[INFO] [stdout] test output_render::tests::render_structure_basic ... ok
[INFO] [stdout] test output_render::tests::render_structure_marks_a_unique_index ... ok
[INFO] [stdout] test output_render::tests::render_structure_omits_indexes_section_when_none ... ok
[INFO] [stdout] test output_render::tests::render_structure_falls_back_to_sqlite_type_when_user_type_missing ... ok
[INFO] [stdout] test output_render::tests::render_structure_omits_relationship_prose ... ok
[INFO] [stdout] test output_render::tests::render_structure_pk_and_notnull_render_in_constraints ... ok
[INFO] [stdout] test output_render::tests::render_structure_shows_indexes_section ... ok
[INFO] [stdout] test output_render::tests::sanitize_passes_through_normal_text ... ok
[INFO] [stdout] test output_render::tests::sanitize_replaces_newline_with_return_arrow ... ok
[INFO] [stdout] test output_render::tests::render_structure_with_diagrams_replaces_prose_with_compact_diagrams ... ok
[INFO] [stdout] test output_render::tests::render_structure_shows_table_level_constraints ... ok
[INFO] [stdout] test output_render::tests::sanitize_replaces_other_control_chars_with_dot ... ok
[INFO] [stdout] test output_render::tests::sanitize_replaces_tab_with_arrow ... ok
[INFO] [stdout] test persistence::csv_io::tests::blobs_use_base64 ... ok
[INFO] [stdout] test persistence::csv_io::tests::bools_use_words_not_digits ... ok
[INFO] [stdout] test persistence::csv_io::tests::dates_and_datetimes_pass_through ... ok
[INFO] [stdout] test persistence::csv_io::tests::decode_cell_reports_friendly_error_for_bad_int ... ok
[INFO] [stdout] test persistence::csv_io::tests::empty_string_is_double_quoted ... ok
[INFO] [stdout] test persistence::csv_io::tests::empty_table_emits_header_only ... ok
[INFO] [stdout] test persistence::csv_io::tests::ints_and_reals_round_trip_simply ... ok
[INFO] [stdout] test persistence::csv_io::tests::null_is_empty_unquoted_field ... ok
[INFO] [stdout] test persistence::csv_io::tests::parse_decodes_per_type ... ok
[INFO] [stdout] test persistence::csv_io::tests::parse_distinguishes_null_from_empty_string ... ok
[INFO] [stdout] test persistence::csv_io::tests::parse_handles_rfc4180_escapes ... ok
[INFO] [stdout] test persistence::csv_io::tests::parse_rejects_unterminated_quotes ... ok
[INFO] [stdout] test persistence::csv_io::tests::row_width_mismatch_errors ... ok
[INFO] [stdout] test persistence::history::tests::iso8601_format_is_well_formed ... ok
[INFO] [stdout] test persistence::history::tests::backslash_is_escaped ... ok
[INFO] [stdout] test persistence::history::tests::newlines_in_command_are_escaped ... ok
[INFO] [stdout] test persistence::history::tests::iso8601_known_seconds ... ok
[INFO] [stdout] test persistence::history::tests::old_three_field_log_reads_as_simple ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_err_is_record_but_not_ok ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_ok_extracts_unescaped_source ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_preserves_pipe_in_source ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_rejects_bare_command_with_pipe ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_round_trips_a_written_record ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_treats_ok_adv_as_ok ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_rejects_timestamp_ish_but_invalid_prefix ... ok
[INFO] [stdout] test persistence::history::tests::parse_journal_record_unknown_status_is_record_but_not_ok ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_caps_at_max_n_keeping_most_recent ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_preserves_pipes_inside_source ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_returns_empty_when_file_missing ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_reconstructs_colon_prefix_for_advanced ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_skips_malformed_lines ... ok
[INFO] [stdout] test persistence::history::tests::record_format ... ok
[INFO] [stdout] test persistence::history::tests::read_recent_sources_unescapes_newlines_and_backslashes ... ok
[INFO] [stdout] test persistence::migrations::tests::ensure_yaml_migrated_handles_missing_yaml ... ok
[INFO] [stdout] test persistence::csv_io::tests::parse_round_trips_simple_table ... ok
[INFO] [stdout] test persistence::csv_io::tests::text_with_comma_or_quote_is_rfc4180_quoted ... ok
[INFO] [stdout] test persistence::history::tests::status_token_builds_and_parses_the_adv_suffix ... ok
[INFO] [stdout] test persistence::migrations::tests::ensure_yaml_migrated_no_op_on_v1_with_empty_registry ... ok
[INFO] [stdout] test persistence::migrations::tests::malformed_version_errors ... ok
[INFO] [stdout] test friendly::format::tests::substitute_rejects_empty_placeholder - should panic ... ok
[INFO] [stdout] test friendly::format::tests::substitute_rejects_format_specifier - should panic ... ok
[INFO] [stdout] test friendly::format::tests::substitute_rejects_stray_close_brace - should panic ... ok
[INFO] [stdout] test persistence::migrations::tests::newer_than_supported_errors ... ok
[INFO] [stdout] test friendly::format::tests::substitute_rejects_unterminated_brace - should panic ... ok
[INFO] [stdout] test friendly::format::tests::substitute_rejects_unknown_placeholder - should panic ... ok
[INFO] [stdout] test persistence::migrations::tests::production_registry_latest_version_is_1 ... ok
[INFO] [stdout] test persistence::migrations::tests::migrate_runs_chain_and_writes_bak ... ok
[INFO] [stdout] test persistence::migrations::tests::registry_with_one_migrator_advertises_latest_version_2 ... ok
[INFO] [stdout] test persistence::migrations::tests::no_migration_runs_when_body_already_latest ... ok
[INFO] [stdout] test persistence::migrations::tests::migrator_that_forgets_to_bump_version_is_caught ... ok
[INFO] [stdout] test persistence::migrations::tests::migrator_that_returns_internal_error_propagates ... ok
[INFO] [stdout] test persistence::tests::extension_with_tmp_appends_to_existing_extension ... ok
[INFO] [stdout] test persistence::yaml::tests::check_constraints_optional_on_read ... ok
[INFO] [stdout] test persistence::yaml::tests::column_constraints_round_trip_through_yaml ... ok
[INFO] [stdout] test persistence::yaml::tests::empty_lists_use_inline_brackets ... ok
[INFO] [stdout] test persistence::tests::read_stored_mode_is_none_for_a_missing_project_yaml ... ok
[INFO] [stdout] test persistence::yaml::tests::index_without_unique_field_defaults_to_false ... ok
[INFO] [stdout] test persistence::yaml::tests::old_format_bare_string_check_constraints_still_parse ... ok
[INFO] [stdout] test persistence::yaml::tests::mode_round_trips_through_serialize_and_parse ... ok
[INFO] [stdout] test persistence::yaml::tests::named_check_constraints_round_trip_through_yaml ... ok
[INFO] [stdout] test persistence::yaml::tests::parse_stored_mode_distinguishes_absent_from_explicit ... ok
[INFO] [stdout] test persistence::yaml::tests::parse_stored_mode_falls_back_to_none_on_unknown_value ... ok
[INFO] [stdout] test persistence::yaml::tests::parses_minimal_yaml_with_no_tables ... ok
[INFO] [stdout] test persistence::yaml::tests::preserves_compound_primary_key_order ... ok
[INFO] [stdout] test persistence::yaml::tests::quotes_strings_with_unsafe_characters ... ok
[INFO] [stdout] test persistence::yaml::tests::quotes_yaml_keywords_used_as_identifiers ... ok
[INFO] [stdout] test persistence::yaml::tests::rejects_unknown_action ... ok
[INFO] [stdout] test persistence::yaml::tests::rejects_unknown_column_type ... ok
[INFO] [stdout] test persistence::yaml::tests::rejects_unknown_version ... ok
[INFO] [stdout] test persistence::yaml::tests::table_level_constraints_round_trip_through_yaml ... ok
[INFO] [stdout] test persistence::yaml::tests::writes_expected_yaml_for_full_schema ... ok
[INFO] [stdout] test persistence::yaml::tests::parse_schema_defaults_mode_to_simple_when_field_absent ... ok
[INFO] [stdout] test persistence::yaml::tests::unique_index_round_trips_through_yaml ... ok
[INFO] [stdout] test project::lock::tests::parses_valid_body ... ok
[INFO] [stdout] test persistence::yaml::tests::write_then_read_round_trips ... ok
[INFO] [stdout] test project::lock::tests::drop_removes_lock_file ... ok
[INFO] [stdout] test project::lock::tests::acquires_lock_when_none_exists ... ok
[INFO] [stdout] test persistence::tests::read_stored_mode_round_trips_a_written_project_yaml ... ok
[INFO] [stdout] test persistence::tests::write_schema_writes_yaml ... ok
[INFO] [stdout] test project::lock::tests::rejects_bad_bodies ... ok
[INFO] [stdout] test persistence::history::tests::append_creates_and_grows_file ... ok
[INFO] [stdout] test persistence::tests::write_and_delete_table_data ... ok
[INFO] [stdout] test project::lock::tests::refuses_when_lock_points_at_live_self ... ok
[INFO] [stdout] test project::naming::tests::today_local_format ... ok
[INFO] [stdout] test project::naming::tests::validates_user_name ... ok
[INFO] [stdout] test project::naming::tests::detects_collision_and_regenerates ... ok
[INFO] [stdout] test project::naming::tests::wordlist_has_enough_entries ... ok
[INFO] [stdout] test project::naming::tests::ymd_from_known_unix_seconds ... ok
[INFO] [stdout] test project::naming::tests::wordlist_has_no_duplicates ... ok
[INFO] [stdout] test project::naming::tests::wordlist_is_lowercase_kebab_safe ... ok
[INFO] [stdout] test project::prettifier::tests::does_not_strip_non_date_eight_chars ... ok
[INFO] [stdout] test project::prettifier::tests::does_not_strip_when_no_separator_after_digits ... ok
[INFO] [stdout] test project::prettifier::tests::handles_camel_case ... ok
[INFO] [stdout] test project::prettifier::tests::handles_consecutive_separators ... ok
[INFO] [stdout] test project::prettifier::tests::handles_empty ... ok
[INFO] [stdout] test project::lock::tests::reclaims_unparseable_lock ... ok
[INFO] [stdout] test project::prettifier::tests::handles_mixed_separators_and_case ... ok
[INFO] [stdout] test project::prettifier::tests::handles_kebab_case_without_date_prefix ... ok
[INFO] [stdout] test project::prettifier::tests::handles_snake_case ... ok
[INFO] [stdout] test project::prettifier::tests::handles_single_word ... ok
[INFO] [stdout] test project::prettifier::tests::handles_pascal_case ... ok
[INFO] [stdout] test project::prettifier::tests::handles_unicode_word ... ok
[INFO] [stdout] test project::prettifier::tests::keeps_kebab_around_digits_intact ... ok
[INFO] [stdout] test project::prettifier::tests::splits_at_digit_boundaries ... ok
[INFO] [stdout] test project::prettifier::tests::strips_date_prefix_from_temp_project_names ... ok
[INFO] [stdout] test project::prettifier::tests::strips_date_and_temp_marker ... ok
[INFO] [stdout] test project::tests::create_named_builds_skeleton_at_arbitrary_path ... ok
[INFO] [stdout] test project::tests::create_temp_builds_skeleton ... ok
[INFO] [stdout] test project::tests::data_root_default_returns_some_path ... ok
[INFO] [stdout] test project::tests::data_root_override_is_used_verbatim ... ok
[INFO] [stdout] test project::lock::tests::reclaims_lock_from_different_host ... ok
[INFO] [stdout] test project::lock::tests::reclaims_stale_lock_with_dead_pid ... ok
[INFO] [stdout] test project::tests::last_project_strips_trailing_whitespace ... ok
[INFO] [stdout] test project::tests::open_refuses_non_project_directory ... ok
[INFO] [stdout] test project::tests::open_refuses_nonexistent_path ... ok
[INFO] [stdout] test project::tests::create_temp_display_name_is_prettified ... ok
[INFO] [stdout] test project::tests::drop_releases_lock ... ok
[INFO] [stdout] test project::tests::db_path_points_inside_project ... ok
[INFO] [stdout] test project::tests::open_succeeds_after_create ... ok
[INFO] [stdout] test persistence::tests::atomic_write_roundtrips ... ok
[INFO] [stdout] test runtime::tests::a_keystroke_hides_the_indicator_and_arms_the_debounce ... ok
[INFO] [stdout] test runtime::tests::a_non_key_event_does_not_disturb_a_shown_indicator ... ok
[INFO] [stdout] test runtime::tests::a_non_key_event_while_armed_keeps_the_debounce_armed ... ok
[INFO] [stdout] test output_render::tests::relationship_diagram_vertical_fallback_when_narrow ... ok
[INFO] [stdout] test project::naming::tests::is_temp_dirname_examples ... ok
[INFO] [stdout] test runtime::tests::nearest_deadline_picks_the_soonest_or_none ... ok
[INFO] [stdout] test runtime::tests::settling_a_clean_verdict_shows_nothing ... ok
[INFO] [stdout] test runtime::tests::settling_shows_the_verdict_and_disarms ... ok
[INFO] [stdout] test runtime::tests::starts_hidden_and_disarmed ... ok
[INFO] [stdout] test runtime::tests::show_data_echo_orders_by_resolved_primary_key_when_limited ... ok
[INFO] [stdout] test project::tests::temp_project_lives_under_projects_subdir ... ok
[INFO] [stdout] test persistence::migrations::tests::ensure_yaml_migrated_writes_upgraded_body_and_bak ... ok
[INFO] [stdout] test project::tests::read_last_project_returns_none_when_missing ... ok
[INFO] [stdout] test runtime::tests::typing_resumes_after_a_settle ... ok
[INFO] [stdout] test seed::check::tests::does_not_trip_on_in_inside_a_word_or_literal ... ok
[INFO] [stdout] test seed::check::tests::handles_commas_and_parens_inside_literals ... ok
[INFO] [stdout] test db::tests::set_mode_persists_even_with_no_prior_command ... ok
[INFO] [stdout] test seed::check::tests::parses_a_simple_in_check ... ok
[INFO] [stdout] test seed::check::tests::rejects_non_in_checks ... ok
[INFO] [stdout] test seed::check::tests::rejects_when_lhs_is_a_different_column ... ok
[INFO] [stdout] test seed::check::tests::rejects_non_literal_lists ... ok
[INFO] [stdout] test project::naming::tests::generates_well_formed_name ... ok
[INFO] [stdout] test seed::check::tests::unescapes_embedded_quotes ... ok
[INFO] [stdout] test seed::check::tests::tolerates_a_quoted_column_and_lowercase_in ... ok
[INFO] [stdout] test persistence::tests::append_history_creates_and_appends ... ok
[INFO] [stdout] test project::tests::empty_last_project_file_is_treated_as_none ... ok
[INFO] [stdout] test project::tests::create_named_refuses_existing_path ... ok
[INFO] [stdout] test runtime::tests::bucket_b_resolved_name_echoes_against_real_worker ... ok
[INFO] [stdout] test seed::generators::tests::age_is_in_human_range ... ok
[INFO] [stdout] test seed::generators::tests::currency_is_whole_for_int_and_fractional_for_decimal ... ok
[INFO] [stdout] test seed::generators::tests::email_looks_like_an_email ... ok
[INFO] [stdout] test seed::generators::tests::generic_fallback_matches_each_type ... ok
[INFO] [stdout] test seed::generators::tests::datetime_is_iso_shaped ... ok
[INFO] [stdout] test seed::generators::tests::pick_from_chooses_a_listed_value ... ok
[INFO] [stdout] test seed::generators::tests::int_range_stays_within_inclusive_bounds ... ok
[INFO] [stdout] test seed::generators::tests::markers_fall_back_to_type_based_generation ... ok
[INFO] [stdout] test seed::generators::tests::generation_is_deterministic_for_a_fixed_seed ... ok
[INFO] [stdout] test seed::generators::tests::dob_dates_fall_within_the_adult_window ... ok
[INFO] [stdout] test seed::generators::tests::pick_from_wraps_numeric_values_as_numbers ... ok
[INFO] [stdout] test seed::generators::tests::product_name_is_three_capitalised_words ... ok
[INFO] [stdout] test seed::generators::tests::range_bounds_reason_accepts_compatible_and_rejects_incompatible ... ok
[INFO] [stdout] test seed::generators::tests::date_range_stays_within_quoted_bounds ... ok
[INFO] [stdout] test seed::generators::tests::real_range_stays_within_bounds_and_has_cents ... ok
[INFO] [stdout] test seed::generators::tests::reversed_bounds_are_tolerated ... ok
[INFO] [stdout] test seed::generators::tests::year_generators_are_deterministic_for_a_fixed_seed ... ok
[INFO] [stdout] test seed::heuristics::tests::boolean_fields_map_to_boolean ... ok
[INFO] [stdout] test seed::heuristics::tests::contact_fields_map_correctly ... ok
[INFO] [stdout] test seed::heuristics::tests::conventional_choice_sets_map_to_pick_from ... ok
[INFO] [stdout] test seed::heuristics::tests::a_declared_in_check_still_wins_over_a_built_in_set ... ok
[INFO] [stdout] test seed::heuristics::tests::address_fields_map_correctly ... ok
[INFO] [stdout] test seed::heuristics::tests::enum_ish_names_are_detected_for_the_advisory ... ok
[INFO] [stdout] test seed::heuristics::tests::bare_name_uses_table_context ... ok
[INFO] [stdout] test seed::heuristics::tests::foreign_key_columns_defer_to_executor ... ok
[INFO] [stdout] test seed::heuristics::tests::check_in_values_become_pick_from ... ok
[INFO] [stdout] test seed::heuristics::tests::name_false_positives_do_not_become_person_names ... ok
[INFO] [stdout] test seed::heuristics::tests::email_on_wrong_type_falls_through ... ok
[INFO] [stdout] test seed::generators::tests::year_generators_stay_within_their_bounded_windows ... ok
[INFO] [stdout] test seed::generators::tests::recent_dates_fall_within_the_bounded_window ... ok
[INFO] [stdout] test seed::heuristics::tests::tokenizer_splits_on_all_boundaries ... ok
[INFO] [stdout] test seed::heuristics::tests::identifier_family_is_unique_sequential ... ok
[INFO] [stdout] test seed::heuristics::tests::enum_ish_columns_fall_through_to_generic ... ok
[INFO] [stdout] test seed::heuristics::tests::numeric_name_heuristics_are_type_gated ... ok
[INFO] [stdout] test seed::heuristics::tests::unmatched_columns_use_type_based_fallback ... ok
[INFO] [stdout] test seed::heuristics::tests::person_name_fields_map_to_name_generators ... ok
[INFO] [stdout] test seed::heuristics::tests::status_is_left_to_the_advisory_not_given_a_set ... ok
[INFO] [stdout] test seed::heuristics::tests::temporal_fields_are_bounded_and_type_gated ... ok
[INFO] [stdout] test seed::heuristics::tests::year_like_int_columns_map_to_bounded_years ... ok
[INFO] [stdout] test seed::tests::different_seeds_yield_different_streams ... ok
[INFO] [stdout] test seed::tests::same_seed_yields_identical_rng_streams ... ok
[INFO] [stdout] test seed::tests::unseeded_rng_constructs_without_panicking ... ok
[INFO] [stdout] test seed::vocabulary::tests::every_listed_name_maps_to_a_generator ... ok
[INFO] [stdout] test seed::vocabulary::tests::mapping_is_case_insensitive_and_has_aliases ... ok
[INFO] [stdout] test seed::vocabulary::tests::known_generators_is_sorted_and_lowercase ... ok
[INFO] [stdout] test seed::vocabulary::tests::unknown_name_has_no_mapping ... ok
[INFO] [stdout] test seed::vocabulary::tests::prefix_check_matches_known_and_rejects_unknown ... ok
[INFO] [stdout] test theme::tests::function_colour_is_distinct_from_keyword_identifier_and_type ... ok
[INFO] [stdout] test type_change::tests::bool_to_int_is_clean_for_zero_and_one ... ok
[INFO] [stdout] test type_change::tests::bool_to_text_uses_dsl_keywords ... ok
[INFO] [stdout] test type_change::tests::cross_domain_unmapped_pair_is_statically_refused ... ok
[INFO] [stdout] test type_change::tests::date_to_datetime_direct_is_statically_refused ... ok
[INFO] [stdout] test type_change::tests::date_to_text_passes_through ... ok
[INFO] [stdout] test theme::tests::dark_theme_token_colours_differ_from_background ... ok
[INFO] [stdout] test theme::tests::type_colour_is_distinct_from_keyword_and_identifier ... ok
[INFO] [stdout] test type_change::tests::anything_involving_blob_is_statically_refused ... ok
[INFO] [stdout] test type_change::tests::bool_to_decimal_yields_zero_or_one ... ok
[INFO] [stdout] test theme::tests::highlight_class_color_maps_each_variant ... ok
[INFO] [stdout] test theme::tests::light_theme_token_colours_differ_from_background ... ok
[INFO] [stdout] test type_change::tests::datetime_to_text_passes_through ... ok
[INFO] [stdout] test type_change::tests::decimal_to_bool_incompatible_for_other ... ok
[INFO] [stdout] test type_change::tests::decimal_to_bool_clean_for_exact_zero_one ... ok
[INFO] [stdout] test type_change::tests::decimal_to_text_passes_through ... ok
[INFO] [stdout] test type_change::tests::decimal_to_int_clean_for_integer_values ... ok
[INFO] [stdout] test type_change::tests::decimal_to_int_incompatible_for_garbage ... ok
[INFO] [stdout] test type_change::tests::bool_to_real_yields_zero_or_one ... ok
[INFO] [stdout] test type_change::tests::decimal_to_int_lossy_for_fractional ... ok
[INFO] [stdout] test type_change::tests::int_to_bool_clean_for_zero_one ... ok
[INFO] [stdout] test type_change::tests::int_to_bool_incompatible_for_other ... ok
[INFO] [stdout] test type_change::tests::int_to_decimal_is_clean ... ok
[INFO] [stdout] test type_change::tests::int_to_real_is_clean ... ok
[INFO] [stdout] test type_change::tests::int_to_serial_is_allowed ... ok
[INFO] [stdout] test type_change::tests::int_to_text_is_clean ... ok
[INFO] [stdout] test type_change::tests::matrix_pairs_pass_static_check ... ok
[INFO] [stdout] test type_change::tests::non_int_sources_to_serial_are_statically_refused ... ok
[INFO] [stdout] test type_change::tests::null_to_null_is_identity ... ok
[INFO] [stdout] test type_change::tests::null_passes_through_clean_for_any_pair ... ok
[INFO] [stdout] test type_change::tests::real_to_bool_clean_for_zero_and_one ... ok
[INFO] [stdout] test type_change::tests::real_to_bool_incompatible_for_other_values ... ok
[INFO] [stdout] test type_change::tests::real_to_decimal_is_clean_for_finite ... ok
[INFO] [stdout] test type_change::tests::real_to_int_clean_for_whole_numbers ... ok
[INFO] [stdout] test type_change::tests::real_to_int_incompatible_for_nan_or_inf ... ok
[INFO] [stdout] test type_change::tests::real_to_int_lossy_for_fractional ... ok
[INFO] [stdout] test type_change::tests::real_to_text_uses_shortest_round_trip ... ok
[INFO] [stdout] test type_change::tests::same_type_is_statically_refused ... ok
[INFO] [stdout] test type_change::tests::serial_to_int_is_identity_clean ... ok
[INFO] [stdout] test type_change::tests::shortid_to_text_passes_through ... ok
[INFO] [stdout] test type_change::tests::serial_to_real_or_text_is_clean ... ok
[INFO] [stdout] test type_change::tests::storage_class_change_counts_as_non_identity ... ok
[INFO] [stdout] test type_change::tests::text_to_date_clean_for_iso ... ok
[INFO] [stdout] test type_change::tests::text_to_datetime_clean_for_iso_datetime ... ok
[INFO] [stdout] test type_change::tests::text_to_date_incompatible_for_other_formats ... ok
[INFO] [stdout] test type_change::tests::identical_value_is_identity ... ok
[INFO] [stdout] test type_change::tests::text_to_bool_accepts_true_false_case_insensitively ... ok
[INFO] [stdout] test type_change::tests::text_to_bool_refuses_zero_one_strings ... ok
[INFO] [stdout] test type_change::tests::text_to_datetime_incompatible_for_garbage ... ok
[INFO] [stdout] test type_change::tests::text_to_datetime_lossy_for_bare_date ... ok
[INFO] [stdout] test type_change::tests::text_to_decimal_clean_for_numeric_string ... ok
[INFO] [stdout] test type_change::tests::text_to_decimal_incompatible_for_garbage ... ok
[INFO] [stdout] test type_change::tests::text_to_int_clean_for_integer_string ... ok
[INFO] [stdout] test type_change::tests::text_to_int_incompatible_for_garbage ... ok
[INFO] [stdout] test type_change::tests::text_to_int_lossy_for_real_lookalike_whole_number ... ok
[INFO] [stdout] test type_change::tests::text_to_int_lossy_via_real_for_fractional_string ... ok
[INFO] [stdout] test type_change::tests::text_to_real_clean_for_numeric_string ... ok
[INFO] [stdout] test type_change::tests::text_to_real_incompatible_for_garbage ... ok
[INFO] [stdout] test type_change::tests::text_to_shortid_clean_for_valid_shortid ... ok
[INFO] [stdout] test type_change::tests::text_to_shortid_incompatible_for_invalid ... ok
[INFO] [stdout] test ui::tests::candidate_line_single_mode_keeps_kind_colour ... ok
[INFO] [stdout] test ui::tests::category_three_prose_line_renders_all_dim ... ok
[INFO] [stdout] test ui::tests::advanced_mode_empty_hint_has_no_mode_pointer ... ok
[INFO] [stdout] test ui::tests::clamp_wrapped_truncates_with_ellipsis_past_max ... ok
[INFO] [stdout] test ui::tests::candidate_line_colours_mixed_mode_continuations ... ok
[INFO] [stdout] test project::tests::write_then_read_last_project_round_trips ... ok
[INFO] [stdout] test ui::tests::demo_badge_box_skipped_when_area_too_small ... ok
[INFO] [stdout] test seed::generators::tests::text_generators_produce_nonempty_text ... ok
[INFO] [stdout] test ui::tests::advanced_mode_hint_panel_surfaces_sql_candidates ... ok
[INFO] [stdout] test ui::tests::dark_theme_default_view_snapshot ... ok
[INFO] [stdout] test ui::tests::echo_tag_keeps_the_mode_tint_not_a_status_colour ... ok
[INFO] [stdout] test ui::tests::empty_hint_advertises_advanced_mode_in_simple ... ok
[INFO] [stdout] test ui::tests::error_and_system_tags_are_distinguishable_in_both_themes ... ok
[INFO] [stdout] test ui::tests::error_line_renders_red_tag_and_bold_neutral_body ... ok
[INFO] [stdout] test ui::tests::demo_badge_box_renders_in_light_theme ... ok
[INFO] [stdout] test runtime::tests::bucket_b_multi_statement_echoes_against_real_worker ... ok
[INFO] [stdout] test ui::tests::every_strip_state_fits_the_eighty_column_budget ... ok
[INFO] [stdout] test ui::tests::focused_panel_gets_an_accent_border ... ok
[INFO] [stdout] test ui::tests::format_local_datetime_renders_fixed_human_form ... ok
[INFO] [stdout] test ui::tests::advanced_mode_default_view_snapshot ... ok
[INFO] [stdout] test ui::tests::format_snapshot_timestamp_falls_back_on_garbage ... ok
[INFO] [stdout] test ui::tests::comfortable_terminal_wraps_input_across_two_rows ... ok
[INFO] [stdout] test ui::tests::format_snapshot_timestamp_drops_machine_syntax ... ok
[INFO] [stdout] test ui::tests::demo_caption_box_renders_at_output_bottom_right ... ok
[INFO] [stdout] test ui::tests::hint_class_resolves_to_muted_foreground ... ok
[INFO] [stdout] test ui::tests::input_scroll_offset_keeps_the_cursor_in_view ... ok
[INFO] [stdout] test ui::tests::echo_renders_running_then_marker_per_status ... ok
[INFO] [stdout] test ui::tests::focused_tables_panel_scrolls_and_clamps ... ok
[INFO] [stdout] test ui::tests::empty_relationships_panel_shows_none ... ok
[INFO] [stdout] test ui::tests::light_theme_default_view_snapshot ... ok
[INFO] [stdout] test ui::tests::input_at_home_shows_the_head_with_a_right_marker ... ok
[INFO] [stdout] test ui::tests::long_input_scrolls_to_keep_the_tail_and_cursor_visible ... ok
[INFO] [stdout] test ui::tests::focused_panel_border_cells_are_accent_colour_not_bold ... ok
[INFO] [stdout] test ui::tests::items_panel_nests_indexes_under_their_table ... ok
[INFO] [stdout] test ui::tests::highlighted_input_all_token_classes_snapshot ... ok
[INFO] [stdout] test ui::tests::demo_badge_box_is_black_on_yellow ... ok
[INFO] [stdout] test ui::tests::panel_heights_are_geometry_driven ... ok
[INFO] [stdout] test ui::tests::plain_text_matches_rendered_line_content ... ok
[INFO] [stdout] test ui::tests::relationships_panel_height_is_content_sized_within_bounds ... ok
[INFO] [stdout] test ui::tests::hint_panel_height_is_fixed_by_geometry_not_content ... ok
[INFO] [stdout] test ui::tests::one_shot_advanced_prompt_snapshot ... ok
[INFO] [stdout] test ui::tests::demo_badge_box_renders_at_output_bottom_right ... ok
[INFO] [stdout] test ui::tests::navigation_overlay_snapshot ... ok
[INFO] [stdout] test ui::tests::relationships_panel_lists_each_relationship ... ok
[INFO] [stdout] test ui::tests::narrow_comfortable_terminal_allows_a_third_hint_row ... ok
[INFO] [stdout] test ui::tests::demo_badge_stacks_above_caption ... ok
[INFO] [stdout] test ui::tests::sidebar_visible_is_width_gated ... ok
[INFO] [stdout] test ui::tests::strip_default_state_is_nav_complete_history_run ... ok
[INFO] [stdout] test ui::tests::styled_runs_payload_renders_each_span_with_its_class_colour ... ok
[INFO] [stdout] test ui::tests::strip_history_navigation_state_is_browse_clear_run ... ok
[INFO] [stdout] test ui::tests::strip_editing_state_surfaces_readline_keys ... ok
[INFO] [stdout] test ui::tests::system_line_renders_green_tag_and_neutral_body ... ok
[INFO] [stdout] test ui::tests::strip_sidebar_focus_state_is_pane_scroll_input ... ok
[INFO] [stdout] test ui::tests::teaching_echo_tag_is_green_like_other_system_lines ... ok
[INFO] [stdout] test ui::tests::long_prose_hint_shows_tail_across_multiple_rows ... ok
[INFO] [stdout] test ui::tests::strip_completion_memo_state_is_cycle_cancel_run ... ok
[INFO] [stdout] test ui::tests::teaching_echo_line_renders_dim_prefix_and_lexed_sql ... ok
[INFO] [stdout] test ui::tests::rebuild_confirm_modal_snapshot ... ok
[INFO] [stdout] test ui::tests::undo_dialog_width_grows_to_fit_and_clamps ... ok
[INFO] [stdout] test ui::tests::typing_replaces_the_empty_hint_mode_pointer ... ok
[INFO] [stdout] test ui::tests::two_row_input_snapshot ... ok
[INFO] [stdout] test ui::tests::relationships_panel_snapshot ... ok
[INFO] [stdout] test ui::tests::navigation_mode_reveals_and_expands_the_sidebar ... ok
[INFO] [stdout] test ui::tests::populated_with_table_snapshot ... ok
[INFO] [stdout] test ui::tests::sidebar_hidden_at_or_below_threshold_width ... ok
[INFO] [stdout] test ui::tests::two_row_input_scrolls_when_it_overflows_both_rows ... ok
[INFO] [stdout] test ui::tests::undo_modal_uses_capitalized_labels_and_formatted_time ... ok
[INFO] [stdout] test ui::tests::demo_caption_wraps_to_three_lines_and_ellipsises ... ok
[INFO] [stdout] test ui::tests::two_row_input_keeps_the_indicator_on_the_first_row ... ok
[INFO] [stdout] test ui::tests::undo_modal_command_does_not_wrap_on_wide_terminal ... ok
[INFO] [stdout] test undo::tests::empty_stacks_return_none ... ok
[INFO] [stdout] test undo::tests::discard_leaves_no_undo_entry ... ok
[INFO] [stdout] test undo::tests::stage_then_finalize_records_undo_entry ... ok
[INFO] [stdout] test undo::tests::peek_does_not_consume ... ok
[INFO] [stdout] test undo::tests::cleanup_removes_orphan_payloads_and_staging ... ok
[INFO] [stdout] test undo::tests::next_id_is_not_reused_after_orphan ... ok
[INFO] [stdout] test db::tests::unique_flag_persisted_in_yaml_for_non_pk_serial ... ok
[INFO] [stdout] test db::tests::set_mode_persists_and_survives_a_later_ddl_command ... ok
[INFO] [stdout] test undo::tests::undo_removes_csv_for_table_created_after_snapshot ... ok
[INFO] [stdout] test undo::tests::eviction_keeps_only_cap_entries ... ok
[INFO] [stdout] test undo::tests::clear_redo_drops_redo_without_touching_undo ... ok
[INFO] [stdout] test undo::tests::new_work_clears_redo ... ok
[INFO] [stdout] test undo::tests::undo_restores_database_state ... ok
[INFO] [stdout] test undo::tests::undo_restores_text_files ... ok
[INFO] [stdout] test undo::tests::redo_reapplies_after_undo ... ok
[INFO] [stdout] test runtime::tests::switch_persists_the_outgoing_projects_mode ... ok
[INFO] [stdout] test db::tests::unique_flag_round_trips_through_rebuild ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1809 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.98s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rdbms_playground-8640e44fd175c127)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/it/main.rs (/opt/rustwide/target/debug/deps/it-c297b470ddbedf98)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 500 tests
[INFO] [stdout] test column_op_guards::simple_column_ops_refuse_internal_tables ... ok
[INFO] [stdout] test case_insensitive_names::rename_column_with_case_variant_table_keeps_metadata_in_step ... ok
[INFO] [stdout] test compound_fk::compound_fk_arity_mismatch_is_refused ... ok
[INFO] [stdout] test column_op_guards::add_relationship_refuses_internal_tables ... ok
[INFO] [stdout] test column_op_guards::drop_column_referenced_by_a_table_check_is_refused ... ok
[INFO] [stdout] test column_op_guards::drop_column_with_a_single_column_unique_is_refused_with_actionable_message ... ok
[INFO] [stdout] test column_op_guards::rename_column_referenced_by_a_table_check_is_refused ... ok
[INFO] [stdout] test column_op_guards::rename_column_with_a_column_level_check_is_refused ... ok
[INFO] [stdout] test compound_fk::parenthesized_compound_endpoint_parses_to_column_lists ... ok
[INFO] [stdout] test column_op_guards::drop_column_covered_by_a_composite_unique_is_refused_with_the_derived_name ... ok
[INFO] [stdout] test compound_fk::single_column_endpoint_still_parses_unparenthesized ... ok
[INFO] [stdout] test compound_fk::sql_bare_compound_reference_parses_with_no_parent_columns ... ok
[INFO] [stdout] test column_op_guards::drop_column_referenced_by_another_columns_check_is_refused_but_own_check_drops ... ok
[INFO] [stdout] test compound_fk::sql_table_level_compound_fk_parses_to_lists ... ok
[INFO] [stdout] test engine_vocabulary_audit::cli_help_text_uses_no_engine_vocabulary ... ok
[INFO] [stdout] test engine_vocabulary_audit::db_error_friendly_message_uses_no_engine_vocabulary ... ok
[INFO] [stdout] test engine_vocabulary_audit::in_app_help_uses_no_engine_vocabulary ... ok
[INFO] [stdout] test engine_vocabulary_audit::parse_errors_use_no_engine_vocabulary ... ok
[INFO] [stdout] test friendly_enrichment::enrich_check_insert_resolves_table_column_value_and_rule ... ok
[INFO] [stdout] test friendly_enrichment::enrich_fk_delete_resolves_child_table ... ok
[INFO] [stdout] test friendly_enrichment::enrich_fk_insert_compound_names_every_column_pair ... ok
[INFO] [stdout] test friendly_enrichment::enrich_fk_insert_natural_order_multi_value_resolves_via_schema ... ok
[INFO] [stdout] test friendly_enrichment::enrich_fk_insert_resolves_parent_table_column_and_value ... ok
[INFO] [stdout] test friendly_enrichment::enrich_not_null_resolves_table_and_column ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unique_insert_natural_order_short_form_resolves_value_via_schema ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unique_insert_resolves_table_column_value_and_pinpoint ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unique_sql_insert_natural_order_resolves_value_via_schema ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unique_sql_update_resolves_value_from_set_literals ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unique_update_resolves_value_from_assignments ... ok
[INFO] [stdout] test friendly_enrichment::enrich_unsupported_returns_default_facts ... ok
[INFO] [stdout] test help_command::bare_help_parses_with_no_topic ... ok
[INFO] [stdout] test help_command::full_help_lists_commands_and_ends_with_the_detail_hint ... ok
[INFO] [stdout] test help_command::help_create_covers_every_form_sharing_the_entry_word ... ok
[INFO] [stdout] test help_command::help_insert_renders_the_insert_block ... ok
[INFO] [stdout] test help_command::help_topic_is_a_single_word_multi_word_is_a_parse_error ... ok
[INFO] [stdout] test help_command::help_types_renders_the_type_reference ... ok
[INFO] [stdout] test help_command::help_unknown_topic_points_back_to_the_full_list ... ok
[INFO] [stdout] test help_command::help_with_topic_captures_the_word ... ok
[INFO] [stdout] test column_op_guards::rebuild_survives_after_dropping_an_unreferenced_column ... ok
[INFO] [stdout] test case_insensitive_names::add_column_with_case_variant_table_survives_rebuild ... ok
[INFO] [stdout] test compound_fk::compound_fk_partial_pk_reference_is_refused ... ok
[INFO] [stdout] test compound_fk::compound_fk_create_fk_makes_both_child_columns ... ok
[INFO] [stdout] test case_insensitive_names::insert_with_case_variant_table_persists_and_survives_rebuild ... ok
[INFO] [stdout] test compound_fk::compound_fk_type_mismatch_per_pair_is_refused ... ok
[INFO] [stdout] test compound_fk::inline_fk_referencing_compound_pk_points_at_table_level_form ... ok
[INFO] [stdout] test case_insensitive_names::rename_table_accepts_case_variant_source ... ok
[INFO] [stdout] test case_insensitive_names::add_relationship_with_case_variant_tables_survives_rebuild ... ok
[INFO] [stdout] test compound_fk::compound_fk_declares_enforces_and_round_trips ... ok
[INFO] [stdout] test case_insensitive_names::drop_table_with_case_variant_name_clears_table_and_csv ... ok
[INFO] [stdout] test iteration2_persistence::create_table_writes_yaml_and_history ... ok
[INFO] [stdout] test compound_fk::compound_fk_survives_rebuild_from_text ... ok
[INFO] [stdout] test compound_fk::show_relationship_carries_compound_columns_into_diagram_data ... ok
[INFO] [stdout] test iteration4a_rebuild_command::modal_n_or_esc_dismisses_without_action ... ok
[INFO] [stdout] test iteration2_persistence::create_table_does_not_write_csv_for_empty_table ... ok
[INFO] [stdout] test iteration4a_rebuild_command::modal_y_emits_rebuild_action_and_closes ... ok
[INFO] [stdout] test iteration4a_rebuild_command::modal_swallows_unrelated_keys ... ok
[INFO] [stdout] test iteration4a_rebuild_command::rebuild_prepared_event_opens_modal_with_summary ... ok
[INFO] [stdout] test iteration4a_rebuild_command::typing_rebuild_emits_prepare_action ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::copy_project_excludes_lock_file ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::copy_project_refuses_existing_destination ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::empty_data_root_load_picker_opens_in_path_entry_mode ... ok
[INFO] [stdout] test compound_fk::sql_create_table_compound_fk_executes_and_enforces ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::fresh_temp_is_unmodified ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::help_command_lists_supported_commands ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::help_describes_auto_generated_type_behaviour ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::load_command_emits_open_picker_action ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::load_picker_b_enters_path_entry_submode ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::load_picker_g_jumps_to_first_and_last ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::load_picker_jk_navigates_like_arrows ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::load_picker_renders_entries_and_navigates ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::named_project_is_never_unmodified_temp ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::new_command_emits_action ... ok
[INFO] [stdout] test iteration2_persistence::failed_command_does_not_append_history_or_change_yaml ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::path_entry_modal_backspace_edits_input ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::path_entry_modal_esc_cancels ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::path_entry_modal_typing_and_enter_emits_save_as ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::project_switched_event_updates_state ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_allows_migration_backups_and_tmp_files ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::project_kind_recovered_from_dirname_on_open ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_allows_undo_snapshot_ring ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_refuses_directory_without_temp_marker ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_refuses_directory_with_unexpected_file ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_refuses_path_outside_data_root ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_refuses_symlink_top_level ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::save_as_always_opens_path_entry_modal ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::safely_delete_removes_genuine_unmodified_temp ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::save_on_temp_opens_path_entry_modal ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::save_on_named_project_emits_hint_and_no_modal ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::unmodified_temp_with_residual_csv_in_data_dir_is_not_unmodified ... ok
[INFO] [stdout] test iteration2_persistence::insert_writes_csv_and_history ... ok
[INFO] [stdout] test iteration5_export_import::export_with_no_arg_emits_default_action ... ok
[INFO] [stdout] test iteration5_export_import::export_with_only_whitespace_after_keyword_errors ... ok
[INFO] [stdout] test iteration5_export_import::export_with_path_argument_passes_through_target ... ok
[INFO] [stdout] test iteration2_persistence::delete_all_rows_removes_csv ... ok
[INFO] [stdout] test iteration5_export_import::full_round_trip_export_then_extract ... ok
[INFO] [stdout] test iteration5_export_import::help_lists_export_and_import ... ok
[INFO] [stdout] test iteration5_export_import::import_grammar_only_splits_on_space_around_as ... ok
[INFO] [stdout] test iteration5_export_import::import_with_zip_and_as_target_emits_both ... ok
[INFO] [stdout] test iteration5_export_import::import_with_empty_target_after_as_errors ... ok
[INFO] [stdout] test iteration5_export_import::import_with_zip_path_emits_action_without_target ... ok
[INFO] [stdout] test iteration5_export_import::import_without_arg_emits_error ... ok
[INFO] [stdout] test iteration5_export_import::next_export_sequence_increments_per_existing_file ... ok
[INFO] [stdout] test iteration5_export_import::resolve_import_target_auto_suffixes_on_collision ... ok
[INFO] [stdout] test iteration5_export_import::resolve_import_target_uses_direct_name_when_free ... ok
[INFO] [stdout] test iteration6_resume_history::args_help_listing_mentions_resume ... ok
[INFO] [stdout] test iteration6_resume_history::args_parses_resume_flag ... ok
[INFO] [stdout] test iteration6_resume_history::args_resume_after_positional_path_also_errors ... ok
[INFO] [stdout] test iteration6_resume_history::args_resume_with_positional_path_is_an_error ... ok
[INFO] [stdout] test iteration6_resume_history::data_root_with_no_last_project_is_resume_safe ... ok
[INFO] [stdout] test iteration2_persistence::drop_table_removes_its_csv ... ok
[INFO] [stdout] test iteration6_resume_history::last_project_create_temp_path_resolves_to_existing_dir ... ok
[INFO] [stdout] test compound_fk::compound_fk_undo_removes_the_relationship ... ok
[INFO] [stdout] test iteration6_resume_history::advanced_command_journalled_then_hydrated_recalls_with_colon_in_simple ... ok
[INFO] [stdout] test iteration6_resume_history::last_project_returns_stale_path_verbatim_for_runtime_to_detect ... ok
[INFO] [stdout] test iteration6_resume_history::last_project_round_trips_through_disk ... ok
[INFO] [stdout] test iteration6_resume_history::read_last_project_handles_missing_data_root_directory ... ok
[INFO] [stdout] test iteration6_resume_history::hydration_reads_both_ok_and_err_records ... ok
[INFO] [stdout] test iteration6_resume_history::read_recent_history_returns_empty_when_log_missing ... ok
[INFO] [stdout] test iteration6_resume_history::seed_history_preserves_chronological_order_for_navigation ... ok
[INFO] [stdout] test iteration6_resume_history::project_switched_event_seeds_history_from_payload ... ok
[INFO] [stdout] test iteration6_resume_history::seed_history_replaces_in_memory_history ... ok
[INFO] [stdout] test iteration6_resume_history::last_project_is_overwritten_each_call ... ok
[INFO] [stdout] test iteration6_resume_history::read_recent_history_returns_appended_entries_in_order ... ok
[INFO] [stdout] test iteration2_persistence::project_yaml_carries_relationship_after_add ... ok
[INFO] [stdout] test iteration4a_rebuild_command::rebuild_against_populated_db_wipes_and_reloads ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::temp_with_a_table_is_no_longer_unmodified ... ok
[INFO] [stdout] test iteration4b_lifecycle_commands::list_projects_sorts_by_mtime ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_reports_fatal_error_on_bad_csv_row ... ok
[INFO] [stdout] test iteration2_persistence::delete_with_cascade_rewrites_both_csvs ... ok
[INFO] [stdout] test m2n::parses_to_create_m2n_relationship ... ok
[INFO] [stdout] test m2n::parses_with_as_name ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_preserves_created_at_from_yaml ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_restores_indexes ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_restores_schema_only_project ... ok
[INFO] [stdout] test m2n::as_an_internal_name_is_refused ... ok
[INFO] [stdout] test parse_error_pedagogy::add_alone_renders_both_add_family_usages ... ok
[INFO] [stdout] test parse_error_pedagogy::advanced_bare_select_collapses_projection_first_set ... ok
[INFO] [stdout] test parse_error_pedagogy::advanced_cross_join_with_on_teaches_no_on_clause ... ok
[INFO] [stdout] test parse_error_pedagogy::advanced_mode_usage_block_shows_sql_and_dsl_forms ... ok
[INFO] [stdout] test parse_error_pedagogy::caret_aligns_under_offending_token ... ok
[INFO] [stdout] test parse_error_pedagogy::create_alone_renders_create_table_usage ... ok
[INFO] [stdout] test parse_error_pedagogy::create_table_without_pk_renders_create_table_usage ... ok
[INFO] [stdout] test parse_error_pedagogy::drop_alone_renders_all_three_drop_family_usages ... ok
[INFO] [stdout] test parse_error_pedagogy::insert_partial_renders_insert_usage_template ... ok
[INFO] [stdout] test parse_error_pedagogy::near_miss_matrix_advanced_mode ... ok
[INFO] [stdout] test parse_error_pedagogy::near_miss_matrix_committed_multiforms ... ok
[INFO] [stdout] test parse_error_pedagogy::near_miss_matrix_simple_mode ... ok
[INFO] [stdout] test parse_error_pedagogy::show_alone_renders_both_show_family_usages ... ok
[INFO] [stdout] test parse_error_pedagogy::unknown_command_falls_back_to_available_commands_list ... ok
[INFO] [stdout] test parse_error_pedagogy::update_partial_renders_update_usage_template ... ok
[INFO] [stdout] test parse_error_pedagogy::with_alone_renders_cte_usage_not_select ... ok
[INFO] [stdout] test project_lifecycle::cli_args_thread_through_to_project_creation ... ok
[INFO] [stdout] test project_lifecycle::data_dir_override_does_not_touch_default_os_dir ... ok
[INFO] [stdout] test m2n::as_name_overrides_the_junction_table_name ... ok
[INFO] [stdout] test m2n::compound_parent_pk_contributes_one_fk_column_each ... ok
[INFO] [stdout] test project_lifecycle::no_args_creates_temp_project_under_data_root ... ok
[INFO] [stdout] test project_lifecycle::open_succeeds_after_first_project_is_dropped ... ok
[INFO] [stdout] test project_lifecycle::positional_nonexistent_path_is_refused ... ok
[INFO] [stdout] test project_lifecycle::positional_path_opens_existing_project ... ok
[INFO] [stdout] test project_lifecycle::second_open_of_same_project_is_refused_by_lock ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_restores_rows_from_csv ... ok
[INFO] [stdout] test m2n::missing_parent_table_is_refused ... ok
[INFO] [stdout] test iteration5_export_import::end_to_end_export_then_import_real_project ... ok
[INFO] [stdout] test project_lifecycle::db_opens_inside_project_and_creates_the_file ... ok
[INFO] [stdout] test iteration3_rebuild::rebuild_restores_relationships_and_cascade_behaviour ... ok
[INFO] [stdout] test m2n::junction_name_collision_is_refused ... ok
[INFO] [stdout] test m2n::pk_less_parent_is_refused ... ok
[INFO] [stdout] test m2n::create_m2n_is_one_undo_step ... ok
[INFO] [stdout] test m2n::self_referential_m2n_is_refused ... ok
[INFO] [stdout] test project_lifecycle::db_persists_across_open_close_cycles ... ok
[INFO] [stdout] test m2n::deleting_a_parent_cascades_to_the_junction ... ok
[INFO] [stdout] test m2n::read_all_relationships_returns_the_junction_relationships ... ok
[INFO] [stdout] test replay_command::replay_aborts_on_first_runtime_failure_and_reports_line ... ok
[INFO] [stdout] test replay_command::replay_missing_file_fails_with_line_number_zero ... ok
[INFO] [stdout] test replay_command::replay_empty_file_completes_with_zero_commands ... ok
[INFO] [stdout] test replay_command::replay_aborts_on_first_parse_failure_and_reports_line ... ok
[INFO] [stdout] test replay_command::replay_only_comments_completes_with_zero_commands ... ok
[INFO] [stdout] test m2n::the_junction_can_be_renamed ... ok
[INFO] [stdout] test seed::seed_bare_word_set_value_is_rejected ... ok
[INFO] [stdout] test m2n::generates_junction_with_compound_pk_and_two_enforced_fks ... ok
[INFO] [stdout] test replay_command::replay_history_log_records_subcommands_only ... ok
[INFO] [stdout] test replay_command::replay_rejects_wrong_type_value_in_a_hand_built_script ... ok
[INFO] [stdout] test m2n::junction_survives_save_and_rebuild ... ok
[INFO] [stdout] test replay_command::replay_skips_import_with_a_warning ... ok
[INFO] [stdout] test replay_command::replay_of_actual_history_log_runs_ok_commands_and_skips_err ... ok
[INFO] [stdout] test replay_command::replay_runs_advanced_sql_create_table_as_a_write ... ok
[INFO] [stdout] test seed::seed_column_fill_target_parses ... ok
[INFO] [stdout] test replay_command::replay_constraint_failure_shows_real_names_not_placeholders ... ok
[INFO] [stdout] test replay_command::replay_skips_blank_lines_and_comments ... ok
[INFO] [stdout] test seed::seed_column_fill_with_set_parses ... ok
[INFO] [stdout] test replay_command::replay_skips_nested_replay_with_a_warning ... ok
[INFO] [stdout] test seed::seed_count_is_not_confused_by_a_range_value ... ok
[INFO] [stdout] test seed::seed_advises_on_a_complex_check_column ... ok
[INFO] [stdout] test seed::seed_column_fill_empty_table_is_a_noop ... ok
[INFO] [stdout] test seed::replay_reruns_a_seed_line_as_a_data_write ... ok
[INFO] [stdout] test seed::seed_advises_on_enum_ish_columns ... ok
[INFO] [stdout] test replay_command::replay_skips_app_lifecycle_commands_silently ... ok
[INFO] [stdout] test seed::seed_is_available_in_advanced_mode ... ok
[INFO] [stdout] test seed::seed_column_fill_fixed_on_unique_column_is_a_friendly_error ... ok
[INFO] [stdout] test replay_command::replay_three_lines_dispatches_three_commands ... ok
[INFO] [stdout] test seed::seed_column_fill_rejects_a_row_count ... ok
[INFO] [stdout] test seed::seed_column_fill_refuses_a_pk_target ... ok
[INFO] [stdout] test seed::seed_multiple_overrides_combine ... ok
[INFO] [stdout] test seed::seed_column_fill_set_may_only_target_the_filled_column ... ok
[INFO] [stdout] test seed::seed_column_fill_updates_existing_rows_without_adding ... ok
[INFO] [stdout] test seed::seed_parses_the_reproducibility_flag ... ok
[INFO] [stdout] test seed::seed_parses_with_and_without_count ... ok
[INFO] [stdout] test seed::seed_draws_enum_values_from_an_in_check ... ok
[INFO] [stdout] test seed::seed_incompatible_range_is_a_friendly_error ... ok
[INFO] [stdout] test seed::seed_column_fill_fk_target_samples_the_parent ... ok
[INFO] [stdout] test seed::seed_count_defaults_to_twenty ... ok
[INFO] [stdout] test seed::seed_fixed_override_on_unique_column_is_a_friendly_error ... ok
[INFO] [stdout] test seed::seed_column_fill_is_one_undo_step ... ok
[INFO] [stdout] test seed::seed_fills_foreign_keys_from_existing_parents ... ok
[INFO] [stdout] test seed::seed_column_fill_uses_choice_set_heuristic ... ok
[INFO] [stdout] test seed::seed_is_one_undo_step ... ok
[INFO] [stdout] test seed::seed_set_combines_with_count_and_flag ... ok
[INFO] [stdout] test seed::seed_keeps_unique_columns_distinct ... ok
[INFO] [stdout] test seed::seed_set_date_range_override_parses_with_quoted_dates ... ok
[INFO] [stdout] test seed::seed_set_generator_override_parses ... ok
[INFO] [stdout] test seed::seed_set_fixed_value_override_parses ... ok
[INFO] [stdout] test seed::seed_set_numeric_range_override_parses ... ok
[INFO] [stdout] test seed::seed_omits_a_nullable_blob_column ... ok
[INFO] [stdout] test seed::seed_set_pick_list_override_parses ... ok
[INFO] [stdout] test seed::seed_override_drops_the_column_from_the_advisory ... ok
[INFO] [stdout] test seed::seed_refuses_a_not_null_blob_column ... ok
[INFO] [stdout] test seed::seed_populates_a_table_and_persists_rows ... ok
[INFO] [stdout] test seed::seed_preview_is_capped_but_count_is_full ... ok
[INFO] [stdout] test seed::seed_rolls_back_atomically_on_a_constraint_failure ... ok
[INFO] [stdout] test show_list::app_renders_show_list_lines_as_system_output ... ok
[INFO] [stdout] test seed::seed_refuses_an_excessive_count ... ok
[INFO] [stdout] test show_list::app_show_relationship_not_found_shows_friendly_line ... ok
[INFO] [stdout] test seed::seed_is_reproducible_with_a_fixed_seed ... ok
[INFO] [stdout] test show_list::app_show_tables_dispatches_show_list_command ... ok
[INFO] [stdout] test show_list::show_index_singular_parses_with_name ... ok
[INFO] [stdout] test seed::seed_refuses_when_a_parent_table_is_empty ... ok
[INFO] [stdout] test show_list::show_indexes_parses_as_show_list_indexes ... ok
[INFO] [stdout] test seed::seed_sequences_identifier_int_columns ... ok
[INFO] [stdout] test seed::seed_junction_produces_distinct_combinations_and_caps ... ok
[INFO] [stdout] test seed::seed_set_as_generator_forces_the_shape ... ok
[INFO] [stdout] test seed::seed_set_numeric_range_stays_within_bounds ... ok
[INFO] [stdout] test show_list::show_relationship_singular_parses_with_name ... ok
[INFO] [stdout] test seed::seed_unknown_generator_is_a_friendly_error ... ok
[INFO] [stdout] test seed::seed_set_fixed_value_fills_every_row ... ok
[INFO] [stdout] test seed::seed_set_pick_list_draws_only_from_the_list ... ok
[INFO] [stdout] test show_list::show_relationships_parses_as_show_list_relationships ... ok
[INFO] [stdout] test show_list::show_table_singular_still_parses_as_show_table ... ok
[INFO] [stdout] test seed::seed_zero_is_a_no_op ... ok
[INFO] [stdout] test show_list::show_tables_parses_as_show_list_tables ... ok
[INFO] [stdout] test show_list::show_lists_report_empty_collections_with_friendly_lines ... ok
[INFO] [stdout] test seed::seed_year_and_choice_set_heuristics ... ok
[INFO] [stdout] test seed::seed_foreign_keys_are_reproducible_with_a_fixed_seed ... ok
[INFO] [stdout] test show_list::app_show_table_renders_relationships_as_compact_diagrams ... ok
[INFO] [stdout] test show_list::app_renders_show_relationship_as_a_styled_diagram ... ok
[INFO] [stdout] test show_list::show_indexes_lists_qualified_name_and_columns ... ok
[INFO] [stdout] test seed::seed_shortid_columns_are_reproducible_with_a_fixed_seed ... ok
[INFO] [stdout] test show_list::show_one_index_renders_detail_block ... ok
[INFO] [stdout] test show_list::show_one_relationship_renders_detail_block ... ok
[INFO] [stdout] test seed::seed_with_set_is_reproducible ... ok
[INFO] [stdout] test show_list::show_one_unknown_name_reports_friendly_not_found ... ok
[INFO] [stdout] test show_list::show_relationship_worker_returns_none_for_unknown_name ... ok
[INFO] [stdout] test show_list::show_relationships_lists_name_endpoints_and_nondefault_action ... ok
[INFO] [stdout] test show_list::show_relationship_worker_returns_structured_diagram_data ... ok
[INFO] [stdout] test show_list::show_tables_lists_all_user_tables_with_count_header ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_check_with_violating_data_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_foreign_key_missing_child_column_refuses_without_dsl_flag ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_set_default_refused_on_serial ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_foreign_key_creates_an_enforced_relationship ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_add_column_survives_rebuild ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_composite_unique_enforced_and_survives_rebuild ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_unique_with_duplicate_data_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_set_not_null_refused_on_existing_null ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_set_data_type_converts ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_set_default_applies ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_incompatible_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_drop_default_removes_it ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_drop_not_null_allows_nulls ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_set_not_null_enforced ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_named_check_enforced_and_survives_rebuild_with_its_name ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_int_to_serial_is_allowed ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_clean_and_lossy_convert ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_drop_compound_primary_key_member_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_drop_primary_key_column_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_add_constraint_is_one_undo_step ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_survives_rebuild ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_on_fk_column_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_describe_shows_table_level_constraints ... ok
[INFO] [stdout] test sql_alter_table::e2e_drop_unknown_constraint_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_constraint_name_collision_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_static_refusals ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_column_type_is_one_undo_step ... ok
[INFO] [stdout] test sql_alter_table::e2e_drop_constraint_removes_a_named_foreign_key ... ok
[INFO] [stdout] test sql_alter_table::e2e_drop_composite_unique_ambiguous_name_is_refused ... ok
[INFO] [stdout] test sql_alter_table::e2e_alter_table_add_rename_drop_and_raw_default_check ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_table_refusals ... ok
[INFO] [stdout] test sql_alter_table::e2e_drop_composite_unique_by_derived_name ... ok
[INFO] [stdout] test sql_create_index::create_index_on_an_internal_table_is_refused_on_both_surfaces ... ok
[INFO] [stdout] test sql_alter_table::e2e_named_check_metadata_survives_a_fresh_rebuild ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_fk_child_updates_metadata_and_still_enforces ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_fk_parent_updates_metadata_and_still_enforces ... ok
[INFO] [stdout] test sql_alter_table::e2e_drop_composite_unique_is_one_undo_step ... ok
[INFO] [stdout] test sql_create_index::create_plain_index ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_table_keeps_its_index_with_a_stale_name ... ok
[INFO] [stdout] test sql_create_index::if_not_exists_on_an_existing_name_is_a_noop_and_journalled ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_self_referential_table_updates_both_ends ... ok
[INFO] [stdout] test sql_create_index::create_index_is_one_undo_step ... ok
[INFO] [stdout] test sql_create_index::create_unique_index_on_duplicate_data_is_refused ... ok
[INFO] [stdout] test sql_create_index::if_not_exists_short_circuits_only_a_name_collision ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_table_is_one_undo_step ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_table_with_table_qualified_check_survives_fresh_rebuild ... ok
[INFO] [stdout] test sql_create_index::create_unique_index_round_trips_and_survives_rebuild_and_enforces ... ok
[INFO] [stdout] test sql_alter_table::e2e_rename_table_with_rows_csv_follows_and_survives_rebuild ... ok
[INFO] [stdout] test sql_create_index::plain_and_unique_over_the_same_columns_are_not_duplicates ... ok
[INFO] [stdout] test sql_create_index::plain_duplicate_name_errors ... ok
[INFO] [stdout] test sql_create_index::unnamed_if_not_exists_skips_when_the_auto_named_index_exists ... ok
[INFO] [stdout] test sql_create_table::bare_self_reference_resolves_to_own_pk ... ok
[INFO] [stdout] test sql_create_table::bare_references_resolves_to_parent_single_column_pk ... ok
[INFO] [stdout] test sql_create_table::composite_pk_bare_reference_is_rejected ... ok
[INFO] [stdout] test sql_create_table::check_constraint_is_enforced ... ok
[INFO] [stdout] test sql_create_table::created_table_appears_with_playground_types ... ok
[INFO] [stdout] test sql_create_table::check_default_and_composite_unique_survive_rebuild ... ok
[INFO] [stdout] test sql_create_table::default_is_applied_when_column_omitted ... ok
[INFO] [stdout] test sql_create_table::dropping_a_column_a_table_check_references_fails_cleanly ... ok
[INFO] [stdout] test sql_create_table::composite_unique_is_enforced ... ok
[INFO] [stdout] test sql_create_table::dropping_a_referenced_parent_is_refused ... ok
[INFO] [stdout] test sql_create_table::explicit_constraint_name_is_used ... ok
[INFO] [stdout] test sql_create_table::dropping_the_child_clears_the_fk_relationship ... ok
[INFO] [stdout] test sql_create_table::foreign_key_creates_named_relationship_visible_in_describe ... ok
[INFO] [stdout] test sql_create_table::dropping_a_table_clears_its_table_check_metadata ... ok
[INFO] [stdout] test sql_create_table::fk_referential_actions_survive_rebuild ... ok
[INFO] [stdout] test sql_create_table::foreign_key_to_unknown_parent_is_rejected ... ok
[INFO] [stdout] test sql_create_table::foreign_key_to_non_pk_column_is_rejected ... ok
[INFO] [stdout] test sql_create_table::create_table_with_fk_is_one_undo_step ... ok
[INFO] [stdout] test sql_create_table::fk_survives_a_rebuild_triggering_column_add ... ok
[INFO] [stdout] test sql_create_table::foreign_key_is_enforced ... ok
[INFO] [stdout] test sql_create_table::if_not_exists_noop_is_journalled ... ok
[INFO] [stdout] test sql_create_table::foreign_key_type_mismatch_is_rejected ... ok
[INFO] [stdout] test sql_create_table::integer_primary_key_is_plain_int ... ok
[INFO] [stdout] test sql_create_table::foreign_key_survives_rebuild ... ok
[INFO] [stdout] test sql_create_table::if_not_exists_is_a_noop_when_table_exists ... ok
[INFO] [stdout] test sql_create_table::foreign_key_on_delete_cascade_takes_effect ... ok
[INFO] [stdout] test sql_create_table::plain_create_errors_when_table_exists ... ok
[INFO] [stdout] test sql_create_table::multiple_table_level_checks_all_enforced ... ok
[INFO] [stdout] test sql_create_table::serial_pk_autoincrements_in_multi_column_table ... ok
[INFO] [stdout] test sql_create_table::self_referencing_foreign_key_is_enforced ... ok
[INFO] [stdout] test sql_create_table::table_level_check_is_enforced ... ok
[INFO] [stdout] test sql_delete::internal_target_table_rejected_at_parse ... ok
[INFO] [stdout] test sql_delete::parse_path_lowers_sql_delete_to_command ... ok
[INFO] [stdout] test sql_create_table::table_level_check_survives_rebuild ... ok
[INFO] [stdout] test sql_create_table::sql_create_table_is_one_undo_step ... ok
[INFO] [stdout] test sql_create_table::table_without_primary_key_is_allowed ... ok
[INFO] [stdout] test sql_create_table::serial_pk_first_column_autoincrements_after_rebuild ... ok
[INFO] [stdout] test sql_create_table::table_level_check_survives_a_rebuild_triggering_column_add ... ok
[INFO] [stdout] test sql_create_table::serial_pk_non_first_column_autoincrements_after_rebuild ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_out_of_scope_dml_forms_parse_reject ... ok
[INFO] [stdout] test sql_delete::delete_returning_yields_predelete_row ... ok
[INFO] [stdout] test sql_delete::delete_with_where_persists ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_single_dml_statement_with_trailing_semicolon_parses ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_update_all_rows_in_advanced_falls_back_to_dsl ... ok
[INFO] [stdout] test sql_delete::cascade_delete_reports_summary_and_repersists_child ... ok
[INFO] [stdout] test sql_delete::delete_childless_parent_reports_no_cascade ... ok
[INFO] [stdout] test sql_delete::delete_returning_with_cascade_surfaces_both ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_validity_indicator_fires_for_sql_dml_diagnostic ... ok
[INFO] [stdout] test sql_delete::delete_without_where_runs_across_all_rows ... ok
[INFO] [stdout] test sql_delete::delete_violating_fk_fails_and_persists_nothing ... ok
[INFO] [stdout] test sql_delete::self_referential_cascade_counts_only_cascaded_rows ... ok
[INFO] [stdout] test sql_delete::cascade_to_two_children_reports_both ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_multirow_insert_all_ten_types_roundtrips_and_returning_recovers_each_type ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_insert_select_cross_table_copies_rows_and_persists_both ... ok
[INFO] [stdout] test sql_drop_index::if_exists_on_an_absent_index_is_a_noop_and_journalled ... ok
[INFO] [stdout] test sql_drop_index::plain_drop_of_an_absent_index_errors ... ok
[INFO] [stdout] test sql_delete::r2_cascade_with_subquery_where ... ok
[INFO] [stdout] test sql_delete::r2_where_with_subquery ... ok
[INFO] [stdout] test sql_insert::advanced_insert_form_b_maps_all_columns_including_serial ... ok
[INFO] [stdout] test sql_insert::advanced_insert_form_a_value_offers_typed_slot_hint ... ok
[INFO] [stdout] test sql_insert::advanced_insert_multi_row_typed_and_mismatch_caught ... ok
[INFO] [stdout] test sql_insert::advanced_insert_form_b_value_maps_first_column ... ok
[INFO] [stdout] test sql_insert::advanced_insert_second_position_hints_second_column ... ok
[INFO] [stdout] test sql_insert::advanced_insert_string_into_int_is_caught_live ... ok
[INFO] [stdout] test sql_insert::advanced_insert_value_int_mismatch_is_caught_live ... ok
[INFO] [stdout] test sql_insert::advanced_insert_value_expressions_still_parse_via_sql_expr ... ok
[INFO] [stdout] test sql_insert::advanced_upsert_do_update_set_offers_typed_slot_hint ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_returning_on_insert_update_delete ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_delete_with_cascade_reports_summary_and_repersists_children ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_upsert_round_trip_do_update_then_do_nothing ... ok
[INFO] [stdout] test sql_drop_table::if_exists_on_an_absent_table_is_a_noop_and_journalled ... ok
[INFO] [stdout] test sql_drop_table::drop_table_removes_an_existing_table ... ok
[INFO] [stdout] test sql_insert::conflict_target_columns_excluded_from_listed_columns ... ok
[INFO] [stdout] test sql_drop_index::drop_index_removes_an_existing_index_and_shows_the_table ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_replay_phase3_dml_forms_from_a_script ... ok
[INFO] [stdout] test sql_drop_table::plain_drop_of_an_absent_table_errors ... ok
[INFO] [stdout] test sql_dml_e2e::e2e_update_with_subquery_in_set ... ok
[INFO] [stdout] test sql_delete::cascade_parity_with_dsl ... ok
[INFO] [stdout] test sql_insert::autofill_does_not_mask_arity_mismatch ... ok
[INFO] [stdout] test sql_insert::autofill_preserves_on_conflict_clause ... ok
[INFO] [stdout] test sql_drop_table::dropping_a_referenced_parent_is_refused ... ok
[INFO] [stdout] test sql_insert::combined_serial_and_shortid_autofill ... ok
[INFO] [stdout] test sql_insert::autofill_upsert_real_conflict_preserves_clause_and_excluded ... ok
[INFO] [stdout] test sql_insert::autofill_insert_select_wider_projection_is_rejected ... ok
[INFO] [stdout] test sql_insert::autofill_insert_select_narrower_projection_is_rejected ... ok
[INFO] [stdout] test sql_drop_index::drop_index_is_one_undo_step_and_restores_the_index ... ok
[INFO] [stdout] test sql_insert::compound_pk_with_shortid_member_autofills ... ok
[INFO] [stdout] test sql_drop_table::drop_table_is_one_undo_step_and_restores_data ... ok
[INFO] [stdout] test sql_insert::explicit_shortid_value_is_respected ... ok
[INFO] [stdout] test sql_insert::failed_insert_rolls_back_and_does_not_repersist ... ok
[INFO] [stdout] test sql_insert::failed_multi_row_insert_is_atomic ... ok
[INFO] [stdout] test sql_insert::insert_multirow_returning_id_yields_distinct_rows ... ok
[INFO] [stdout] test sql_insert::insert_returning_autofills_shortid_and_returns_it ... ok
[INFO] [stdout] test sql_insert::parse_path_lowers_insert_select_to_command ... ok
[INFO] [stdout] test sql_insert::parse_path_lowers_sqlinsert_scaffold_to_command ... ok
[INFO] [stdout] test sql_insert::parse_path_lowers_with_prefixed_insert_select ... ok
[INFO] [stdout] test sql_insert::parse_path_rejects_internal_target_table ... ok
[INFO] [stdout] test sql_insert::insert_returning_recovers_bare_column_type ... ok
[INFO] [stdout] test sql_insert::insert_returning_star_returns_inserted_row ... ok
[INFO] [stdout] test sql_insert::insert_returning_computed_expression_is_typeless ... ok
[INFO] [stdout] test sql_insert::insert_returning_recovers_multiple_bare_column_types ... ok
[INFO] [stdout] test sql_insert::insert_select_from_self_runs_as_plain_insert ... ok
[INFO] [stdout] test sql_insert::multirow_autofill_returning_yields_distinct_generated_ids ... ok
[INFO] [stdout] test sql_insert::multi_row_insert_persists_both_rows ... ok
[INFO] [stdout] test sql_insert::insert_select_autofills_distinct_shortids ... ok
[INFO] [stdout] test sql_insert::insert_select_returning_executes_and_returns_rows ... ok
[INFO] [stdout] test sql_insert::no_column_list_full_arity_insert_persists ... ok
[INFO] [stdout] test sql_insert::on_conflict_do_nothing_without_target ... ok
[INFO] [stdout] test sql_insert::shortid_autofill_respects_mixed_case_column_name ... ok
[INFO] [stdout] test sql_select::advanced_mode_select_dispatches_as_command_select ... ok
[INFO] [stdout] test sql_insert::insert_select_copies_rows_and_persists ... ok
[INFO] [stdout] test sql_select::colon_one_shot_from_simple_mode_dispatches_select ... ok
[INFO] [stdout] test sql_select::advanced_mode_select_from_internal_table_is_rejected ... ok
[INFO] [stdout] test sql_insert::on_conflict_do_nothing_keeps_existing_row ... ok
[INFO] [stdout] test sql_insert::insert_select_with_column_list_and_projection_persists ... ok
[INFO] [stdout] test sql_insert::on_conflict_do_update_applies_excluded ... ok
[INFO] [stdout] test sql_insert::single_row_insert_persists_and_counts ... ok
[INFO] [stdout] test sql_insert::sql_dml_validates_literal_values_like_the_dsl ... ok
[INFO] [stdout] test sql_insert::sql_insert_expression_value_is_not_validated_and_runs ... ok
[INFO] [stdout] test sql_insert::sql_insert_multi_row_validates_each_literal ... ok
[INFO] [stdout] test sql_insert::sql_insert_natural_order_validates_against_schema_columns ... ok
[INFO] [stdout] test sql_select::database_run_select_constant_returns_a_single_row ... ok
[INFO] [stdout] test sql_insert::sql_insert_autofills_omitted_nonpk_serial ... ok
[INFO] [stdout] test sql_select::simple_mode_select_yields_sql_hint_and_does_not_dispatch ... ok
[INFO] [stdout] test sql_update::advanced_update_set_date_value_hint_says_yyyy_mm_dd ... ok
[INFO] [stdout] test sql_update::advanced_update_set_expression_still_parses_via_sql_expr ... ok
[INFO] [stdout] test sql_update::advanced_update_set_int_value_type_mismatch_is_caught_live ... ok
[INFO] [stdout] test sql_update::advanced_update_set_value_offers_typed_slot_hint_for_column ... ok
[INFO] [stdout] test sql_insert::values_autofills_omitted_shortid_pk ... ok
[INFO] [stdout] test sql_update::parse_path_lowers_sql_update_to_command ... ok
[INFO] [stdout] test sql_insert::values_multirow_autofills_distinct_shortids ... ok
[INFO] [stdout] test sql_update::sql_update_captures_set_literal_classification ... ok
[INFO] [stdout] test sql_insert::two_shortids_one_provided_one_autofilled ... ok
[INFO] [stdout] test sql_insert::two_shortids_pk_and_nonpk_both_autofill_distinctly ... ok
[INFO] [stdout] test sql_select::database_run_select_computed_expression_stays_typeless ... ok
[INFO] [stdout] test sql_select::database_run_select_from_user_table_returns_inserted_rows ... ok
[INFO] [stdout] test sql_select::database_run_select_recovers_all_ten_playground_types ... ok
[INFO] [stdout] test sql_select::database_run_select_type_recovery_works_on_empty_table ... ok
[INFO] [stdout] test sql_insert::with_prefixed_insert_select_runs_and_persists ... ok
[INFO] [stdout] test sql_select::database_run_select_recovers_text_type_through_alias ... ok
[INFO] [stdout] test sql_select::engine_aggregate_in_where_routes_through_catalog ... ok
[INFO] [stdout] test sql_select::database_run_select_recovers_bool_column_type ... ok
[INFO] [stdout] test sql_select::engine_group_by_missing_routes_through_catalog ... ok
[INFO] [stdout] test sql_select::decimal_aggregation_display_trims_ieee754_noise ... ok
[INFO] [stdout] test sql_update::multi_column_update_persists ... ok
[INFO] [stdout] test sql_update::sql_update_validates_every_assignment_not_just_the_first ... ok
[INFO] [stdout] test sql_select::engine_scalar_subquery_too_many_rows_routes_through_catalog ... ok
[INFO] [stdout] test sql_update::single_column_update_with_where_persists ... ok
[INFO] [stdout] test sql_update::update_matching_no_rows_is_ok ... ok
[INFO] [stdout] test sql_update::update_all_rows_flag_in_advanced_updates_every_row ... ok
[INFO] [stdout] test sql_update::update_returning_matching_no_rows_is_ok_and_empty ... ok
[INFO] [stdout] test sql_update::sql_update_validates_set_literals_like_the_dsl ... ok
[INFO] [stdout] test undo_snapshots::empty_undo_and_redo_are_no_ops ... ok
[INFO] [stdout] test walking_skeleton::add_column_confirmation_omits_relationship_prose ... ok
[INFO] [stdout] test walking_skeleton::add_column_flow_updates_structure_view ... ok
[INFO] [stdout] test walking_skeleton::colon_escape_in_simple_mode_is_one_shot ... ok
[INFO] [stdout] test walking_skeleton::add_relationship_flow_shows_parent_side_with_inbound_section ... ok
[INFO] [stdout] test walking_skeleton::delete_with_all_rows_emits_correct_action ... ok
[INFO] [stdout] test walking_skeleton::create_table_flow_updates_tables_list_and_structure_view ... ok
[INFO] [stdout] test walking_skeleton::drop_table_flow_clears_items_list ... ok
[INFO] [stdout] test walking_skeleton::dsl_failure_shows_friendly_error_in_output ... ok
[INFO] [stdout] test walking_skeleton::mode_switch_changes_label_and_subsequent_echoes ... ok
[INFO] [stdout] test walking_skeleton::quit_command_returns_quit_action ... ok
[INFO] [stdout] test walking_skeleton::rendering_works_at_minimum_useful_size ... ok
[INFO] [stdout] test walking_skeleton::show_data_for_empty_table_renders_placeholder ... ok
[INFO] [stdout] test walking_skeleton::insert_flow_emits_action_and_renders_data ... ok
[INFO] [stdout] test walking_skeleton::status_bar_is_keystroke_only_and_state_aware ... ok
[INFO] [stdout] test walking_skeleton::typing_invalid_simple_input_shows_a_parse_error_not_an_echo ... ok
[INFO] [stdout] test walking_skeleton::typing_colon_in_simple_mode_flips_prompt_to_advanced ... ok
[INFO] [stdout] test walking_skeleton::validity_indicator_renders_err_and_wrn_labels ... ok
[INFO] [stdout] test sql_update::update_returning_recovers_bare_column_type ... ok
[INFO] [stdout] test walking_skeleton::typing_then_submitting_a_dsl_command_emits_execute_action ... ok
[INFO] [stdout] test sql_update::update_returning_yields_modified_columns ... ok
[INFO] [stdout] test sql_update::update_without_where_runs_across_all_rows ... ok
[INFO] [stdout] test sql_update::update_with_sql_expr_in_set ... ok
[INFO] [stdout] test sql_update::update_with_subquery_in_set ... ok
[INFO] [stdout] test undo_snapshots::undo_disabled_takes_no_snapshots ... ok
[INFO] [stdout] test undo_snapshots::batch_records_a_single_undo_step ... ok
[INFO] [stdout] test undo_snapshots::undo_ring_persists_across_reopen ... ok
[INFO] [stdout] test undo_snapshots::redo_is_cleared_when_new_work_commits_without_a_snapshot ... ok
[INFO] [stdout] test undo_snapshots::mutation_snapshots_and_undo_restores_through_the_worker ... ok
[INFO] [stdout] test undo_snapshots::new_work_after_undo_clears_redo ... ok
[INFO] [stdout] test undo_snapshots::undo_restores_db_and_csv_consistently ... ok
[INFO] [stdout] test undo_snapshots::redo_reapplies_the_undone_command ... ok
[INFO] [stdout] test undo_snapshots::undo_steps_back_across_dsl_and_sql_mutations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 500 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 28.66s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/typing_surface_matrix.rs (/opt/rustwide/target/debug/deps/typing_surface_matrix-38622adab666bab9)
[INFO] [stdout] 
[INFO] [stdout] running 200 tests
[INFO] [stdout] test typing_surface::add_relationship::after_parent_table_dot_narrows_to_parent_columns ... ok
[INFO] [stdout] test typing_surface::add_relationship::after_from_offers_table_names ... ok
[INFO] [stdout] test typing_surface::add_relationship::after_add_offers_relationship_branch ... ok
[INFO] [stdout] test typing_surface::app_commands::copy_space_offers_all_and_last ... ok
[INFO] [stdout] test typing_surface::add_relationship::add_relationship_in_progress_after_dot_is_incomplete ... ok
[INFO] [stdout] test typing_surface::add_relationship::after_child_table_dot_narrows_to_child_columns ... ok
[INFO] [stdout] test typing_surface::add_relationship::one_n_relationship_keyword_sequence_is_incomplete ... ok
[INFO] [stdout] test typing_surface::app_commands::messages_space_offers_short_and_verbose ... ok
[INFO] [stdout] test typing_surface::app_commands::mode_space_offers_simple_and_advanced ... ok
[INFO] [stdout] test typing_surface::app_commands::partial_entry_word_classifies_as_definite_error_but_completes ... ok
[INFO] [stdout] test typing_surface::app_commands::load_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::mode_with_value_parses ... ok
[INFO] [stdout] test typing_surface::add_relationship::complete_add_relationship_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::messages_with_value_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::export_with_path_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::import_with_path_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::new_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::rebuild_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::quit_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::messages_with_no_value_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::save_as_parses ... ok
[INFO] [stdout] test typing_surface::add_relationship::add_relationship_with_on_delete_clause_parses ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::add_column_after_to_lists_identifiers_before_table ... ok
[INFO] [stdout] test typing_surface::app_commands::save_space_offers_as_keyword ... ok
[INFO] [stdout] test typing_surface::app_commands::export_with_no_path_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::save_parses ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::add_column_lists_to_before_table ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::change_column_lists_in_before_table ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::drop_column_lists_from_before_table ... ok
[INFO] [stdout] test typing_surface::add_relationship::add_relationship_with_create_fk_flag_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::copy_with_no_value_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::copy_last_parses ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::insert_into_table_keyword_precedes_nothing_when_only_idents ... ok
[INFO] [stdout] test typing_surface::app_commands::help_parses ... ok
[INFO] [stdout] test typing_surface::app_commands::copy_all_parses ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::rename_column_lists_in_before_table ... ok
[INFO] [stdout] test typing_surface::constraints::add_column_after_type_offers_constraint_keywords ... ok
[INFO] [stdout] test typing_surface::constraints::after_drop_offers_constraint_branch ... ok
[INFO] [stdout] test typing_surface::constraints::add_constraint_offers_the_four_kinds ... ok
[INFO] [stdout] test typing_surface::constraints::add_column_check_suffix_parses ... ok
[INFO] [stdout] test typing_surface::constraints::add_constraint_to_offers_table_names ... ok
[INFO] [stdout] test typing_surface::constraints::after_add_offers_constraint_branch ... ok
[INFO] [stdout] test typing_surface::constraints::complete_add_constraint_default_parses ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::drop_column_identifiers_precede_table_keywords ... ok
[INFO] [stdout] test typing_surface::constraints::complete_add_constraint_not_null_parses ... ok
[INFO] [stdout] test typing_surface::constraints::complete_drop_constraint_parses ... ok
[INFO] [stdout] test typing_surface::constraints::add_constraint_dot_narrows_to_table_columns ... ok
[INFO] [stdout] test typing_surface::constraints::complete_add_constraint_check_parses ... ok
[INFO] [stdout] test typing_surface::create_m2n::after_create_offers_table_and_m2n ... ok
[INFO] [stdout] test typing_surface::constraints::create_table_check_suffix_parses ... ok
[INFO] [stdout] test typing_surface::create_m2n::after_from_offers_table_names ... ok
[INFO] [stdout] test typing_surface::constraints::create_table_default_suffix_parses ... ok
[INFO] [stdout] test typing_surface::constraints::drop_constraint_offers_the_four_kinds ... ok
[INFO] [stdout] test typing_surface::create_m2n::after_to_offers_table_names ... ok
[INFO] [stdout] test typing_surface::create_m2n::after_as_keyword_is_incomplete ... ok
[INFO] [stdout] test typing_surface::create_m2n::complete_create_m2n_parses ... ok
[INFO] [stdout] test typing_surface::create_m2n::m2n_relationship_keyword_sequence_is_incomplete ... ok
[INFO] [stdout] test typing_surface::create_m2n::create_m2n_with_as_name_parses ... ok
[INFO] [stdout] test typing_surface::create_table::after_create_expects_table ... ok
[INFO] [stdout] test typing_surface::candidate_ordering::add_column_identifiers_precede_table_keywords ... ok
[INFO] [stdout] test typing_surface::create_table::after_with_expects_pk ... ok
[INFO] [stdout] test typing_surface::create_table::after_pk_space_with_col_name_typed_expects_paren ... ok
[INFO] [stdout] test typing_surface::create_table::create_table_with_explicit_pk_parses ... ok
[INFO] [stdout] test typing_surface::delete_with_where::after_table_expects_filter_clause ... ok
[INFO] [stdout] test typing_surface::create_table::after_new_table_name_expects_with ... ok
[INFO] [stdout] test typing_surface::create_table::after_paren_expects_type_candidates ... ok
[INFO] [stdout] test typing_surface::delete_with_where::after_from_offers_table_names ... ok
[INFO] [stdout] test typing_surface::delete_with_where::after_where_column_equals_offers_typed_prose ... ok
[INFO] [stdout] test typing_surface::delete_with_where::after_where_offers_active_table_columns_no_leakage ... ok
[INFO] [stdout] test typing_surface::create_table::create_table_without_with_pk_is_incomplete ... ok
[INFO] [stdout] test typing_surface::create_table::create_table_with_compound_pk_parses ... ok
[INFO] [stdout] test typing_surface::drop_column::after_colon_offers_only_active_table_columns_no_leakage ... ok
[INFO] [stdout] test typing_surface::drop_column::after_colon_serial_pk_offers_all_columns ... ok
[INFO] [stdout] test typing_surface::drop_column::after_table_name_expects_colon ... ok
[INFO] [stdout] test typing_surface::delete_all_rows::delete_without_filter_clause_is_incomplete ... ok
[INFO] [stdout] test typing_surface::delete_with_where::after_delete_expects_from ... ok
[INFO] [stdout] test typing_surface::create_table::after_pk_word_does_not_re_offer_pk ... ok
[INFO] [stdout] test typing_surface::delete_with_where::delete_with_datetime_column_says_yyyy_mm_dd_t ... ok
[INFO] [stdout] test typing_surface::delete_all_rows::complete_delete_all_rows_parses ... ok
[INFO] [stdout] test typing_surface::create_table::after_table_keyword_offers_no_candidates_for_new_name ... ok
[INFO] [stdout] test typing_surface::create_table::create_table_with_pk_default_parses ... ok
[INFO] [stdout] test typing_surface::delete_all_rows::delete_partial_flag_is_incomplete ... ok
[INFO] [stdout] test typing_surface::drop_column::complete_drop_column_parses ... ok
[INFO] [stdout] test typing_surface::delete_with_where::complete_delete_with_where_parses ... ok
[INFO] [stdout] test typing_surface::drop_column::after_drop_column_offers_table_names ... ok
[INFO] [stdout] test typing_surface::drop_relationship::after_child_table_dot_narrows_to_child_columns ... ok
[INFO] [stdout] test typing_surface::drop_relationship::after_parent_table_dot_narrows_to_parent_columns ... ok
[INFO] [stdout] test typing_surface::drop_relationship::after_from_offers_table_names ... ok
[INFO] [stdout] test typing_surface::drop_relationship::complete_drop_relationship_by_endpoints_parses ... ok
[INFO] [stdout] test typing_surface::drop_relationship::after_relationship_keyword_offers_from_and_names ... ok
[INFO] [stdout] test typing_surface::drop_relationship::after_to_offers_table_names ... ok
[INFO] [stdout] test typing_surface::drop_column::drop_column_with_table_keyword_parses ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_delete_from_table_expects_filter_clause ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_delete_expects_from ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_offers_the_three_explainable_commands ... ok
[INFO] [stdout] test typing_surface::explain::explain_show_data_where_offers_active_table_columns_no_leakage ... ok
[INFO] [stdout] test typing_surface::index_ops::after_add_offers_index_branch ... ok
[INFO] [stdout] test typing_surface::explain::complete_explain_show_data_with_where_and_limit_parses ... ok
[INFO] [stdout] test typing_surface::index_ops::add_index_open_paren_narrows_to_table_columns ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_show_expects_data ... ok
[INFO] [stdout] test typing_surface::drop_relationship::complete_drop_relationship_by_name_parses ... ok
[INFO] [stdout] test typing_surface::index_ops::add_index_after_on_offers_table_names ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_update_offers_table_names ... ok
[INFO] [stdout] test typing_surface::explain::complete_explain_delete_parses_as_explain ... ok
[INFO] [stdout] test typing_surface::explain::complete_explain_show_data_parses_as_explain ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_close_paren_expects_values_keyword ... ok
[INFO] [stdout] test typing_surface::index_ops::complete_drop_index_by_columns_parses ... ok
[INFO] [stdout] test typing_surface::index_ops::complete_add_index_parses ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_update_table_expects_set ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_show_data_offers_table_names ... ok
[INFO] [stdout] test typing_surface::index_ops::complete_drop_index_by_name_parses ... ok
[INFO] [stdout] test typing_surface::index_ops::after_drop_offers_index_branch ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_open_paren_offers_active_table_columns_only ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_into_with_multi_table_offers_both ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_insert_keyword_expects_into ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_into_offers_table_candidates ... ok
[INFO] [stdout] test typing_surface::index_ops::complete_add_index_named_parses ... ok
[INFO] [stdout] test typing_surface::explain::complete_explain_update_parses_as_explain ... ok
[INFO] [stdout] test typing_surface::explain::after_explain_show_data_table_offers_where_and_limit ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_insert_space_expects_into ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_open_paren_text_pk_offers_text_pk_columns ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_open_paren_serial_pk_offers_all_columns_including_serial ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_table_name_offers_values_and_open_paren ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_open_paren_no_leakage_from_other_tables ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_date_slot_prose_says_yyyy_mm_dd ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_in_progress_values_list_is_incomplete_not_definite_error ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_values_keyword_expects_open_paren ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_complete_parses_to_insert ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_shortid_slot_prose_mentions_null_to_auto_generate ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_bool_slot_prose_mentions_true_false ... ok
[INFO] [stdout] test typing_surface::insert_form_b::after_values_space_offers_open_paren ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_int_slot_prose_says_integer ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_a_first_slot_has_no_skip_note ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_first_slot_mentions_skipped_serial_column ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_values_open_paren_form_a_serial_column_offers_null_to_auto_generate ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_advances_through_every_type_first_to_real ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_in_progress_with_one_value_is_incomplete ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_first_value_every_type_first_column_is_int ... ok
[INFO] [stdout] test typing_surface::insert_form_a::mid_value_list_after_comma_advances_to_next_column_prose ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_first_value_text_pk_names_first_column ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_in_progress_after_comma_is_incomplete ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_first_value_skips_serial_column ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_text_pk_with_correct_values_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_with_correct_values_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_a::mid_column_list_after_comma_offers_remaining_columns ... ok
[INFO] [stdout] test typing_surface::insert_form_a::after_values_open_paren_form_a_text_column_prose_names_column ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_after_first_value_advances_to_next_column ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_with_too_few_values_is_invalid_at_close_paren ... ok
[INFO] [stdout] test typing_surface::insert_form_a::form_a_complete_with_serial_in_list_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_second_slot_shows_typed_prose_for_column ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_serial_pk_correct_values_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_in_progress_without_closing_paren_is_incomplete ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_in_progress_after_comma_is_incomplete ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_second_slot_omits_skip_note ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_text_pk_has_no_skip_note ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_rejects_number_for_text_column ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_text_pk_correct_values_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_with_two_columns_flags_as_form_a_in_progress ... ok
[INFO] [stdout] test typing_surface::insert_form_b::form_b_with_extra_value_for_serial_column_is_invalid ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_with_null_value_parses ... ok
[INFO] [stdout] test typing_surface::rename_change_column::change_after_colon_narrows_to_active_table_columns ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_wrong_value_count_is_invalid ... ok
[INFO] [stdout] test typing_surface::rename_change_column::change_column_with_force_conversion_flag_parses ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_in_progress_without_close_paren_is_incomplete ... ok
[INFO] [stdout] test typing_surface::insert_form_c::form_c_with_column_shaped_item_flags_as_form_a_in_progress ... ok
[INFO] [stdout] test typing_surface::rename_change_column::change_after_open_paren_offers_type_candidates ... ok
[INFO] [stdout] test typing_surface::rename_change_column::complete_rename_column_parses ... ok
[INFO] [stdout] test typing_surface::rename_change_column::complete_change_column_parses ... ok
[INFO] [stdout] test typing_surface::update_all_rows::before_all_rows_flag_is_incomplete ... ok
[INFO] [stdout] test typing_surface::rename_change_column::rename_after_colon_narrows_to_active_table_columns ... ok
[INFO] [stdout] test typing_surface::rename_change_column::rename_after_to_is_new_name_slot ... ok
[INFO] [stdout] test typing_surface::smoke_assess_at_end_returns_each_field ... ok
[INFO] [stdout] test typing_surface::seed_completion_and_validity ... ok
[INFO] [stdout] test typing_surface::smoke_assess_parse_label_round_trips ... ok
[INFO] [stdout] test typing_surface::rename_change_column::rename_after_old_column_expects_to ... ok
[INFO] [stdout] test typing_surface::update_all_rows::update_without_filter_clause_is_incomplete ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_assignments_expects_where_or_all_rows ... ok
[INFO] [stdout] test typing_surface::smoke_each_schema_shape_builds ... ok
[INFO] [stdout] test typing_surface::update_all_rows::complete_update_all_rows_parses ... ok
[INFO] [stdout] test typing_surface::update_all_rows::update_partial_flag_name_is_incomplete ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_set_offers_only_active_table_columns_no_leakage ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_table_name_expects_set_keyword ... ok
[INFO] [stdout] test typing_surface::where_expression::after_where_column_offers_predicate_operators ... ok
[INFO] [stdout] test typing_surface::where_expression::after_not_keyword_expects_a_predicate ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_set_serial_pk_offers_all_columns ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_update_keyword_expects_table_name ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_where_keyword_offers_active_table_columns ... ok
[INFO] [stdout] test typing_surface::update_with_where::mid_assignment_list_after_comma_offers_remaining_columns ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_set_column_expects_equals ... ok
[INFO] [stdout] test typing_surface::where_expression::after_complete_predicate_offers_and_or ... ok
[INFO] [stdout] test typing_surface::where_expression::complete_show_data_with_where_and_limit_parses ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_where_column_equals_offers_typed_prose ... ok
[INFO] [stdout] test typing_surface::where_expression::show_data_after_where_predicate_offers_limit ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_equals_offers_typed_slot_prose_for_column ... ok
[INFO] [stdout] test typing_surface::update_with_where::after_equals_for_date_column_says_yyyy_mm_dd ... ok
[INFO] [stdout] test typing_surface::where_expression::show_data_after_table_offers_where_and_limit ... ok
[INFO] [stdout] test typing_surface::update_with_where::complete_update_with_where_parses ... ok
[INFO] [stdout] test typing_surface::where_expression::between_expects_a_low_bound ... ok
[INFO] [stdout] test typing_surface::where_expression::in_list_open_paren_expects_an_item ... ok
[INFO] [stdout] test typing_surface::where_expression::complex_and_or_expression_parses ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 200 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rdbms_playground
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/friendly/mod.rs - friendly (line 21) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.32s; merged doctests compilation took 0.31s
[INFO] running `Command { std: "docker" "inspect" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8", kill_on_drop: false }`
[INFO] [stdout] f5de83fc4d2f72fc63e83d91dedd5b13549bb311b4edf30107fbd3cb39c087e8
