From 0b80d262df7f2f3c0526f770598c28176ee8683b Mon Sep 17 00:00:00 2001 From: Kenny Daniel Date: Thu, 15 Jan 2026 23:02:35 -0800 Subject: [PATCH] Update squirreling --- bin/tools/parquetDataSource.js | 6 +++--- package.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/tools/parquetDataSource.js b/bin/tools/parquetDataSource.js index d0a607c..6ea9ab5 100644 --- a/bin/tools/parquetDataSource.js +++ b/bin/tools/parquetDataSource.js @@ -3,8 +3,7 @@ import { whereToParquetFilter } from './parquetFilter.js' /** * @import { AsyncBuffer, Compressors, FileMetaData, ParquetQueryFilter } from 'hyparquet' - * @import { AsyncDataSource, AsyncRow, SqlPrimitive } from 'squirreling' - * @import { AsyncCells } from 'squirreling/src/types.js' + * @import { AsyncCells, AsyncDataSource, AsyncRow, SqlPrimitive } from 'squirreling' */ /** @@ -17,7 +16,7 @@ import { whereToParquetFilter } from './parquetFilter.js' */ export function parquetDataSource(file, metadata, compressors) { return { - async *scan(hints) { + async *scan({ hints, signal }) { metadata ??= await parquetMetadataAsync(file) // Convert WHERE AST to hyparquet filter format @@ -30,6 +29,7 @@ export function parquetDataSource(file, metadata, compressors) { let groupStart = 0 let remainingLimit = hints?.limit ?? Infinity for (const rowGroup of metadata.row_groups) { + if (signal?.aborted) break const rowCount = Number(rowGroup.num_rows) // Skip row groups by offset if where is fully applied diff --git a/package.json b/package.json index 06d9942..f1fddc0 100644 --- a/package.json +++ b/package.json @@ -59,12 +59,12 @@ "hyparquet": "1.24.0", "hyparquet-compressors": "1.1.1", "icebird": "0.3.1", - "squirreling": "0.6.0" + "squirreling": "0.7.8" }, "devDependencies": { "@storybook/react-vite": "10.1.11", "@testing-library/react": "16.3.1", - "@types/node": "25.0.8", + "@types/node": "25.0.9", "@types/react": "19.2.8", "@types/react-dom": "19.2.3", "@vitejs/plugin-react": "5.1.2",