From 255d65147c630b676249a90ed8d74fd229331d47 Mon Sep 17 00:00:00 2001 From: Yukihiro Okada Date: Tue, 24 Jun 2025 17:42:09 +0900 Subject: [PATCH 1/2] Add support for updateExpire for expire days setting for table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add updateExpire method to TDClientApi interface - Implement updateExpire method in TDClient class that calls /v3/table/update API - Add comprehensive test for updateExpire functionality including error cases - Method signature matches td-client-ruby and td-client-python implementations Fixes #110 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../com/treasuredata/client/TDClient.java | 12 ++++++ .../com/treasuredata/client/TDClientApi.java | 2 + .../com/treasuredata/client/TestTDClient.java | 41 +++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/src/main/java/com/treasuredata/client/TDClient.java b/src/main/java/com/treasuredata/client/TDClient.java index 266ac793..72959a5b 100644 --- a/src/main/java/com/treasuredata/client/TDClient.java +++ b/src/main/java/com/treasuredata/client/TDClient.java @@ -622,6 +622,18 @@ public void appendTableSchema(String databaseName, String tableName, List void appendTableSchema(String databaseName, String tableName, List newSchema); + void updateExpire(String databaseName, String tableName, int expireDays); + /** * Submit a new job request * diff --git a/src/test/java/com/treasuredata/client/TestTDClient.java b/src/test/java/com/treasuredata/client/TestTDClient.java index 1a5391a7..b0b01205 100644 --- a/src/test/java/com/treasuredata/client/TestTDClient.java +++ b/src/test/java/com/treasuredata/client/TestTDClient.java @@ -939,6 +939,47 @@ public void tableOperation() } } + @Test + public void updateExpireTest() + throws Exception + { + String t = newTemporaryName("expire_test"); + + try { + client.deleteTableIfExists(SAMPLE_DB, t); + client.createTableIfNotExists(SAMPLE_DB, t); + + // Test updating expire days + int expireDays = 30; + client.updateExpire(SAMPLE_DB, t, expireDays); + + // Verify the expire days were updated + TDTable updatedTable = findTable(SAMPLE_DB, t).get(); + assertEquals(Integer.toString(expireDays), updatedTable.getExpireDays()); + + // Test updating to different expire days + int newExpireDays = 60; + client.updateExpire(SAMPLE_DB, t, newExpireDays); + + // Verify the expire days were updated again + updatedTable = findTable(SAMPLE_DB, t).get(); + assertEquals(Integer.toString(newExpireDays), updatedTable.getExpireDays()); + + // Test error case - table doesn't exist + try { + client.updateExpire(SAMPLE_DB, "nonexistent_table", 30); + fail("should not reach here"); + } + catch (TDClientHttpNotFoundException e) { + // OK + assertEquals(HttpStatus.NOT_FOUND_404, e.getStatusCode()); + } + } + finally { + client.deleteTableIfExists(SAMPLE_DB, t); + } + } + @Test public void createTableWithoutIdempotentKey() throws Exception From 53c337c05f8bc41f0d5e0b3d63cbea8349fe5651 Mon Sep 17 00:00:00 2001 From: Yukihiro Okada Date: Wed, 25 Jun 2025 11:51:49 +0900 Subject: [PATCH 2/2] Fix typo, #365 --- src/main/java/com/treasuredata/client/TDClientConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/treasuredata/client/TDClientConfig.java b/src/main/java/com/treasuredata/client/TDClientConfig.java index 04752105..54e79e81 100644 --- a/src/main/java/com/treasuredata/client/TDClientConfig.java +++ b/src/main/java/com/treasuredata/client/TDClientConfig.java @@ -66,7 +66,7 @@ public static enum Type PROXY_HOST("td.client.proxy.host", "Proxy host (e.g., myproxy.com)"), PROXY_PORT("td.client.proxy.port", "Proxy port number"), PROXY_USER("td.client.proxy.user", "Proxy user name"), - PROXY_PASSWORD("td.client.proxy.password", "Proxy paassword"), + PROXY_PASSWORD("td.client.proxy.password", "Proxy password"), PROXY_USESSL("td.client.proxy.usessl", "Use SSL for proxy"); public final String key;