Skip to content

Commit b5c5e52

Browse files
koenfaro90HZ111 / Dev2
and
HZ111 / Dev2
authored
Option to use pre-shaped result rows; fixes brianc#3042 (brianc#3043)
* Add property usePrebuiltEmptyResultObjects to Query constructor which generates pre-shaped result rows * Remove option and test for prebuiltEmptyResultObject * Remove errorneously added newline * Move all logic for prebuilding objects to Result * Move prebuilding to addFields * Use a clone as clone-base --------- Co-authored-by: HZ111 / Dev2 <hz111@wielick.nl>
1 parent 58865b2 commit b5c5e52

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

packages/pg/lib/result.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class Result {
2121
if (this.rowAsArray) {
2222
this.parseRow = this._parseRowAsArray
2323
}
24+
this._prebuiltEmptyResultObject = null
2425
}
2526

2627
// adds a command complete message
@@ -60,14 +61,12 @@ class Result {
6061
}
6162

6263
parseRow(rowData) {
63-
var row = {}
64+
var row = { ... this._prebuiltEmptyResultObject }
6465
for (var i = 0, len = rowData.length; i < len; i++) {
6566
var rawValue = rowData[i]
6667
var field = this.fields[i].name
6768
if (rawValue !== null) {
6869
row[field] = this._parsers[i](rawValue)
69-
} else {
70-
row[field] = null
7170
}
7271
}
7372
return row
@@ -94,6 +93,14 @@ class Result {
9493
this._parsers[i] = types.getTypeParser(desc.dataTypeID, desc.format || 'text')
9594
}
9695
}
96+
this._createPrebuiltEmptyResultObject()
97+
}
98+
_createPrebuiltEmptyResultObject() {
99+
var row = {}
100+
for (var i = 0; i < this.fields.length; i++) {
101+
row[this.fields[i].name] = null
102+
}
103+
this._prebuiltEmptyResultObject = { ... row }
97104
}
98105
}
99106

0 commit comments

Comments
 (0)