Skip to content

Commit 4b22927

Browse files
cakoosebrianc
andauthored
pg: Re-export DatabaseError from 'pg-protocol' (#2445)
* pg: Re-export DatabaseError from 'pg-protocol' Before, users would have to import DatabaseError from 'pg-protocol'. If there are multiple versions of 'pg-protocol', you might end up using the wrong one. Closes #2378 * Update error-handling-tests.js * Update query-error-handling-tests.js Co-authored-by: Brian C <[email protected]>
1 parent 45fa27e commit 4b22927

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

packages/pg/lib/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var Client = require('./client')
44
var defaults = require('./defaults')
55
var Connection = require('./connection')
66
var Pool = require('pg-pool')
7+
const { DatabaseError } = require('pg-protocol')
78

89
const poolFactory = (Client) => {
910
return class BoundPool extends Pool {
@@ -21,6 +22,7 @@ var PG = function (clientConstructor) {
2122
this._pools = []
2223
this.Connection = Connection
2324
this.types = require('pg-types')
25+
this.DatabaseError = DatabaseError
2426
}
2527

2628
if (typeof process.env.NODE_PG_FORCE_NATIVE !== 'undefined') {

packages/pg/test/integration/client/error-handling-tests.js

+7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var util = require('util')
55

66
var pg = helper.pg
77
const Client = pg.Client
8+
const DatabaseError = pg.DatabaseError
89

910
var createErorrClient = function () {
1011
var client = helper.client()
@@ -140,6 +141,9 @@ suite.test('when a query is binding', function (done) {
140141
)
141142

142143
assert.emits(query, 'error', function (err) {
144+
if (!helper.config.native) {
145+
assert(err instanceof DatabaseError)
146+
}
143147
assert.equal(err.severity, 'ERROR')
144148
ensureFuture(client, done)
145149
})
@@ -213,6 +217,9 @@ suite.test('within a simple query', (done) => {
213217
var query = client.query(new pg.Query("select eeeee from yodas_dsflsd where pixistix = 'zoiks!!!'"))
214218

215219
assert.emits(query, 'error', function (error) {
220+
if (!helper.config.native) {
221+
assert(error instanceof DatabaseError)
222+
}
216223
assert.equal(error.severity, 'ERROR')
217224
done()
218225
})

packages/pg/test/integration/client/query-error-handling-tests.js

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
var helper = require('./test-helper')
33
var util = require('util')
44
var Query = helper.pg.Query
5+
var DatabaseError = helper.pg.DatabaseError
56

67
test('error during query execution', function () {
78
var client = new Client(helper.args)
@@ -74,6 +75,9 @@ test('9.3 column error fields', function () {
7475

7576
client.query('CREATE TEMP TABLE column_err_test(a int NOT NULL)')
7677
client.query('INSERT INTO column_err_test(a) VALUES (NULL)', function (err) {
78+
if (!helper.config.native) {
79+
assert(err instanceof DatabaseError)
80+
}
7781
assert.equal(err.severity, 'ERROR')
7882
assert.equal(err.code, '23502')
7983
assert.equal(err.table, 'column_err_test')
@@ -102,6 +106,9 @@ test('9.3 constraint error fields', function () {
102106
client.query('CREATE TEMP TABLE constraint_err_test(a int PRIMARY KEY)')
103107
client.query('INSERT INTO constraint_err_test(a) VALUES (1)')
104108
client.query('INSERT INTO constraint_err_test(a) VALUES (1)', function (err) {
109+
if (!helper.config.native) {
110+
assert(err instanceof DatabaseError)
111+
}
105112
assert.equal(err.severity, 'ERROR')
106113
assert.equal(err.code, '23505')
107114
assert.equal(err.table, 'constraint_err_test')

0 commit comments

Comments
 (0)