Skip to content

Loading…

DDC-481: Incorrect table aliasing when using quoting on table names #4985

Closed
doctrinebot opened this Issue · 4 comments

1 participant

@doctrinebot

Jira issue originally created by user mluiten:

I need to quote several table names (because of reserved words within MySQL) like so:

/****
 * @Entity
 * @Table(name="`Column`")
 */
class Column extends OptionAbstract

Another entity Question is related one-to-many to these entities, however, when trying to fetch the relation I get SQL errors because it seems to use the backtick as the table alias, which is illegal. An example of the query it's generating:

SELECT `0.id AS id1, `0.name AS name2, `0.sequence AS sequence3, `0.question*id AS question_id4 FROM `Column` `0 WHERE question*id = ?
@doctrinebot

Comment created by mluiten:

Here's a patch that works for me; looping through the table name until there is a character in the range a-z (case insensitive) to use as an alias.

Might need some more error-reporting and endless loop protection etc.

@doctrinebot

Comment created by romanb:

Thanks but the problem is elsewhere. The table name should not have the quote characters. The quote characters should be stripped during metadata parsing and instead a flag quoted => true set for the table in ClassMetadata::$table. Its not hard to fix, we will look into it soon.

@doctrinebot

Issue was closed with resolution "Fixed"

@doctrinebot doctrinebot added this to the 2.0-BETA2 milestone
@doctrinebot doctrinebot closed this
@doctrinebot doctrinebot added the Bug label
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.