]> git.ipfire.org Git - thirdparty/bugzilla.git/commit
Synthesis #1: Adopt utf8mb4 and DBIx::Connector (#79)
authorDylan William Hardison <dylan@hardison.net>
Wed, 2 Oct 2019 20:28:37 +0000 (16:28 -0400)
committerGitHub <noreply@github.com>
Wed, 2 Oct 2019 20:28:37 +0000 (16:28 -0400)
commit6eafd6a807ede6f2ca9e397d1d95fe44404a74c0
treef868f28ed1d55a94177b256dfec3b813039683ed
parent9840732839248c7ab81d68d0f2d82f0f0fa12782
Synthesis #1: Adopt utf8mb4 and DBIx::Connector (#79)

* use base to make merging with bmo easier

* Revert "Bug 1497042 - Enclose table names in CREATE queries"

This reverts commit 62d5637a4c96abbcde6f308421d676a0336d8e25.

* 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
126 files changed:
Bugzilla.pm
Bugzilla/Attachment.pm
Bugzilla/Auth/Login/CGI.pm
Bugzilla/Auth/Login/Env.pm
Bugzilla/Auth/Verify/DB.pm
Bugzilla/Auth/Verify/RADIUS.pm
Bugzilla/Bug.pm
Bugzilla/BugUrl.pm
Bugzilla/BugUrl/Bugzilla.pm
Bugzilla/BugUrl/Bugzilla/Local.pm
Bugzilla/BugUrl/Debian.pm
Bugzilla/BugUrl/GitHub.pm
Bugzilla/BugUrl/Google.pm
Bugzilla/BugUrl/JIRA.pm
Bugzilla/BugUrl/Launchpad.pm
Bugzilla/BugUrl/MantisBT.pm
Bugzilla/BugUrl/SourceForge.pm
Bugzilla/BugUrl/Trac.pm
Bugzilla/BugUserLastVisit.pm
Bugzilla/CGI.pm
Bugzilla/Classification.pm
Bugzilla/Comment.pm
Bugzilla/Comment/TagWeights.pm
Bugzilla/Component.pm
Bugzilla/Config.pm
Bugzilla/Config/Common.pm
Bugzilla/Config/General.pm
Bugzilla/Constants.pm
Bugzilla/DB.pm
Bugzilla/DB/Mysql.pm
Bugzilla/DB/Oracle.pm
Bugzilla/DB/Pg.pm
Bugzilla/DB/Schema/Mysql.pm
Bugzilla/DB/Schema/Oracle.pm
Bugzilla/DB/Schema/Pg.pm
Bugzilla/DB/Schema/Sqlite.pm
Bugzilla/DB/Sqlite.pm
Bugzilla/Error.pm
Bugzilla/Extension.pm
Bugzilla/Field.pm
Bugzilla/Field/Choice.pm
Bugzilla/Flag.pm
Bugzilla/FlagType.pm
Bugzilla/Group.pm
Bugzilla/Install/CPAN.pm
Bugzilla/Install/Filesystem.pm
Bugzilla/Install/Localconfig.pm
Bugzilla/Install/Requirements.pm
Bugzilla/Install/Util.pm
Bugzilla/Job/BugMail.pm
Bugzilla/Job/Mailer.pm
Bugzilla/JobQueue.pm
Bugzilla/JobQueue/Runner.pm
Bugzilla/Keyword.pm
Bugzilla/MIME.pm
Bugzilla/Mailer.pm
Bugzilla/Migrate/Gnats.pm
Bugzilla/Milestone.pm
Bugzilla/Product.pm
Bugzilla/RNG.pm
Bugzilla/Report.pm
Bugzilla/Search.pm
Bugzilla/Search/ClauseGroup.pm
Bugzilla/Search/Condition.pm
Bugzilla/Search/Quicksearch.pm
Bugzilla/Search/Recent.pm
Bugzilla/Search/Saved.pm
Bugzilla/Sender/Transport/Sendmail.pm
Bugzilla/Status.pm
Bugzilla/Template.pm
Bugzilla/Template/Context.pm
Bugzilla/Template/Plugin/Bugzilla.pm
Bugzilla/Template/Plugin/Hook.pm
Bugzilla/Token.pm
Bugzilla/User.pm
Bugzilla/User/APIKey.pm
Bugzilla/User/Setting.pm
Bugzilla/User/Setting/Lang.pm
Bugzilla/User/Setting/Skin.pm
Bugzilla/User/Setting/Timezone.pm
Bugzilla/UserAgent.pm
Bugzilla/Util.pm
Bugzilla/Version.pm
Bugzilla/WebService/Bug.pm
Bugzilla/WebService/BugUserLastVisit.pm
Bugzilla/WebService/Bugzilla.pm
Bugzilla/WebService/Classification.pm
Bugzilla/WebService/Constants.pm
Bugzilla/WebService/FlagType.pm
Bugzilla/WebService/Group.pm
Bugzilla/WebService/Product.pm
Bugzilla/WebService/Server/REST.pm
Bugzilla/WebService/Server/XMLRPC.pm
Bugzilla/WebService/User.pm
Bugzilla/WebService/Util.pm
Bugzilla/Whine.pm
Bugzilla/Whine/Query.pm
Bugzilla/Whine/Schedule.pm
docs/lib/Pod/Simple/HTML/Bugzilla.pm
docs/lib/Pod/Simple/HTMLBatch/Bugzilla.pm
extensions/BmpConvert/Extension.pm
extensions/Example/Extension.pm
extensions/Example/lib/Auth/Login.pm
extensions/Example/lib/Auth/Verify.pm
extensions/Example/lib/WebService.pm
extensions/MoreBugUrl/Extension.pm
extensions/MoreBugUrl/lib/BitBucket.pm
extensions/MoreBugUrl/lib/GetSatisfaction.pm
extensions/MoreBugUrl/lib/PHP.pm
extensions/MoreBugUrl/lib/RT.pm
extensions/MoreBugUrl/lib/Redmine.pm
extensions/MoreBugUrl/lib/ReviewBoard.pm
extensions/MoreBugUrl/lib/Rietveld.pm
extensions/MoreBugUrl/lib/Savane.pm
extensions/OldBugMove/Extension.pm
extensions/Voting/Extension.pm
t/Support/Systemexec.pm
t/Support/Templates.pm
template/en/default/setup/strings.txt.pl
xt/lib/Bugzilla/Test/Search/AndTest.pm
xt/lib/Bugzilla/Test/Search/Constants.pm
xt/lib/Bugzilla/Test/Search/CustomTest.pm
xt/lib/Bugzilla/Test/Search/FieldTestNormal.pm
xt/lib/Bugzilla/Test/Search/InjectionTest.pm
xt/lib/Bugzilla/Test/Search/NotTest.pm
xt/lib/Bugzilla/Test/Search/OrTest.pm