public GetTablesResponse handleRequest()

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);
    }
  }