1. 15 Apr, 2020 3 commits
    • Dylan William Hardison's avatar
      [Bug 1592129] Pass a reference to db into Schema object · b3a88ae7
      Dylan William Hardison authored
      This change adds a 'db' attribute to the `Bugzilla::DB::Schema` class.
      In two places (`get_empty_schema` and `deserialize_abstract`) the invocant
      argument was called `$class` but was never actually a class. Those were renamed
      to `$self`. It was fortunate that they were always objects because otherwise it
      would have been more difficult to ensure a `db` is always present.
      b3a88ae7
    • Dylan William Hardison's avatar
      [Bug 1592129] remove subclass loading and driver delegation from Schema->new. · 0310c0cb
      Dylan William Hardison authored
      Bugzilla::DB::Schema->new() was both a normal constructor and also a
      class-loading factory method. It is simpler to just do the class loading at the
      call-site (in Bugzilla::DB::_bz_schema).
      
      It's not very likely extensions relied on this behavior so this should be a good
      change.
      0310c0cb
    • 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
  2. 01 Feb, 2019 1 commit
  3. 31 Jan, 2019 1 commit
  4. 23 Oct, 2015 1 commit
  5. 30 Apr, 2015 1 commit
  6. 16 Mar, 2015 1 commit
  7. 11 Mar, 2015 1 commit
  8. 04 Nov, 2014 1 commit
  9. 06 Oct, 2014 1 commit
  10. 02 Sep, 2014 1 commit
  11. 28 Aug, 2014 1 commit
  12. 13 Aug, 2014 1 commit
  13. 10 Aug, 2014 1 commit
  14. 11 Jun, 2014 1 commit
  15. 25 Feb, 2014 1 commit
  16. 10 Feb, 2014 1 commit
  17. 07 Jan, 2014 1 commit
  18. 28 Oct, 2013 1 commit
  19. 26 Sep, 2013 2 commits
  20. 03 Sep, 2013 1 commit
  21. 07 Aug, 2013 1 commit
  22. 31 Jul, 2013 1 commit
  23. 24 Jul, 2013 1 commit
  24. 15 Feb, 2013 1 commit
  25. 02 Jan, 2013 1 commit
  26. 03 Dec, 2012 2 commits
  27. 01 Dec, 2012 2 commits
  28. 30 Nov, 2012 1 commit
  29. 13 Nov, 2012 1 commit
  30. 01 Sep, 2012 1 commit
  31. 31 Aug, 2012 1 commit
  32. 15 Feb, 2012 1 commit
  33. 23 Jan, 2012 1 commit
  34. 11 Jan, 2012 1 commit
  35. 18 Nov, 2011 1 commit