Skip to content

Commit

Permalink
Fix quoting in error message for SHOW PARTITIONS
Browse files Browse the repository at this point in the history
  • Loading branch information
electrum committed May 24, 2018
1 parent 7dceac2 commit 73417c2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
import com.google.common.collect.ImmutableSortedMap;
import com.google.common.primitives.Primitives;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand All @@ -87,6 +88,7 @@
import static com.facebook.presto.metadata.MetadataUtil.createQualifiedName;
import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName;
import static com.facebook.presto.spi.StandardErrorCode.INVALID_TABLE_PROPERTY;
import static com.facebook.presto.sql.ExpressionFormatter.formatQualifiedName;
import static com.facebook.presto.sql.ParsingUtil.createParsingOptions;
import static com.facebook.presto.sql.QueryUtil.aliased;
import static com.facebook.presto.sql.QueryUtil.aliasedName;
Expand Down Expand Up @@ -355,13 +357,11 @@ private static Expression toExpression(Object value)
@Override
protected Node visitShowPartitions(ShowPartitions showPartitions, Void context)
{
QualifiedObjectName table = createQualifiedObjectName(session, showPartitions, showPartitions.getTable());
if (!metadata.getTableHandle(session, table).isPresent()) {
throw new SemanticException(MISSING_TABLE, showPartitions, "Table '%s' does not exist", table);
}

QualifiedObjectName partitionsTable = new QualifiedObjectName(table.getCatalogName(), table.getSchemaName(), table.getObjectName() + "$partitions");
throw new SemanticException(NOT_SUPPORTED, showPartitions, "SHOW PARTITIONS no longer exists. Use this instead: SELECT * FROM \"%s\"", partitionsTable);
List<String> parts = new ArrayList<>(showPartitions.getTable().getParts());
int last = parts.size() - 1;
parts.set(last, parts.get(last) + "$partitions");
QualifiedName table = QualifiedName.of(parts);
throw new SemanticException(NOT_SUPPORTED, showPartitions, "SHOW PARTITIONS no longer exists. Use this instead: SELECT * FROM %s", formatQualifiedName(table));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ public void testParsingError()
@Test
public void testShowPartitions()
{
assertQueryFails("SHOW PARTITIONS FROM orders", "line 1:1: SHOW PARTITIONS no longer exists. Use this instead: SELECT \\* FROM \"\\S+\\.orders\\$partitions\"");
assertQueryFails("SHOW PARTITIONS FROM orders", "line 1:1: SHOW PARTITIONS no longer exists. Use this instead: SELECT \\* FROM \"orders\\$partitions\"");
assertQueryFails("SHOW PARTITIONS FROM abc.orders", "line 1:1: SHOW PARTITIONS no longer exists. Use this instead: SELECT \\* FROM \"abc\".\"orders\\$partitions\"");
}

@Test
Expand Down

0 comments on commit 73417c2

Please sign in to comment.