diff --git a/CHANGELOG.md b/CHANGELOG.md index d79bb98bdfbd06539886f7e2583c83e4a417af43..6430609f5bf8584b7aca0eb95efd50ef3546bd7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### +* New `feature_config` table for storing configuration of features as key-value + pairs. Currently only used by the ENTITY_VERSIONING feature for switching + versioning on or off. Convenient function `is_feature_config` for checking + whether the `feature_config` table has a particular value. +* New `transactions` table. This is necessary for the ENTITY_VERSIONING feature + and will replace the `transaction_log` table in the future. +* ENTITY_VERSIONING (experimental) + Switch off this feature with `DELETE FROM feature_config WHERE + _key="ENTITY_VERSIONING"` and switch on with `INSERT INTO feature_config + (_key, _value) VALUES ("ENTITY_VERSIONING", "ENABLED")` This feature comes + with a lot of additions to the API. E.g. + * New `entity_version`. + * All `*_data` tables have a new twin, the `archive_*_data` table, where all + old versions of entities are stored. The `*_data` tables only contain the + data of the latest version. + * Additional `archive_isa` for the history entities' parents. + * Additional `_iversion` column for the `reference_data` table for storing + references to particular versions of an entity. + * New `setFileProperties` and `retrieveQueryTemplateDef` procedures which reduce server code and lets the + backend decide which tables to use. Also, this is necessary for the + versioning, because this procedure behaves differently depending on the + ENTITY_VERSIONING feature being enabled or disabled. + * Several functions and procedures for the interaction with the + `entity_version` table and the `transactions` table. E.g. + `insert_single_child_version`, `delete_all_entity_versions`, + `get_iversion`, `get_primary_parent_version`, `get_version_timestamp`, + `get_head_version`, `get_head_relative`, `get_version_history`. + The versions are tracked internally by the `_iversion` field which is an + integer and which should not be used outside of the backend. + ### Changed ### +* removed `getFile` procedure. + ### Deprecated ### * Table `transaction_log` is deprecated. The functionality is being replaced by the `transactions` table.