mirror of
https://github.com/lancedb/lancedb.git
synced 2026-08-18 03:58:26 +00:00
a651b67c76
Four of the eight LSM methods are remote-only in the core: `impl BaseTable for NativeTable` implements only set/unset/get_lsm_write_spec and close_lsm_writers, while flush_lsm, compact_lsm and get_lsm_stats fall through to trait defaults returning NotSupported. That is why Node had bound the four that work locally and stopped, and why the remaining four had no binding-level coverage anywhere. Node: add napi bindings for flush_lsm, compact_lsm, checkpoint_lsm and get_lsm_stats, with typed LsmStats/BucketStats/GenerationStats/ MemtableStats objects mirroring the existing LsmWriteSpec object in the same file. Tests assert each binding reaches the core and surfaces NotSupported locally; behavior against a real endpoint stays covered by the mocked-endpoint tests in rust/lancedb/src/remote/table.rs. Python: LsmWriteSpec was importable only from the private lancedb._lancedb -- it appeared in table.py solely under `if TYPE_CHECKING:`. Export it as lancedb.LsmWriteSpec, add it to __all__, and list it in the API reference, which had no mention of it and so rendered it nowhere. Java: add the LSM routes to lancedb-core. Java reaches LanceDB purely over REST through the generated namespace client, and these routes are not in the Lance Namespace spec, so they are issued through a small dedicated client. LsmWriteSpec is deliberately not org.lance.memwal. InitializeMemWalParams: that type defaults to maintaining no indexes where a spec here defaults to maintaining every index, and it cannot express the null that asks the server to resolve the set. checkpointLsm is ported from rust/lancedb/src/table/checkpoint.rs with its constants and status semantics intact -- 429/503 retried in place, 421 restarting from flush. Note: `mvnw spotless:apply` cannot run on JDK 21 (google-java-format 1.7, pinned in java/pom.xml, predates JDK 16's compiler API change). This is pre-existing and reproduces on a pristine main checkout; the Java sources here were formatted by hand to the checkstyle rules. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
114 lines
3.6 KiB
XML
114 lines
3.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>com.lancedb</groupId>
|
|
<artifactId>lancedb-parent</artifactId>
|
|
<version>0.38.0-beta.0</version>
|
|
<relativePath>../pom.xml</relativePath>
|
|
</parent>
|
|
|
|
<artifactId>lancedb-core</artifactId>
|
|
<name>${project.artifactId}</name>
|
|
<description>Utilities to work with LanceDB Cloud and Enterprise via Lance REST Namespace</description>
|
|
<packaging>jar</packaging>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.lance</groupId>
|
|
<artifactId>lance-core</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.arrow</groupId>
|
|
<artifactId>arrow-vector</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.arrow</groupId>
|
|
<artifactId>arrow-memory-netty</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Transport for the LanceDB routes outside the Lance Namespace spec.
|
|
Versions match what lance-namespace-apache-client resolves to. -->
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents.client5</groupId>
|
|
<artifactId>httpclient5</artifactId>
|
|
<version>5.2.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<version>2.17.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-junit-jupiter</artifactId>
|
|
<version>5.18.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>2.0.16</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-slf4j2-impl</artifactId>
|
|
<version>2.25.3</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-core</artifactId>
|
|
<version>2.25.3</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-api</artifactId>
|
|
<version>2.25.3</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>3.3.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|