From 5b22d1e5b2a0dcf00cc188fa18d8eec14b5cbdf6 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 15 Jul 2020 21:38:58 +0200
Subject: [PATCH] DOC: CHANGELOG

---
 CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d79bb98..6430609 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.
-- 
GitLab