Uploaded image for project: 'Doctrine 1'
  1. Doctrine 1
  2. DC-370

Doctrine serializes arrays, objects, etc. like 'string', which is never bigger than a TEXT, limited to 65535 characters (in MySQL)

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.2.1
    • Fix Version/s: None
    • Component/s: Connection
    • Labels:
      None

      Description

      Doctrine supports storing objects and arrays, and implements this via serialize().

      However in DataDict/Mysql they are handled like the 'string' type, which means they are subject to the rules there that ensure nothing bigger than a 'TEXT' is ever used to represent them.

      TEXT is not a great choice for objects and arrays because it's difficult to ensure they will not exceed 65,535 bytes in size.

      This would be most easily fixed by moving them to the next block of case statements there, used for CLOBs. The logic there already picks suitable large types (MEDIUMTEXT and LONGTEXT) as needed, and defaults to LONGTEXT which is a good choice for objects and arrays.

        Activity

        Hide
        hobodave David Abdemoulaie added a comment -

        Array and Object data types now behave identically to clob.

        See r7077

        Show
        hobodave David Abdemoulaie added a comment - Array and Object data types now behave identically to clob. See r7077
        Hide
        boutell Tom Boutell added a comment -

        Thanks David!

        Show
        boutell Tom Boutell added a comment - Thanks David!

          People

          • Assignee:
            jwage Jonathan H. Wage
            Reporter:
            boutell Tom Boutell
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: