Skip to content

Instantly share code, notes, and snippets.

@doctrinebot
Created December 13, 2015 18:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save doctrinebot/a1404730255435c27e91 to your computer and use it in GitHub Desktop.
Save doctrinebot/a1404730255435c27e91 to your computer and use it in GitHub Desktop.
Attachments to Doctrine Jira Issue DDC-1695 - https://github.com/doctrine/doctrine2/issues/2342
# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: C:\Workspaces\MedAdvisor\vendor\doctrine\lib\Doctrine\ORM\Query
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: SqlWalker.php
--- SqlWalker.php Base (BASE)
+++ SqlWalker.php Locally Modified (Based On LOCAL)
@@ -226,7 +226,7 @@
*/
public function getSQLColumnAlias($columnName)
{
- return $columnName . $this->_aliasCounter++;
+ return preg_replace('~[\[\]"`]~', '', $columnName) . $this->_aliasCounter++;
}
/**
@@ -770,6 +770,7 @@
$first = true;
foreach ($assoc['sourceToTargetKeyColumns'] as $sourceColumn => $targetColumn) {
+ $quotedSourceColumn = $sourceClass->getQuotedColumnName($sourceClass->fieldNames[$sourceColumn], $this->_platform);
if ( ! $first) $sql .= ' AND '; else $first = false;
if ($relation['isOwningSide']) {
@@ -778,14 +779,14 @@
} else {
$quotedTargetColumn = $targetClass->getQuotedColumnName($targetClass->fieldNames[$targetColumn], $this->_platform);
}
- $sql .= $sourceTableAlias . '.' . $sourceColumn . ' = ' . $targetTableAlias . '.' . $quotedTargetColumn;
+ $sql .= $sourceTableAlias . '.' . $quotedSourceColumn . ' = ' . $targetTableAlias . '.' . $quotedTargetColumn;
} else {
if ($sourceClass->containsForeignIdentifier && !isset($sourceClass->fieldNames[$targetColumn])) {
$quotedTargetColumn = $targetColumn; // Join columns cannot be quoted.
} else {
$quotedTargetColumn = $sourceClass->getQuotedColumnName($sourceClass->fieldNames[$targetColumn], $this->_platform);
}
- $sql .= $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $targetTableAlias . '.' . $sourceColumn;
+ $sql .= $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $targetTableAlias . '.' . $quotedSourceColumn;
}
}
} else if ($assoc['type'] == ClassMetadata::MANY_TO_MANY) {
# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: C:\Workspaces\MedAdvisor\vendor\doctrine
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: lib/Doctrine/ORM/Persisters/BasicEntityPersister.php
--- lib/Doctrine/ORM/Persisters/BasicEntityPersister.php Base (BASE)
+++ lib/Doctrine/ORM/Persisters/BasicEntityPersister.php Locally Modified (Based On LOCAL)
@@ -1006,8 +1006,9 @@
$columnAlias = $srcColumn . $this->_sqlAliasCounter++;
$resultColumnName = $this->_platform->getSQLResultCasing($columnAlias);
+ $quotedSrcColumn = $class->getQuotedColumnName($class->fieldNames[$srcColumn], $this->_platform);
$columnList .= $this->_getSQLTableAlias($class->name, ($alias == 'r' ? '' : $alias) )
- . '.' . $srcColumn . ' AS ' . $resultColumnName;
+ . '.' . $quotedSrcColumn . ' AS ' . $resultColumnName;
$this->_rsm->addMetaResult($alias, $resultColumnName, $srcColumn, isset($assoc['id']) && $assoc['id'] === true);
}
}
Index: lib/Doctrine/ORM/Query/SqlWalker.php
--- lib/Doctrine/ORM/Query/SqlWalker.php Base (BASE)
+++ lib/Doctrine/ORM/Query/SqlWalker.php Locally Modified (Based On LOCAL)
@@ -226,7 +226,7 @@
*/
public function getSQLColumnAlias($columnName)
{
- return $columnName . $this->_aliasCounter++;
+ return preg_replace('~[\[\]"`]~', '', $columnName) . $this->_aliasCounter++;
}
/**
@@ -586,9 +586,10 @@
foreach ($class->associationMappings as $assoc) {
if ($assoc['isOwningSide'] && $assoc['type'] & ClassMetadata::TO_ONE) {
foreach ($assoc['targetToSourceKeyColumns'] as $srcColumn) {
+ $quotedSrcColumn = $class->getQuotedColumnName($class->fieldNames[$srcColumn], $this->_platform);
$columnAlias = $this->getSQLColumnAlias($srcColumn);
- $sqlSelectExpressions[] = $sqlTableAlias . '.' . $srcColumn . ' AS ' . $columnAlias;
+ $sqlSelectExpressions[] = $sqlTableAlias . '.' . $quotedSrcColumn . ' AS ' . $columnAlias;
$columnAlias = $this->_platform->getSQLResultCasing($columnAlias);
$this->_rsm->addMetaResult($dqlAlias, $this->_platform->getSQLResultCasing($columnAlias), $srcColumn, (isset($assoc['id']) && $assoc['id'] === true));
@@ -770,6 +771,7 @@
$first = true;
foreach ($assoc['sourceToTargetKeyColumns'] as $sourceColumn => $targetColumn) {
+ $quotedSourceColumn = $sourceClass->getQuotedColumnName($sourceClass->fieldNames[$sourceColumn], $this->_platform);
if ( ! $first) $sql .= ' AND '; else $first = false;
if ($relation['isOwningSide']) {
@@ -778,14 +780,14 @@
} else {
$quotedTargetColumn = $targetClass->getQuotedColumnName($targetClass->fieldNames[$targetColumn], $this->_platform);
}
- $sql .= $sourceTableAlias . '.' . $sourceColumn . ' = ' . $targetTableAlias . '.' . $quotedTargetColumn;
+ $sql .= $sourceTableAlias . '.' . $quotedSourceColumn . ' = ' . $targetTableAlias . '.' . $quotedTargetColumn;
} else {
if ($sourceClass->containsForeignIdentifier && !isset($sourceClass->fieldNames[$targetColumn])) {
$quotedTargetColumn = $targetColumn; // Join columns cannot be quoted.
} else {
$quotedTargetColumn = $sourceClass->getQuotedColumnName($sourceClass->fieldNames[$targetColumn], $this->_platform);
}
- $sql .= $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $targetTableAlias . '.' . $sourceColumn;
+ $sql .= $sourceTableAlias . '.' . $quotedTargetColumn . ' = ' . $targetTableAlias . '.' . $quotedSourceColumn;
}
}
} else if ($assoc['type'] == ClassMetadata::MANY_TO_MANY) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment