Closed
Bug 1283310
Opened 9 years ago
Closed 9 years ago
Optimizations for Bugzilla::active_custom_fields()
Categories
(bugzilla.mozilla.org :: General, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: dylan, Assigned: dylan)
Details
Attachments
(1 file)
|
3.03 KB,
patch
|
dkl
:
review+
|
Details | Diff | Splinter Review |
Bugzilla->active_custom_fields() is very frequently called
and then filtered on FIELD_TYPE_EXTENSION. It is expensive both in terms of items returned from the DB and from building the list (a second time!) in the tracking flags extension. I propose adding a skip_extensions => 1 argument to this method.
| Assignee | ||
Updated•9 years ago
|
Assignee: nobody → dylan
Version: Development/Staging → Production
| Assignee | ||
Comment 1•9 years ago
|
||
Attachment #8766611 -
Flags: review?(dkl)
Comment 2•9 years ago
|
||
Comment on attachment 8766611 [details] [diff] [review]
1283310_1.patch
Review of attachment 8766611 [details] [diff] [review]:
-----------------------------------------------------------------
Software error:
DBD::mysql::db selectrow_hashref failed: Unknown column 'cf_tracking_win' in 'field list' [for Statement "
SELECT alias,assigned_to,bug_file_loc,bug_id,bug_severity,bug_status,cclist_accessible,component_id,creation_ts,delta_ts,estimated_time,everconfirmed,lastdiffed,op_sys,priority,product_id,qa_contact,remaining_time,rep_platform,reporter_accessible,resolution,short_desc,status_whiteboard,target_milestone,version,reporter AS reporter_id,DATE_FORMAT(deadline, '%Y-%m-%d') AS deadline,cf_tracking_win,cf_backlog,cf_tracking_p11,cf_tracking_e10s,cf_status_fxios_v1_1,cf_tracking_firefox5,cf_status_firefox5,cf_tracking_firefox6,cf_status_firefox6,cf_tracking_firefox7,cf_status_firefox7,cf_tracking_firefox8,cf_status_firefox8,cf_tracking_firefox9,cf_status_firefox9,cf_tracking_firefox10,cf_status_firefox10,cf_tracking_firefox11,cf_status_firefox11,cf_tracking_firefox12,cf_status_firefox12,cf_tracking_firefox13,cf_status_firefox13,cf_tracking_firefox14,cf_status_firefox14,cf_tracking_firefox15,cf_status_firefox15,cf_tracking_firefox16,cf_status_firefox16,cf_tracking_firefox17,cf_status_firefox17,cf_tracking_firefox18,cf_status_firefox18,cf_tracking_firefox19,cf_status_firefox19,cf_tracking_firefox20,cf_status_firefox20,cf_tracking_firefox21,cf_status_firefox21,cf_tracking_firefox22,cf_status_firefox22,cf_tracking_firefox23,cf_status_firefox23,cf_tracking_firefox24,cf_status_firefox24,cf_tracking_firefox25,cf_status_firefox25,cf_tracking_firefox26,cf_status_firefox26,cf_tracking_firefox27,cf_status_firefox27,cf_tracking_firefox28,cf_status_firefox28,cf_tracking_firefox29,cf_status_firefox29,cf_tracking_firefox30,cf_status_firefox30,cf_tracking_firefox31,cf_status_firefox31,cf_tracking_firefox32,cf_status_firefox32,cf_tracking_firefox33,cf_status_firefox33,cf_tracking_firefox34,cf_status_firefox34,cf_tracking_firefox35,cf_status_firefox35,cf_tracking_firefox36,cf_status_firefox36,cf_tracking_firefox37,cf_status_firefox37,cf_tracking_firefox38,cf_status_firefox ... acking_seamonkey219,cf_status_seamonkey219,cf_tracking_seamonkey220,cf_status_seamonkey220,cf_tracking_seamonkey221,cf_status_seamonkey221,cf_tracking_seamonkey222,cf_status_seamonkey222,cf_tracking_seamonkey223,cf_status_seamonkey223,cf_tracking_seamonkey224,cf_tracking_thunderbird_45,cf_status_thunderbird_45,cf_tracking_thunderbird_46,cf_status_thunderbird_46,cf_status_seamonkey224,cf_tracking_thunderbird_47,cf_status_thunderbird_47,cf_tracking_seamonkey225,cf_status_seamonkey225,cf_status_seamonkey226,cf_tracking_seamonkey226,cf_status_seamonkey227,cf_tracking_seamonkey227,cf_status_seamonkey228,cf_tracking_seamonkey228,cf_status_seamonkey229,cf_tracking_seamonkey229,cf_tracking_thunderbird_esr24,cf_colo_site,cf_status_thunderbird_esr24,cf_tracking_thunderbird_esr31,cf_status_thunderbird_esr31,cf_tracking_thunderbird_esr38,cf_status_seamonkey230,cf_status_thunderbird_esr38,cf_office,cf_tracking_seamonkey230,cf_status_seamonkey231,cf_tracking_seamonkey231,cf_status_seamonkey232,cf_tracking_seamonkey232,cf_tracking_seamonkey233,cf_status_seamonkey233,cf_tracking_seamonkey234,cf_status_seamonkey234,cf_tracking_seamonkey235,cf_status_seamonkey235,cf_tracking_seamonkey236,cf_status_seamonkey236,cf_tracking_seamonkey237,cf_status_seamonkey237,cf_tracking_seamonkey238,cf_status_seamonkey238,cf_tracking_seamonkey239,cf_crash_signature,cf_status_seamonkey239,cf_tracking_seamonkey240,cf_status_seamonkey240,cf_tracking_seamonkey241,cf_status_seamonkey241,cf_tracking_seamonkey242,cf_status_seamonkey242,cf_tracking_seamonkey243,cf_status_seamonkey243,cf_tracking_seamonkey244,cf_status_seamonkey244,cf_blocking_kilimanjaro,cf_blocking_b2g,cf_blocking_basecamp,cf_feature_b2g,cf_tracking_b2g,cf_ux_b2g,cf_b2g_ota_blocker,cf_due_date,cf_last_resolved,cf_user_story,cf_mozilla_project,cf_machine_state,cf_qa_whiteboard,cf_fx_iteration,cf_fx_points,cf_rank,cf_has_regression_range,cf_has_str,cf_cab_review,cf_last_resolved,restrict_comments,votes FROM bugs
WHERE bug_id = ?"] at Bugzilla/Object.pm line 142.
Per IRC, add the value of skip_extensions to the end of $cache_id:
diff --git a/Bugzilla.pm b/Bugzilla.pm
index 0f513ae..b620e22 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -709,11 +709,11 @@ sub active_custom_fields {
my $cache_id = 'active_custom_fields';
if ($params) {
$cache_id .= ($params->{product} ? '_p' . $params->{product}->id : '') .
- ($params->{component} ? '_c' . $params->{component}->id : '');
+ ($params->{component} ? '_c' . $params->{component}->id : '') .
+ ('_noext' ? $params->{skip_extensions} : '');
}
if (!exists $class->request_cache->{$cache_id}) {
- my $fields = Bugzilla::Field->match({ custom => 1, obsolete => 0});
- @$fields = grep($_->type ne FIELD_TYPE_EXTENSION, @$fields);
+ my $fields = Bugzilla::Field->match({ custom => 1, obsolete => 0, skip_extensions => 1 });
Bugzilla::Hook::process('active_custom_fields',
{ fields => \$fields, params => $params });
$class->request_cache->{$cache_id} = $fields;
Attachment #8766611 -
Flags: review?(dkl) → review+
| Assignee | ||
Comment 3•9 years ago
|
||
To git@github.com:mozilla-bteam/bmo.git
584670c..8920445 master -> master
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•