This adds option 'auth_stored_password_types' that can be used to setup
storage of multiple passwords for each user. When this is set, on each
password set, database will now store password in each format specified.
For columns are already included in a compound index there is no
benefit to having a separate index with a subset of the same columns in
the same order, it just wastes space.
* Add missing 'mix' tables and indexes
* Fix text vs varchar issues
Various tests triggered this error:
The data types text and varchar are incompatible in the equal to operator.
Caused by incompatible 'text' columns in muc_online_room,
muc_online_users, pubsub_node_option, and pubsub_node tables.
* Fix definition of mqtt_pub table
This table incorrectly included 'server_host' column in old schema, and
had other inconsistencies.
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.
Store PubSub item creation/modification timestamps as integers instead
of "$megasec:$sec:$microsec" strings. This can improve the performance
of certain SQL queries significantly.
Thanks to Ammonit Measurement GmbH for sponsoring this work.
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