Skip to content

Loading…

DBAL-231: Doctrine\DBAL\SQLParserUtils::getPlaceholderPositions() - regex #1407

Closed
doctrinebot opened this Issue · 5 comments

2 participants

@doctrinebot

Jira issue originally created by user ivolator:

Running the following SQL (note the named parameter ":account_id"):

SELECT count('') as cnt FROM feed f INNER JOIN ordersaccounts oa ON oa.order_id = f.feed_id INNER JOIN users u ON u.id = f.user_id WHERE oa.account_id = :account_id AND f.feed_type='order' ORDER BY f.create*date DESC

ends up in a thrown exception.
This SQL was generated by using the Query Builder

    $qb = $this->_em->getConnection()->createQueryBuilder();
    $qb->select('count(\'*\') as cnt');//I know this is bad
    $qb->from('feed', 'f');
    $qb->innerJoin('f', 'orders*accounts', 'oa', 'oa.order_id = f.feed*id');
    $qb->innerJoin('f', 'users', 'u', 'u.id = f.user_id');
    $qb->where('oa.account*id = :account_id AND f.feed*type=\'order\'');
    $qb->setParameter('account*id', $accountId, \PDO::PARAM*INT);

    $stmt = $qb->execute();
    $res = $stmt->fetchAll(\PDO::FETCH_COLUMN);

string(82) "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'NULL_id' in 'where clause'"
string(3168) "#0 /var/www/caketozf/library/Doctrine/DBAL/Connection.php(628): PDOStatement->execute()
#1 /var/www/caketozf/library/Doctrine/DBAL/Query/QueryBuilder.php(185): Doctrine\DBAL\Connection->executeQuery('SELECT count('...', Array, Array)
#2 /var/www/cake
tozf/library/of/doctrine/SqlQueryBuilderPaginatorAdapter.php(69): Doctrine\DBAL\Query\QueryBuilder->execute()
#3 /var/www/cake
to*zf/library/Zend/Paginator.php(1060): of\doctrine\SqlQueryBuilderPaginatorAdapter->count()
.......

Suggested Fix:

Regex on line 64 in pregmatch becomes '#([:a-zA-Z0-9]{1})#'
Added was an "_" ...

@doctrinebot

Comment created by @beberlei:

Fixed

@doctrinebot

Issue was closed with resolution "Fixed"

@doctrinebot

Comment created by @beberlei:

Merged in 2.1.x and 2.2 branches.

@doctrinebot

Comment created by avit:

I already fixed this in my reworking of the SqlParserUtils last month. See pull request and confirm that this issue was fixed there, together with other parsing problems:

#113

@doctrinebot

Comment created by @beberlei:

Fixed in 2.3.3

@doctrinebot doctrinebot added the Bug label
@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot added this to the 2.3.3 milestone
@doctrinebot doctrinebot closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.