50 Commits

Author SHA1 Message Date
Johannes Würbach
d28d01df9b Prevent requeuing a broken client
If a client is not queryable, the pool should prevent requeuing instead
of strictly enforcing errors to be propagated back to it.
2020-01-23 11:08:20 -06:00
Charmander
7aee26160a Use user name as default database when user is non-default (#1679)
Not entirely backwards-compatible.
2020-01-23 11:03:50 -06:00
Charmander
8c606ff50e Continue support for creating a pg.Pool from another instance’s options (#2076)
* Add failing test for creating a `BoundPool` from another instance’s settings

* Continue support for creating a pg.Pool from another instance’s options

by dropping the requirement for the `password` property to be enumerable.
2020-01-17 10:49:06 -06:00
Natalie Wolfe
e3a35e9dc5 Use class-extends to wrap Pool (#1541)
* Use class-extends to wrap Pool

* Minimize diff

* Test `BoundPool` inheritance

Co-authored-by: Charmander <~@charmander.me>
Co-authored-by: Brian C <brian.m.carlson@gmail.com>
2020-01-15 15:10:59 -06:00
Brian C
8494cb449b
Make native non-enumerable (#2065)
* Make `native` non-enumerable

Making it non-enumerable means less spurious "Cannot find module"
errors in your logs when iterating over `pg` objects.

`Object.defineProperty` has been available since Node 0.12.

See https://github.com/brianc/node-postgres/issues/1894#issuecomment-543300178

* Add test for `native` enumeration

Co-authored-by: Gabe Gorelick <gabegorelick@gmail.com>
2020-01-15 14:12:48 -06:00
Brian C
5b01eb062d
Remove password from stringified outputs (#2066)
* Remove password from stringified outputs

Theres a security concern where if you're not careful and you include your client or pool instance in console.log or stack traces it might include the database password.  To widen the pit of success I'm making that field non-enumerable.  You can still get at it...it just wont show up "by accident" when you're logging things now.

The backwards compatiblity impact of this is very small, but it is still technically somewhat an API change so...8.0.

* Implement feedback

* Fix more whitespace the autoformatter changed

* Simplify code a bit

* Remove password from stringified outputs (#2070)

* Keep ConnectionParameters’s password property writable

`Client` writes to it when `password` is a function.

* Avoid creating password property on pool options

when it didn’t exist previously.

* Allow password option to be non-enumerable

to avoid breaking uses like `new Pool(existingPool.options)`.

* Make password property definitions consistent

in formatting and configurability.

Co-authored-by: Charmander <~@charmander.me>
2020-01-13 14:31:48 -06:00
Brian C
ccc25f4915 Drop support for EOL versions of node (#2062)
* Drop support for EOL versions of node

* Re-add testing for node@8.x

* Revert changes to .travis.yml

* Update packages/pg-pool/package.json

Co-Authored-By: Charmander <~@charmander.me>

Co-authored-by: Charmander <~@charmander.me>
2020-01-13 12:29:54 -08:00
Charmander
ae3f13fad6 Fix tests skipped because of missing suffixes (#2071)
* Fix tests skipped because of missing suffixes

Mocha will happen eventually!

* Skip password tests when they can’t work

Will be made more visible when tests are ported to Mocha.

* Add testing with a user with a password to CI

Should reveal a bug in the password enumerability work, I think.

* Explain new CI matrix entry for password authentication

[ci skip]
2020-01-13 13:00:01 -06:00
Brian M. Carlson
5cf8f5f8d7 Publish
- pg-cursor@2.1.3
 - pg-query-stream@3.0.0
 - pg@7.17.1
2020-01-10 09:22:00 -06:00
Brian C
0895460046
pg-query-stream@3.0 release (#2059)
* Fix one unintentional possible breaking change & update readme

* Update changelog more

* Update CHANGELOG.md

Co-Authored-By: Charmander <~@charmander.me>

Co-authored-by: Charmander <~@charmander.me>
2020-01-09 23:33:40 -06:00
Brian C
19308f9ceb
Result.fields should always be an array (#2060)
This fixes a subtle backwards incompatible change.  Added a test to prevent further regressions.  Closes #2056
2020-01-09 21:30:53 -06:00
Brian C
8eca181d20
Fix pg-query-stream implementation (#2051)
* Fix pg-query-stream

There were some subtle behaviors with the stream being implemented incorrectly & not working as expected with async iteration.  I've modified the code based on #2050 and comments in #2035 to have better test coverage of async iterables and update the internals significantly to more closely match the readable stream interface.

Note: this is a __breaking__ (semver major) change to this package as the close event behavior is changed slightly, and `highWaterMark` is no longer supported.  It shouldn't impact most usage, but breaking regardless.

* Remove a bunch of additional code

* Add test for destroy + error propagation

* Add failing test for destroying unsubmitted stream

* Do not throw an uncatchable error when closing an unused cursor
2019-12-29 23:08:09 -06:00
Brian M. Carlson
6d93951783 Publish
- pg-cursor@2.1.2
 - pg-query-stream@2.1.2
 - pg@7.17.0
2019-12-29 17:50:24 +00:00
Brian C
6b39253a54
Merge pull request #2049 from aheuermann/idle_in_transaction_session_timeout
Adding ability to pass through idle_in_transaction_session_tim…
2019-12-29 11:38:30 -06:00
Brian M. Carlson
af4d05445d Publish
- pg-cursor@2.1.1
 - pg-pool@2.0.9
 - pg-query-stream@2.1.1
 - pg@7.16.1
2019-12-28 17:16:42 +00:00
Andrew Heuermann
6ddbe6ab60
Close connection after version check 2019-12-28 09:24:45 -06:00
Andrew Heuermann
839043206d
Only run tests on >= v10 2019-12-28 09:02:04 -06:00
Andrew Heuermann
6363778675
Fixing test 2019-12-27 16:04:45 -06:00
Andrew Heuermann
bb8e806bc5
Adding ability to pass through idle_in_transaction_session_timeout 2019-12-27 15:31:19 -06:00
Brian M. Carlson
637bcf355c Cleanup things a bit 2019-12-27 17:52:28 +00:00
Brian M. Carlson
4c27ad294f Add 'packages/pg-pool/' from commit 'cb96ae2d6e37b1414df405d80258e0e2bafeaba0'
git-subtree-dir: packages/pg-pool
git-subtree-mainline: 69345eb96aa2552b288247960aa7126d41210eb6
git-subtree-split: cb96ae2d6e37b1414df405d80258e0e2bafeaba0
2019-12-27 04:01:42 +00:00
Brian M. Carlson
69345eb96a Publish
- pg-cursor@2.1.0
 - pg-packet-stream@1.1.0
 - pg-query-stream@2.1.0
 - pg@7.16.0
2019-12-27 03:56:07 +00:00
Brian M. Carlson
01e0644b99 Add pretest and prepublish script 2019-12-27 03:39:56 +00:00
Brian C
3278dced6e
Merge pull request #2044 from brianc/bmc/packet-stream-parser
Add packet stream parser
2019-12-26 21:36:26 -06:00
Brian M. Carlson
6168f2ee0d Disable lint on missing module since the file is not included 2019-12-27 03:22:30 +00:00
Brian M. Carlson
68e063e30c Merge origin/master 2019-12-27 02:59:42 +00:00
Brian M. Carlson
766e48f34a Update types & move some configs around 2019-12-27 02:55:18 +00:00
Brian M. Carlson
5a6166d0ae Fire close callback when ready for next query
Working on fixing some timing issues in pg-query-stream it uncovered an issue where the cursor is firing its 'close' callback before it's actually entirely ready to dispatch another query.  This change makes the close callback trigger when the connection re-enters `readyForQuery` state.
2019-12-26 18:36:29 +00:00
Brian M. Carlson
dfae78e383 Publish
- pg-cursor@2.0.3
 - pg-query-stream@2.0.2
 - pg@7.15.2
2019-12-26 17:42:55 +00:00
Brian C
582b56d701
Merge pull request #2036 from brianc/bmc/update-readme
Update readme
2019-12-23 10:50:12 -06:00
Brian M. Carlson
c090e4fdaf Actually update the right file in the right place... 2019-12-20 17:53:26 -06:00
Brian M. Carlson
8b7e874a37 Update readme 2019-12-20 17:48:26 -06:00
Brian M. Carlson
fdae8516e6 Delete files which are no longer needed as they exist in the monorepo 2019-12-20 15:10:26 -06:00
Brian M. Carlson
6b7b8d19f5 Do not run tests in parallel 2019-12-20 15:03:43 -06:00
Brian M. Carlson
ef2f2d264d Unify lint
Delete accidental addition
2019-12-20 13:46:51 -06:00
Brian M. Carlson
86073026ee Run gitsubtree merge 2019-12-20 12:09:22 -06:00
Brian M. Carlson
db1b95e5f3 Add 'packages/pg-query-stream/' from commit '9ced05e8aab65f3fdf1a67add87bfc9035e487e8'
git-subtree-dir: packages/pg-query-stream
git-subtree-mainline: cccf84e14b3281b753e1baab7bc194aaac5024a8
git-subtree-split: 9ced05e8aab65f3fdf1a67add87bfc9035e487e8
2019-12-20 12:00:58 -06:00
Brian M. Carlson
b0be9da986 Cleanup 2019-12-19 18:57:48 -06:00
Brian M. Carlson
a7c70a9acf All tests passing 2019-12-19 17:44:00 -06:00
Brian M. Carlson
e500479382 Add streaming parser 2019-12-19 14:41:05 -06:00
Brian M. Carlson
fa44905b30 port over some tests 2019-12-19 14:33:37 -06:00
Brian M. Carlson
d2cad38452 Dont use experimental parser yet 2019-12-19 07:39:04 -06:00
Brian M. Carlson
e5d46749c0 Work in progress...convert to more efficient reader 2019-12-18 23:44:43 -06:00
Brian M. Carlson
cccf84e14b Publish
- pg-cursor@2.0.2
 - pg@7.15.1
2019-12-18 15:59:06 -06:00
Brian M. Carlson
57177d749e Use public npm - accidentally had my work npm configured 2019-12-18 13:53:57 -06:00
Brian M. Carlson
5c0c93ce1d Remove nested travis file 2019-12-18 13:47:56 -06:00
Brian M. Carlson
423baa644a Update lint rules for pg-cursor 2019-12-18 13:42:47 -06:00
Brian M. Carlson
37d15740ed Add 'packages/pg-cursor/' from commit '492fbdbb65f6f33396d1017fa4cdbbb247dd3895'
git-subtree-dir: packages/pg-cursor
git-subtree-mainline: ebb81dbfa635eca73d16d54b501f04c8d843bac5
git-subtree-split: 492fbdbb65f6f33396d1017fa4cdbbb247dd3895
2019-12-18 13:20:51 -06:00
Brian M. Carlson
ebb81dbfa6 Publish
- pg@7.15.0
2019-12-17 10:35:38 -06:00
Brian C
1b5f3e33c4
Monorepo (#2014)
* First crack at monorepo

* Update test command

* Update path to script

* Remove node 6 from CI
2019-12-17 08:32:08 -08:00