Subversion Repositories SE.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
50 7u83 1
In 4.3.0
2
 
3
* Erlang 22 compatibility is tested; support for Erlang 17 was dropped. Last
4
  version that supports Erlang 17 is 4.2.1 (#195)
5
* Fixed some corner-case bug in streaming replication (#181)
6
* It's now possible to set-up JSON encoder/decoder callback for json/jsonb
7
  datatypes (#197)
8
* Performance micro-optimizations on hot paths (#177)
9
* Use PostgreSQL 10 for Travis tests (#195)
10
* Improved connection error handling (#183)
11
* TLS certificates used in tests had expired (epgsql project is more than
12
  10 years old!), so, new ones were created (#187)
13
* Some typespecs fixed
14
 
15
In 4.2.1
16
 
17
* Bug fix for `epgsql:connect(proplist())`
18
 
19
In 4.2.0
20
 
21
* Support for R16 was completely dropped. Maps are now used internally instead of proplists
22
* Nested `record` datatype decoding bug, introduced in 4.0.0, was fixed
23
* Added tsrange, tstzrange, daterange types
24
* Passwords are obfuscated before they sent to connection process. This is to avoid plain
25
  DB passwords to be dumped to SASL crash log
26
* Password can be provided as a fun: `fun ( () -> iodata() )`
27
* `platform_define` macroses were simplified. It's now possible to build epgsql even without
28
  rebar on all supported OTP versions
29
 
30
In 4.1.0
31
 
32
* Fix Erlang 21 `get_stacktrace/0` warnings
33
* Fix broken backward-compatibility in `bpchar` datatype
34
* Fix compatibility issues between the newest rebar3 and Erlang R16
35
 
36
In 4.0.1
37
 
38
* Minor build bug fixed
39
 
40
In 4.0.0
41
 
42
Changes:
43
 
44
* Make epgsql commands pluggable  (see pluggable_commands.md).
45
  Now we are not limited only by API functions provided by epgsql (equery/squery/prepared_query etc),
46
  but may create own commands as a plugins. Still, understanding of PostgreSQL network protocol needed
47
  to be able to do so.
48
* Make epgsql datatype encoding/decdoding pluggable (see pluggable_types.md).
49
  Now we are able to add or tweak codecs for existing as well as custom PostgreSQL
50
  datatypes (like datetime, varchar, enum, arrays etc).
51
  XXX: Highly recommend to add `{codecs, []}` option to your epgsql:connect/X calls if you don't use
52
  PostGIS and hstore datatypes: this will reduce connection setup time.
53
* epgsql internals had a huge refactoring (4,000 additions and 1,750 deletions for ~5500 LOC project).
54
  Code now is much more modular, documented and have a lot of internal typespecs. Performance
55
  improvements are also expected.
56
* Now we try to use iolists as much as possible and avoid binary and string concatenations when ever possible.
57
  Expect noticeable performance improvements for large BYTEA / TEXT / VARCHAR / JSON / JSONB etc fields.
58
* Extended and documented epgsql:with_transaction/3.
59
  Now it's possible to preserve original exception's stacktrace, finally!
60
* macaddr and macaddr8 datatypes support added
61
* Float datatype support was extended with `nan`, `minus_infinity`, `plus_infinity`
62
* elvis code style check was added to our travis pipeline
63
* Brand-new PostgreSQL 10 scram-sha-256 auth method added
64
  (see https://www.postgresql.org/docs/10/static/auth-methods.html#AUTH-PASSWORD and
65
  https://www.postgresql.org/docs/current/static/sasl-authentication.html)
66
* A lot of typespecs were rewritten and lots of internal typespecs were added
67
 
68
Incompatibilities:
69
 
70
* Some unexpected performance issues may appear, but we expect performance improvements, especially
71
  for a large result sets (when a lot of rows are returned by a query) and for large string/json/blob
72
  query parameters
73
* Undocumented epgsql:update_type_cache/2 API was changed
74
* A lot of typespecs were updated. Some typespecs were deprecated or moved from epgsql.erl to other
75
  modules. So, some new dialyzer warnings might pop-up
76
* Some new error messages might be returned, especially from epgsql:connect/X functions
77
* Memory consumption per-connection might slightly grow because we maintain per-connection OID<->codec
78
  mapping table, which might be quite big in some cases. This also may produce bigger error_logger
79
  reports in case of epgsql connection process crashes.
80
* Some exported .hrl files have been changed. #column{} and #statement{} record definitions were extended.
81
* PostGIS users might be affected by cleanup of ewkb.erl and epgsql_geometry.hrl
82
* Streaming replication users should pay extra attention. No tests were broken, but a lot of
83
  modifications were made to this code.
84
* Passing integer / atom / float as a value of a text / varchar / bytea query parameter is now
85
  deprecated (so, `epgsql:equery(C, "SELECT $1::text", [my_atom])` will still work but is not recommended)
86
* Redshift and CockroachDB users might expirience some problems. Please, report bugs!
87
 
88
In 3.4.0
89
 
90
* Use rebar3 as default build and test tool
91
* Move tests to common test; launch test postgresql server from Erlang
92
* Compatibility with Erlang 20
93
* `ssl_options` connection option fixed
94
* New types: int8range and int4range
95
 
96
In 3.3.0
97
 
98
* Streaming replication protocol support (epgsql may act like PostgreSQL slave)
99
  https://github.com/epgsql/epgsql/blob/devel/streaming.md
100
* Connection options now may be passed as map()
101
* More error extra data fields returned in #error{extra}
102
  http://www.postgresql.org/docs/current/interactive/protocol-error-fields.html
103
* Prefer non-localized severity in #error{severity} when available
104
* Added `set_notice_receiver/2` function to dynamically change receiver for asynchronous notifications
105
* Asynchronous notifications receiver may be set to registered process name (atom)
106
* `get_cmd_status/1` function added
107
* Fixed return value of `DELETE ... RETURNING ..` in case when 0 rows were deleted
108
  (now returns `{ok, 0, Columns, []}` instead of `{ok, 0}`)
109
* TCP socket implicitly closed when epgsql connection process terminates
110
* Some typespecs fixed
111
 
112
In 3.2.0:
113
 
114
* #error.codename (more readable errors)
115
* Redshift support (by allowing dynamic typecache update fail)
116
* Aggregate small binary packets to one in epgsql_sock (network performance improvement)
117
* Handle situations, when server initiate connection close
118
* prepared_query APIs (useful when you need to execute one query many times with different parameters)
119
* array of records type support
120
* jsonb type support
121
 
122
In 3.1.1:
123
 
124
* It dialyzes happily now
125
 
126
In 3.1.0:
127
 
128
* Deal with int4range type.
129
 
130
In 3.0.0:
131
 
132
* Renamed everything to use the epgsql namespace.
133