Porting this over from Paul's de-nesting C4 omnibus. C4::Context does an unnecessary case-insensitive grep on the database type, which is always 'mysql', unless someone manually edits the file. If they're doing that, they can expect buggy behaviour.
Created attachment 6244 [details] [review] Bug 7188: C4::Context::db_scheme2dbi does case-insensitive grep Checking NYTProf in C4::Context, it appears that the /i flag is highly time-consumming As we don't support anything outside from mysql, returning directly mysql directly If in a future version PostgresSQL works, then we will have to update this sub. But if an ORM is introduced, this code will be removed completly anyway Testing note: Drops execution time of the line from 300ms to 20 microseconds (in my testing).
This change reduces my installation from taking over 300ms to run this line, to 27 micro seconds. In my (limited) tests, I'm also finding that using /mysql/ returns in about the same amount of time as forcing the return of "mysql", within a few micro seconds. I don't know why, but figured I'd check.
Patch pushed, please test. QMaint, it's up to you to decide if it can be applied onto 3.6. That would be worth the price, but there's a small risk of a problem. I don't think so though, so if I were you, I would apply it.
Included in 3.6 prior to 3.6.5.