From fbda2d1d253b99a4e83970e023ede42faad87966 Mon Sep 17 00:00:00 2001
From: Joas Schilling <coding@schilljs.com>
Date: Mon, 9 Nov 2020 17:33:32 +0100
Subject: [PATCH] Don't try to update on NotNullConstraintViolationException,
 only on unique or foreign key

Signed-off-by: Joas Schilling <coding@schilljs.com>
---
 lib/private/DB/Connection.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index 0ea71637943..ebb3900f3e5 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -39,6 +39,7 @@ use Doctrine\DBAL\Configuration;
 use Doctrine\DBAL\DBALException;
 use Doctrine\DBAL\Driver;
 use Doctrine\DBAL\Exception\ConstraintViolationException;
+use Doctrine\DBAL\Exception\NotNullConstraintViolationException;
 use Doctrine\DBAL\Platforms\MySqlPlatform;
 use Doctrine\DBAL\Schema\Schema;
 use OC\DB\QueryBuilder\QueryBuilder;
@@ -322,6 +323,8 @@ class Connection extends ReconnectWrapper implements IDBConnection {
 					}, array_merge($keys, $values))
 				);
 			return $insertQb->execute();
+		} catch (NotNullConstraintViolationException $e) {
+			throw $e;
 		} catch (ConstraintViolationException $e) {
 			// value already exists, try update
 			$updateQb = $this->getQueryBuilder();
-- 
GitLab