From 05e38eadbeb3de19e5b26003c2b401e00bb71df4 Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 18 Oct 2026 00:08:23 +0200 Subject: =?UTF-8?q?sortie=20de=20vendor=20du=20d=C3=A9p=C3=B4t,=20oubli=20?= =?UTF-8?q?dans=20config-template.ini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orm/src/Query/Exec/AbstractSqlExecutor.php | 61 ------- .../src/Query/Exec/MultiTableDeleteExecutor.php | 131 --------------- .../src/Query/Exec/MultiTableUpdateExecutor.php | 180 --------------------- .../orm/src/Query/Exec/SingleSelectExecutor.php | 31 ---- .../Query/Exec/SingleTableDeleteUpdateExecutor.php | 42 ----- 5 files changed, 445 deletions(-) delete mode 100644 vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php delete mode 100644 vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php delete mode 100644 vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php delete mode 100644 vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php delete mode 100644 vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php (limited to 'vendor/doctrine/orm/src/Query/Exec') diff --git a/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php b/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php deleted file mode 100644 index 101bf26..0000000 --- a/vendor/doctrine/orm/src/Query/Exec/AbstractSqlExecutor.php +++ /dev/null @@ -1,61 +0,0 @@ -, WrapperParameterType>|array - */ -abstract class AbstractSqlExecutor -{ - /** @var list|string */ - protected array|string $sqlStatements; - - protected QueryCacheProfile|null $queryCacheProfile = null; - - /** - * Gets the SQL statements that are executed by the executor. - * - * @return list|string All the SQL update statements. - */ - public function getSqlStatements(): array|string - { - return $this->sqlStatements; - } - - public function setQueryCacheProfile(QueryCacheProfile $qcp): void - { - $this->queryCacheProfile = $qcp; - } - - /** - * Do not use query cache - */ - public function removeQueryCacheProfile(): void - { - $this->queryCacheProfile = null; - } - - /** - * Executes all sql statements. - * - * @param Connection $conn The database connection that is used to execute the queries. - * @param list|array $params The parameters. - * @psalm-param WrapperParameterTypeArray $types The parameter types. - */ - abstract public function execute(Connection $conn, array $params, array $types): Result|int; -} diff --git a/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php b/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php deleted file mode 100644 index 6096462..0000000 --- a/vendor/doctrine/orm/src/Query/Exec/MultiTableDeleteExecutor.php +++ /dev/null @@ -1,131 +0,0 @@ -MultiTableDeleteExecutor. - * - * Internal note: Any SQL construction and preparation takes place in the constructor for - * best performance. With a query cache the executor will be cached. - * - * @param DeleteStatement $AST The root AST node of the DQL query. - * @param SqlWalker $sqlWalker The walker used for SQL generation from the AST. - */ - public function __construct(AST\Node $AST, SqlWalker $sqlWalker) - { - $em = $sqlWalker->getEntityManager(); - $conn = $em->getConnection(); - $platform = $conn->getDatabasePlatform(); - $quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - $primaryClass = $em->getClassMetadata($AST->deleteClause->abstractSchemaName); - $primaryDqlAlias = $AST->deleteClause->aliasIdentificationVariable; - $rootClass = $em->getClassMetadata($primaryClass->rootEntityName); - - $tempTable = $platform->getTemporaryTableName($rootClass->getTemporaryIdTableName()); - $idColumnNames = $rootClass->getIdentifierColumnNames(); - $idColumnList = implode(', ', $idColumnNames); - - // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() - $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $primaryDqlAlias); - - $insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' - . ' SELECT t0.' . implode(', t0.', $idColumnNames); - - $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $primaryDqlAlias); - $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); - $insertSql .= $sqlWalker->walkFromClause($fromClause); - - // Append WHERE clause, if there is one. - if ($AST->whereClause) { - $insertSql .= $sqlWalker->walkWhereClause($AST->whereClause); - } - - $this->insertSql = $insertSql; - - // 2. Create ID subselect statement used in DELETE ... WHERE ... IN (subselect) - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; - - // 3. Create and store DELETE statements - $classNames = [...$primaryClass->parentClasses, ...[$primaryClass->name], ...$primaryClass->subClasses]; - foreach (array_reverse($classNames) as $className) { - $tableName = $quoteStrategy->getTableName($em->getClassMetadata($className), $platform); - $this->sqlStatements[] = 'DELETE FROM ' . $tableName - . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; - } - - // 4. Store DDL for temporary identifier table. - $columnDefinitions = []; - foreach ($idColumnNames as $idColumnName) { - $columnDefinitions[$idColumnName] = [ - 'name' => $idColumnName, - 'notnull' => true, - 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $em)), - ]; - } - - $this->createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ', PRIMARY KEY(' . implode(',', $idColumnNames) . '))'; - $this->dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - // Create temporary id table - $conn->executeStatement($this->createTempTableSql); - - try { - // Insert identifiers - $numDeleted = $conn->executeStatement($this->insertSql, $params, $types); - - // Execute DELETE statements - foreach ($this->sqlStatements as $sql) { - $conn->executeStatement($sql); - } - } catch (Throwable $exception) { - // FAILURE! Drop temporary table to avoid possible collisions - $conn->executeStatement($this->dropTempTableSql); - - // Re-throw exception - throw $exception; - } - - // Drop temporary table - $conn->executeStatement($this->dropTempTableSql); - - return $numDeleted; - } -} diff --git a/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php b/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php deleted file mode 100644 index dab1b61..0000000 --- a/vendor/doctrine/orm/src/Query/Exec/MultiTableUpdateExecutor.php +++ /dev/null @@ -1,180 +0,0 @@ -MultiTableUpdateExecutor. - * - * Internal note: Any SQL construction and preparation takes place in the constructor for - * best performance. With a query cache the executor will be cached. - * - * @param UpdateStatement $AST The root AST node of the DQL query. - * @param SqlWalker $sqlWalker The walker used for SQL generation from the AST. - */ - public function __construct(AST\Node $AST, SqlWalker $sqlWalker) - { - $em = $sqlWalker->getEntityManager(); - $conn = $em->getConnection(); - $platform = $conn->getDatabasePlatform(); - $quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); - $this->sqlStatements = []; - - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - $updateClause = $AST->updateClause; - $primaryClass = $sqlWalker->getEntityManager()->getClassMetadata($updateClause->abstractSchemaName); - $rootClass = $em->getClassMetadata($primaryClass->rootEntityName); - - $updateItems = $updateClause->updateItems; - - $tempTable = $platform->getTemporaryTableName($rootClass->getTemporaryIdTableName()); - $idColumnNames = $rootClass->getIdentifierColumnNames(); - $idColumnList = implode(', ', $idColumnNames); - - // 1. Create an INSERT INTO temptable ... SELECT identifiers WHERE $AST->getWhereClause() - $sqlWalker->setSQLTableAlias($primaryClass->getTableName(), 't0', $updateClause->aliasIdentificationVariable); - - $insertSql = 'INSERT INTO ' . $tempTable . ' (' . $idColumnList . ')' - . ' SELECT t0.' . implode(', t0.', $idColumnNames); - - $rangeDecl = new AST\RangeVariableDeclaration($primaryClass->name, $updateClause->aliasIdentificationVariable); - $fromClause = new AST\FromClause([new AST\IdentificationVariableDeclaration($rangeDecl, null, [])]); - - $insertSql .= $sqlWalker->walkFromClause($fromClause); - - // 2. Create ID subselect statement used in UPDATE ... WHERE ... IN (subselect) - $idSubselect = 'SELECT ' . $idColumnList . ' FROM ' . $tempTable; - - // 3. Create and store UPDATE statements - $classNames = [...$primaryClass->parentClasses, ...[$primaryClass->name], ...$primaryClass->subClasses]; - - foreach (array_reverse($classNames) as $className) { - $affected = false; - $class = $em->getClassMetadata($className); - $updateSql = 'UPDATE ' . $quoteStrategy->getTableName($class, $platform) . ' SET '; - - $sqlParameters = []; - foreach ($updateItems as $updateItem) { - $field = $updateItem->pathExpression->field; - - if ( - (isset($class->fieldMappings[$field]) && ! isset($class->fieldMappings[$field]->inherited)) || - (isset($class->associationMappings[$field]) && ! isset($class->associationMappings[$field]->inherited)) - ) { - $newValue = $updateItem->newValue; - - if (! $affected) { - $affected = true; - } else { - $updateSql .= ', '; - } - - $updateSql .= $sqlWalker->walkUpdateItem($updateItem); - - if ($newValue instanceof AST\InputParameter) { - $sqlParameters[] = $newValue->name; - - ++$this->numParametersInUpdateClause; - } - } - } - - if ($affected) { - $this->sqlParameters[] = $sqlParameters; - $this->sqlStatements[] = $updateSql . ' WHERE (' . $idColumnList . ') IN (' . $idSubselect . ')'; - } - } - - // Append WHERE clause to insertSql, if there is one. - if ($AST->whereClause) { - $insertSql .= $sqlWalker->walkWhereClause($AST->whereClause); - } - - $this->insertSql = $insertSql; - - // 4. Store DDL for temporary identifier table. - $columnDefinitions = []; - - foreach ($idColumnNames as $idColumnName) { - $columnDefinitions[$idColumnName] = [ - 'name' => $idColumnName, - 'notnull' => true, - 'type' => Type::getType(PersisterHelper::getTypeOfColumn($idColumnName, $rootClass, $em)), - ]; - } - - $this->createTempTableSql = $platform->getCreateTemporaryTableSnippetSQL() . ' ' . $tempTable . ' (' - . $platform->getColumnDeclarationListSQL($columnDefinitions) . ', PRIMARY KEY(' . implode(',', $idColumnNames) . '))'; - - $this->dropTempTableSql = $platform->getDropTemporaryTableSQL($tempTable); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - // Create temporary id table - $conn->executeStatement($this->createTempTableSql); - - try { - // Insert identifiers. Parameters from the update clause are cut off. - $numUpdated = $conn->executeStatement( - $this->insertSql, - array_slice($params, $this->numParametersInUpdateClause), - array_slice($types, $this->numParametersInUpdateClause), - ); - - // Execute UPDATE statements - foreach ($this->sqlStatements as $key => $statement) { - $paramValues = []; - $paramTypes = []; - - if (isset($this->sqlParameters[$key])) { - foreach ($this->sqlParameters[$key] as $parameterKey => $parameterName) { - $paramValues[] = $params[$parameterKey]; - $paramTypes[] = $types[$parameterKey] ?? ParameterTypeInferer::inferType($params[$parameterKey]); - } - } - - $conn->executeStatement($statement, $paramValues, $paramTypes); - } - } finally { - // Drop temporary table - $conn->executeStatement($this->dropTempTableSql); - } - - return $numUpdated; - } -} diff --git a/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php b/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php deleted file mode 100644 index 5445edb..0000000 --- a/vendor/doctrine/orm/src/Query/Exec/SingleSelectExecutor.php +++ /dev/null @@ -1,31 +0,0 @@ -sqlStatements = $sqlWalker->walkSelectStatement($AST); - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): Result - { - return $conn->executeQuery($this->sqlStatements, $params, $types, $this->queryCacheProfile); - } -} diff --git a/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php b/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php deleted file mode 100644 index 66696db..0000000 --- a/vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php +++ /dev/null @@ -1,42 +0,0 @@ -sqlStatements = $sqlWalker->walkUpdateStatement($AST); - } elseif ($AST instanceof AST\DeleteStatement) { - $this->sqlStatements = $sqlWalker->walkDeleteStatement($AST); - } - } - - /** - * {@inheritDoc} - */ - public function execute(Connection $conn, array $params, array $types): int - { - if ($conn instanceof PrimaryReadReplicaConnection) { - $conn->ensureConnectedToPrimary(); - } - - return $conn->executeStatement($this->sqlStatements, $params, $types); - } -} -- cgit v1.2.3