-
-
Save doctrinebot/3c4c97aacdf200286b69 to your computer and use it in GitHub Desktop.
Attachments to Doctrine Jira Issue DDC-1831 - https://github.com/doctrine/doctrine2/issues/2490
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: /home/pablo/www/site/backend/vendor/doctrine/lib/Doctrine/ORM | |
# 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: Mapping/ClassMetadataInfo.php | |
--- Mapping/ClassMetadataInfo.php Base (BASE) | |
+++ Mapping/ClassMetadataInfo.php Locally Modified (Based On LOCAL) | |
@@ -992,8 +992,10 @@ | |
if (isset($joinColumn['onDelete']) && strtolower($joinColumn['onDelete']) == 'cascade') { | |
$mapping['isOnDeleteCascade'] = true; | |
} | |
- $mapping['relationToSourceKeyColumns'][$joinColumn['name']] = $joinColumn['referencedColumnName']; | |
- $mapping['joinTableColumns'][] = $joinColumn['name']; | |
+ $joinColumnName = $joinColumn['name'][0] == '`' ? trim($joinColumn['name'], '`') : $joinColumn['name']; | |
+ $mapping['relationToSourceKeyColumns'][$joinColumnName] = $joinColumn['referencedColumnName']; | |
+ $mapping['joinTableColumns'][] = $joinColumnName; | |
+ $mapping['joinTableColumnsQuoted'][$joinColumnName] = $joinColumn['name'][0] == '`' ? true : false; | |
} | |
foreach ($mapping['joinTable']['inverseJoinColumns'] as &$inverseJoinColumn) { | |
@@ -1006,8 +1008,10 @@ | |
if (isset($inverseJoinColumn['onDelete']) && strtolower($inverseJoinColumn['onDelete']) == 'cascade') { | |
$mapping['isOnDeleteCascade'] = true; | |
} | |
- $mapping['relationToTargetKeyColumns'][$inverseJoinColumn['name']] = $inverseJoinColumn['referencedColumnName']; | |
- $mapping['joinTableColumns'][] = $inverseJoinColumn['name']; | |
+ $inverseJoinColumnName = $inverseJoinColumn['name'][0] == '`' ? trim($inverseJoinColumn['name'], '`') : $inverseJoinColumn['name']; | |
+ $mapping['relationToTargetKeyColumns'][$inverseJoinColumnName] = $inverseJoinColumn['referencedColumnName']; | |
+ $mapping['joinTableColumns'][] = $inverseJoinColumnName; | |
+ $mapping['joinTableColumnsQuoted'][$inverseJoinColumnName] = $inverseJoinColumn['name'][0] == '`' ? true : false; | |
} | |
} | |
Index: Persisters/BasicEntityPersister.php | |
--- Persisters/BasicEntityPersister.php Base (BASE) | |
+++ Persisters/BasicEntityPersister.php Locally Modified (Based On LOCAL) | |
@@ -787,6 +787,7 @@ | |
if ($assoc['isOwningSide']) { | |
$quotedJoinTable = $sourceClass->getQuotedJoinTableName($assoc, $this->_platform); | |
foreach ($assoc['relationToSourceKeyColumns'] as $relationKeyColumn => $sourceKeyColumn) { | |
+ $quotedRelationKeyColumn = $assoc['joinTableColumnsQuoted'][$relationKeyColumn] ? $this->_platform->quoteIdentifier($relationKeyColumn) : $relationKeyColumn; | |
if ($sourceClass->containsForeignIdentifier) { | |
$field = $sourceClass->getFieldForColumn($sourceKeyColumn); | |
$value = $sourceClass->reflFields[$field]->getValue($sourceEntity); | |
@@ -795,9 +796,9 @@ | |
$value = $value[$this->_em->getClassMetadata($sourceClass->associationMappings[$field]['targetEntity'])->identifier[0]]; | |
} | |
- $criteria[$quotedJoinTable . "." . $relationKeyColumn] = $value; | |
+ $criteria[$quotedJoinTable . "." . $quotedRelationKeyColumn] = $value; | |
} else if (isset($sourceClass->fieldNames[$sourceKeyColumn])) { | |
- $criteria[$quotedJoinTable . "." . $relationKeyColumn] = $sourceClass->reflFields[$sourceClass->fieldNames[$sourceKeyColumn]]->getValue($sourceEntity); | |
+ $criteria[$quotedJoinTable . "." . $quotedRelationKeyColumn] = $sourceClass->reflFields[$sourceClass->fieldNames[$sourceKeyColumn]]->getValue($sourceEntity); | |
} else { | |
throw MappingException::joinColumnMustPointToMappedField( | |
$sourceClass->name, $sourceKeyColumn | |
@@ -1036,6 +1037,7 @@ | |
$joinSql = ''; | |
foreach ($joinClauses as $joinTableColumn => $sourceColumn) { | |
+ $quotedJoinTableColumn = $manyToMany['joinTableColumnsQuoted'][$joinTableColumn] ? $this->_platform->quoteIdentifier($joinTableColumn) : $joinTableColumn; | |
if ($joinSql != '') $joinSql .= ' AND '; | |
if ($this->_class->containsForeignIdentifier && !isset($this->_class->fieldNames[$sourceColumn])) { | |
@@ -1046,7 +1048,7 @@ | |
$joinSql .= $this->_getSQLTableAlias($this->_class->name) . | |
'.' . $quotedColumn . ' = ' | |
- . $joinTableName . '.' . $joinTableColumn; | |
+ . $joinTableName . '.' . $quotedJoinTableColumn; | |
} | |
return " INNER JOIN $joinTableName ON $joinSql"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment