From 88e8a6c8874f2d2dffb8a8bf3c79dcac774df6a7 Mon Sep 17 00:00:00 2001 From: Robert Lyon Date: Tue, 12 Dec 2017 11:34:22 +1300 Subject: [PATCH] Bug 1737631: Upgrade to 17.10 fails in postgres Due to not using an alias for the view table The code is correct for MySql though behatnotneeded Change-Id: I5622bde057c70cf7d140044ac213bf3f299abefc Signed-off-by: Robert Lyon --- htdocs/lib/db/upgrade.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/lib/db/upgrade.php b/htdocs/lib/db/upgrade.php index ea744f81e4..80589761ff 100644 --- a/htdocs/lib/db/upgrade.php +++ b/htdocs/lib/db/upgrade.php @@ -5177,7 +5177,7 @@ function xmldb_core_upgrade($oldversion=0) { // This datatype was introduced in Mysql 5.7.8. log_debug('Adjust existing "event_log" data for "saveview" and "deleteview" events'); $sql = "UPDATE {event_log} e - LEFT JOIN {view} v on v.id = JSON_EXTRACT( CAST( e.data AS JSON ), '$.id') + LEFT JOIN {view} v ON v.id = JSON_EXTRACT( CAST( e.data AS JSON ), '$.id') SET e.resourceid = JSON_EXTRACT( CAST( e.data AS JSON ), '$.id'), e.resourcetype = 'view', e.ownerid = v.owner, @@ -5243,15 +5243,15 @@ function xmldb_core_upgrade($oldversion=0) { // by converting the data field to json. // This datatype was introduced in Postgres 9.2. log_debug('Adjust existing "event_log" data for "saveview" and "deleteview" events'); - $sql = "UPDATE {event_log} + $sql = "UPDATE {event_log} e2 SET resourceid = CAST( CAST( e.data AS JSON )->>'id' AS INTEGER ), resourcetype = 'view', - ownerid = view.owner, - ownertype = CASE WHEN view.owner IS NULL THEN NULL ELSE 'view' END - FROM {event_log} AS e - LEFT JOIN {view} on view.id = CAST( CAST( e.data AS JSON )->>'id' AS BIGINT) + ownerid = v.owner, + ownertype = CASE WHEN v.owner IS NULL THEN NULL ELSE 'view' END + FROM {event_log} e + LEFT JOIN {view} v ON v.id = CAST( CAST( e.data AS JSON )->>'id' AS BIGINT) WHERE e.event IN ('saveview', 'deleteview') - AND event_log.id = e.id"; + AND e2.id = e.id"; execute_sql($sql); log_debug('Adjust existing "event_log" data for "userjoinsgroup" event'); -- GitLab