• Dylan William Hardison's avatar
    Synthesis #1: Adopt utf8mb4 and DBIx::Connector (#79) · 3c9cd5d9
    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
    3c9cd5d9
MantisBT.pm 937 Bytes
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.

package Bugzilla::BugUrl::MantisBT;

use 5.10.1;
use strict;
use warnings;

use base qw(Bugzilla::BugUrl);

###############################
####        Methods        ####
###############################

sub should_handle {
  my ($class, $uri) = @_;

  # MantisBT URLs look like the following ('bugs' directory is optional):
  #   http://www.mantisbt.org/bugs/view.php?id=1234
  return ($uri->path_query =~ m|view\.php\?id=\d+$|) ? 1 : 0;
}

sub _check_value {
  my $class = shift;

  my $uri = $class->SUPER::_check_value(@_);

  # Remove any # part if there is one.
  $uri->fragment(undef);

  return $uri;
}

1;