A-New-Day-001's picture
Upload 1591 files
be5030f
{"version":3,"sources":["visitor/iterator.ts"],"names":[],"mappings":"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","file":"iterator.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { iterateBits } from '../util/bit';\nimport { instance as getVisitor } from './get';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface IteratorVisitor extends Visitor {\n visit<T extends VectorType>(node: T): IterableIterator<T['TValue'] | null>;\n visitMany <T extends VectorType>(nodes: T[]): IterableIterator<T['TValue'] | null>[];\n getVisitFn<T extends Type>(node: T): (vector: VectorType<T>) => IterableIterator<VectorType<T>['TValue'] | null>;\n getVisitFn<T extends DataType>(node: VectorType<T> | Data<T> | T): (vector: VectorType<T>) => IterableIterator<VectorType<T>['TValue'] | null>;\n visitNull <T extends Null> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitBool <T extends Bool> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt <T extends Int> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt8 <T extends Int8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt16 <T extends Int16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt32 <T extends Int32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInt64 <T extends Int64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint8 <T extends Uint8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint16 <T extends Uint16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint32 <T extends Uint32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUint64 <T extends Uint64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat <T extends Float> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat16 <T extends Float16> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat32 <T extends Float32> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFloat64 <T extends Float64> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUtf8 <T extends Utf8> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitBinary <T extends Binary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFixedSizeBinary <T extends FixedSizeBinary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDate <T extends Date_> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDateDay <T extends DateDay> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDateMillisecond <T extends DateMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestamp <T extends Timestamp> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampSecond <T extends TimestampSecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampMillisecond <T extends TimestampMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampMicrosecond <T extends TimestampMicrosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimestampNanosecond <T extends TimestampNanosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTime <T extends Time> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeSecond <T extends TimeSecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeMillisecond <T extends TimeMillisecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeMicrosecond <T extends TimeMicrosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitTimeNanosecond <T extends TimeNanosecond> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDecimal <T extends Decimal> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitList <T extends List> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitStruct <T extends Struct> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitUnion <T extends Union> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDenseUnion <T extends DenseUnion> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitSparseUnion <T extends SparseUnion> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitDictionary <T extends Dictionary> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitInterval <T extends Interval> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitIntervalDayTime <T extends IntervalDayTime> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitIntervalYearMonth <T extends IntervalYearMonth> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitFixedSizeList <T extends FixedSizeList> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n visitMap <T extends Map_> (vector: VectorType<T>): IterableIterator<T['TValue'] | null>;\n}\n\n/** @ignore */\nexport class IteratorVisitor extends Visitor {}\n\n/** @ignore */\nfunction nullableIterator<T extends DataType>(vector: VectorType<T>): IterableIterator<T['TValue'] | null> {\n const getFn = getVisitor.getVisitFn(vector);\n return iterateBits<T['TValue'] | null>(\n vector.nullBitmap, vector.offset, vector.length, vector,\n (vec: VectorType<T>, idx: number, nullByte: number, nullBit: number) =>\n ((nullByte & 1 << nullBit) !== 0) ? getFn(vec, idx) : null\n );\n}\n\n/** @ignore */\nfunction vectorIterator<T extends DataType>(vector: VectorType<T>): IterableIterator<T['TValue'] | null> {\n\n // If nullable, iterate manually\n if (vector.nullCount > 0) {\n return nullableIterator<T>(vector);\n }\n\n const { type, typeId, length } = vector;\n\n // Fast case, defer to native iterators if possible\n if (vector.stride === 1 && (\n (typeId === Type.Timestamp) ||\n (typeId === Type.Int && (type as Int).bitWidth !== 64) ||\n (typeId === Type.Time && (type as Time).bitWidth !== 64) ||\n (typeId === Type.Float && (type as Float).precision > 0 /* Precision.HALF */)\n )) {\n return vector.values.subarray(0, length)[Symbol.iterator]();\n }\n\n // Otherwise, iterate manually\n return (function* (getFn) {\n for (let index = -1; ++index < length;) {\n yield getFn(vector, index);\n }\n })(getVisitor.getVisitFn(vector));\n}\n\nIteratorVisitor.prototype.visitNull = vectorIterator;\nIteratorVisitor.prototype.visitBool = vectorIterator;\nIteratorVisitor.prototype.visitInt = vectorIterator;\nIteratorVisitor.prototype.visitInt8 = vectorIterator;\nIteratorVisitor.prototype.visitInt16 = vectorIterator;\nIteratorVisitor.prototype.visitInt32 = vectorIterator;\nIteratorVisitor.prototype.visitInt64 = vectorIterator;\nIteratorVisitor.prototype.visitUint8 = vectorIterator;\nIteratorVisitor.prototype.visitUint16 = vectorIterator;\nIteratorVisitor.prototype.visitUint32 = vectorIterator;\nIteratorVisitor.prototype.visitUint64 = vectorIterator;\nIteratorVisitor.prototype.visitFloat = vectorIterator;\nIteratorVisitor.prototype.visitFloat16 = vectorIterator;\nIteratorVisitor.prototype.visitFloat32 = vectorIterator;\nIteratorVisitor.prototype.visitFloat64 = vectorIterator;\nIteratorVisitor.prototype.visitUtf8 = vectorIterator;\nIteratorVisitor.prototype.visitBinary = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeBinary = vectorIterator;\nIteratorVisitor.prototype.visitDate = vectorIterator;\nIteratorVisitor.prototype.visitDateDay = vectorIterator;\nIteratorVisitor.prototype.visitDateMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestamp = vectorIterator;\nIteratorVisitor.prototype.visitTimestampSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimestampNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitTime = vectorIterator;\nIteratorVisitor.prototype.visitTimeSecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMillisecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeMicrosecond = vectorIterator;\nIteratorVisitor.prototype.visitTimeNanosecond = vectorIterator;\nIteratorVisitor.prototype.visitDecimal = vectorIterator;\nIteratorVisitor.prototype.visitList = vectorIterator;\nIteratorVisitor.prototype.visitStruct = vectorIterator;\nIteratorVisitor.prototype.visitUnion = vectorIterator;\nIteratorVisitor.prototype.visitDenseUnion = vectorIterator;\nIteratorVisitor.prototype.visitSparseUnion = vectorIterator;\nIteratorVisitor.prototype.visitDictionary = vectorIterator;\nIteratorVisitor.prototype.visitInterval = vectorIterator;\nIteratorVisitor.prototype.visitIntervalDayTime = vectorIterator;\nIteratorVisitor.prototype.visitIntervalYearMonth = vectorIterator;\nIteratorVisitor.prototype.visitFixedSizeList = vectorIterator;\nIteratorVisitor.prototype.visitMap = vectorIterator;\n\n/** @ignore */\nexport const instance = new IteratorVisitor();\n"]}