Page MenuHomePhabricator

Fix various MySQL version issues with new charset stuff
ClosedPublic

Authored by epriestley on Oct 29 2014, 10:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 24, 12:23 PM
Unknown Object (File)
Sat, Nov 23, 9:43 PM
Unknown Object (File)
Fri, Nov 22, 11:31 AM
Unknown Object (File)
Tue, Nov 19, 1:31 AM
Unknown Object (File)
Fri, Nov 15, 5:12 AM
Unknown Object (File)
Thu, Nov 14, 11:56 PM
Unknown Object (File)
Sun, Nov 10, 9:43 PM
Unknown Object (File)
Thu, Nov 7, 11:04 AM
Subscribers

Details

Summary

Ref T1191. Notable stuff:

  • Adds --disable-utf8mb4 to bin/storage to make it easier to test what things will (approximately) do on old MySQL. This isn't 100% perfect but should catch all the major stuff. It basically makes us pretend the server is an old server.
  • Require utf8mb4 to dump a quickstart.
  • Fix some issues with quickstart generation, notably special casing the FULLTEXT handling.
  • Add an --unsafe flag to bin/storage adjust to let it truncate data to fix schemata.
  • Fix some old patches which don't work if the default table charset is utf8mb4.
Test Plan
  • Dumped a quickstart.
  • Loaded the quickstart with utf8mb4.
  • Loaded the quickstart with --disable-utf8mb4 (verified that we get binary columns, etc).
  • Adjusted schema with --disable-utf8mb4 (got a long adjustment with binary columns, some truncation stuff with weird edge case test data).
  • Adjusted schema with --disable-utf8mb4 --unsafe (got truncations and clean adjust).
  • Adjusted schema back without --disable-utf8mb4 (got a long adjustment with utf8mb4 columns, some invalid data on truncated utf8).
  • Adjusted schema without --disable-utf8mb4, but with --unsafe (got truncations on the invalid data).

Diff Detail

Repository
rP Phabricator
Branch
utf1
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 2904
Build 2908: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

epriestley retitled this revision from to Fix various MySQL version issues with new charset stuff.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
src/applications/people/storage/PhabricatorUserSchemaSpec.php
12

This fixes the username tokenizer to be case-insensitive. Typing real names into global search is currently case-sensitive, which is incorrect.

src/infrastructure/storage/management/workflow/PhabricatorStorageManagementAdjustWorkflow.php
349–354

(I'll replace this with a link to documentation once I write it.)

btrahan edited edge metadata.

I can dig it.

This revision is now accepted and ready to land.Oct 29 2014, 10:15 PM
This revision was automatically updated to reflect the committed changes.