diff --git a/.github/workflows/extended.yml b/.github/workflows/extended.yml index e9eb27dd96527..0ac2293775390 100644 --- a/.github/workflows/extended.yml +++ b/.github/workflows/extended.yml @@ -167,10 +167,21 @@ jobs: uses: ./.github/actions/setup-builder with: rust-version: stable + - name: Build sqllogictest binary + run: | + # Cargo emits test binaries with hashed filenames under target/.../deps. + # We use head to pick the first matching sqllogictests artifact from the JSON stream. + TEST_BIN=$(cargo build --profile release-nonlto --features backtrace,parquet_encryption --package datafusion-sqllogictest --test sqllogictests --message-format=json | sed -n 's/.*"executable":"\([^"]*\)".*/\1/p' | head -n 1) + if [ -z "$TEST_BIN" ]; then + echo "Could not find sqllogictests test binary" + exit 1 + fi + echo "TEST_BIN=$TEST_BIN" >> "$GITHUB_ENV" - name: Run sqllogictest + working-directory: datafusion/sqllogictest run: | - cargo test --features backtrace,parquet_encryption --profile release-nonlto --test sqllogictests -- --include-sqlite - cargo clean + # sqllogictests expects crate-relative paths for test data. + "$TEST_BIN" --include-sqlite diff --git a/datafusion/physical-plan/src/analyze.rs b/datafusion/physical-plan/src/analyze.rs index 1fb8f93a38782..cdbbb54007693 100644 --- a/datafusion/physical-plan/src/analyze.rs +++ b/datafusion/physical-plan/src/analyze.rs @@ -39,6 +39,7 @@ use futures::StreamExt; /// `EXPLAIN ANALYZE` execution plan operator. This operator runs its input, /// discards the results, and then prints out an annotated plan with metrics +/// TEST #[derive(Debug, Clone)] pub struct AnalyzeExec { /// Control how much extra to print diff --git a/datafusion/sqllogictest/bin/sqllogictests.rs b/datafusion/sqllogictest/bin/sqllogictests.rs index 8037532c09ac3..3be981cf4fcdf 100644 --- a/datafusion/sqllogictest/bin/sqllogictests.rs +++ b/datafusion/sqllogictest/bin/sqllogictests.rs @@ -336,6 +336,7 @@ async fn run_test_file( filters: &[Filter], currently_executing_sql_tracker: CurrentlyExecutingSqlTracker, ) -> Result<()> { + let begin = Instant::now(); let TestFile { path, relative_path, @@ -364,8 +365,9 @@ async fn run_test_file( runner.with_column_validator(strict_column_validator); runner.with_normalizer(value_normalizer); runner.with_validator(validator); - let result = run_file_in_runner(path, runner, filters).await; + let result = run_file_in_runner(path.clone(), runner, filters).await; pb.finish_and_clear(); + println!("{},{}", path.display(), begin.elapsed().as_secs_f64()); result }