Skip to content

Commit bf5b4f9

Browse files
committed
Add metadata option to icebergRead, also export avro stuff
1 parent c40ea7c commit bf5b4f9

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "icebird",
3-
"version": "0.1.7",
3+
"version": "0.1.8",
44
"description": "Apache Iceberg client for javascript",
55
"author": "Hyperparam",
66
"homepage": "https://hyperparam.app",

src/iceberg.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { icebergLatestVersion, icebergMetadata } from './iceberg.metadata.js'
55
import { fetchDataFilesFromManifests, getDataUrls, icebergManifests } from './iceberg.manifest.js'
66

77
export { icebergMetadata, icebergManifests, icebergLatestVersion }
8+
export { avroMetadata } from './avro.metadata.js'
9+
export { avroData } from './avro.data.js'
810

911
/**
1012
* Helper to check if a row matches an equality delete predicate.
@@ -35,21 +37,24 @@ function equalityMatch(row, deletePredicate) {
3537
* TODO:
3638
* - Sequence number checks when filtering deletes
3739
*
40+
* @import {IcebergMetadata} from './types.js'
3841
* @param {object} options
3942
* @param {string} options.tableUrl - Base S3 URL of the table.
4043
* @param {number} [options.rowStart] - The starting global row index to fetch (inclusive).
4144
* @param {number} [options.rowEnd] - The ending global row index to fetch (exclusive).
4245
* @param {string} [options.metadataFileName] - Name of the Iceberg metadata file.
46+
* @param {IcebergMetadata} [options.metadata] - Pre-fetched Iceberg metadata.
4347
* @returns {Promise<Array<Record<string, any>>>} Array of data records.
4448
*/
4549
export async function icebergRead({
4650
tableUrl,
4751
rowStart = 0,
4852
rowEnd = Infinity,
4953
metadataFileName,
54+
metadata,
5055
}) {
5156
// Fetch table metadata
52-
const metadata = await icebergMetadata(tableUrl, metadataFileName)
57+
metadata ??= await icebergMetadata(tableUrl, metadataFileName)
5358
const manifests = await icebergManifests(metadata)
5459

5560
// Get manifest URLs for data and delete files

0 commit comments

Comments
 (0)