File size: 10,879 Bytes
be5030f
1
{"version":3,"sources":["ipc/metadata/file.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAErB,+BAA+B;AAE/B,uCAAuC;AACvC,6CAA0C;AAE1C,IAAO,IAAI,GAAG,yBAAW,CAAC,IAAI,CAAC;AAC/B,IAAO,OAAO,GAAG,yBAAW,CAAC,OAAO,CAAC;AACrC,IAAO,UAAU,GAAG,yBAAW,CAAC,UAAU,CAAC;AAC3C,IAAO,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACrD,IAAO,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAEvD,yCAAsC;AACtC,qCAA6C;AAC7C,8CAAiD;AAGjD,cAAc;AACd,MAAM,OAAO;IA0CT,YAAmB,MAAc,EACd,UAA2B,sBAAe,CAAC,EAAE,EACpD,aAA2B,EAAE,iBAA+B;QAFrD,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAsC;QAE5D,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC;QACvD,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;IACvE,CAAC;IA7CD,kBAAkB;IACX,MAAM,CAAC,MAAM,CAAC,GAAyB;QAC1C,GAAG,GAAG,IAAI,UAAU,CAAC,qBAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAG,CAAC,CAAC;QAC/C,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,CAAY,CAAC;IACxD,CAAC;IAED,kBAAkB;IACX,MAAM,CAAC,MAAM,CAAC,MAAe;QAEhC,MAAM,CAAC,GAAY,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7D,CAAC,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,mBAAmB,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAE1C,OAAO,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3D,CAAC,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE3F,MAAM,uBAAuB,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAE9C,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACvB,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,sBAAe,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACjD,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QACpD,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAMD,IAAW,gBAAgB,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAShE,CAAC,aAAa;QACjB,KAAK,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG;YACzD,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBAAE,MAAM,KAAK,CAAC;aAAE;SACvD;IACL,CAAC;IAEM,CAAC,iBAAiB;QACrB,KAAK,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;gBAAE,MAAM,KAAK,CAAC;aAAE;SAC3D;IACL,CAAC;IAEM,cAAc,CAAC,KAAa;QAC/B,OAAO,KAAK,IAAI,CAAC;eACV,KAAK,GAAG,IAAI,CAAC,gBAAgB;eAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IAC9C,CAAC;IAEM,kBAAkB,CAAC,KAAa;QACnC,OAAO,KAAK,IAAI,CAAC;eACV,KAAK,GAAG,IAAI,CAAC,eAAe;eAC5B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;CACJ;AAEmB,yBAAM;AAE1B,cAAc;AACd,MAAM,aAAc,SAAQ,OAAO;IAK/B,YAAY,MAAc,EAAY,OAAgB;QAClD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QADC,YAAO,GAAP,OAAO,CAAS;IAEtD,CAAC;IALD,IAAW,gBAAgB,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAC5E,IAAW,eAAe,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAMnE,cAAc,CAAC,KAAa;QAC/B,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,SAAS,EAAE;gBAAE,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAAE;SACzD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB,CAAC,KAAa;QACnC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,SAAS,EAAE;gBAAE,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAAE;SACzD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,cAAc;AACd,MAAa,SAAS;IAElB,kBAAkB;IACX,MAAM,CAAC,MAAM,CAAC,KAAa;QAC9B,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB;IACX,MAAM,CAAC,MAAM,CAAC,CAAU,EAAE,SAAoB;QACjD,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAMD,YAAY,cAAsB,EAAE,UAAyB,EAAE,MAAqB;QAChF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IACnF,CAAC;CACJ;AAxBD,8BAwBC","file":"file.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\n/* tslint:disable:class-name */\n\nimport * as File_ from '../../fb/File';\nimport { flatbuffers } from 'flatbuffers';\n\nimport Long = flatbuffers.Long;\nimport Builder = flatbuffers.Builder;\nimport ByteBuffer = flatbuffers.ByteBuffer;\nimport _Block = File_.org.apache.arrow.flatbuf.Block;\nimport _Footer = File_.org.apache.arrow.flatbuf.Footer;\n\nimport { Schema } from '../../schema';\nimport { MetadataVersion } from '../../enum';\nimport { toUint8Array } from '../../util/buffer';\nimport { ArrayBufferViewInput } from '../../util/buffer';\n\n/** @ignore */\nclass Footer_ {\n\n    /** @nocollapse */\n    public static decode(buf: ArrayBufferViewInput) {\n        buf = new ByteBuffer(toUint8Array(buf));\n        const footer = _Footer.getRootAsFooter(buf);\n        const schema = Schema.decode(footer.schema()!);\n        return new OffHeapFooter(schema, footer) as Footer_;\n    }\n\n    /** @nocollapse */\n    public static encode(footer: Footer_) {\n\n        const b: Builder = new Builder();\n        const schemaOffset = Schema.encode(b, footer.schema);\n\n        _Footer.startRecordBatchesVector(b, footer.numRecordBatches);\n        [...footer.recordBatches()].slice().reverse().forEach((rb) => FileBlock.encode(b, rb));\n        const recordBatchesOffset = b.endVector();\n\n        _Footer.startDictionariesVector(b, footer.numDictionaries);\n        [...footer.dictionaryBatches()].slice().reverse().forEach((db) => FileBlock.encode(b, db));\n\n        const dictionaryBatchesOffset = b.endVector();\n\n        _Footer.startFooter(b);\n        _Footer.addSchema(b, schemaOffset);\n        _Footer.addVersion(b, MetadataVersion.V4);\n        _Footer.addRecordBatches(b, recordBatchesOffset);\n        _Footer.addDictionaries(b, dictionaryBatchesOffset);\n        _Footer.finishFooterBuffer(b, _Footer.endFooter(b));\n\n        return b.asUint8Array();\n    }\n\n    // @ts-ignore\n    protected _recordBatches: FileBlock[];\n    // @ts-ignore\n    protected _dictionaryBatches: FileBlock[];\n    public get numRecordBatches() { return this._recordBatches.length; }\n    public get numDictionaries() { return this._dictionaryBatches.length; }\n\n    constructor(public schema: Schema,\n                public version: MetadataVersion = MetadataVersion.V4,\n                recordBatches?: FileBlock[], dictionaryBatches?: FileBlock[]) {\n        recordBatches && (this._recordBatches = recordBatches);\n        dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);\n    }\n\n    public *recordBatches(): Iterable<FileBlock> {\n        for (let block, i = -1, n = this.numRecordBatches; ++i < n;) {\n            if (block = this.getRecordBatch(i)) { yield block; }\n        }\n    }\n\n    public *dictionaryBatches(): Iterable<FileBlock> {\n        for (let block, i = -1, n = this.numDictionaries; ++i < n;) {\n            if (block = this.getDictionaryBatch(i)) { yield block; }\n        }\n    }\n\n    public getRecordBatch(index: number) {\n        return index >= 0\n            && index < this.numRecordBatches\n            && this._recordBatches[index] || null;\n    }\n\n    public getDictionaryBatch(index: number) {\n        return index >= 0\n            && index < this.numDictionaries\n            && this._dictionaryBatches[index] || null;\n    }\n}\n\nexport { Footer_ as Footer };\n\n/** @ignore */\nclass OffHeapFooter extends Footer_ {\n\n    public get numRecordBatches() { return this._footer.recordBatchesLength(); }\n    public get numDictionaries() { return this._footer.dictionariesLength(); }\n\n    constructor(schema: Schema, protected _footer: _Footer) {\n        super(schema, _footer.version());\n    }\n\n    public getRecordBatch(index: number) {\n        if (index >= 0 && index < this.numRecordBatches) {\n            const fileBlock = this._footer.recordBatches(index);\n            if (fileBlock) { return FileBlock.decode(fileBlock); }\n        }\n        return null;\n    }\n\n    public getDictionaryBatch(index: number) {\n        if (index >= 0 && index < this.numDictionaries) {\n            const fileBlock = this._footer.dictionaries(index);\n            if (fileBlock) { return FileBlock.decode(fileBlock); }\n        }\n        return null;\n    }\n}\n\n/** @ignore */\nexport class FileBlock {\n\n    /** @nocollapse */\n    public static decode(block: _Block) {\n        return new FileBlock(block.metaDataLength(), block.bodyLength(), block.offset());\n    }\n\n    /** @nocollapse */\n    public static encode(b: Builder, fileBlock: FileBlock) {\n        const { metaDataLength } = fileBlock;\n        const offset = new Long(fileBlock.offset, 0);\n        const bodyLength = new Long(fileBlock.bodyLength, 0);\n        return _Block.createBlock(b, offset, metaDataLength, bodyLength);\n    }\n\n    public offset: number;\n    public bodyLength: number;\n    public metaDataLength: number;\n\n    constructor(metaDataLength: number, bodyLength: Long | number, offset: Long | number) {\n        this.metaDataLength = metaDataLength;\n        this.offset = typeof offset === 'number' ? offset : offset.low;\n        this.bodyLength = typeof bodyLength === 'number' ? bodyLength : bodyLength.low;\n    }\n}\n"]}