diff --git a/hana/lib/scripts/container-database.sql b/hana/lib/scripts/container-database.sql index c2b557ffd..7f222a246 100644 --- a/hana/lib/scripts/container-database.sql +++ b/hana/lib/scripts/container-database.sql @@ -20,7 +20,13 @@ BEGIN SEQUENTIAL EXECUTION NO_PARAMS = SELECT * FROM _SYS_DI.T_NO_PARAMETERS; - SELECT 1 FROM _SYS_DI.T_DEFAULT_CONTAINER_USER_PRIVILEGES FOR UPDATE; -- lock to prevent race conditions + BEGIN + DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; + CREATE COLUMN TABLE "_CDS_DI_LOCK" (ID INT); + INSERT INTO "_CDS_DI_LOCK" (ID) VALUES (1); + END; + SELECT 1 FROM "_CDS_DI_LOCK" FOR UPDATE; + SELECT COUNT(*) INTO USER_EXISTS FROM SYS.USERS WHERE USER_NAME = :USERNAME; SELECT COUNT(*) INTO USER_GROUP_EXISTS FROM SYS.USERGROUPS WHERE USERGROUP_NAME = :SCHEMANAME || '_USERS'; SELECT NAME INTO OPERATOR_ROLE FROM SYS.PRIVILEGES WHERE NAME = 'OPERATOR' OR NAME = 'USERGROUP OPERATOR';