From 8920445cb25111f5748b3713ca59e8e549d6cb08 Mon Sep 17 00:00:00 2001 From: Dylan Hardison Date: Thu, 30 Jun 2016 15:19:00 -0400 Subject: Bug 1283310 - Optimizations for Bugzilla::active_custom_fields() --- Bugzilla/Bug.pm | 10 ++++------ Bugzilla/Field.pm | 3 +++ 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 73dc98963..09696f97b 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -83,9 +83,8 @@ use constant USE_MEMCACHED => 0; # This is a sub because it needs to call other subroutines. sub DB_COLUMNS { my $dbh = Bugzilla->dbh; - my @custom = grep {$_->type != FIELD_TYPE_MULTI_SELECT - && $_->type != FIELD_TYPE_EXTENSION} - Bugzilla->active_custom_fields; + my @custom = grep {$_->type != FIELD_TYPE_MULTI_SELECT } + Bugzilla->active_custom_fields({skip_extensions => 1}); my @custom_names = map {$_->name} @custom; my @columns = (qw( @@ -221,9 +220,8 @@ sub VALIDATOR_DEPENDENCIES { }; sub UPDATE_COLUMNS { - my @custom = grep {$_->type != FIELD_TYPE_MULTI_SELECT - && $_->type != FIELD_TYPE_EXTENSION} - Bugzilla->active_custom_fields; + my @custom = grep {$_->type != FIELD_TYPE_MULTI_SELECT } + Bugzilla->active_custom_fields({skip_extensions => 1}); my @custom_names = map {$_->name} @custom; my @columns = qw( alias diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm index ea93327ad..0a0c7b15f 100644 --- a/Bugzilla/Field.pm +++ b/Bugzilla/Field.pm @@ -288,6 +288,9 @@ sub match { if (delete $params->{is_select}) { $params->{type} = [FIELD_TYPE_SINGLE_SELECT, FIELD_TYPE_MULTI_SELECT]; } + if (delete $params->{skip_extensions}) { + $params->{WHERE}{'type != ?'} = FIELD_TYPE_EXTENSION; + } return $self->SUPER::match(@_); } -- cgit v1.2.3-24-g4f1b