UNPKG

arrow-table-joins

Version:

For now only the full outer join over fixed-width columns is implemented.

16 lines 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const apache_arrow_1 = require("apache-arrow"); const util_1 = require("../util"); function mergeFields(outerFields, innerFieldsMap) { return outerFields.map((outer) => { const key = util_1.fieldToKey(outer); if (!innerFieldsMap.has(key)) { return outer; } const [inner] = innerFieldsMap.get(key); return new apache_arrow_1.Field(outer.name, outer.type, outer.nullable || inner.nullable, util_1.mergeMaps(new Map(), outer.metadata, inner.metadata)); }, []); } exports.mergeFields = mergeFields; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lcmdlL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUFxQztBQUNyQyxrQ0FBZ0Q7QUFHaEQsU0FBZ0IsV0FBVyxDQUF1QyxXQUFvQixFQUFFLGNBQTZCO0lBQ2pILE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzdCLE1BQU0sR0FBRyxHQUFHLGlCQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztRQUN6QyxPQUFPLElBQUksb0JBQUssQ0FDWixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQ3RCLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsRUFDaEMsZ0JBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVMsQ0FBQyxDQUN4QyxDQUFDO0lBQ3ZCLENBQUMsRUFBRSxFQUFxQixDQUFDLENBQUM7QUFDOUIsQ0FBQztBQWJELGtDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQgfSBmcm9tICdhcGFjaGUtYXJyb3cnO1xuaW1wb3J0IHsgbWVyZ2VNYXBzLCBmaWVsZFRvS2V5IH0gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQgeyBURmllbGQsIFRTY2hlbWEsIFRGaWVsZHNNYXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRmllbGRzPFQgZXh0ZW5kcyBUU2NoZW1hLCBSIGV4dGVuZHMgVFNjaGVtYT4ob3V0ZXJGaWVsZHM6IEZpZWxkW10sIGlubmVyRmllbGRzTWFwOiBURmllbGRzTWFwPFI+KSB7XG4gICAgcmV0dXJuIG91dGVyRmllbGRzLm1hcCgob3V0ZXIpID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gZmllbGRUb0tleShvdXRlcik7XG4gICAgICAgIGlmICghaW5uZXJGaWVsZHNNYXAuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbaW5uZXJdID0gaW5uZXJGaWVsZHNNYXAuZ2V0KGtleSkhO1xuICAgICAgICByZXR1cm4gbmV3IEZpZWxkKFxuICAgICAgICAgICAgb3V0ZXIubmFtZSwgb3V0ZXIudHlwZSxcbiAgICAgICAgICAgIG91dGVyLm51bGxhYmxlIHx8IGlubmVyLm51bGxhYmxlLFxuICAgICAgICAgICAgbWVyZ2VNYXBzKG5ldyBNYXAoKSwgb3V0ZXIubWV0YWRhdGEhLCBpbm5lci5tZXRhZGF0YSEpXG4gICAgICAgICkgYXMgVEZpZWxkPFQgJiBSPjtcbiAgICB9LCBbXSBhcyBURmllbGQ8VCAmIFI+W10pO1xufVxuIl19