From 190571f298d04edebfcc5e98823375554bbe43b0 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 9 Nov 2020 17:39:07 +0100 Subject: [PATCH] WIP: retrieve versioning history --- procedures/entityVersioning.sql | 10 ++++++++-- procedures/retrieveEntity.sql | 14 +++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/procedures/entityVersioning.sql b/procedures/entityVersioning.sql index b009d3f..c7a045b 100644 --- a/procedures/entityVersioning.sql +++ b/procedures/entityVersioning.sql @@ -317,7 +317,10 @@ BEGIN SELECT c.version AS child, NULL as parent, t.seconds AS child_seconds, - t.nanos AS child_nanos + t.nanos AS child_nanos, + t.srid AS child_srid, + t.username as child_username, + t.realm as child_realm FROM entity_version AS c INNER JOIN transactions as t ON ( c.srid = t.srid ) WHERE c.entity_id = EntityID @@ -331,7 +334,10 @@ BEGIN UNION SELECT c.version AS child, p.version AS parent, t.seconds AS child_seconds, - t.nanos AS child_nanos + t.nanos AS child_nanos, + t.srid AS child_srid, + t.username as child_username, + t.realm as child_realm FROM entity_version AS p INNER JOIN entity_version as c INNER JOIN transactions AS t diff --git a/procedures/retrieveEntity.sql b/procedures/retrieveEntity.sql index f74e623..8db2d36 100644 --- a/procedures/retrieveEntity.sql +++ b/procedures/retrieveEntity.sql @@ -55,6 +55,9 @@ retrieveEntityBody: BEGIN DECLARE CollectionName VARCHAR(255) DEFAULT NULL; DECLARE VersionSeconds BIGINT UNSIGNED DEFAULT NULL; DECLARE VersionNanos INT(10) UNSIGNED DEFAULT NULL; + DECLARE VersionUser VARBINARY(255) DEFAULT NULL; + DECLARE VersionRealm VARBINARY(255) DEFAULT NULL; + DECLARE VersionSRID VARBINARY(255) DEFAULT NULL; DECLARE IsHead BOOLEAN DEFAULT TRUE; DECLARE IVersion INT UNSIGNED DEFAULT NULL; @@ -70,14 +73,16 @@ retrieveEntityBody: BEGIN SELECT get_head_version(EntityID) = Version INTO IsHead; END IF; - SELECT t.seconds, t.nanos - INTO VersionSeconds, VersionNanos + SELECT t.seconds, t.nanos, t.username, t.realm, t.srid + INTO VersionSeconds, VersionNanos, VersionUser, + VersionRealm, VersionSRID FROM entity_version AS e INNER JOIN transactions AS t ON ( e.srid = t.srid ) WHERE e.entity_id = EntityID AND e.version = Version; + IF IsHead IS FALSE THEN SET IVersion=get_iversion(EntityID, Version); @@ -189,7 +194,10 @@ retrieveEntityBody: BEGIN (SELECT acl FROM entity_acl AS a WHERE a.id = e.acl) AS ACL, Version AS Version, VersionSeconds AS VersionSeconds, - VersionNanos AS VersionNanos + VersionNanos AS VersionNanos, + VersionUser AS VersionUser, + VersionRealm AS VersionRealm, + VersionSRID AS VersionSRID FROM entities e WHERE id = EntityID LIMIT 1; END; // -- GitLab