This is an automated email from the ASF dual-hosted git repository. FANNG1 pushed a commit to branch fix/lance-describe-table-version in repository https://gitbox.apache.org/repos/asf/gravitino.git
commit 8164d251795ab2521893e8513b521c37eb6485fa Author: fanng <“[email protected]”> AuthorDate: Wed Jun 10 22:31:00 2026 +0800 fix(lance): allow versioned describe table Co-authored-by: Copilot <[email protected]> --- .../ops/gravitino/GravitinoLanceTableOperations.java | 6 ------ .../lance/integration/test/LanceRESTServiceIT.java | 16 +++++++--------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceTableOperations.java b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceTableOperations.java index 5321b6bb74..fbb38b9bcc 100644 --- a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceTableOperations.java +++ b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceTableOperations.java @@ -104,12 +104,6 @@ public class GravitinoLanceTableOperations implements LanceTableOperations { Optional<Long> version, boolean checkDeclared, boolean loadDetailedMetadata) { - if (!version.isEmpty()) { - throw new UnsupportedOperationException( - "Describing specific table version is not supported. It should be null to indicate the" - + " latest version."); - } - ObjectIdentifier nsId = ObjectIdentifier.of(tableId, Pattern.quote(delimiter)); Preconditions.checkArgument( nsId.levels() == 3, "Expected at 3-level namespace but got: %s", nsId.levels()); diff --git a/lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/integration/test/LanceRESTServiceIT.java b/lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/integration/test/LanceRESTServiceIT.java index 061e61250b..cc4897b516 100644 --- a/lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/integration/test/LanceRESTServiceIT.java +++ b/lance/lance-rest-server/src/test/java/org/apache/gravitino/lance/integration/test/LanceRESTServiceIT.java @@ -460,6 +460,13 @@ public class LanceRESTServiceIT extends BaseIT { Assertions.assertEquals(location, loadTable.getLocation()); Assertions.assertNotNull(loadTable.getVersion()); + describeTableRequest.setVersion(loadTable.getVersion()); + DescribeTableResponse versionedLoadTable = ns.describeTable(describeTableRequest); + Assertions.assertNotNull(versionedLoadTable); + Assertions.assertEquals(location, versionedLoadTable.getLocation()); + Assertions.assertEquals(loadTable.getVersion(), versionedLoadTable.getVersion()); + Assertions.assertEquals(loadTable.getStorageOptions(), versionedLoadTable.getStorageOptions()); + List<JsonArrowField> jsonArrowFields = loadTable.getSchema().getFields(); for (int i = 0; i < jsonArrowFields.size(); i++) { JsonArrowField jsonArrowField = jsonArrowFields.get(i); @@ -824,15 +831,6 @@ public class LanceRESTServiceIT extends BaseIT { Assertions.assertThrows( RuntimeException.class, () -> ns.describeTable(describeTableRequest)); assertLanceErrorCode(describeException, ErrorCode.TABLE_NOT_FOUND); - - describeTableRequest.setVersion(1L); - RuntimeException versionException = - Assertions.assertThrows( - RuntimeException.class, () -> ns.describeTable(describeTableRequest)); - Assertions.assertTrue( - versionException - .getMessage() - .contains("Describing specific table version is not supported")); } @Test
