private Optional<List<String>> loadPartitionNamesByParts(PartitionFilter partitionFilter) throws Exception { try { return retry() .stopOn(NoSuchObjectException.class) .stopOnIllegalExceptions() .run( "getPartitionNamesByParts", stats .getGetPartitionNamesPs() .wrap( () -> { try (HiveMetastoreClient client = clientProvider.createMetastoreClient()) { return Optional.of( client.getPartitionNamesFiltered( partitionFilter.getHiveTableName().getDatabaseName(), partitionFilter.getHiveTableName().getTableName(), partitionFilter.getParts())); } })); } catch (NoSuchObjectException e) { return Optional.empty(); } catch (TException e) { throw new PrestoException(HIVE_METASTORE_ERROR, e); } }
@Override public Optional<List<String>> getPartitionNamesByParts( String databaseName, String tableName, List<String> parts) { return get( partitionFilterCache, PartitionFilter.partitionFilter(databaseName, tableName, parts)); }