- Conversion of UNIQUE KEY constraints to PRIMARY KEY - in pg a PRIMARY
KEY is a UNIQUE KEY where all columns are non-null, so this patch
makes it more explicit.
- Removal of useless indexes - a btree index of (A,B,C) implies fast
indexing of (A,B) and (A) but directly specifying these indexes
causes much IO overhead on record modification
- Allow more than 2b items in spool/pubsub by switching SERIAL to
BIGSERIAL
- Add some TODOs where it looks like columns should be marked NOT NULL
but are not actually. As I'm not particularly familiar with the
ejabberd I don't know if this should change or not.
Previously to check if hibernated room was old enough we had to fetch info
about all rooms from database. Now we repurpose created_at field in sql
to store that info, that allow us to have more efficient query just for it.
Note that support for older specification is completely dropped,
i.e. no backward compatibility is provided since the XEPs are
still very experimental and being changed drastically
Accordingly, Mnesia/SQL/Riak table 'carboncopy' is not used anymore
and can be safely removed.
As a consequence, the commit deprecates the following options of
mod_carboncopy:
- ram_db_type
- use_cache
- cache_size
- cache_missed
- cache_life_time
Fixes#2663
Use dynamic Rebar configuration
Make iconv dependency optional
Disable transient_supervisors compile option
Add hipe compilation support
Only compile ibrowse and lhttpc when needed
Make it possible to generate an OTP application release
Add --enable-debug compile option
Add --enable-all compiler option
Add --enable-tools configure option
Add --with-erlang configure option.
Add --enable-erlang-version-check configure option.
Add lager support
Improve the test suite