From 9f13593c0e7c1b890dc6b9e7e916e2f0d413f03a Mon Sep 17 00:00:00 2001 From: Sundar Annamalai Date: Fri, 10 Dec 2021 16:53:50 -0500 Subject: [PATCH] Use correct catalog to retrieve datatype of the predicate column while creating cube. --- .../java/io/prestosql/cli/CubeConsole.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/presto-cli/src/main/java/io/prestosql/cli/CubeConsole.java b/presto-cli/src/main/java/io/prestosql/cli/CubeConsole.java index 28a040fce..e133f7ce4 100644 --- a/presto-cli/src/main/java/io/prestosql/cli/CubeConsole.java +++ b/presto-cli/src/main/java/io/prestosql/cli/CubeConsole.java @@ -672,13 +672,13 @@ public class CubeConsole return false; } - if (queryRunner.getSession().getCatalog() != null) { - catalogName = queryRunner.getSession().getCatalog(); + if (sourceTableName.getPrefix().isPresent() && sourceTableName.getPrefix().get().getPrefix().isPresent()) { + catalogName = sourceTableName.getPrefix().get().getPrefix().get().toString(); checkArgument(catalogName.matches("[\\p{Alnum}_]+"), "Invalid catalog name"); columnDataTypeQuery = String.format(SELECT_DATA_TYPE_STRING, catalogName, tableName, columnName); } - else if (sourceTableName.getPrefix().isPresent() && sourceTableName.getPrefix().get().getPrefix().isPresent()) { - catalogName = sourceTableName.getPrefix().get().getPrefix().get().toString(); + else if (queryRunner.getSession().getCatalog() != null) { + catalogName = queryRunner.getSession().getCatalog(); checkArgument(catalogName.matches("[\\p{Alnum}_]+"), "Invalid catalog name"); columnDataTypeQuery = String.format(SELECT_DATA_TYPE_STRING, catalogName, tableName, columnName); } @@ -758,17 +758,16 @@ public class CubeConsole return false; } - if (queryRunner.getSession().getCatalog() != null) { - catalogName = queryRunner.getSession().getCatalog(); - checkArgument(catalogName.matches("[\\p{Alnum}_]+"), "Invalid catalog name"); - columnDataTypeQuery = String.format(SELECT_DATA_TYPE_STRING, catalogName, tableName, columnName); - } - else if (sourceTableName.getPrefix().isPresent() && sourceTableName.getPrefix().get().getPrefix().isPresent()) { + if (sourceTableName.getPrefix().isPresent() && sourceTableName.getPrefix().get().getPrefix().isPresent()) { catalogName = sourceTableName.getPrefix().get().getPrefix().get().toString(); checkArgument(catalogName.matches("[\\p{Alnum}_]+"), "Invalid catalog name"); columnDataTypeQuery = String.format(SELECT_DATA_TYPE_STRING, catalogName, tableName, columnName); } - + else if (queryRunner.getSession().getCatalog() != null) { + catalogName = queryRunner.getSession().getCatalog(); + checkArgument(catalogName.matches("[\\p{Alnum}_]+"), "Invalid catalog name"); + columnDataTypeQuery = String.format(SELECT_DATA_TYPE_STRING, catalogName, tableName, columnName); + } else { return false; }