* Guards are now added to avoid silent integer truncation for numeric and numeric range datatype codecs. So, an attempt to encode 100000 as `int2` will now crash the connection instead of silently truncating it. #218 * `epgsql{a,i}:cancel/1` API was documented. #224 * Version of `execute_batch` that uses the same SQL query for each request in a batch. Very convenient for batch-inserts. #209 * It's now possible to provide `#statement{}` to `prepared_query/3`. This way of calling it eliminates extra `describe` round-trip thus making it more efficient. #207 * Representation of SQL `NULL` is now fully configurable. You can choose what set of Erlang terms should be interpreted as `NULL` and which term to use to represent `NULL`s received from database. #212 * It's now possible to choose between 3 representations of a `hstore` datatype: map(), jiffy-style objects (default) and proplist. It can also take `map()` as input now. NULL value representation is also configurable. #217 * Edocs build was fixed. Just run `rebar3 edoc` and reference documentation for all modules will be generated. But it's considered to be more "internal" documentation for those who want to learn more about epgsql internals or to do some hacking. It complements, but not replaces README. #214 * `epgsql:connect` `timeout` option is more strict now - it limits TCP and SSL setup time as a whole. #223 * Test coverage report was enabled in CI. We will fail the build if coverage falls below 55%. We hope to improve this metric over time. #208 * We now send `Terminate` message to the server when doing graceful connection shutdown (as recommended by protocol). #219 * We found that `describe(_, portal, _)` API was broken since release v4.0.0, but was not covered by tests. So now it was fixed and tests were added. #211 * Error code to error name conversion code was updated (see `#error.codename`). Some new codes were added (mostly related to JSON datatypes) and one has changed. So, if you were matching over `#error.codename` being `invalid_preceding_following_size` you have to update your code. #210 * `#column{}` record is now fully documented. It was extended to include `table_oid` and `table_attr_number` fields which point to the originating database table of this column (if any). #205 * Extended timerange datatype support #204 * Some minor typos, datatype and CI fixes #199 #201 #206 #221
This tag has no release notes.