Skip to content

Commit dbf136e

Browse files
committed
Publish v0.8.12
1 parent 90d4cd2 commit dbf136e

3 files changed

Lines changed: 15 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Icebird Changelog
22

3+
## [0.8.12]
4+
- Add `scanColumn` streaming primitive to the Iceberg SQL data source
5+
- Fix commit crash when serializing metadata with snapshot ids above 2^53
6+
37
## [0.8.11]
48
- Fix pushed-down `where` combined with `limit`/`offset` silently dropping matching rows
59

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "icebird",
3-
"version": "0.8.11",
3+
"version": "0.8.12",
44
"description": "Apache Iceberg client for javascript",
55
"author": "Hyperparam",
66
"homepage": "https://hyperparam.app",
@@ -49,16 +49,16 @@
4949
"test": "vitest run"
5050
},
5151
"dependencies": {
52-
"hyparquet": "1.26.1",
52+
"hyparquet": "1.26.2",
5353
"hyparquet-compressors": "1.1.1",
5454
"hyparquet-writer": "0.16.1",
55-
"squirreling": "0.12.24"
55+
"squirreling": "0.12.25"
5656
},
5757
"devDependencies": {
58-
"@types/node": "26.0.0",
58+
"@types/node": "26.1.0",
5959
"@vitest/coverage-v8": "4.1.9",
6060
"eslint": "9.39.4",
61-
"eslint-plugin-jsdoc": "63.0.7",
61+
"eslint-plugin-jsdoc": "63.0.10",
6262
"typescript": "6.0.3",
6363
"vitest": "4.1.9"
6464
}

test/sql/icebergDataSource.test.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -692,12 +692,11 @@ describe.concurrent('icebergDataSource scanColumn', () => {
692692
expect(viaHook).toHaveLength(5)
693693
})
694694

695-
it('characterizes: N aggregates on one column re-scan it N times (no coalescing)', async () => {
696-
// Current behavior, pinned for visibility — NOT an endorsement. squirreling
697-
// runs the streaming-aggregate fast path once per aggregate, so five
698-
// aggregates over one column re-scan the column five times. Coalescing them
699-
// into one pass is an upstream squirreling opportunity, not an icebird bug;
700-
// this characterization makes a future fix a visible diff here.
695+
it('characterizes: N aggregates on one column coalesce into a single scan', async () => {
696+
// Current behavior, pinned for visibility. squirreling coalesces the
697+
// streaming-aggregate fast path, so five aggregates over one column share a
698+
// single scan of that column. (Earlier squirreling releases re-scanned once
699+
// per aggregate; this characterization tracks the behavior as a visible diff.)
701700
const source = await icebergDataSource({ tableUrl, resolver, metadataFileName: 'v2.metadata.json' })
702701
const baseScanColumn = source.scanColumn
703702
if (!baseScanColumn) throw new Error('scanColumn not implemented')
@@ -718,6 +717,6 @@ describe.concurrent('icebergDataSource scanColumn', () => {
718717
query: 'SELECT COUNT("Popularity Rank") AS c, MIN("Popularity Rank") AS mn, MAX("Popularity Rank") AS mx, SUM("Popularity Rank") AS s, AVG("Popularity Rank") AS a FROM bunnies',
719718
}))
720719

721-
expect(scanColumnCalls).toBe(5)
720+
expect(scanColumnCalls).toBe(1)
722721
})
723722
})

0 commit comments

Comments
 (0)