Doctrine DBAL
  1. Doctrine DBAL
  2. DBAL-293

mysql platform can not choose text type column

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Cannot Reproduce
    • Affects Version/s: 2.2.2
    • Fix Version/s: None
    • Component/s: Platforms
    • Labels:
      None

      Description

      getVarcharMaxLength() in DBAL/Platforms/MySqlPlatform.php returns 65535;
      So, it never choose "text", choose "mediumtext".

        Activity

        Hide
        Benjamin Eberlei added a comment -

        This is not an issue, the code is clear about usage with "text" and length and not related to varchar max length.

        Show
        Benjamin Eberlei added a comment - This is not an issue, the code is clear about usage with "text" and length and not related to varchar max length.
        Hide
        Steve Müller added a comment -

        Kiichi Kajiura TextType columns generate their SQL through AbstractPlatform::getClobTypeDeclarationSQL().
        See: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Types/TextType.php#L36

        The implementation of this method in MySqlPlatform DOES evaluate the length option of a column and switches to the appropriate type on the fly.
        See: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php#L274-L293

        So the implementation in DBAL is correct. AFAIK the column mapping information from ORM are also passed correctly to DBAL. I cannot reproduce this error. Can you please try it again with the current master branches of ORM and DBAL and see if the problem still exists? Otherwise I would like to close this ticket. Thank you.

        Show
        Steve Müller added a comment - Kiichi Kajiura TextType columns generate their SQL through AbstractPlatform::getClobTypeDeclarationSQL(). See: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Types/TextType.php#L36 The implementation of this method in MySqlPlatform DOES evaluate the length option of a column and switches to the appropriate type on the fly. See: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php#L274-L293 So the implementation in DBAL is correct. AFAIK the column mapping information from ORM are also passed correctly to DBAL. I cannot reproduce this error. Can you please try it again with the current master branches of ORM and DBAL and see if the problem still exists? Otherwise I would like to close this ticket. Thank you.
        Hide
        Kiichi Kajiura added a comment -

        I don't use it directly.
        I use it in my entity class file with annotations.
        e.g.
        @Mapping\Column(type="text")
        @Mapping\Column(type="text", length=65535)

        Show
        Kiichi Kajiura added a comment - I don't use it directly. I use it in my entity class file with annotations. e.g. @Mapping\Column(type="text") @Mapping\Column(type="text", length=65535)
        Hide
        Benjamin Eberlei added a comment -

        How do you call the schema/platform code?

        The code is correct, i think you are using it wrong.

        Show
        Benjamin Eberlei added a comment - How do you call the schema/platform code? The code is correct, i think you are using it wrong.

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Kiichi Kajiura
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: