Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-1757

DQL exception when building query with multiple from and join parts

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Git Master
    • Fix Version/s: 2.3
    • Component/s: ORM
    • Security Level: All
    • Labels:
      None

      Description

      Query builder creates bad DQL if multiple FROM and JOIN parts are used.

      As example such query builder code

      $qb->from('A', 'a')
        ->from('B', 'b')
        ->join('b.c', 'c')
        ->join('c.d', 'd');
      

      will generate DQL

      ...
        FROM A a 
          INNER JOIN c.d d, 
        B b 
          INNER JOIN b.c c
      ...
      

      but should generate this instead

      ...
        FROM A a,
        B b 
          INNER JOIN b.c c 
          INNER JOIN c.d d
      ...
      

      The DQL parser raises exception

      Doctrine\ORM\Query\QueryException: [Semantical Error] line 0, col 61 near '.d d, B': Error: Identification Variable c used in join path expression but was not defined before.
      
      1. DDC1757Test.php
        2 kB
        Aigars Gedroics
      2. patch-1757.patch
        2 kB
        Aigars Gedroics

        Activity

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Aigars Gedroics
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: