From 8fd01215766e64a3cbeb1b5dece2e8f2b3a442e8 Mon Sep 17 00:00:00 2001 From: Alex Kasko Date: Wed, 25 Jun 2025 12:46:32 +0100 Subject: [PATCH] Fix query progress test (1.3) This is a backport of the PR #292 to `v1.3-ossivalis` stable branch. This change makes the query progress test to be compatible with the CTE changes done in #duckdb/duckdb#17459, see #duckdb/duckdb#18017 for details. --- src/test/java/org/duckdb/TestDuckDBJDBC.java | 28 +++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/test/java/org/duckdb/TestDuckDBJDBC.java b/src/test/java/org/duckdb/TestDuckDBJDBC.java index 7f46b28f8..16ffa06c1 100644 --- a/src/test/java/org/duckdb/TestDuckDBJDBC.java +++ b/src/test/java/org/duckdb/TestDuckDBJDBC.java @@ -3451,24 +3451,21 @@ public static void test_query_progress() throws Exception { stmt.execute("SET enable_progress_bar = true"); ExecutorService executorService = Executors.newSingleThreadExecutor(); - Future future = executorService.submit(new Callable() { - @Override - public QueryProgress call() throws Exception { - try { - Thread.sleep(2500); - QueryProgress qp = stmt.getQueryProgress(); - stmt.cancel(); - return qp; - } catch (Exception e) { - e.printStackTrace(); - return null; - } + Future future = executorService.submit(() -> { + try { + Thread.sleep(2500); + QueryProgress qp = stmt.getQueryProgress(); + stmt.cancel(); + return qp; + } catch (Exception e) { + e.printStackTrace(); + return null; } }); assertThrows( () -> stmt.executeQuery( - "WITH RECURSIVE cte AS (" + "WITH RECURSIVE cte AS NOT MATERIALIZED (" + "SELECT * from test_fib1 UNION ALL SELECT cte.i + 1, cte.f, cte.p + cte.f from cte WHERE cte.i < 150000) " + "SELECT avg(f) FROM cte"), @@ -3476,9 +3473,10 @@ public QueryProgress call() throws Exception { QueryProgress qpRunning = future.get(); assertNotNull(qpRunning); - assertEquals(qpRunning.getPercentage(), (double) 25); + assertTrue(qpRunning.getPercentage() > 0.09); + assertTrue(qpRunning.getPercentage() < 0.1); assertEquals(qpRunning.getRowsProcessed(), 1L); - assertEquals(qpRunning.getTotalRowsToProcess(), 4L); + assertEquals(qpRunning.getTotalRowsToProcess(), 1004L); assertThrows(stmt::getQueryProgress, SQLException.class); }