Bug 7188

Summary: case-insensitive grep of /mysql/ in C4::Context
Product: Koha Reporter: Ian Walls <koha.sekjal>
Component: Architecture, internals, and plumbingAssignee: Paul Poulain <paul.poulain>
Status: CLOSED FIXED QA Contact: Ian Walls <koha.sekjal>
Severity: enhancement    
Priority: PATCH-Sent (DO NOT USE)    
Version: 3.6   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on:    
Bug Blocks: 6875    
Attachments: Bug 7188: C4::Context::db_scheme2dbi does case-insensitive grep

Description Ian Walls 2011-11-06 11:08:36 UTC
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.
Comment 1 Ian Walls 2011-11-06 11:22:59 UTC
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).
Comment 2 Ian Walls 2011-11-06 11:41:06 UTC
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.
Comment 3 Paul Poulain 2011-11-06 14:52:41 UTC
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.
Comment 4 Jared Camins-Esakov 2012-05-23 12:06:14 UTC
Included in 3.6 prior to 3.6.5.