-
-
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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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