*** a/src/backend/catalog/pg_db_role_setting.c --- b/src/backend/catalog/pg_db_role_setting.c *************** *** 33,39 **** AlterSetting(Oid databaseid, Oid roleid, VariableSetStmt *setstmt) /* Get the old tuple, if any. */ ! rel = heap_open(DbRoleSettingRelationId, RowExclusiveLock); ScanKeyInit(&scankey[0], Anum_pg_db_role_setting_setdatabase, BTEqualStrategyNumber, F_OIDEQ, --- 33,39 ---- /* Get the old tuple, if any. */ ! rel = heap_open(DbRoleSettingRelationId, ShareUpdateExclusiveLock); ScanKeyInit(&scankey[0], Anum_pg_db_role_setting_setdatabase, BTEqualStrategyNumber, F_OIDEQ, *************** *** 181,187 **** DropSetting(Oid databaseid, Oid roleid) HeapTuple tup; int numkeys = 0; ! relsetting = heap_open(DbRoleSettingRelationId, RowExclusiveLock); if (OidIsValid(databaseid)) { --- 181,187 ---- HeapTuple tup; int numkeys = 0; ! relsetting = heap_open(DbRoleSettingRelationId, ShareUpdateExclusiveLock); if (OidIsValid(databaseid)) { *************** *** 209,215 **** DropSetting(Oid databaseid, Oid roleid) } heap_endscan(scan); ! heap_close(relsetting, RowExclusiveLock); } /* --- 209,215 ---- } heap_endscan(scan); ! heap_close(relsetting, ShareUpdateExclusiveLock); } /*