[PR #462] [MERGED] [DDC-2055] Generate SELECT clause from ResultSetMappingBuilder #8226

Closed
opened 2026-01-22 15:58:58 +01:00 by admin · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/doctrine/orm/pull/462
Author: @beberlei
Created: 10/3/2012
Status: Merged
Merged: 10/5/2012
Merged by: @beberlei

Base: masterHead: DDC-2055


📝 Commits (2)

  • 913377e [DDC-2055] Add support to generate entity result parts of the SELECT clause from a ResultSetMappingBuilder instance. Add support for column incrementing.
  • a47359e [DDC-2055] Fix CS

📊 Changes

2 files changed (+234 additions, -19 deletions)

View changed files

📝 lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php (+168 -18)
📝 tests/Doctrine/Tests/ORM/Functional/NativeQueryTest.php (+66 -1)

📄 Description

Add support to generate entity result parts of the SELECT clause from a ResultSetMappingBuilder instance. Add support for column incrementing.

Sample:

$rsm = new ResultSetMappingBuilder($entityManager);
$rsm->addRootEntityFromClassMetadata('Doctrine\Tests\Models\CMS\CmsUser', 'u');

$sql = "SELECT " . $rsm . " FROM users u";
$result = $entityManager->createNativeQuery($sql, $rsm)->getResult();

TestCase Usage:

public function testGenerateSelectClauseIncrement()
{
    $rsm = new ResultSetMappingBuilder($this->_em);
    $rsm->addRootEntityFromClassMetadata('Doctrine\Tests\Models\CMS\CmsUser', 'u', ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT);

    $selectClause = $rsm->generateSelectClause();

    $this->assertEquals('u.id AS id0, u.status AS status1, u.username AS username2, u.name AS name3, u.email_id AS email_id4', $selectClause);
}

Restrictions:

This only generates the entity result clauses, not the ones for scalar results! Because we don't know what the scalar result actually means.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/doctrine/orm/pull/462 **Author:** [@beberlei](https://github.com/beberlei) **Created:** 10/3/2012 **Status:** ✅ Merged **Merged:** 10/5/2012 **Merged by:** [@beberlei](https://github.com/beberlei) **Base:** `master` ← **Head:** `DDC-2055` --- ### 📝 Commits (2) - [`913377e`](https://github.com/doctrine/orm/commit/913377e31b0fb1081553e1d9dd183f24f677d289) [DDC-2055] Add support to generate entity result parts of the SELECT clause from a ResultSetMappingBuilder instance. Add support for column incrementing. - [`a47359e`](https://github.com/doctrine/orm/commit/a47359e3f5a50aecabf0e049aba9bacf9496c3e0) [DDC-2055] Fix CS ### 📊 Changes **2 files changed** (+234 additions, -19 deletions) <details> <summary>View changed files</summary> 📝 `lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php` (+168 -18) 📝 `tests/Doctrine/Tests/ORM/Functional/NativeQueryTest.php` (+66 -1) </details> ### 📄 Description Add support to generate entity result parts of the SELECT clause from a ResultSetMappingBuilder instance. Add support for column incrementing. Sample: ``` $rsm = new ResultSetMappingBuilder($entityManager); $rsm->addRootEntityFromClassMetadata('Doctrine\Tests\Models\CMS\CmsUser', 'u'); $sql = "SELECT " . $rsm . " FROM users u"; $result = $entityManager->createNativeQuery($sql, $rsm)->getResult(); ``` TestCase Usage: ``` public function testGenerateSelectClauseIncrement() { $rsm = new ResultSetMappingBuilder($this->_em); $rsm->addRootEntityFromClassMetadata('Doctrine\Tests\Models\CMS\CmsUser', 'u', ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT); $selectClause = $rsm->generateSelectClause(); $this->assertEquals('u.id AS id0, u.status AS status1, u.username AS username2, u.name AS name3, u.email_id AS email_id4', $selectClause); } ``` Restrictions: This only generates the entity result clauses, not the ones for scalar results! Because we don't know what the scalar result actually means. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
admin added the pull-request label 2026-01-22 15:58:58 +01:00
admin closed this issue 2026-01-22 15:58:59 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#8226