From 44fadfc4ac9ae475ac777f9574deddd231d3c010 Mon Sep 17 00:00:00 2001
From: Vladimir Davydov <vdavydov@tarantool.org>
Date: Thu, 5 May 2022 11:44:56 +0300
Subject: [PATCH] schema: space upgrade fixes

 - Add func_id_by_name to box.internal. It will be used in EE.
 - Don't call box.internal.space.upgrade from box.schema.space.upgrade -
   we will redefine box.schema.space.upgrade in EE instead.

Follow-up commit 38b25832f9fb ("box: add space upgrade stubs").

NO_DOC=internal
NO_TEST=internal
NO_CHANGELOG=internal
---
 src/box/lua/init.c     | 4 ++++
 src/box/lua/schema.lua | 8 +++-----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/box/lua/init.c b/src/box/lua/init.c
index 1a8ec05c04..0ecb3dee34 100644
--- a/src/box/lua/init.c
+++ b/src/box/lua/init.c
@@ -118,6 +118,10 @@ static const char *lua_sources[] = {
 	"box/feedback_daemon", feedback_daemon_lua,
 #endif
 #if ENABLE_SPACE_UPGRADE
+	/*
+	 * Must be loaded after schema_lua, because it redefines
+	 * box.schema.space.upgrade.
+	 */
 	"box/space_upgrade", space_upgrade_lua,
 #endif
 #if ENABLE_AUDIT_LOG
diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua
index b19418066f..59af488c58 100644
--- a/src/box/lua/schema.lua
+++ b/src/box/lua/schema.lua
@@ -812,12 +812,9 @@ function box.schema.space.format(id, format)
     end
 end
 
-function box.schema.space.upgrade(id, ...)
+function box.schema.space.upgrade(id)
     check_param(id, 'id', 'number')
-    if not box.internal.space.upgrade then
-        box.error(box.error.UNSUPPORTED, "Community edition", "space upgrade")
-    end
-    return box.internal.space.upgrade(id, ...)
+    box.error(box.error.UNSUPPORTED, "Community edition", "space upgrade")
 end
 
 box.schema.create_space = box.schema.space.create
@@ -1468,6 +1465,7 @@ local function func_id_by_name(func_name)
     end
     return func.id
 end
+box.internal.func_id_by_name = func_id_by_name -- for space.upgrade
 
 box.schema.index.create = function(space_id, name, options)
     check_param(space_id, 'space_id', 'number')
-- 
GitLab