Skip to content

Commit ce1f98b

Browse files
waylandliWayland Li
and
Wayland Li
authored
Reader conversion (#44)
* Converted reader file to typescript and made fixes dependent on it Co-authored-by: Wayland Li <[email protected]>
1 parent 14bbb97 commit ce1f98b

File tree

6 files changed

+368
-234
lines changed

6 files changed

+368
-234
lines changed

lib/bufferReader.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1-
interface BufferReaderOptions {
1+
import { Statistics } from "gen-nodejs/parquet_types"
2+
import { ParquetEnvelopeReader } from "./reader"
3+
import { NewFileMetaData } from "./types/types"
4+
5+
export interface BufferReaderOptions {
26
maxSpan?: number,
37
maxLength?: number,
48
queueWait?: number
9+
default_dictionary_size?: number;
10+
metadata?: NewFileMetaData
11+
rawStatistics?: Statistics
512
}
613

714
interface BufferReaderQueueRow {
@@ -11,19 +18,15 @@ interface BufferReaderQueueRow {
1118
reject: unknown
1219
}
1320

14-
interface EnvelopeReader {
15-
readFn: (start: number, finish: number) => Promise<Buffer>
16-
}
17-
1821
export default class BufferReader {
1922
maxSpan: number
2023
maxLength: number
2124
queueWait: number
2225
scheduled?: boolean
2326
queue: Array<BufferReaderQueueRow>
24-
envelopeReader: EnvelopeReader
27+
envelopeReader: ParquetEnvelopeReader
2528

26-
constructor(envelopeReader: EnvelopeReader, options: BufferReaderOptions) {
29+
constructor(envelopeReader: ParquetEnvelopeReader, options: BufferReaderOptions) {
2730
options = options || {};
2831
this.envelopeReader = envelopeReader;
2932
this.maxSpan = options.maxSpan || 100000; // 100k
@@ -33,7 +36,7 @@ export default class BufferReader {
3336
this.queue = [];
3437
}
3538

36-
async read(offset: number, length: number) {
39+
async read(offset: number, length: number): Promise<Buffer> {
3740
if (!this.scheduled) {
3841
this.scheduled = true;
3942
setTimeout( () => {

lib/codec/types.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
1+
import { PrimitiveType } from "lib/types/types";
2+
import { ParquetCodec, OriginalType, ParquetField } from "lib/types/types";
3+
import { Statistics } from "gen-nodejs/parquet_types";
4+
15
export interface Options {
26
typeLength: number,
37
bitWidth: number,
48
disableEnvelope: boolean
9+
primitiveType?: PrimitiveType;
10+
originalType?: OriginalType;
11+
encoding?: ParquetCodec;
12+
compression?: string,
13+
column?: ParquetField,
14+
rawStatistics?: Statistics,
15+
cache?: unknown,
16+
dictionary?: Array<number>
17+
num_values?: number
18+
rLevelMax?: number,
19+
dLevelMax?: number,
20+
type?: string,
521
}
622

723
export interface Cursor {
824
buffer: Buffer,
925
offset: number,
26+
size?: number,
1027
}

0 commit comments

Comments
 (0)