@maplibre/mlt 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +231 -0
- package/dist/decoding/decodingUtils.js +2 -2
- package/dist/decoding/decodingUtils.js.map +1 -1
- package/dist/decoding/decodingUtils.spec.js +2 -2
- package/dist/decoding/decodingUtils.spec.js.map +1 -1
- package/dist/decoding/fsstDecoder.js.map +1 -1
- package/dist/decoding/fsstDecoder.spec.js +14 -10
- package/dist/decoding/fsstDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryDecoder.js +40 -200
- package/dist/decoding/geometryDecoder.js.map +1 -1
- package/dist/decoding/geometryDecoder.spec.js.map +1 -1
- package/dist/decoding/geometryScaling.js.map +1 -1
- package/dist/decoding/intWrapper.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.d.ts +1 -1
- package/dist/decoding/integerDecodingUtils.js.map +1 -1
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.d.ts +13 -22
- package/dist/decoding/integerStreamDecoder.js +234 -237
- package/dist/decoding/integerStreamDecoder.js.map +1 -1
- package/dist/decoding/integerStreamDecoder.spec.js +77 -39
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -1
- package/dist/decoding/propertyDecoder.js +21 -21
- package/dist/decoding/propertyDecoder.js.map +1 -1
- package/dist/decoding/propertyDecoder.spec.js +162 -199
- package/dist/decoding/propertyDecoder.spec.js.map +1 -1
- package/dist/decoding/stringDecoder.d.ts +2 -10
- package/dist/decoding/stringDecoder.js +150 -157
- package/dist/decoding/stringDecoder.js.map +1 -1
- package/dist/decoding/stringDecoder.spec.js +59 -60
- package/dist/decoding/stringDecoder.spec.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/tile/dictionaryType.js.map +1 -1
- package/dist/metadata/tile/lengthType.js.map +1 -1
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/offsetType.js.map +1 -1
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/physicalStreamType.js.map +1 -1
- package/dist/metadata/tile/scalarType.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +28 -4
- package/dist/metadata/tile/streamMetadataDecoder.js +81 -15
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +4 -4
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/tilesetMetadata.js.map +1 -1
- package/dist/metadata/tileset/typeMap.d.ts +21 -29
- package/dist/metadata/tileset/typeMap.js +167 -169
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.js +20 -18
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltDecoder.spec.js.map +1 -1
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +27 -0
- package/dist/vector/filter/flatSelectionVector.js +54 -0
- package/dist/vector/filter/flatSelectionVector.js.map +1 -0
- package/dist/vector/filter/flatSelectionVector.spec.d.ts +1 -0
- package/dist/vector/filter/flatSelectionVector.spec.js +51 -0
- package/dist/vector/filter/flatSelectionVector.spec.js.map +1 -0
- package/dist/vector/filter/selectionVector.d.ts +8 -0
- package/dist/vector/filter/selectionVector.js +2 -0
- package/dist/vector/filter/selectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtil.spec.d.ts +1 -0
- package/dist/vector/filter/selectionVectorUtil.spec.js +154 -0
- package/dist/vector/filter/selectionVectorUtil.spec.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtils.d.ts +16 -0
- package/dist/vector/filter/selectionVectorUtils.js +37 -0
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.d.ts +26 -0
- package/dist/vector/filter/sequenceSelectionVector.js +67 -0
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.d.ts +1 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.js +115 -0
- package/dist/vector/filter/sequenceSelectionVector.spec.js.map +1 -0
- package/dist/vector/fixedSizeVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/doubleFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/intFlatVector.js.map +1 -1
- package/dist/vector/flat/intFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/longFlatVector.js.map +1 -1
- package/dist/vector/flat/longFlatVector.spec.js.map +1 -1
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -1
- package/dist/vector/geometry/constGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/constGeometryVector.js +6 -6
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +1 -1
- package/dist/vector/geometry/constGpuVector.js +3 -24
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +2 -2
- package/dist/vector/geometry/flatGeometryVector.js +7 -7
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +1 -1
- package/dist/vector/geometry/flatGpuVector.js +3 -22
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.js +2 -2
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.js +4 -4
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.d.ts +4 -17
- package/dist/vector/geometry/zOrderCurve.js +10 -35
- package/dist/vector/geometry/zOrderCurve.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.js +15 -10
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -1
- package/dist/vector/intVector.js.map +1 -1
- package/dist/vector/sequence/intSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -1
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +5 -5
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +0 -15
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +0 -27
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +0 -1
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +0 -24
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +0 -38
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +0 -1
- package/dist/metadata/tile/streamMetadata.d.ts +0 -29
- package/dist/metadata/tile/streamMetadata.js +0 -82
- package/dist/metadata/tile/streamMetadata.js.map +0 -1
- package/dist/vector/geometry/spaceFillingCurve.d.ts +0 -22
- package/dist/vector/geometry/spaceFillingCurve.js +0 -31
- package/dist/vector/geometry/spaceFillingCurve.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"propertyDecoder.spec.js","sourceRoot":"","sources":["../../src/decoding/propertyDecoder.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, describe, expect, it, vi } from \"vitest\";\nimport * as StreamMetadataDecoder from \"../metadata/tile/streamMetadataDecoder\";\nimport * as IntegerStreamDecoder from \"./integerStreamDecoder\";\nimport { decodePropertyColumn } from \"./propertyDecoder\";\nimport { type Column } from \"../metadata/tileset/tilesetMetadata\";\nimport { ScalarType } from \"../metadata/tile/scalarType\";\nimport IntWrapper from \"./intWrapper\";\nimport { IntFlatVector } from \"../vector/flat/intFlatVector\";\nimport { LongFlatVector } from \"../vector/flat/longFlatVector\";\nimport { IntSequenceVector } from \"../vector/sequence/intSequenceVector\";\nimport { LongSequenceVector } from \"../vector/sequence/longSequenceVector\";\nimport { IntConstVector } from \"../vector/constant/intConstVector\";\nimport { LongConstVector } from \"../vector/constant/longConstVector\";\nimport { VectorType } from \"../vector/vectorType\";\nimport * as StringDecoder from \"./stringDecoder\";\nimport * as decodingUtils from \"./decodingUtils\";\nimport { BooleanFlatVector } from \"../vector/flat/booleanFlatVector\";\nimport { FloatFlatVector } from \"../vector/flat/floatFlatVector\";\nimport { DoubleFlatVector } from \"../vector/flat/doubleFlatVector\";\nimport { type StringFlatVector } from \"../vector/flat/stringFlatVector\";\n\n// Constants for test data\nconst TEST_DATA = {\n BYTE_LENGTH: 12,\n NUM_VALUES: 3,\n NULLABILITY_BYTE_LENGTH: 1,\n BUFFER_SIZE: 100,\n};\n\n// Helper: Create column with specific configuration\nfunction createColumn(scalarType: ScalarType, nullable: boolean = false): Column {\n return {\n name: \"age\",\n nullable,\n columnScope: null,\n type: \"scalarType\",\n scalarType: {\n longID: false,\n physicalType: scalarType,\n logicalType: null,\n type: \"physicalType\",\n },\n complexType: null,\n };\n}\n\n// Helper: Setup stream metadata mock\nfunction mockStreamMetadata(byteLength: number = TEST_DATA.BYTE_LENGTH, numValues: number = TEST_DATA.NUM_VALUES) {\n return {\n byteLength,\n numValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Setup RLE stream metadata for sequence encoding\nfunction mockRleStreamMetadata(\n byteLength: number = TEST_DATA.BYTE_LENGTH,\n numValues: number = TEST_DATA.NUM_VALUES,\n numRleValues: number = 2,\n) {\n return {\n byteLength,\n numValues,\n numRleValues,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any;\n}\n\n// Helper: Mock integer decoders (INT_32 or INT_64)\nfunction mockIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeLongStream\").mockReturnValue(new BigInt64Array([100n, 200n, 300n]));\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Mock integer sequence decoders\nfunction mockIntegerSequenceDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.SEQUENCE);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceLongStream\").mockReturnValue([10n, 20n]);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeSequenceIntStream\").mockReturnValue([10, 20]);\n }\n}\n\n// Helper: Mock integer const decoders\nfunction mockIntegerConstDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.CONST);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstLongStream\").mockReturnValue(42n);\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeConstIntStream\").mockReturnValue(42);\n }\n}\n\n// Helper: Mock float decoders (FLOAT or DOUBLE)\nfunction mockFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable float decoders\nfunction mockNullableFloatDecoder(scalarType: ScalarType) {\n if (scalarType === ScalarType.FLOAT) {\n vi.spyOn(decodingUtils, \"decodeNullableFloatsLE\").mockReturnValue(new Float32Array([100.5, 200.5, 300.5]));\n } else if (scalarType === ScalarType.DOUBLE) {\n vi.spyOn(decodingUtils, \"decodeNullableDoublesLE\").mockReturnValue(new Float64Array([100.5, 200.5, 300.5]));\n }\n}\n\n// Helper: Mock nullable integer decoders\nfunction mockNullableIntegerDecoder(scalarType: ScalarType) {\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n\n if (scalarType === ScalarType.INT_64 || scalarType === ScalarType.UINT_64) {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableLongStream\").mockReturnValue(\n new BigInt64Array([100n, 200n, 300n]),\n );\n } else {\n vi.spyOn(IntegerStreamDecoder, \"decodeNullableIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n }\n}\n\n// Helper: Setup nullable column with separate nullability stream\nfunction setupNullableStreamMocks() {\n const metadataSpy = vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\");\n\n // First call: nullability stream\n metadataSpy.mockReturnValueOnce({\n byteLength: TEST_DATA.NULLABILITY_BYTE_LENGTH,\n numValues: TEST_DATA.NUM_VALUES,\n logicalLevelTechnique1: 0,\n logicalLevelTechnique2: 0,\n physicalLevelTechnique: 0,\n } as any);\n\n // Subsequent calls: data stream\n metadataSpy.mockReturnValue(mockStreamMetadata());\n\n // Mock the nullability bitmap decoding\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n}\n\ndescribe(\"decodePropertyColumn\", () => {\n afterEach(() => vi.restoreAllMocks());\n\n describe(\"Number Columns - Non-Nullable - Signed Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Non-Nullable - Unsigned Types\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.UINT_32,\n vectorClass: IntFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_32\",\n },\n {\n scalarType: ScalarType.UINT_64,\n vectorClass: LongFlatVector,\n mockFn: mockIntegerDecoder,\n testName: \"UINT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Number Columns - Nullable - Signed Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.INT_32, mockFn: mockNullableIntegerDecoder, testName: \"INT_32\" },\n { scalarType: ScalarType.INT_64, mockFn: mockNullableIntegerDecoder, testName: \"INT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Number Columns - Nullable - Unsigned Types\", () => {\n const numberTypes = [\n { scalarType: ScalarType.UINT_32, mockFn: mockNullableIntegerDecoder, testName: \"UINT_32\" },\n { scalarType: ScalarType.UINT_64, mockFn: mockNullableIntegerDecoder, testName: \"UINT_64\" },\n ];\n\n it.each(numberTypes)(\"should decode nullable $testName column with null mask\", ({ scalarType, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Integer Vector Encoding Types - SEQUENCE\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongSequenceVector,\n mockFn: mockIntegerSequenceDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode $testName with SEQUENCE encoding\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockRleStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Integer Vector Encoding Types - CONST\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.INT_32,\n vectorClass: IntConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_32\",\n },\n {\n scalarType: ScalarType.INT_64,\n vectorClass: LongConstVector,\n mockFn: mockIntegerConstDecoder,\n testName: \"INT_64\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName with CONST encoding\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"Float Columns - Non-Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\"should decode $testName column\", ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockFn(scalarType);\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n expect((result as any).dataBuffer).toHaveLength(TEST_DATA.NUM_VALUES);\n });\n });\n\n describe(\"Float Columns - Nullable\", () => {\n const numberTypes = [\n {\n scalarType: ScalarType.FLOAT,\n vectorClass: FloatFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"FLOAT\",\n },\n {\n scalarType: ScalarType.DOUBLE,\n vectorClass: DoubleFlatVector,\n mockFn: mockNullableFloatDecoder,\n testName: \"DOUBLE\",\n },\n ];\n\n it.each(numberTypes)(\n \"should decode nullable $testName column with null mask\",\n ({ scalarType, vectorClass, mockFn }) => {\n // Arrange\n setupNullableStreamMocks();\n mockFn(scalarType);\n const column = createColumn(scalarType, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(vectorClass);\n expect((result as any)._name).toBe(\"age\");\n },\n );\n });\n\n describe(\"Boolean Columns\", () => {\n it(\"should decode non-nullable BOOLEAN column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n\n it(\"should decode nullable BOOLEAN column with null mask\", () => {\n // Arrange\n setupNullableStreamMocks();\n vi.spyOn(decodingUtils, \"decodeNullableBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n expect((result as any)._name).toBe(\"age\");\n });\n });\n\n describe(\"String Columns - Nullable\", () => {\n const streamConfigs = [\n { totalStreams: 2, description: \"single data stream\" },\n { totalStreams: 4, description: \"multiple data streams\" },\n ];\n\n it.each(streamConfigs)(\"should decode nullable STRING with $description\", ({ totalStreams }) => {\n // Arrange\n setupNullableStreamMocks();\n const mockStringVector = { name: \"age\" };\n const stringDecodeSpy = vi.spyOn(StringDecoder, \"decodeString\").mockReturnValue(mockStringVector as any);\n const column = createColumn(ScalarType.STRING, true);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, totalStreams, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as StringFlatVector).name).toBe(mockStringVector.name);\n });\n });\n\n describe(\"Column Filtering\", () => {\n it(\"should return null when column NOT in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.STRING);\n const filterList = new Set([\"name\", \"value\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalledWith(1, data, offset);\n });\n\n it(\"should decode column when it IS in propertyColumnNames filter\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set([\"age\", \"name\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should ignore filter when propertyColumnNames is undefined\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(decodingUtils, \"decodeBooleanRle\").mockReturnValue(new Uint8Array([0b00000111]));\n const column = createColumn(ScalarType.BOOLEAN);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, undefined);\n\n // Assert\n expect(result).toBeInstanceOf(BooleanFlatVector);\n });\n\n it(\"should handle empty filter set\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi.spyOn(decodingUtils, \"skipColumn\");\n const column = createColumn(ScalarType.BOOLEAN);\n const filterList = new Set<string>();\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(skipColumnSpy).toHaveBeenCalled();\n });\n });\n\n describe(\"Edge Cases\", () => {\n it(\"should handle single value column\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata(12, 1));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([42]));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 1);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(1);\n });\n\n it(\"should handle large column with many values\", () => {\n // Arrange\n const largeNumValues = 100000;\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(\n mockStreamMetadata(400000, largeNumValues),\n );\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n const largeArray = new Int32Array(largeNumValues);\n for (let i = 0; i < largeNumValues; i++) {\n largeArray[i] = i;\n }\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(largeArray);\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, largeNumValues);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(largeNumValues);\n });\n\n it(\"should handle zero numValues gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue({\n ...mockStreamMetadata(),\n numValues: 0,\n });\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array(0));\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, 0);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect((result as any).dataBuffer).toHaveLength(0);\n });\n\n it(\"should handle multiple sequential columns with offset advancement\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata(12, 3));\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n const column1 = createColumn(ScalarType.INT_32);\n const column2 = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result1 = decodePropertyColumn(data, offset, column1, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterFirst = offset.get();\n const result2 = decodePropertyColumn(data, offset, column2, 1, TEST_DATA.NUM_VALUES);\n const offsetAfterSecond = offset.get();\n\n // Assert\n expect(result1).toBeInstanceOf(IntFlatVector);\n expect(result2).toBeInstanceOf(IntFlatVector);\n expect(offsetAfterSecond).toEqual(offsetAfterFirst);\n });\n\n it(\"should handle non-scalar column type returning null\", () => {\n // Arrange\n const column: Column = {\n name: \"complex\",\n nullable: false,\n columnScope: null,\n type: \"complexType\",\n complexType: { type: \"arrayType\" },\n scalarType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n\n describe(\"Offset Management\", () => {\n it(\"should handle offset at non-zero starting position\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([100, 200, 300]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const startOffset = 50;\n const offset = new IntWrapper(startOffset);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeInstanceOf(IntFlatVector);\n expect(offset.get()).toEqual(startOffset);\n });\n\n it(\"should correctly skip columns with filterList and advance offset\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const skipColumnSpy = vi\n .spyOn(decodingUtils, \"skipColumn\")\n .mockImplementation((numStreams, data, offset) => {\n offset.add(12 * numStreams); // Simulate skipping\n });\n\n const column = createColumn(ScalarType.INT_32);\n const filterList = new Set([\"other_column\"]);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n const startOffset = offset.get();\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 3, TEST_DATA.NUM_VALUES, filterList);\n\n // Assert\n expect(result).toBeNull();\n expect(offset.get()).toBeGreaterThan(startOffset);\n expect(skipColumnSpy).toHaveBeenCalledWith(3, data, offset);\n });\n });\n\n describe(\"Type Consistency Checks\", () => {\n it(\"should preserve column metadata in returned vector\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n vi.spyOn(IntegerStreamDecoder, \"getVectorType\").mockReturnValue(VectorType.FLAT);\n vi.spyOn(IntegerStreamDecoder, \"decodeIntStream\").mockReturnValue(new Int32Array([10, 20, 30]));\n\n const column = createColumn(ScalarType.INT_32);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect((result as any)._name).toBe(column.name);\n });\n\n it(\"should handle all signed and unsigned type combinations\", () => {\n // Arrange\n const types = [ScalarType.INT_32, ScalarType.UINT_32, ScalarType.INT_64, ScalarType.UINT_64];\n\n types.forEach((scalarType) => {\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n mockIntegerDecoder(scalarType);\n\n const column = createColumn(scalarType, false);\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeDefined();\n expect((result as any)._name).toBe(\"age\");\n\n vi.restoreAllMocks();\n });\n });\n });\n\n describe(\"Error Scenarios\", () => {\n it(\"should handle invalid scalar type gracefully\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const column = createColumn(999 as any); // Invalid type\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act & Assert\n expect(() => {\n decodePropertyColumn(data, offset, column, 1, TEST_DATA.NUM_VALUES);\n }).toThrow();\n });\n\n it(\"should handle mismatched numStreams for string type\", () => {\n // Arrange\n vi.spyOn(StreamMetadataDecoder, \"decodeStreamMetadata\").mockReturnValue(mockStreamMetadata());\n const column: Column = {\n name: \"stringCol\",\n nullable: false,\n columnScope: null,\n type: \"stringType\",\n scalarType: null,\n complexType: null,\n } as any;\n const data = new Uint8Array(TEST_DATA.BUFFER_SIZE);\n const offset = new IntWrapper(0);\n\n // Act\n const result = decodePropertyColumn(data, offset, column, 2, TEST_DATA.NUM_VALUES);\n\n // Assert\n expect(result).toBeNull();\n });\n });\n});\n"]}
|
|
@@ -2,13 +2,5 @@ import type IntWrapper from "./intWrapper";
|
|
|
2
2
|
import BitVector from "../vector/flat/bitVector";
|
|
3
3
|
import type Vector from "../vector/vector";
|
|
4
4
|
import { type Column } from "../metadata/tileset/tilesetMetadata";
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
private static readonly NESTED_COLUMN_SEPARATOR;
|
|
8
|
-
private constructor();
|
|
9
|
-
static decode(name: string, data: Uint8Array, offset: IntWrapper, numStreams: number, bitVector?: BitVector): Vector;
|
|
10
|
-
private static decodeFsstDictionaryVector;
|
|
11
|
-
private static decodeDictionaryVector;
|
|
12
|
-
private static decodePlainStringVector;
|
|
13
|
-
static decodeSharedDictionary(data: Uint8Array, offset: IntWrapper, column: Column, numFeatures: number, propertyColumnNames?: Set<string>): Vector[];
|
|
14
|
-
}
|
|
5
|
+
export declare function decodeString(name: string, data: Uint8Array, offset: IntWrapper, numStreams: number, bitVector?: BitVector): Vector;
|
|
6
|
+
export declare function decodeSharedDictionary(data: Uint8Array, offset: IntWrapper, column: Column, numFeatures: number, propertyColumnNames?: Set<string>): Vector[];
|
|
@@ -1,191 +1,184 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { decodeStreamMetadata } from "../metadata/tile/streamMetadataDecoder";
|
|
2
2
|
import { StringFlatVector } from "../vector/flat/stringFlatVector";
|
|
3
3
|
import { StringDictionaryVector } from "../vector/dictionary/stringDictionaryVector";
|
|
4
4
|
import BitVector from "../vector/flat/bitVector";
|
|
5
5
|
import { PhysicalStreamType } from "../metadata/tile/physicalStreamType";
|
|
6
6
|
import { DictionaryType } from "../metadata/tile/dictionaryType";
|
|
7
7
|
import { LengthType } from "../metadata/tile/lengthType";
|
|
8
|
-
import
|
|
8
|
+
import { decodeIntStream, decodeLengthStreamToOffsetBuffer, decodeNullableIntStream } from "./integerStreamDecoder";
|
|
9
9
|
import { ScalarType } from "../metadata/tileset/tilesetMetadata";
|
|
10
10
|
import { decodeVarintInt32 } from "./integerDecodingUtils";
|
|
11
11
|
import { decodeBooleanRle, skipColumn } from "./decodingUtils";
|
|
12
|
-
import { RleEncodedStreamMetadata } from "../metadata/tile/rleEncodedStreamMetadata";
|
|
13
12
|
import { StringFsstDictionaryVector } from "../vector/fsst-dictionary/stringFsstDictionaryVector";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
const ROOT_COLUMN_NAME = "default";
|
|
14
|
+
const NESTED_COLUMN_SEPARATOR = ":";
|
|
15
|
+
export function decodeString(name, data, offset, numStreams, bitVector) {
|
|
16
|
+
let dictionaryLengthStream = null;
|
|
17
|
+
let offsetStream = null;
|
|
18
|
+
let dictionaryStream = null;
|
|
19
|
+
let symbolLengthStream = null;
|
|
20
|
+
let symbolTableStream = null;
|
|
21
|
+
let presentStream = null;
|
|
22
|
+
let plainLengthStream = null;
|
|
23
|
+
let plainDataStream = null;
|
|
24
|
+
for (let i = 0; i < numStreams; i++) {
|
|
25
|
+
const streamMetadata = decodeStreamMetadata(data, offset);
|
|
26
|
+
if (streamMetadata.byteLength === 0) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
switch (streamMetadata.physicalStreamType) {
|
|
30
|
+
case PhysicalStreamType.PRESENT: {
|
|
31
|
+
const presentData = decodeBooleanRle(data, streamMetadata.numValues, offset);
|
|
32
|
+
presentStream = new BitVector(presentData, streamMetadata.numValues);
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case PhysicalStreamType.OFFSET: {
|
|
36
|
+
const isNullable = bitVector != null || presentStream != null;
|
|
37
|
+
const nullabilityBuffer = bitVector ?? presentStream;
|
|
38
|
+
offsetStream = isNullable
|
|
39
|
+
? decodeNullableIntStream(data, offset, streamMetadata, false, nullabilityBuffer)
|
|
40
|
+
: decodeIntStream(data, offset, streamMetadata, false);
|
|
41
|
+
break;
|
|
32
42
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
break;
|
|
43
|
+
case PhysicalStreamType.LENGTH: {
|
|
44
|
+
const ls = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
45
|
+
if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
46
|
+
dictionaryLengthStream = ls;
|
|
38
47
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
48
|
+
else if (LengthType.SYMBOL === streamMetadata.logicalStreamType.lengthType) {
|
|
49
|
+
symbolLengthStream = ls;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Plain string encoding uses VAR_BINARY length type
|
|
53
|
+
plainLengthStream = ls;
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case PhysicalStreamType.DATA: {
|
|
58
|
+
const ds = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
59
|
+
offset.add(streamMetadata.byteLength);
|
|
60
|
+
const dictType = streamMetadata.logicalStreamType.dictionaryType;
|
|
61
|
+
if (DictionaryType.FSST === dictType) {
|
|
62
|
+
symbolTableStream = ds;
|
|
46
63
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
50
|
-
dictionaryLengthStream = ls;
|
|
51
|
-
}
|
|
52
|
-
else if (LengthType.SYMBOL === streamMetadata.logicalStreamType.lengthType) {
|
|
53
|
-
symbolLengthStream = ls;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// Plain string encoding uses VAR_BINARY length type
|
|
57
|
-
plainLengthStream = ls;
|
|
58
|
-
}
|
|
59
|
-
break;
|
|
64
|
+
else if (DictionaryType.SINGLE === dictType || DictionaryType.SHARED === dictType) {
|
|
65
|
+
dictionaryStream = ds;
|
|
60
66
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
offset.add(streamMetadata.byteLength);
|
|
64
|
-
const dictType = streamMetadata.logicalStreamType.dictionaryType;
|
|
65
|
-
if (DictionaryType.FSST === dictType) {
|
|
66
|
-
symbolTableStream = ds;
|
|
67
|
-
}
|
|
68
|
-
else if (DictionaryType.SINGLE === dictType || DictionaryType.SHARED === dictType) {
|
|
69
|
-
dictionaryStream = ds;
|
|
70
|
-
}
|
|
71
|
-
else if (DictionaryType.NONE === dictType) {
|
|
72
|
-
plainDataStream = ds;
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
67
|
+
else if (DictionaryType.NONE === dictType) {
|
|
68
|
+
plainDataStream = ds;
|
|
75
69
|
}
|
|
70
|
+
break;
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
|
-
return this.decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ?? this.decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ?? this.decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream);
|
|
79
73
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
return (decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, bitVector ?? presentStream) ??
|
|
75
|
+
decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, bitVector ?? presentStream) ??
|
|
76
|
+
decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, bitVector ?? presentStream));
|
|
77
|
+
}
|
|
78
|
+
function decodeFsstDictionaryVector(name, symbolTableStream, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, nullabilityBuffer) {
|
|
79
|
+
if (!symbolTableStream) {
|
|
80
|
+
return null;
|
|
85
81
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
82
|
+
return new StringFsstDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, symbolTableStream, nullabilityBuffer);
|
|
83
|
+
}
|
|
84
|
+
function decodeDictionaryVector(name, dictionaryStream, offsetStream, dictionaryLengthStream, nullabilityBuffer) {
|
|
85
|
+
if (!dictionaryStream) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return nullabilityBuffer
|
|
89
|
+
? new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, nullabilityBuffer)
|
|
90
|
+
: new StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream);
|
|
91
|
+
}
|
|
92
|
+
function decodePlainStringVector(name, plainLengthStream, plainDataStream, offsetStream, nullabilityBuffer) {
|
|
93
|
+
if (!plainLengthStream || !plainDataStream) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (offsetStream) {
|
|
90
97
|
return nullabilityBuffer
|
|
91
|
-
? new StringDictionaryVector(name, offsetStream,
|
|
92
|
-
: new StringDictionaryVector(name, offsetStream,
|
|
98
|
+
? new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream, nullabilityBuffer)
|
|
99
|
+
: new StringDictionaryVector(name, offsetStream, plainLengthStream, plainDataStream);
|
|
93
100
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
if (nullabilityBuffer && nullabilityBuffer.size() !== plainLengthStream.length - 1) {
|
|
102
|
+
const sparseOffsetStream = new Int32Array(nullabilityBuffer.size());
|
|
103
|
+
let valueIndex = 0;
|
|
104
|
+
for (let i = 0; i < nullabilityBuffer.size(); i++) {
|
|
105
|
+
if (nullabilityBuffer.get(i)) {
|
|
106
|
+
sparseOffsetStream[i] = valueIndex++;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
sparseOffsetStream[i] = 0;
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
112
|
+
return new StringDictionaryVector(name, sparseOffsetStream, plainLengthStream, plainDataStream, nullabilityBuffer);
|
|
113
|
+
}
|
|
114
|
+
return nullabilityBuffer
|
|
115
|
+
? new StringFlatVector(name, plainLengthStream, plainDataStream, nullabilityBuffer)
|
|
116
|
+
: new StringFlatVector(name, plainLengthStream, plainDataStream);
|
|
117
|
+
}
|
|
118
|
+
export function decodeSharedDictionary(data, offset, column, numFeatures, propertyColumnNames) {
|
|
119
|
+
let dictionaryOffsetBuffer = null;
|
|
120
|
+
let dictionaryBuffer = null;
|
|
121
|
+
let symbolOffsetBuffer = null;
|
|
122
|
+
let symbolTableBuffer = null;
|
|
123
|
+
let dictionaryStreamDecoded = false;
|
|
124
|
+
while (!dictionaryStreamDecoded) {
|
|
125
|
+
const streamMetadata = decodeStreamMetadata(data, offset);
|
|
126
|
+
switch (streamMetadata.physicalStreamType) {
|
|
127
|
+
case PhysicalStreamType.LENGTH:
|
|
128
|
+
if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
129
|
+
dictionaryOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
109
130
|
}
|
|
110
131
|
else {
|
|
111
|
-
|
|
132
|
+
symbolOffsetBuffer = decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
112
133
|
}
|
|
113
|
-
|
|
114
|
-
|
|
134
|
+
break;
|
|
135
|
+
case PhysicalStreamType.DATA:
|
|
136
|
+
if (DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||
|
|
137
|
+
DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType) {
|
|
138
|
+
dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
139
|
+
dictionaryStreamDecoded = true;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
143
|
+
}
|
|
144
|
+
offset.add(streamMetadata.byteLength);
|
|
145
|
+
break;
|
|
115
146
|
}
|
|
116
|
-
return nullabilityBuffer
|
|
117
|
-
? new StringFlatVector(name, plainLengthStream, plainDataStream, nullabilityBuffer)
|
|
118
|
-
: new StringFlatVector(name, plainLengthStream, plainDataStream);
|
|
119
147
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
switch (streamMetadata.physicalStreamType) {
|
|
129
|
-
case PhysicalStreamType.LENGTH:
|
|
130
|
-
if (LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
131
|
-
dictionaryOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
symbolOffsetBuffer = IntegerStreamDecoder.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
135
|
-
}
|
|
136
|
-
break;
|
|
137
|
-
case PhysicalStreamType.DATA:
|
|
138
|
-
if (DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||
|
|
139
|
-
DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType) {
|
|
140
|
-
dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
141
|
-
dictionaryStreamDecoded = true;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
145
|
-
}
|
|
146
|
-
offset.add(streamMetadata.byteLength);
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
148
|
+
const childFields = column.complexType.children;
|
|
149
|
+
const stringDictionaryVectors = [];
|
|
150
|
+
let i = 0;
|
|
151
|
+
for (const childField of childFields) {
|
|
152
|
+
const numStreams = decodeVarintInt32(data, offset, 1)[0];
|
|
153
|
+
if (numStreams == 0) {
|
|
154
|
+
/* Column is not present in the tile */
|
|
155
|
+
continue;
|
|
149
156
|
}
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (numStreams == 0) {
|
|
156
|
-
/* Column is not present in the tile */
|
|
157
|
+
const columnName = `${column.name}${childField.name === ROOT_COLUMN_NAME ? "" : NESTED_COLUMN_SEPARATOR + childField.name}`;
|
|
158
|
+
if (propertyColumnNames) {
|
|
159
|
+
if (!propertyColumnNames.has(columnName)) {
|
|
160
|
+
//TODO: add size of sub column to Mlt for faster skipping
|
|
161
|
+
skipColumn(numStreams, data, offset);
|
|
157
162
|
continue;
|
|
158
163
|
}
|
|
159
|
-
const columnName = `${column.name}${childField.name === StringDecoder.ROOT_COLUMN_NAME
|
|
160
|
-
? ""
|
|
161
|
-
: StringDecoder.NESTED_COLUMN_SEPARATOR + childField.name}`;
|
|
162
|
-
if (propertyColumnNames) {
|
|
163
|
-
if (!propertyColumnNames.has(columnName)) {
|
|
164
|
-
//TODO: add size of sub column to Mlt for faster skipping
|
|
165
|
-
skipColumn(numStreams, data, offset);
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (numStreams !== 2 ||
|
|
170
|
-
childField.type !== "scalarField" ||
|
|
171
|
-
childField.scalarField.physicalType !== ScalarType.STRING) {
|
|
172
|
-
throw new Error("Currently only optional string fields are implemented for a struct.");
|
|
173
|
-
}
|
|
174
|
-
const presentStreamMetadata = StreamMetadataDecoder.decode(data, offset);
|
|
175
|
-
const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);
|
|
176
|
-
const offsetStreamMetadata = StreamMetadataDecoder.decode(data, offset);
|
|
177
|
-
const offsetCount = (offsetStreamMetadata instanceof RleEncodedStreamMetadata
|
|
178
|
-
? offsetStreamMetadata.numRleValues
|
|
179
|
-
: offsetStreamMetadata.numValues);
|
|
180
|
-
const isNullable = offsetCount !== numFeatures;
|
|
181
|
-
const offsetStream = isNullable
|
|
182
|
-
? IntegerStreamDecoder.decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
|
|
183
|
-
: IntegerStreamDecoder.decodeIntStream(data, offset, offsetStreamMetadata, false);
|
|
184
|
-
stringDictionaryVectors[i++] = symbolTableBuffer
|
|
185
|
-
? new StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new BitVector(presentStream, presentStreamMetadata.numValues))
|
|
186
|
-
: new StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new BitVector(presentStream, presentStreamMetadata.numValues));
|
|
187
164
|
}
|
|
188
|
-
|
|
165
|
+
if (numStreams !== 2 ||
|
|
166
|
+
childField.type !== "scalarField" ||
|
|
167
|
+
childField.scalarField.physicalType !== ScalarType.STRING) {
|
|
168
|
+
throw new Error("Currently only optional string fields are implemented for a struct.");
|
|
169
|
+
}
|
|
170
|
+
const presentStreamMetadata = decodeStreamMetadata(data, offset);
|
|
171
|
+
const presentStream = decodeBooleanRle(data, presentStreamMetadata.numValues, offset);
|
|
172
|
+
const offsetStreamMetadata = decodeStreamMetadata(data, offset);
|
|
173
|
+
const offsetCount = offsetStreamMetadata.decompressedCount;
|
|
174
|
+
const isNullable = offsetCount !== numFeatures;
|
|
175
|
+
const offsetStream = isNullable
|
|
176
|
+
? decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new BitVector(presentStream, presentStreamMetadata.numValues))
|
|
177
|
+
: decodeIntStream(data, offset, offsetStreamMetadata, false);
|
|
178
|
+
stringDictionaryVectors[i++] = symbolTableBuffer
|
|
179
|
+
? new StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new BitVector(presentStream, presentStreamMetadata.numValues))
|
|
180
|
+
: new StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new BitVector(presentStream, presentStreamMetadata.numValues));
|
|
189
181
|
}
|
|
182
|
+
return stringDictionaryVectors;
|
|
190
183
|
}
|
|
191
184
|
//# sourceMappingURL=stringDecoder.js.map
|