@maplibre/mlt 0.0.1-alpha.7 → 1.0.0
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/dist/{encodings → decoding}/decodingUtils.js +18 -33
- package/dist/decoding/decodingUtils.js.map +1 -0
- package/dist/decoding/decodingUtils.spec.d.ts +1 -0
- package/dist/decoding/decodingUtils.spec.js +125 -0
- package/dist/decoding/decodingUtils.spec.js.map +1 -0
- package/dist/{encodings → decoding}/fsstDecoder.js +1 -4
- package/dist/decoding/fsstDecoder.js.map +1 -0
- package/dist/decoding/fsstDecoder.spec.d.ts +1 -0
- package/dist/decoding/fsstDecoder.spec.js +36 -0
- package/dist/decoding/fsstDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/geometryDecoder.js +83 -101
- package/dist/decoding/geometryDecoder.js.map +1 -0
- package/dist/decoding/geometryDecoder.spec.d.ts +1 -0
- package/dist/decoding/geometryDecoder.spec.js +5 -0
- package/dist/decoding/geometryDecoder.spec.js.map +1 -0
- package/dist/decoding/geometryScaling.js +2 -0
- package/dist/decoding/geometryScaling.js.map +1 -0
- package/dist/{encodings → decoding}/intWrapper.js +2 -4
- package/dist/decoding/intWrapper.js.map +1 -0
- package/dist/{encodings → decoding}/integerDecodingUtils.d.ts +13 -0
- package/dist/{encodings → decoding}/integerDecodingUtils.js +127 -130
- package/dist/decoding/integerDecodingUtils.js.map +1 -0
- package/dist/decoding/integerDecodingUtils.spec.d.ts +1 -0
- package/dist/decoding/integerDecodingUtils.spec.js +194 -0
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -0
- package/dist/{encodings → decoding}/integerStreamDecoder.d.ts +1 -1
- package/dist/decoding/integerStreamDecoder.js +263 -0
- package/dist/decoding/integerStreamDecoder.js.map +1 -0
- package/dist/decoding/integerStreamDecoder.spec.d.ts +1 -0
- package/dist/decoding/integerStreamDecoder.spec.js +125 -0
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/propertyDecoder.d.ts +1 -1
- package/dist/decoding/propertyDecoder.js +140 -0
- package/dist/decoding/propertyDecoder.js.map +1 -0
- package/dist/decoding/propertyDecoder.spec.d.ts +1 -0
- package/dist/decoding/propertyDecoder.spec.js +682 -0
- package/dist/decoding/propertyDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/stringDecoder.d.ts +1 -1
- package/dist/decoding/stringDecoder.js +142 -0
- package/dist/decoding/stringDecoder.js.map +1 -0
- package/dist/decoding/stringDecoder.spec.d.ts +1 -0
- package/dist/decoding/stringDecoder.spec.js +311 -0
- package/dist/decoding/stringDecoder.spec.js.map +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +5 -18
- package/dist/index.js.map +1 -1
- package/dist/metadata/tile/dictionaryType.js +2 -5
- package/dist/metadata/tile/dictionaryType.js.map +1 -1
- package/dist/metadata/tile/lengthType.js +2 -5
- package/dist/metadata/tile/lengthType.js.map +1 -1
- package/dist/metadata/tile/logicalLevelTechnique.js +2 -5
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +3 -3
- package/dist/metadata/tile/logicalStreamType.js +4 -5
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +6 -6
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +8 -10
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/offsetType.js +2 -5
- package/dist/metadata/tile/offsetType.js.map +1 -1
- package/dist/metadata/tile/physicalLevelTechnique.js +2 -5
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/physicalStreamType.js +2 -5
- package/dist/metadata/tile/physicalStreamType.js.map +1 -1
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +10 -6
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +14 -10
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/scalarType.js +2 -5
- package/dist/metadata/tile/scalarType.js.map +1 -1
- package/dist/metadata/tile/streamMetadata.d.ts +11 -5
- package/dist/metadata/tile/streamMetadata.js +35 -24
- package/dist/metadata/tile/streamMetadata.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +2 -2
- package/dist/metadata/tile/streamMetadataDecoder.js +13 -17
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +2 -2
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +40 -32
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/tilesetMetadata.d.ts +80 -0
- package/dist/metadata/tileset/tilesetMetadata.js +29 -0
- package/dist/metadata/tileset/tilesetMetadata.js.map +1 -0
- package/dist/metadata/tileset/typeMap.d.ts +1 -1
- package/dist/metadata/tileset/typeMap.js +63 -59
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.d.ts +1 -1
- package/dist/mltDecoder.js +58 -64
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltDecoder.spec.d.ts +1 -0
- package/dist/mltDecoder.spec.js +152 -0
- package/dist/mltDecoder.spec.js.map +1 -0
- package/dist/mltMetadata.js +4 -7
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.d.ts +0 -13
- package/dist/vector/constant/intConstVector.js +2 -81
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.d.ts +0 -13
- package/dist/vector/constant/longConstVector.js +2 -79
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +0 -14
- package/dist/vector/dictionary/stringDictionaryVector.js +6 -167
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +4 -0
- package/dist/vector/featureTable.js +48 -12
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/fixedSizeVector.js +2 -9
- package/dist/vector/fixedSizeVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js +3 -4
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.d.ts +0 -13
- package/dist/vector/flat/booleanFlatVector.js +3 -46
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/doubleFlatVector.d.ts +0 -13
- package/dist/vector/flat/doubleFlatVector.js +2 -101
- package/dist/vector/flat/doubleFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.d.ts +0 -13
- package/dist/vector/flat/floatFlatVector.js +2 -101
- package/dist/vector/flat/floatFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/floatFlatVector.spec.js +14 -0
- package/dist/vector/flat/floatFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/intFlatVector.d.ts +0 -13
- package/dist/vector/flat/intFlatVector.js +2 -115
- package/dist/vector/flat/intFlatVector.js.map +1 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/intFlatVector.spec.js +15 -0
- package/dist/vector/flat/intFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/longFlatVector.d.ts +0 -13
- package/dist/vector/flat/longFlatVector.js +2 -116
- package/dist/vector/flat/longFlatVector.js.map +1 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/longFlatVector.spec.js +14 -0
- package/dist/vector/flat/longFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +0 -13
- package/dist/vector/flat/stringFlatVector.js +5 -155
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +0 -13
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +14 -51
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +1 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +28 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -0
- package/dist/vector/geometry/constGeometryVector.d.ts +0 -4
- package/dist/vector/geometry/constGeometryVector.js +9 -30
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +0 -4
- package/dist/vector/geometry/constGpuVector.js +4 -25
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +0 -4
- package/dist/vector/geometry/flatGeometryVector.js +8 -36
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +0 -4
- package/dist/vector/geometry/flatGpuVector.js +3 -29
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js +4 -7
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +8 -7
- package/dist/vector/geometry/geometryVector.js +13 -14
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -2
- package/dist/vector/geometry/geometryVectorConverter.js +38 -41
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +8 -7
- package/dist/vector/geometry/gpuVector.js +97 -13
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/spaceFillingCurve.js +10 -5
- package/dist/vector/geometry/spaceFillingCurve.js.map +1 -1
- package/dist/vector/geometry/topologyVector.js +4 -4
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js +2 -5
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.d.ts +1 -1
- package/dist/vector/geometry/zOrderCurve.js +3 -9
- package/dist/vector/geometry/zOrderCurve.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +1 -0
- package/dist/vector/geometry/zOrderCurve.spec.js +14 -0
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -0
- package/dist/vector/intVector.js +1 -2
- package/dist/vector/sequence/intSequenceVector.d.ts +0 -13
- package/dist/vector/sequence/intSequenceVector.js +2 -64
- package/dist/vector/sequence/intSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVector.d.ts +0 -13
- package/dist/vector/sequence/longSequenceVector.js +2 -49
- package/dist/vector/sequence/longSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +1 -0
- package/dist/vector/sequence/longSequenceVektor.spec.js +11 -0
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.js +3 -9
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js +3 -9
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.d.ts +0 -17
- package/dist/vector/vector.js +6 -49
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js +2 -5
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +10 -31
- package/dist/encodings/decodingUtils.js.map +0 -1
- package/dist/encodings/doubleDecoder.d.ts +0 -4
- package/dist/encodings/doubleDecoder.js +0 -22
- package/dist/encodings/doubleDecoder.js.map +0 -1
- package/dist/encodings/fastpfor/bitpacking.d.ts +0 -51
- package/dist/encodings/fastpfor/bitpacking.js +0 -4444
- package/dist/encodings/fastpfor/bitpacking.js.map +0 -1
- package/dist/encodings/fastpfor/codec.d.ts +0 -19
- package/dist/encodings/fastpfor/codec.js +0 -3
- package/dist/encodings/fastpfor/codec.js.map +0 -1
- package/dist/encodings/fastpfor/fastpfor.d.ts +0 -38
- package/dist/encodings/fastpfor/fastpfor.js +0 -123
- package/dist/encodings/fastpfor/fastpfor.js.map +0 -1
- package/dist/encodings/fastpfor/index.d.ts +0 -20
- package/dist/encodings/fastpfor/index.js +0 -47
- package/dist/encodings/fastpfor/index.js.map +0 -1
- package/dist/encodings/fastpfor/util.d.ts +0 -2
- package/dist/encodings/fastpfor/util.js +0 -16
- package/dist/encodings/fastpfor/util.js.map +0 -1
- package/dist/encodings/fastpfor/varint.d.ts +0 -18
- package/dist/encodings/fastpfor/varint.js +0 -125
- package/dist/encodings/fastpfor/varint.js.map +0 -1
- package/dist/encodings/fsstDecoder.js.map +0 -1
- package/dist/encodings/geometryDecoder.js.map +0 -1
- package/dist/encodings/geometryScaling.js +0 -3
- package/dist/encodings/geometryScaling.js.map +0 -1
- package/dist/encodings/intWrapper.js.map +0 -1
- package/dist/encodings/integerDecodingUtils.js.map +0 -1
- package/dist/encodings/integerStreamDecoder.js +0 -254
- package/dist/encodings/integerStreamDecoder.js.map +0 -1
- package/dist/encodings/propertyDecoder.js +0 -146
- package/dist/encodings/propertyDecoder.js.map +0 -1
- package/dist/encodings/stringDecoder.js +0 -147
- package/dist/encodings/stringDecoder.js.map +0 -1
- package/dist/metadata/tileset/tilesetMetadata.g.d.ts +0 -418
- package/dist/metadata/tileset/tilesetMetadata.g.js +0 -476
- package/dist/metadata/tileset/tilesetMetadata.g.js.map +0 -1
- package/dist/vector/filter/constSelectionVector.d.ts +0 -0
- package/dist/vector/filter/constSelectionVector.js +0 -1
- package/dist/vector/filter/constSelectionVector.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +0 -16
- package/dist/vector/filter/flatSelectionVector.js +0 -42
- package/dist/vector/filter/flatSelectionVector.js.map +0 -1
- package/dist/vector/filter/selectionVector.d.ts +0 -8
- package/dist/vector/filter/selectionVector.js +0 -3
- package/dist/vector/filter/selectionVector.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +0 -7
- package/dist/vector/filter/selectionVectorUtils.js +0 -44
- package/dist/vector/filter/selectionVectorUtils.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
- package/dist/vector/filter/sequenceSelectionVector.js +0 -1
- package/dist/vector/filter/sequenceSelectionVector.js.map +0 -1
- package/dist/vector/geometry/point.d.ts +0 -195
- package/dist/vector/geometry/point.js +0 -283
- package/dist/vector/geometry/point.js.map +0 -1
- /package/dist/{encodings → decoding}/decodingUtils.d.ts +0 -0
- /package/dist/{encodings → decoding}/fsstDecoder.d.ts +0 -0
- /package/dist/{encodings → decoding}/geometryDecoder.d.ts +0 -0
- /package/dist/{encodings → decoding}/geometryScaling.d.ts +0 -0
- /package/dist/{encodings → decoding}/intWrapper.d.ts +0 -0
package/dist/mltDecoder.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const intConstVector_1 = require("./vector/constant/intConstVector");
|
|
22
|
-
const longConstVector_1 = require("./vector/constant/longConstVector");
|
|
23
|
-
const decodingUtils_1 = require("./encodings/decodingUtils");
|
|
24
|
-
const doubleFlatVector_1 = require("./vector/flat/doubleFlatVector");
|
|
25
|
-
const embeddedTilesetMetadataDecoder_1 = require("./metadata/tileset/embeddedTilesetMetadataDecoder");
|
|
26
|
-
const typeMap_1 = require("./metadata/tileset/typeMap");
|
|
1
|
+
import FeatureTable from "./vector/featureTable";
|
|
2
|
+
import { ScalarType } from "./metadata/tileset/tilesetMetadata";
|
|
3
|
+
import IntWrapper from "./decoding/intWrapper";
|
|
4
|
+
import { StreamMetadataDecoder } from "./metadata/tile/streamMetadataDecoder";
|
|
5
|
+
import { VectorType } from "./vector/vectorType";
|
|
6
|
+
import { IntFlatVector } from "./vector/flat/intFlatVector";
|
|
7
|
+
import BitVector from "./vector/flat/bitVector";
|
|
8
|
+
import IntegerStreamDecoder from "./decoding/integerStreamDecoder";
|
|
9
|
+
import { IntSequenceVector } from "./vector/sequence/intSequenceVector";
|
|
10
|
+
import { LongFlatVector } from "./vector/flat/longFlatVector";
|
|
11
|
+
import { LongSequenceVector } from "./vector/sequence/longSequenceVector";
|
|
12
|
+
import { decodeVarintInt32 } from "./decoding/integerDecodingUtils";
|
|
13
|
+
import { decodeGeometryColumn } from "./decoding/geometryDecoder";
|
|
14
|
+
import { decodePropertyColumn } from "./decoding/propertyDecoder";
|
|
15
|
+
import { IntConstVector } from "./vector/constant/intConstVector";
|
|
16
|
+
import { LongConstVector } from "./vector/constant/longConstVector";
|
|
17
|
+
import { decodeBooleanRle } from "./decoding/decodingUtils";
|
|
18
|
+
import { DoubleFlatVector } from "./vector/flat/doubleFlatVector";
|
|
19
|
+
import { decodeEmbeddedTileSetMetadata } from "./metadata/tileset/embeddedTilesetMetadataDecoder";
|
|
20
|
+
import { TypeMap } from "./metadata/tileset/typeMap";
|
|
27
21
|
const ID_COLUMN_NAME = "id";
|
|
28
22
|
const GEOMETRY_COLUMN_NAME = "geometry";
|
|
29
23
|
/**
|
|
@@ -34,24 +28,24 @@ const GEOMETRY_COLUMN_NAME = "geometry";
|
|
|
34
28
|
* @param geometryScaling Optional geometry scaling parameters
|
|
35
29
|
* @param idWithinMaxSafeInteger If true, limits ID values to JavaScript safe integer range (53 bits)
|
|
36
30
|
*/
|
|
37
|
-
function decodeTile(tile, geometryScaling, idWithinMaxSafeInteger = true) {
|
|
38
|
-
const offset = new
|
|
31
|
+
export default function decodeTile(tile, geometryScaling, idWithinMaxSafeInteger = true) {
|
|
32
|
+
const offset = new IntWrapper(0);
|
|
39
33
|
const featureTables = [];
|
|
40
34
|
while (offset.get() < tile.length) {
|
|
41
|
-
const blockLength =
|
|
35
|
+
const blockLength = decodeVarintInt32(tile, offset, 1)[0] >>> 0;
|
|
42
36
|
const blockStart = offset.get();
|
|
43
37
|
const blockEnd = blockStart + blockLength;
|
|
44
38
|
if (blockEnd > tile.length) {
|
|
45
39
|
throw new Error(`Block overruns tile: ${blockEnd} > ${tile.length}`);
|
|
46
40
|
}
|
|
47
|
-
const tag =
|
|
41
|
+
const tag = decodeVarintInt32(tile, offset, 1)[0] >>> 0;
|
|
48
42
|
if (tag !== 1) {
|
|
49
43
|
// Skip unknown block types
|
|
50
44
|
offset.set(blockEnd);
|
|
51
45
|
continue;
|
|
52
46
|
}
|
|
53
47
|
// Decode embedded metadata and extent (one of each per block)
|
|
54
|
-
const decode =
|
|
48
|
+
const decode = decodeEmbeddedTileSetMetadata(tile, offset);
|
|
55
49
|
const metadata = decode[0];
|
|
56
50
|
const extent = decode[1];
|
|
57
51
|
const featureTableMetadata = metadata.featureTables[0];
|
|
@@ -62,33 +56,33 @@ function decodeTile(tile, geometryScaling, idWithinMaxSafeInteger = true) {
|
|
|
62
56
|
let numFeatures = 0;
|
|
63
57
|
for (const columnMetadata of featureTableMetadata.columns) {
|
|
64
58
|
const columnName = columnMetadata.name;
|
|
65
|
-
const numStreams =
|
|
59
|
+
const numStreams = TypeMap.hasStreamCount(columnMetadata) ? decodeVarintInt32(tile, offset, 1)[0] : 1;
|
|
66
60
|
if (columnName === ID_COLUMN_NAME) {
|
|
67
61
|
let nullabilityBuffer = null;
|
|
68
62
|
// Check column metadata nullable flag, not numStreams (ID columns don't have stream count)
|
|
69
63
|
if (columnMetadata.nullable) {
|
|
70
|
-
const presentStreamMetadata =
|
|
64
|
+
const presentStreamMetadata = StreamMetadataDecoder.decode(tile, offset);
|
|
71
65
|
const streamDataStart = offset.get();
|
|
72
|
-
const values =
|
|
66
|
+
const values = decodeBooleanRle(tile, presentStreamMetadata.numValues, offset);
|
|
73
67
|
// Fix offset: decodeBooleanRle doesn't consume all compressed bytes
|
|
74
68
|
offset.set(streamDataStart + presentStreamMetadata.byteLength);
|
|
75
|
-
nullabilityBuffer = new
|
|
69
|
+
nullabilityBuffer = new BitVector(values, presentStreamMetadata.numValues);
|
|
76
70
|
}
|
|
77
|
-
const idDataStreamMetadata =
|
|
78
|
-
numFeatures = idDataStreamMetadata.
|
|
71
|
+
const idDataStreamMetadata = StreamMetadataDecoder.decode(tile, offset);
|
|
72
|
+
numFeatures = idDataStreamMetadata.getDecompressedCount();
|
|
79
73
|
idVector = decodeIdColumn(tile, columnMetadata, offset, columnName, idDataStreamMetadata, nullabilityBuffer ?? numFeatures, idWithinMaxSafeInteger);
|
|
80
74
|
}
|
|
81
75
|
else if (columnName === GEOMETRY_COLUMN_NAME) {
|
|
82
76
|
if (geometryScaling) {
|
|
83
77
|
geometryScaling.scale = geometryScaling.extent / extent;
|
|
84
78
|
}
|
|
85
|
-
geometryVector =
|
|
79
|
+
geometryVector = decodeGeometryColumn(tile, numStreams, offset, numFeatures, geometryScaling);
|
|
86
80
|
}
|
|
87
81
|
else {
|
|
88
|
-
if (numStreams === 0 && columnMetadata.type
|
|
82
|
+
if (numStreams === 0 && columnMetadata.type === "scalarType") {
|
|
89
83
|
continue;
|
|
90
84
|
}
|
|
91
|
-
const propertyVector =
|
|
85
|
+
const propertyVector = decodePropertyColumn(tile, offset, columnMetadata, numStreams, numFeatures, undefined);
|
|
92
86
|
if (propertyVector) {
|
|
93
87
|
if (Array.isArray(propertyVector)) {
|
|
94
88
|
propertyVectors.push(...propertyVector);
|
|
@@ -99,48 +93,48 @@ function decodeTile(tile, geometryScaling, idWithinMaxSafeInteger = true) {
|
|
|
99
93
|
}
|
|
100
94
|
}
|
|
101
95
|
}
|
|
102
|
-
const featureTable = new
|
|
96
|
+
const featureTable = new FeatureTable(featureTableMetadata.name, geometryVector, idVector, propertyVectors, extent);
|
|
103
97
|
featureTables.push(featureTable);
|
|
104
98
|
offset.set(blockEnd);
|
|
105
99
|
}
|
|
106
100
|
return featureTables;
|
|
107
101
|
}
|
|
108
102
|
function decodeIdColumn(tile, columnMetadata, offset, columnName, idDataStreamMetadata, sizeOrNullabilityBuffer, idWithinMaxSafeInteger = false) {
|
|
109
|
-
const idDataType = columnMetadata.
|
|
110
|
-
const vectorType =
|
|
111
|
-
if (idDataType ===
|
|
103
|
+
const idDataType = columnMetadata.scalarType.physicalType;
|
|
104
|
+
const vectorType = IntegerStreamDecoder.getVectorType(idDataStreamMetadata, sizeOrNullabilityBuffer, tile, offset);
|
|
105
|
+
if (idDataType === ScalarType.UINT_32) {
|
|
112
106
|
switch (vectorType) {
|
|
113
|
-
case
|
|
114
|
-
const id =
|
|
115
|
-
return new
|
|
107
|
+
case VectorType.FLAT: {
|
|
108
|
+
const id = IntegerStreamDecoder.decodeIntStream(tile, offset, idDataStreamMetadata, false);
|
|
109
|
+
return new IntFlatVector(columnName, id, sizeOrNullabilityBuffer);
|
|
116
110
|
}
|
|
117
|
-
case
|
|
118
|
-
const id =
|
|
119
|
-
return new
|
|
111
|
+
case VectorType.SEQUENCE: {
|
|
112
|
+
const id = IntegerStreamDecoder.decodeSequenceIntStream(tile, offset, idDataStreamMetadata);
|
|
113
|
+
return new IntSequenceVector(columnName, id[0], id[1], idDataStreamMetadata.numRleValues);
|
|
120
114
|
}
|
|
121
|
-
case
|
|
122
|
-
const id =
|
|
123
|
-
return new
|
|
115
|
+
case VectorType.CONST: {
|
|
116
|
+
const id = IntegerStreamDecoder.decodeConstIntStream(tile, offset, idDataStreamMetadata, false);
|
|
117
|
+
return new IntConstVector(columnName, id, sizeOrNullabilityBuffer);
|
|
124
118
|
}
|
|
125
119
|
}
|
|
126
120
|
}
|
|
127
121
|
else {
|
|
128
122
|
switch (vectorType) {
|
|
129
|
-
case
|
|
123
|
+
case VectorType.FLAT: {
|
|
130
124
|
if (idWithinMaxSafeInteger) {
|
|
131
|
-
const id =
|
|
132
|
-
return new
|
|
125
|
+
const id = IntegerStreamDecoder.decodeLongFloat64Stream(tile, offset, idDataStreamMetadata, false);
|
|
126
|
+
return new DoubleFlatVector(columnName, id, sizeOrNullabilityBuffer);
|
|
133
127
|
}
|
|
134
|
-
const id =
|
|
135
|
-
return new
|
|
128
|
+
const id = IntegerStreamDecoder.decodeLongStream(tile, offset, idDataStreamMetadata, false);
|
|
129
|
+
return new LongFlatVector(columnName, id, sizeOrNullabilityBuffer);
|
|
136
130
|
}
|
|
137
|
-
case
|
|
138
|
-
const id =
|
|
139
|
-
return new
|
|
131
|
+
case VectorType.SEQUENCE: {
|
|
132
|
+
const id = IntegerStreamDecoder.decodeSequenceLongStream(tile, offset, idDataStreamMetadata);
|
|
133
|
+
return new LongSequenceVector(columnName, id[0], id[1], idDataStreamMetadata.numRleValues);
|
|
140
134
|
}
|
|
141
|
-
case
|
|
142
|
-
const id =
|
|
143
|
-
return new
|
|
135
|
+
case VectorType.CONST: {
|
|
136
|
+
const id = IntegerStreamDecoder.decodeConstLongStream(tile, offset, idDataStreamMetadata, false);
|
|
137
|
+
return new LongConstVector(columnName, id, sizeOrNullabilityBuffer);
|
|
144
138
|
}
|
|
145
139
|
}
|
|
146
140
|
}
|
package/dist/mltDecoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mltDecoder.js","sourceRoot":"","sources":["../src/mltDecoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mltDecoder.js","sourceRoot":"","sources":["../src/mltDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { expect, describe, it } from "vitest";
|
|
2
|
+
import { readdirSync, readFileSync } from "fs";
|
|
3
|
+
import { parse, join } from "path";
|
|
4
|
+
import { VectorTile } from "@mapbox/vector-tile";
|
|
5
|
+
import Pbf from "pbf";
|
|
6
|
+
import { decodeTile } from ".";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import fs from "node:fs";
|
|
9
|
+
const ITERATOR_TILE = path.resolve(__dirname, "../../test/expected/tag0x01/simple/multiline-boolean.mlt");
|
|
10
|
+
describe("MLT Decoder - MVT comparison for SIMPLE tiles", () => {
|
|
11
|
+
const simpleMltTileDir = "../test/expected/tag0x01/simple";
|
|
12
|
+
const simpleMvtTileDir = "../test/fixtures/simple";
|
|
13
|
+
testTiles(simpleMltTileDir, simpleMvtTileDir);
|
|
14
|
+
});
|
|
15
|
+
describe("MLT Decoder - MVT comparison for Amazon tiles", () => {
|
|
16
|
+
const amazonMltTileDir = "../test/expected/tag0x01/amazon";
|
|
17
|
+
const amazonMvtTileDir = "../test/fixtures/amazon";
|
|
18
|
+
testTiles(amazonMltTileDir, amazonMvtTileDir);
|
|
19
|
+
});
|
|
20
|
+
describe("MLT Decoder - MVT comparison for OMT tiles", () => {
|
|
21
|
+
const omtMltTileDir = "../test/expected/tag0x01/omt";
|
|
22
|
+
const omtMvtTileDir = "../test/fixtures/omt";
|
|
23
|
+
testTiles(omtMltTileDir, omtMvtTileDir);
|
|
24
|
+
}, 150000);
|
|
25
|
+
describe("FeatureTable", () => {
|
|
26
|
+
it("should iterate through features correctly", () => {
|
|
27
|
+
const bytes = new Uint8Array(fs.readFileSync(ITERATOR_TILE));
|
|
28
|
+
const featureTables = decodeTile(bytes);
|
|
29
|
+
const table = featureTables[0];
|
|
30
|
+
expect(table.name).toBe("layer");
|
|
31
|
+
expect(table.extent).toBe(4096);
|
|
32
|
+
let featureCount = 0;
|
|
33
|
+
for (const feature of table) {
|
|
34
|
+
expect(feature.geometry).toBeTruthy();
|
|
35
|
+
expect(feature.geometry.coordinates).toBeInstanceOf(Array);
|
|
36
|
+
expect(feature.geometry.coordinates.length).toBeGreaterThan(0);
|
|
37
|
+
expect(typeof feature.geometry.type).toBe("number");
|
|
38
|
+
featureCount++;
|
|
39
|
+
}
|
|
40
|
+
expect(featureCount).toBe(table.numFeatures);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
function testTiles(mltSearchDir, mvtSearchDir) {
|
|
44
|
+
const mltFileNames = readdirSync(mltSearchDir)
|
|
45
|
+
.filter((file) => parse(file).ext === ".mlt")
|
|
46
|
+
.map((file) => parse(file).name);
|
|
47
|
+
for (const fileName of mltFileNames) {
|
|
48
|
+
it(`should compare ${fileName} tile`, () => {
|
|
49
|
+
const mltFileName = `${fileName}.mlt`;
|
|
50
|
+
const mltPath = join(mltSearchDir, mltFileName);
|
|
51
|
+
const mvtPath = join(mvtSearchDir, `${fileName}.mvt`);
|
|
52
|
+
const encodedMvt = readFileSync(mvtPath);
|
|
53
|
+
const encodedMlt = readFileSync(mltPath);
|
|
54
|
+
const buf = new Pbf(encodedMvt);
|
|
55
|
+
const decodedMvt = new VectorTile(buf);
|
|
56
|
+
const decodedMlt = decodeTile(encodedMlt, undefined, true);
|
|
57
|
+
comparePlainGeometryEncodedTile(decodedMlt, decodedMvt);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function removeEmptyStrings(mvtProperties) {
|
|
62
|
+
for (const key of Object.keys(mvtProperties)) {
|
|
63
|
+
const value = mvtProperties[key];
|
|
64
|
+
if (typeof value === "string" && !value.length) {
|
|
65
|
+
delete mvtProperties[key];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function comparePlainGeometryEncodedTile(mlt, mvt) {
|
|
70
|
+
for (const featureTable of mlt) {
|
|
71
|
+
const layer = mvt.layers[featureTable.name];
|
|
72
|
+
// Use getFeatures() instead of iterator (like C++ and Java implementations)
|
|
73
|
+
const mltFeatures = featureTable.getFeatures();
|
|
74
|
+
expect(mltFeatures.length).toBe(layer.length);
|
|
75
|
+
for (let j = 0; j < layer.length; j++) {
|
|
76
|
+
const mvtFeature = layer.feature(j);
|
|
77
|
+
const mltFeature = mltFeatures[j];
|
|
78
|
+
compareId(mltFeature, mvtFeature, true);
|
|
79
|
+
const mltGeometry = mltFeature.geometry?.coordinates;
|
|
80
|
+
const mvtGeometry = mvtFeature.loadGeometry();
|
|
81
|
+
expect(mltGeometry).toEqual(mvtGeometry);
|
|
82
|
+
const mltProperties = mltFeature.properties;
|
|
83
|
+
const mvtProperties = mvtFeature.properties;
|
|
84
|
+
transformPropertyNames(mltProperties);
|
|
85
|
+
transformPropertyNames(mvtProperties);
|
|
86
|
+
convertBigIntPropertyValues(mltProperties);
|
|
87
|
+
//TODO: fix -> since a change in the java converter shared dictionary encoding empty strings are not
|
|
88
|
+
//encoded anymore
|
|
89
|
+
removeEmptyStrings(mvtProperties);
|
|
90
|
+
removeEmptyStrings(mltProperties);
|
|
91
|
+
expect(Object.keys(mltProperties).length).toEqual(Object.keys(mvtProperties).length);
|
|
92
|
+
expect(mltProperties).toEqual(mvtProperties);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function compareId(mltFeature, mvtFeature, idWithinMaxSafeInteger) {
|
|
97
|
+
if (!mvtFeature.id) {
|
|
98
|
+
/* Java MVT library in the MVT converter decodes zero for undefined ids */
|
|
99
|
+
expect([0, null, 0n]).toContain(mltFeature.id);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const mltFeatureId = mltFeature.id;
|
|
103
|
+
/* For const and sequence vectors the decoder can return bigint compared to the vector-tile-js library */
|
|
104
|
+
const actualId = idWithinMaxSafeInteger && typeof mltFeatureId !== "bigint" ? mltFeatureId : Number(mltFeatureId);
|
|
105
|
+
/*
|
|
106
|
+
* The id check can fail for two known reasons:
|
|
107
|
+
* - The java-vector-tile library used in the Java converter returns negative integers for the
|
|
108
|
+
* unoptimized tileset in some tiles
|
|
109
|
+
* - The vector-tile-js library is using number types for the id so there can only be stored
|
|
110
|
+
* values up to 53 bits without loss of precision
|
|
111
|
+
**/
|
|
112
|
+
if (mltFeatureId < 0 || mltFeatureId > Number.MAX_SAFE_INTEGER) {
|
|
113
|
+
/* Expected to fail in some/most cases */
|
|
114
|
+
try {
|
|
115
|
+
expect(actualId).toEqual(mvtFeature.id);
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
//console.info("id mismatch", featureTableName, mltFeatureId, mvtFeature.id);
|
|
119
|
+
}
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
expect(actualId).toEqual(mvtFeature.id);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/* Change bigint to number for comparison with MVT */
|
|
126
|
+
function convertBigIntPropertyValues(mltProperties) {
|
|
127
|
+
for (const key of Object.keys(mltProperties)) {
|
|
128
|
+
if (typeof mltProperties[key] === "bigint") {
|
|
129
|
+
mltProperties[key] = Number(mltProperties[key]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function transformPropertyNames(properties) {
|
|
134
|
+
const propertyNames = Object.keys(properties);
|
|
135
|
+
for (let k = 0; k < propertyNames.length; k++) {
|
|
136
|
+
const key = propertyNames[k];
|
|
137
|
+
let newKey = key;
|
|
138
|
+
/* rename the property names which are separated with : in mlt to match _ in omt mvts */
|
|
139
|
+
if (key.startsWith("name") && key.includes(":")) {
|
|
140
|
+
newKey = key.replaceAll(":", "_");
|
|
141
|
+
properties[newKey] = properties[key];
|
|
142
|
+
delete properties[key];
|
|
143
|
+
}
|
|
144
|
+
/* Currently id is not supported as a property name in a FeatureTable,
|
|
145
|
+
* so this quick workaround is implemented */
|
|
146
|
+
if (newKey === "_id") {
|
|
147
|
+
properties["id"] = properties[newKey];
|
|
148
|
+
delete properties[newKey];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=mltDecoder.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mltDecoder.spec.js","sourceRoot":"","sources":["../src/mltDecoder.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/mltMetadata.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ColumnEncoding = exports.ColumnDataType = void 0;
|
|
4
|
-
var ColumnDataType;
|
|
1
|
+
export var ColumnDataType;
|
|
5
2
|
(function (ColumnDataType) {
|
|
6
3
|
ColumnDataType[ColumnDataType["STRING"] = 0] = "STRING";
|
|
7
4
|
ColumnDataType[ColumnDataType["FLOAT"] = 1] = "FLOAT";
|
|
@@ -13,8 +10,8 @@ var ColumnDataType;
|
|
|
13
10
|
ColumnDataType[ColumnDataType["GEOMETRY_M"] = 7] = "GEOMETRY_M";
|
|
14
11
|
ColumnDataType[ColumnDataType["GEOMETRY_Z"] = 8] = "GEOMETRY_Z";
|
|
15
12
|
ColumnDataType[ColumnDataType["GEOMETRY_ZM"] = 9] = "GEOMETRY_ZM";
|
|
16
|
-
})(ColumnDataType || (
|
|
17
|
-
var ColumnEncoding;
|
|
13
|
+
})(ColumnDataType || (ColumnDataType = {}));
|
|
14
|
+
export var ColumnEncoding;
|
|
18
15
|
(function (ColumnEncoding) {
|
|
19
16
|
/*
|
|
20
17
|
* String -> no dictionary coding
|
|
@@ -30,5 +27,5 @@ var ColumnEncoding;
|
|
|
30
27
|
ColumnEncoding[ColumnEncoding["LOCALIZED_DICTIONARY"] = 7] = "LOCALIZED_DICTIONARY";
|
|
31
28
|
ColumnEncoding[ColumnEncoding["ORDERED_GEOMETRY_ENCODING"] = 8] = "ORDERED_GEOMETRY_ENCODING";
|
|
32
29
|
ColumnEncoding[ColumnEncoding["INDEXED_COORDINATE_ENCODING"] = 9] = "INDEXED_COORDINATE_ENCODING";
|
|
33
|
-
})(ColumnEncoding || (
|
|
30
|
+
})(ColumnEncoding || (ColumnEncoding = {}));
|
|
34
31
|
//# sourceMappingURL=mltMetadata.js.map
|
package/dist/mltMetadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mltMetadata.js","sourceRoot":"","sources":["../src/mltMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mltMetadata.js","sourceRoot":"","sources":["../src/mltMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACtB,uDAAM,CAAA;IACN,qDAAK,CAAA;IACL,uDAAM,CAAA;IACN,uDAAM,CAAA;IACN,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,+DAAU,CAAA;IACV,iEAAW,CAAA;AACf,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAED,MAAM,CAAN,IAAY,cAeX;AAfD,WAAY,cAAc;IACtB;;;SAGK;IACL,qDAAK,CAAA;IACL,uDAAM,CAAA;IACN,mEAAY,CAAA;IACZ,iDAAG,CAAA;IACH,iEAAW,CAAA;IACX,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,mFAAoB,CAAA;IACpB,6FAAyB,CAAA;IACzB,iGAA2B,CAAA;AAC/B,CAAC,EAfW,cAAc,KAAd,cAAc,QAezB"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import type BitVector from "../flat/bitVector";
|
|
2
|
-
import { type SelectionVector } from "../filter/selectionVector";
|
|
3
2
|
import Vector from "../vector";
|
|
4
3
|
export declare class IntConstVector extends Vector<Int32Array, number> {
|
|
5
4
|
constructor(name: string, value: number, sizeOrNullabilityBuffer: number | BitVector);
|
|
6
|
-
filter(value: number): SelectionVector;
|
|
7
|
-
match(values: number[]): SelectionVector;
|
|
8
|
-
filterSelected(value: number, selectionVector: SelectionVector): void;
|
|
9
|
-
matchSelected(values: number[], selectionVector: SelectionVector): void;
|
|
10
5
|
protected getValueFromBuffer(index: number): number;
|
|
11
|
-
greaterThanOrEqualTo(testValue: number): SelectionVector;
|
|
12
|
-
greaterThanOrEqualToSelected(value: number, selectionVector: SelectionVector): void;
|
|
13
|
-
smallerThanOrEqualTo(value: number): SelectionVector;
|
|
14
|
-
smallerThanOrEqualToSelected(value: number, selectionVector: SelectionVector): void;
|
|
15
|
-
filterNotEqual(value: number): SelectionVector;
|
|
16
|
-
filterNotEqualSelected(value: number, selectionVector: SelectionVector): void;
|
|
17
|
-
noneMatch(values: number[]): SelectionVector;
|
|
18
|
-
noneMatchSelected(values: number[], selectionVector: SelectionVector): void;
|
|
19
6
|
}
|
|
@@ -1,89 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.IntConstVector = void 0;
|
|
7
|
-
const flatSelectionVector_1 = require("../filter/flatSelectionVector");
|
|
8
|
-
const vector_1 = __importDefault(require("../vector"));
|
|
9
|
-
const selectionVectorUtils_1 = require("../filter/selectionVectorUtils");
|
|
10
|
-
class IntConstVector extends vector_1.default {
|
|
1
|
+
import Vector from "../vector";
|
|
2
|
+
export class IntConstVector extends Vector {
|
|
11
3
|
constructor(name, value, sizeOrNullabilityBuffer) {
|
|
12
4
|
super(name, Int32Array.of(value), sizeOrNullabilityBuffer);
|
|
13
5
|
}
|
|
14
|
-
filter(value) {
|
|
15
|
-
//TODO: create also different SelectionVectors -> Const, Sequence and Flat
|
|
16
|
-
const vectorValue = this.dataBuffer[0];
|
|
17
|
-
if (vectorValue !== value) {
|
|
18
|
-
return new flatSelectionVector_1.FlatSelectionVector([]);
|
|
19
|
-
}
|
|
20
|
-
return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
|
|
21
|
-
}
|
|
22
|
-
match(values) {
|
|
23
|
-
const vectorValue = this.dataBuffer[0];
|
|
24
|
-
if (!values.includes(vectorValue)) {
|
|
25
|
-
return new flatSelectionVector_1.FlatSelectionVector([]);
|
|
26
|
-
}
|
|
27
|
-
return (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer);
|
|
28
|
-
}
|
|
29
|
-
filterSelected(value, selectionVector) {
|
|
30
|
-
const vectorValue = this.dataBuffer[0];
|
|
31
|
-
if (vectorValue !== value) {
|
|
32
|
-
selectionVector.setLimit(0);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
(0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
|
|
36
|
-
}
|
|
37
|
-
matchSelected(values, selectionVector) {
|
|
38
|
-
const vectorValue = this.dataBuffer[0];
|
|
39
|
-
if (!values.includes(vectorValue)) {
|
|
40
|
-
selectionVector.setLimit(0);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
(0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
|
|
44
|
-
}
|
|
45
6
|
getValueFromBuffer(index) {
|
|
46
7
|
return this.dataBuffer[0];
|
|
47
8
|
}
|
|
48
|
-
greaterThanOrEqualTo(testValue) {
|
|
49
|
-
//TODO: handle bitVector?
|
|
50
|
-
return this.dataBuffer[0] >= testValue ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer) :
|
|
51
|
-
new flatSelectionVector_1.FlatSelectionVector([]);
|
|
52
|
-
}
|
|
53
|
-
greaterThanOrEqualToSelected(value, selectionVector) {
|
|
54
|
-
if (this.dataBuffer[0] >= value) {
|
|
55
|
-
(0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
selectionVector.setLimit(0);
|
|
59
|
-
}
|
|
60
|
-
smallerThanOrEqualTo(value) {
|
|
61
|
-
return this.dataBuffer[0] <= value ? (0, selectionVectorUtils_1.createNullableSelectionVector)(this.size, this.nullabilityBuffer) :
|
|
62
|
-
new flatSelectionVector_1.FlatSelectionVector([]);
|
|
63
|
-
}
|
|
64
|
-
smallerThanOrEqualToSelected(value, selectionVector) {
|
|
65
|
-
if (this.dataBuffer[0] <= value) {
|
|
66
|
-
(0, selectionVectorUtils_1.updateNullableSelectionVector)(selectionVector, this.nullabilityBuffer);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
selectionVector.setLimit(0);
|
|
70
|
-
}
|
|
71
|
-
filterNotEqual(value) {
|
|
72
|
-
return this.dataBuffer[0] !== value ? (0, selectionVectorUtils_1.createSelectionVector)(this.size) :
|
|
73
|
-
new flatSelectionVector_1.FlatSelectionVector([]);
|
|
74
|
-
}
|
|
75
|
-
filterNotEqualSelected(value, selectionVector) {
|
|
76
|
-
if (this.dataBuffer[0] !== value) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
selectionVector.setLimit(0);
|
|
80
|
-
}
|
|
81
|
-
noneMatch(values) {
|
|
82
|
-
throw new Error("Not implemented yet.");
|
|
83
|
-
}
|
|
84
|
-
noneMatchSelected(values, selectionVector) {
|
|
85
|
-
throw new Error("Not implemented yet.");
|
|
86
|
-
}
|
|
87
9
|
}
|
|
88
|
-
exports.IntConstVector = IntConstVector;
|
|
89
10
|
//# sourceMappingURL=intConstVector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intConstVector.js","sourceRoot":"","sources":["../../../src/vector/constant/intConstVector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intConstVector.js","sourceRoot":"","sources":["../../../src/vector/constant/intConstVector.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,OAAO,cAAe,SAAQ,MAA0B;IAC1D,YAAmB,IAAY,EAAE,KAAa,EAAE,uBAA2C;QACvF,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC/D,CAAC;IAES,kBAAkB,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import type BitVector from "../flat/bitVector";
|
|
2
|
-
import { type SelectionVector } from "../filter/selectionVector";
|
|
3
2
|
import Vector from "../vector";
|
|
4
3
|
export declare class LongConstVector extends Vector<BigInt64Array, bigint> {
|
|
5
4
|
constructor(name: string, value: bigint, sizeOrNullabilityBuffer: number | BitVector);
|
|
6
|
-
filter(value: bigint): SelectionVector;
|
|
7
|
-
match(values: bigint[]): SelectionVector;
|
|
8
|
-
filterSelected(value: bigint, selectionVector: SelectionVector): void;
|
|
9
|
-
matchSelected(values: bigint[], selectionVector: SelectionVector): void;
|
|
10
5
|
protected getValueFromBuffer(index: number): bigint;
|
|
11
|
-
greaterThanOrEqualTo(value: bigint): SelectionVector;
|
|
12
|
-
greaterThanOrEqualToSelected(value: bigint, selectionVector: SelectionVector): void;
|
|
13
|
-
smallerThanOrEqualTo(value: bigint): SelectionVector;
|
|
14
|
-
smallerThanOrEqualToSelected(value: bigint, selectionVector: SelectionVector): void;
|
|
15
|
-
filterNotEqual(value: bigint): SelectionVector;
|
|
16
|
-
filterNotEqualSelected(value: bigint, selectionVector: SelectionVector): void;
|
|
17
|
-
noneMatch(values: bigint[]): SelectionVector;
|
|
18
|
-
noneMatchSelected(values: bigint[], selectionVector: SelectionVector): void;
|
|
19
6
|
}
|