pg 8.11.2 → 8.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +3 -3
- package/lib/crypto/utils.js +1 -1
- package/lib/native/client.js +3 -3
- package/lib/query.js +1 -8
- package/lib/result.js +8 -1
- package/lib/utils.js +11 -2
- package/package.json +5 -7
package/lib/client.js
CHANGED
|
@@ -520,11 +520,11 @@ class Client extends EventEmitter {
|
|
|
520
520
|
if (!query.callback) {
|
|
521
521
|
result = new this._Promise((resolve, reject) => {
|
|
522
522
|
query.callback = (err, res) => (err ? reject(err) : resolve(res))
|
|
523
|
-
}).catch(err => {
|
|
523
|
+
}).catch((err) => {
|
|
524
524
|
// replace the stack trace that leads to `TCP.onStreamRead` with one that leads back to the
|
|
525
525
|
// application that created the query
|
|
526
|
-
Error.captureStackTrace(err)
|
|
527
|
-
throw err
|
|
526
|
+
Error.captureStackTrace(err)
|
|
527
|
+
throw err
|
|
528
528
|
})
|
|
529
529
|
}
|
|
530
530
|
}
|
package/lib/crypto/utils.js
CHANGED
package/lib/native/client.js
CHANGED
|
@@ -174,9 +174,9 @@ Client.prototype.query = function (config, values, callback) {
|
|
|
174
174
|
result = new this._Promise((resolve, reject) => {
|
|
175
175
|
resolveOut = resolve
|
|
176
176
|
rejectOut = reject
|
|
177
|
-
}).catch(err => {
|
|
178
|
-
Error.captureStackTrace(err)
|
|
179
|
-
throw err
|
|
177
|
+
}).catch((err) => {
|
|
178
|
+
Error.captureStackTrace(err)
|
|
179
|
+
throw err
|
|
180
180
|
})
|
|
181
181
|
query.callback = (err, res) => (err ? rejectOut(err) : resolveOut(res))
|
|
182
182
|
}
|
package/lib/query.js
CHANGED
|
@@ -28,9 +28,7 @@ class Query extends EventEmitter {
|
|
|
28
28
|
|
|
29
29
|
// potential for multiple results
|
|
30
30
|
this._results = this._result
|
|
31
|
-
this.isPreparedStatement = false
|
|
32
31
|
this._canceledDueToError = false
|
|
33
|
-
this._promise = null
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
requiresPreparation() {
|
|
@@ -137,8 +135,7 @@ class Query extends EventEmitter {
|
|
|
137
135
|
if (this.callback) {
|
|
138
136
|
try {
|
|
139
137
|
this.callback(null, this._results)
|
|
140
|
-
}
|
|
141
|
-
catch(err) {
|
|
138
|
+
} catch (err) {
|
|
142
139
|
process.nextTick(() => {
|
|
143
140
|
throw err
|
|
144
141
|
})
|
|
@@ -191,10 +188,6 @@ class Query extends EventEmitter {
|
|
|
191
188
|
|
|
192
189
|
// http://developer.postgresql.org/pgdocs/postgres/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY
|
|
193
190
|
prepare(connection) {
|
|
194
|
-
// prepared statements need sync to be called after each command
|
|
195
|
-
// complete or when an error is encountered
|
|
196
|
-
this.isPreparedStatement = true
|
|
197
|
-
|
|
198
191
|
// TODO refactor this poor encapsulation
|
|
199
192
|
if (!this.hasBeenParsed(connection)) {
|
|
200
193
|
connection.parse({
|
package/lib/result.js
CHANGED
|
@@ -21,6 +21,7 @@ class Result {
|
|
|
21
21
|
if (this.rowAsArray) {
|
|
22
22
|
this.parseRow = this._parseRowAsArray
|
|
23
23
|
}
|
|
24
|
+
this._prebuiltEmptyResultObject = null
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
// adds a command complete message
|
|
@@ -60,7 +61,7 @@ class Result {
|
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
parseRow(rowData) {
|
|
63
|
-
var row = {}
|
|
64
|
+
var row = { ...this._prebuiltEmptyResultObject }
|
|
64
65
|
for (var i = 0, len = rowData.length; i < len; i++) {
|
|
65
66
|
var rawValue = rowData[i]
|
|
66
67
|
var field = this.fields[i].name
|
|
@@ -86,14 +87,20 @@ class Result {
|
|
|
86
87
|
if (this.fields.length) {
|
|
87
88
|
this._parsers = new Array(fieldDescriptions.length)
|
|
88
89
|
}
|
|
90
|
+
|
|
91
|
+
var row = {}
|
|
92
|
+
|
|
89
93
|
for (var i = 0; i < fieldDescriptions.length; i++) {
|
|
90
94
|
var desc = fieldDescriptions[i]
|
|
95
|
+
row[desc.name] = null
|
|
96
|
+
|
|
91
97
|
if (this._types) {
|
|
92
98
|
this._parsers[i] = this._types.getTypeParser(desc.dataTypeID, desc.format || 'text')
|
|
93
99
|
} else {
|
|
94
100
|
this._parsers[i] = types.getTypeParser(desc.dataTypeID, desc.format || 'text')
|
|
95
101
|
}
|
|
96
102
|
}
|
|
103
|
+
this._prebuiltEmptyResultObject = { ...row }
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
106
|
|
package/lib/utils.js
CHANGED
|
@@ -21,8 +21,17 @@ function arrayString(val) {
|
|
|
21
21
|
result = result + 'NULL'
|
|
22
22
|
} else if (Array.isArray(val[i])) {
|
|
23
23
|
result = result + arrayString(val[i])
|
|
24
|
-
} else if (val[i]
|
|
25
|
-
|
|
24
|
+
} else if (ArrayBuffer.isView(val[i])) {
|
|
25
|
+
var item = val[i]
|
|
26
|
+
if (!(item instanceof Buffer)) {
|
|
27
|
+
var buf = Buffer.from(item.buffer, item.byteOffset, item.byteLength)
|
|
28
|
+
if (buf.length === item.byteLength) {
|
|
29
|
+
item = buf
|
|
30
|
+
} else {
|
|
31
|
+
item = buf.slice(item.byteOffset, item.byteOffset + item.byteLength)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
result += '\\\\x' + item.toString('hex')
|
|
26
35
|
} else {
|
|
27
36
|
result += escapeElement(prepareValue(val[i]))
|
|
28
37
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pg",
|
|
3
|
-
"version": "8.11.
|
|
3
|
+
"version": "8.11.4",
|
|
4
4
|
"description": "PostgreSQL client - pure javascript & libpq with the same API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"database",
|
|
@@ -20,11 +20,9 @@
|
|
|
20
20
|
"author": "Brian Carlson <brian.m.carlson@gmail.com>",
|
|
21
21
|
"main": "./lib",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"pg-
|
|
26
|
-
"pg-pool": "^3.6.1",
|
|
27
|
-
"pg-protocol": "^1.6.0",
|
|
23
|
+
"pg-connection-string": "^2.6.3",
|
|
24
|
+
"pg-pool": "^3.6.2",
|
|
25
|
+
"pg-protocol": "^1.6.1",
|
|
28
26
|
"pg-types": "^2.1.0",
|
|
29
27
|
"pgpass": "1.x"
|
|
30
28
|
},
|
|
@@ -60,5 +58,5 @@
|
|
|
60
58
|
"engines": {
|
|
61
59
|
"node": ">= 8.0.0"
|
|
62
60
|
},
|
|
63
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "b03c071d2d15af259e1e008e9628191c865e58fa"
|
|
64
62
|
}
|