DDC-3018: DQL “NEW” Operator and Literal type "String" #3749

Closed
opened 2026-01-22 14:27:12 +01:00 by admin · 2 comments
Owner

Originally created by @doctrinebot on GitHub (Mar 9, 2014).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user ehar:

Hello all,

When i use the DQL operator "new" to build data transfert object with string literal expression as field in object constructor, the call to Query::getResult thrown an exception.

Condition :
The string literal expression must be the first parameter of the constructor.

Following DQL :

$query = $em->createQuery('SELECT NEW CustomerDTO('some scalar string', c.name, c.email) FROM Customer c');

$users = $query->getResult();

Thrown exception :
{quote}
ContextErrorException: Notice: Undefined variable: fieldType in doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php line 1527
{quote}

That happens because in SqlWalker::walkNewObject on the AST\Literal switch case. There is no case for AST\Literal::STRING, so $fieldType isn't defined.

I have also noted if the scalar string isn't the first parameter, $fieldType take the type of previous foreach element.

Originally created by @doctrinebot on GitHub (Mar 9, 2014). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user ehar: Hello all, When i use the DQL operator "new" to build data transfert object with string literal expression as field in object constructor, the call to `Query::getResult` thrown an exception. Condition : The string literal expression must be the first parameter of the constructor. Following DQL : ``` $query = $em->createQuery('SELECT NEW CustomerDTO('some scalar string', c.name, c.email) FROM Customer c'); $users = $query->getResult(); ``` Thrown exception : {quote} ContextErrorException: Notice: Undefined variable: fieldType in doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php line 1527 {quote} That happens because in `SqlWalker::walkNewObject` on the `AST\Literal` switch case. There is no case for `AST\Literal::STRING`, so `$fieldType` isn't defined. I have also noted if the scalar string isn't the first parameter, $fieldType take the type of previous foreach element.
admin added the Bug label 2026-01-22 14:27:12 +01:00
admin closed this issue 2026-01-22 14:27:12 +01:00
Author
Owner

@doctrinebot commented on GitHub (Mar 23, 2014):

Issue was closed with resolution "Fixed"

@doctrinebot commented on GitHub (Mar 23, 2014): Issue was closed with resolution "Fixed"
Author
Owner

@doctrinebot commented on GitHub (Mar 23, 2014):

Comment created by @beberlei:

Fixed and merged into 2.4 release branch

@doctrinebot commented on GitHub (Mar 23, 2014): Comment created by @beberlei: Fixed and merged into 2.4 release branch
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#3749