feat(nodejs): table.toArrow function (#1282)

Addresses https://github.com/lancedb/lancedb/issues/1254.

---------

Co-authored-by: universalmind303 <cory.grinstead@gmail.com>
This commit is contained in:
paul n walsh
2024-05-31 15:24:21 -03:00
committed by GitHub
parent 1dbb4cd1e2
commit 7c133ec416
2 changed files with 19 additions and 3 deletions

View File

@@ -21,6 +21,7 @@ import * as arrowOld from "apache-arrow-old";
import { Table, connect } from "../lancedb";
import {
Table as ArrowTable,
Field,
FixedSizeList,
Float,
@@ -94,6 +95,11 @@ describe.each([arrow, arrowOld])("Given a table", (arrow: any) => {
expect(await table.countRows("id == 7")).toBe(1);
expect(await table.countRows("id == 10")).toBe(1);
});
it("should return the table as an instance of an arrow table", async () => {
const arrowTbl = await table.toArrow();
expect(arrowTbl).toBeInstanceOf(ArrowTable);
});
});
describe("When creating an index", () => {

View File

@@ -11,8 +11,13 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { Data, Schema, fromDataToBuffer, tableFromIPC } from "./arrow";
import {
Table as ArrowTable,
Data,
Schema,
fromDataToBuffer,
tableFromIPC,
} from "./arrow";
import { getRegistry } from "./embedding/registry";
import { IndexOptions } from "./indices";
@@ -24,8 +29,8 @@ import {
Table as _NativeTable,
} from "./native";
import { Query, VectorQuery } from "./query";
export { IndexConfig } from "./native";
/**
* Options for adding data to a table.
*/
@@ -423,4 +428,9 @@ export class Table {
async listIndices(): Promise<IndexConfig[]> {
return await this.inner.listIndices();
}
/** Return the table as an arrow table */
async toArrow(): Promise<ArrowTable> {
return await this.query().toArrow();
}
}