• Dylan William Hardison's avatar
    Synthesis #1: Adopt utf8mb4 and DBIx::Connector (#79) · 1015a17e
    Dylan William Hardison authored
    * use base to make merging with bmo easier
    
    * Revert "Bug 1497042 - Enclose table names in CREATE queries"
    
    This reverts commit 62d5637a.
    
    * refactor Bugzilla::DB to not subclass DBI
    
    * use DBIx::Connector to manage database connections
    
    * Ensure we always call DBIx::Connector->dbh before any DBI method
    
    The code didn't allow a way of doing this without a lot of work.
    
    So I had to take the following approach:
    The 'dbh' attribute is now a method that delegates to DBIx::Connector's dbh
    method. Per the docs, ->dbh() "Returns the connection's database handle. It will
    use a an existing handle if there is one, if the process has not been forked or
    a new thread spawned, and if the database is pingable. Otherwise, it will
    instantiate, cache, and return a new handle."
    
    Then there is the matter of the 'handles' on dbh. I've used Package::Stash to
    insert proxy methods into the class when it is loaded.
    
    * Bug 1328659 - Add support for utf8=utf8mb4 (switches to dynamic/compressed row format, and changes charset to utf8mb4)
    
    * add deps
    
    * add prepare_cached to the list of delegated methods.
    
    This was added in bug 340160
    
    * improve the migration to compressed/dynamic rows, skip views
    
    * add missing semicolon
    
    * remove pre-utf8mb4 emoji support
    
    * fix small issue
    
    * add debugging fatal error
    1015a17e
CGI.pm 2.73 KB