Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -371,35 +371,6 @@ public void testExplainAnalyzeDDL()
computeActual("EXPLAIN ANALYZE DROP TABLE orders");
}

private void assertExplainAnalyze(@Language("SQL") String query)
{
String value = (String) computeActual(query).getOnlyValue();

assertTrue(value.matches("(?s:.*)CPU:.*, Input:.*, Output(?s:.*)"), format("Expected output to contain \"CPU:.*, Input:.*, Output\", but it is %s", value));

// TODO: check that rendered plan is as expected, once stats are collected in a consistent way
// assertTrue(value.contains("Cost: "), format("Expected output to contain \"Cost: \", but it is %s", value));
}

protected void assertCreateTableAsSelect(String table, @Language("SQL") String query, @Language("SQL") String rowCountQuery)
{
assertCreateTableAsSelect(getSession(), table, query, query, rowCountQuery);
}

protected void assertCreateTableAsSelect(String table, @Language("SQL") String query, @Language("SQL") String expectedQuery, @Language("SQL") String rowCountQuery)
{
assertCreateTableAsSelect(getSession(), table, query, expectedQuery, rowCountQuery);
}

protected void assertCreateTableAsSelect(Session session, String table, @Language("SQL") String query, @Language("SQL") String expectedQuery, @Language("SQL") String rowCountQuery)
{
assertUpdate(session, "CREATE TABLE " + table + " AS " + query, rowCountQuery);
assertQuery(session, "SELECT * FROM " + table, expectedQuery);
assertUpdate(session, "DROP TABLE " + table);

assertFalse(getQueryRunner().tableExists(session, table));
}

// Flaky test: https://github.com/prestodb/presto/issues/20764
@Test(expectedExceptions = RuntimeException.class, expectedExceptionsMessageRegExp = "Regexp matching interrupted", timeOut = 30_000, enabled = false)
public void testRunawayRegexAnalyzerTimeout()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@
import static java.lang.String.format;
import static java.util.Collections.emptyList;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;

public abstract class AbstractTestQueryFramework
Expand Down Expand Up @@ -353,6 +355,35 @@ private static void assertExceptionMessage(String sql, Exception exception, @Lan
}
}

protected void assertExplainAnalyze(@Language("SQL") String query)
{
String value = (String) computeActual(query).getOnlyValue();

assertTrue(value.matches("(?s:.*)CPU:.*, Input:.*, Output(?s:.*)"), format("Expected output to contain \"CPU:.*, Input:.*, Output\", but it is %s", value));

// TODO: check that rendered plan is as expected, once stats are collected in a consistent way
// assertTrue(value.contains("Cost: "), format("Expected output to contain \"Cost: \", but it is %s", value));
}

protected void assertCreateTableAsSelect(String table, @Language("SQL") String query, @Language("SQL") String rowCountQuery)
{
assertCreateTableAsSelect(getSession(), table, query, query, rowCountQuery);
}

protected void assertCreateTableAsSelect(String table, @Language("SQL") String query, @Language("SQL") String expectedQuery, @Language("SQL") String rowCountQuery)
{
assertCreateTableAsSelect(getSession(), table, query, expectedQuery, rowCountQuery);
}

protected void assertCreateTableAsSelect(Session session, String table, @Language("SQL") String query, @Language("SQL") String expectedQuery, @Language("SQL") String rowCountQuery)
{
assertUpdate(session, "CREATE TABLE " + table + " AS " + query, rowCountQuery);
assertQuery(session, "SELECT * FROM " + table, expectedQuery);
assertUpdate(session, "DROP TABLE " + table);

assertFalse(getQueryRunner().tableExists(session, table));
}

protected MaterializedResult computeExpected(@Language("SQL") String sql, List<? extends Type> resultTypes)
{
return expectedQueryRunner.execute(getSession(), sql, resultTypes);
Expand Down