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 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
  }
@@ -5,5 +5,5 @@ if (useLegacyCrypto) {
5
5
  // We are on an old version of Node.js that requires legacy crypto utilities.
6
6
  module.exports = require('./utils-legacy')
7
7
  } else {
8
- module.exports = require('./utils-webcrypto');
8
+ module.exports = require('./utils-webcrypto')
9
9
  }
@@ -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] instanceof Buffer) {
25
- result += '\\\\x' + val[i].toString('hex')
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.2",
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
- "buffer-writer": "2.0.0",
24
- "packet-reader": "1.0.0",
25
- "pg-connection-string": "^2.6.2",
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": "a2a355a6807bf75d92d7f0cb0f219588811a5356"
61
+ "gitHead": "b03c071d2d15af259e1e008e9628191c865e58fa"
64
62
  }