From 03d807338f484dfa51be92d7a80cd7a76214f066 Mon Sep 17 00:00:00 2001 From: Sundar Annamalai Date: Fri, 25 Jun 2021 14:51:43 -0400 Subject: [PATCH] Fix broken "Show cubes" functionality when associated table was not found. --- .../java/io/prestosql/sql/rewrite/ShowQueriesRewrite.java | 7 +++++-- .../io/prestosql/tests/AbstractTestStarTreeQueries.java | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/presto-main/src/main/java/io/prestosql/sql/rewrite/ShowQueriesRewrite.java b/presto-main/src/main/java/io/prestosql/sql/rewrite/ShowQueriesRewrite.java index 91d564fc2..f07d060de 100644 --- a/presto-main/src/main/java/io/prestosql/sql/rewrite/ShowQueriesRewrite.java +++ b/presto-main/src/main/java/io/prestosql/sql/rewrite/ShowQueriesRewrite.java @@ -291,8 +291,11 @@ final class ShowQueriesRewrite QualifiedObjectName qualifiedTableName = QualifiedObjectName.valueOf(cubeMetadata.getSourceTableName()); Map tableLastModifiedTimeMap = new HashMap<>(); long tableLastModifiedTime = tableLastModifiedTimeMap.computeIfAbsent(qualifiedTableName, ignored -> { - TableHandle tableHandle = metadata.getTableHandle(session, qualifiedTableName).get(); - LongSupplier lastModifiedTimeSupplier = metadata.getTableLastModifiedTimeSupplier(session, tableHandle); + Optional tableHandle = metadata.getTableHandle(session, qualifiedTableName); + if (!tableHandle.isPresent()) { + return -1L; + } + LongSupplier lastModifiedTimeSupplier = metadata.getTableLastModifiedTimeSupplier(session, tableHandle.get()); return lastModifiedTimeSupplier == null ? -1L : lastModifiedTimeSupplier.getAsLong(); }); CubeStatus status = cubeMetadata.getCubeStatus(); diff --git a/presto-tests/src/main/java/io/prestosql/tests/AbstractTestStarTreeQueries.java b/presto-tests/src/main/java/io/prestosql/tests/AbstractTestStarTreeQueries.java index 29fa8b4ae..7ac79fa18 100644 --- a/presto-tests/src/main/java/io/prestosql/tests/AbstractTestStarTreeQueries.java +++ b/presto-tests/src/main/java/io/prestosql/tests/AbstractTestStarTreeQueries.java @@ -650,6 +650,7 @@ public abstract class AbstractTestStarTreeQueries computeActual("CREATE CUBE orders_cube_predicate_unsupported_predicate ON orders_table_predicate_unsupported_predicate WITH (AGGREGATIONS=(sum(totalprice)), GROUP=(custkey, orderdate))"); assertQueryFails("INSERT INTO CUBE orders_cube_predicate_unsupported_predicate WHERE orderdate = date '1992-01-01' OR custkey = 100", ".*Cannot support predicate.*"); assertQueryFails("INSERT OVERWRITE CUBE orders_cube_predicate_unsupported_predicate WHERE orderdate = date '1992-01-01' OR custkey = 100", ".*Cannot support predicate.*"); + assertQueryFails("INSERT INTO CUBE orders_cube_predicate_unsupported_predicate WHERE orderdate", ".*WHERE clause must evaluate to a boolean:.*"); assertUpdate("DROP TABLE orders_table_predicate_unsupported_predicate"); }