in hms-lambda-handler/src/main/java/com/amazonaws/athena/hms/handler/CreatePartitionHandler.java [119:142]
public CreatePartitionResponse handleRequest(CreatePartitionRequest request, Context context)
{
HiveMetaStoreConf conf = getConf();
try {
context.getLogger().log("Connecting to embedded HMS client");
HiveMetaStoreClient client = getClient();
context.getLogger().log("Creating table with desc: " + request.getTableDesc());
TDeserializer deserializer = new TDeserializer(getTProtocolFactory());
Table table = new Table();
deserializer.fromString(table, request.getTableDesc());
Partition partition = client.add_partition(new PartitionBuilder(table).withValues(request.getValues()).build());
context.getLogger().log("Created partition: " + partition);
CreatePartitionResponse response = new CreatePartitionResponse();
if (partition != null) {
TSerializer serializer = new TSerializer(getTProtocolFactory());
response.setPartitionDesc(serializer.toString(partition, StandardCharsets.UTF_8.name()));
}
return response;
}
catch (Exception e) {
context.getLogger().log("Exception: " + e.getMessage());
throw new RuntimeException(e);
}
}