diff --git a/packages/pg-native/lib/build-result.js b/packages/pg-native/lib/build-result.js index c43e1ba3e..7257b5895 100644 --- a/packages/pg-native/lib/build-result.js +++ b/packages/pg-native/lib/build-result.js @@ -9,6 +9,7 @@ class Result { this.rowCount = undefined this.fields = [] this.rows = [] + this._prebuiltEmptyResultObject = null } consumeCommand(pq) { @@ -19,9 +20,12 @@ class Result { consumeFields(pq) { const nfields = pq.nfields() this.fields = new Array(nfields) + this._prebuiltEmptyResultObject = {} for (var x = 0; x < nfields; x++) { + var name = pq.fname(x) + this._prebuiltEmptyResultObject[name] = null this.fields[x] = { - name: pq.fname(x), + name: name, dataTypeID: pq.ftype(x), } } @@ -36,7 +40,7 @@ class Result { } consumeRowAsObject(pq, rowIndex) { - const row = {} + const row = { ...this._prebuiltEmptyResultObject } for (var j = 0; j < this.fields.length; j++) { row[this.fields[j].name] = this.readValue(pq, rowIndex, j) }