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