mirror of
https://github.com/asadbek064/hyparquet.git
synced 2025-12-13 09:26:37 +00:00
* Parquet Query Planner: plan byte ranges, pre-fetch in parallel. - parquetPlan() that returns lists of byte ranges to fetch. - prefetchAsyncBuffer() pre-fetches all byte ranges in parallel. throws exception if non-pre-fetched slice is requested later.
33 lines
931 B
JavaScript
33 lines
931 B
JavaScript
import { describe, expect, it } from 'vitest'
|
|
import { parquetMetadataAsync } from '../src/hyparquet.js'
|
|
import { asyncBufferFromFile } from '../src/utils.js'
|
|
import { parquetPlan } from '../src/plan.js'
|
|
|
|
describe('parquetPlan', () => {
|
|
it('generates a query plan', async () => {
|
|
const file = await asyncBufferFromFile('test/files/page_indexed.parquet')
|
|
const metadata = await parquetMetadataAsync(file)
|
|
const plan = parquetPlan({ file, metadata })
|
|
expect(plan).toEqual({
|
|
ranges: [
|
|
{ startByte: 4, endByte: 1166 },
|
|
{ startByte: 1166, endByte: 2326 },
|
|
],
|
|
groups: [
|
|
{
|
|
plan: [
|
|
{ startByte: 4, endByte: 832 },
|
|
{ startByte: 832, endByte: 1166 },
|
|
],
|
|
},
|
|
{
|
|
plan: [
|
|
{ startByte: 1166, endByte: 1998 },
|
|
{ startByte: 1998, endByte: 2326 },
|
|
],
|
|
},
|
|
],
|
|
})
|
|
})
|
|
})
|