From f1a24c5b530eaa366a7e7477d0a8c6a5d14a0164 Mon Sep 17 00:00:00 2001 From: Kenny Daniel Date: Wed, 25 Jun 2025 13:20:27 -0700 Subject: [PATCH] Add columns param to parquetQueryWorker --- src/lib/workers/parquetWorker.ts | 4 ++-- src/lib/workers/parquetWorkerClient.ts | 4 ++-- src/lib/workers/types.ts | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/workers/parquetWorker.ts b/src/lib/workers/parquetWorker.ts index eff4c12a..50036aaf 100644 --- a/src/lib/workers/parquetWorker.ts +++ b/src/lib/workers/parquetWorker.ts @@ -51,10 +51,10 @@ self.onmessage = async ({ data }: { data: ClientMessage }) => { postErrorMessage({ error: error as Error, queryId }) } } else { - const { rowStart, rowEnd, orderBy, filter, chunks } = data + const { rowStart, rowEnd, columns, orderBy, filter, chunks } = data const onChunk = chunks ? (chunk: ColumnData) => { postChunkMessage({ chunk, queryId }) } : undefined try { - const result = await parquetQuery({ metadata, file, rowStart, rowEnd, orderBy, filter, compressors, onChunk }) + const result = await parquetQuery({ metadata, file, rowStart, rowEnd, columns, orderBy, filter, compressors, onChunk }) postResultMessage({ result, queryId }) } catch (error) { postErrorMessage({ error: error as Error, queryId }) diff --git a/src/lib/workers/parquetWorkerClient.ts b/src/lib/workers/parquetWorkerClient.ts index c7e1f7f4..be661c60 100644 --- a/src/lib/workers/parquetWorkerClient.ts +++ b/src/lib/workers/parquetWorkerClient.ts @@ -66,7 +66,7 @@ function getWorker() { * Instead of taking an AsyncBuffer, it takes a AsyncBufferFrom, because it needs * to be serialized to the worker. */ -export function parquetQueryWorker({ metadata, from, rowStart, rowEnd, orderBy, filter, onChunk }: QueryWorkerOptions): Promise { +export function parquetQueryWorker({ metadata, from, rowStart, rowEnd, columns, orderBy, filter, onChunk }: QueryWorkerOptions): Promise { // TODO(SL) Support passing columns? return new Promise((resolve, reject) => { const queryId = nextQueryId++ @@ -75,7 +75,7 @@ export function parquetQueryWorker({ metadata, from, rowStart, rowEnd, orderBy, // If caller provided an onChunk callback, worker will send chunks as they are parsed const chunks = onChunk !== undefined - const message: QueryClientMessage = { queryId, metadata, from, rowStart, rowEnd, orderBy, filter, chunks, kind: 'query' } + const message: QueryClientMessage = { queryId, metadata, from, rowStart, rowEnd, columns, orderBy, filter, chunks, kind: 'query' } worker.postMessage(message) }) } diff --git a/src/lib/workers/types.ts b/src/lib/workers/types.ts index df26444b..f7a5a2d4 100644 --- a/src/lib/workers/types.ts +++ b/src/lib/workers/types.ts @@ -30,6 +30,7 @@ export interface ErrorMessage extends Message { export interface QueryWorkerOptions extends CommonWorkerOptions { rowStart?: number, rowEnd?: number, + columns?: string[], orderBy?: string, filter?: ParquetQueryFilter, onChunk?: (chunk: ColumnData) => void