in hms-lambda-handler/src/main/java/com/amazonaws/athena/hms/handler/GetTablesHandler.java [41:65]
public GetTablesResponse handleRequest(GetTablesRequest request, Context context)
{
HiveMetaStoreConf conf = getConf();
try {
context.getLogger().log("Connecting to embedded HMS client");
HiveMetaStoreClient client = getClient();
context.getLogger().log("Fetching tables for DB: " + request.getDbName());
List<Table> tables = client.getTableObjectsByName(request.getDbName(), request.getTableNames());
context.getLogger().log("Fetched tables: " + (tables == null || tables.isEmpty() ? 0 : tables.size()));
GetTablesResponse response = new GetTablesResponse();
if (tables != null && !tables.isEmpty()) {
TSerializer serializer = new TSerializer(getTProtocolFactory());
List<String> jsonTableList = new ArrayList<>();
for (Table table : tables) {
jsonTableList.add(serializer.toString(table, StandardCharsets.UTF_8.name()));
}
response.setTables(jsonTableList);
}
return response;
}
catch (Exception e) {
context.getLogger().log("Exception: " + e.getMessage());
throw new RuntimeException(e);
}
}