- Allow setting keep_alive: false bee62f3
- Fix support for null in arrays - fixes #371 b04c853
- Fix Only use setKeepAlive in Deno if available 28fbbaf
- Fix wrong helper match on multiple occurances 02f3854
- Fix Deno assertRejects compatibility (#365) 0f0af92
- Fix include missing boolean type in JSONValue union (#373) 1817387
- Properly handle errors thrown on commit 99ddae4
- Exclude target_session_attrs from connection obj 43f1442
- Add
sslmode=verify-fullsupport e67da29 - Add support for array of fragments 342bf55
- Add uri decode of host in url - fixes #346 1adc113
- Add passing of rest url params to connection (ootb support cockroach urls) 41ed84f
- Fix Deno partial writes 452a30d
- Fix
asdynamic helper 3300c40 - Fix some nested fragments usage 9bfa902
- Fix missing columns on
Resultwhen using simple protocol - fixes #350 1e2e298 - Fix fragments in transactions - fixes #333 75914c7
- Upgrade/fix types (#357) 1e6d312
- Add optional
onlistencallback tolisten()on TypeScript (#360) 6b749b2 - Add implicit custom type inference (#361) 28512bf
- Fix and improve sql() helper types (#338) c1de3d8
- Fix update query type def for
.writable()and.readable()to return promises (#347) 51269ce - Add bigint to typescript Serializable - fixes #330 f1e41c3
- Add close method to close but not end connections forever 94fea8f
- Add .values() method to return rows as arrays of values 56873c2
- Support transform.undefined - fixes #314 eab71e5
- Support nested fragments values and dynamics - fixes #326 86445ca
- Fix deno close sequence f76af24
- Fix subscribe reconnect and add onsubscribe method - fixes #315 5097345
- Deno ts fix - fixes #327 50403a1
- Properly close connections in Deno cbc6a75
- Only write end message if socket is open 13950af
- Improve query cancellation 01c2c68
- Use monotonically increasing time for timeout - fixes #316 9d7a21d
- Add support for dynamic columns with
returning- fixes #317 04644c0 - Fix type errors in TypeScript deno projects (#313) 822fb21
- Execute forEach instantly 44e9fbe
- Fix transaction execution timing 28bb0b3
- Add optional onlisten function to listen 1dc2fd2
- Fix dynamic in helper after insert #305 4d63a59
- Ensure drain only dequeues if ready - fixes #303 2e5f017
- Run tests with github actions b536d0d
- Add custom socket option - fixes #284 5413f0c
- Fix sql function overload type inference (#294) 3c4e90a
- Update deno std to 0.132 and enable last tests 50762d4
- Send proper client-encoding - Fixes #288 e5b8554
- Fix BigInt handling 36a70df
- Fix unsubscribing (#300) b6c597f
- Parse update properly with identity full - Fixes #296 3ed11e7
- Improve connection queue handling + fix leak cee1a57
- Use publications option - fixes #295 b5ceecc
- Throw proper query error if destroyed e148a0a
- Transaction rejects with rethrown error - fixes #289 f7c8ae6
- Only create origin stacktrace for tagged and debug - fixes #290 a782edf
- Include types and readme in deno release - fixes #287 9068820
- Disable fetch_types for Subscribe options 72e0cdb
- Update TypeScript types with v3 changes (#293) db05836
This is a complete rewrite to better support all the features that I was trying to get into v2. There are a few breaking changes from v2 beta, which some (myself included) was using in production, so I'm skipping a stable v2 release and going straight to v3.
Here are some of the new things available, but check the updated docs.
- Dynamic query builder based on raw sql
- Realtime subscribe to db changes through logical replication
- Multi-host support for High Availability setups
- Postgres input parameter types from
ParameterDescription - Deno support
- Cursors as async iterators
.describe()to only get query input types and column definitions- Support for Large Objects
max_lifetimefor connections- Cancellation of requests
- Converted to ESM (with CJS support)
- Typescript support (Credit @minigugus)
- Cursors are always called with
Resultarrays (previously cursor 1 would return a row object, where > 1 would return an array of rows) .writable()and.readable()is now async (returns a Promise that resolves to the stream)- Queries now returns a lazy promise instead of being executed immediately. This means the query won't be sent until awaited (.then, .catch, .finally is called) or until
.execute()is manually called. .stream()is renamed to.forEach- Returned results are now it's own
Resultclass extendingArrayinstead of an Array with extra properties (actually shouldn't be breaking unless you're doing something funny) - Parameters are now cast using the types returned from Postgres ParameterDescription with a fallback to the previously inferred types
- Only tested with node v12 and up
- Implicit array value to multiple parameter expansion removed (use sql([...]) instead)
- All identifiers from
sql()in queries are now always quoted - Undefined parameters are no longer allowed
- Rename timeout option to
idle_timeout - Default to 10 connections instead of number of CPUs
- Numbers that cannot be safely cast to JS Number are returned as string. This happens for eg,
select count(*)becausecount()returns a 64 bit integer (int8), so if you know yourcount()won't be too big for a js number just cast in your query to int4 likeselect count(*)::int
- Fix standard postgres user env var (#20) cce5ad7
- Ensure url or options is not falsy bc549b0
- Add support for dynamic password b2ab9fb
- Fix hiding pass from options 3f76b98
- Fix #3 url without db and trailing slash 45d4233
- Fix stream promise - resolve with correct result 730df2c
- Fix return value of unsafe query with multiple statements 748f198
- Fix destroy before connected f682ca1
- Fix params usage for file() call without options e4f12a4
- Various Performance improvements
- Initial release