summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorDylan Hardison <dylan@mozilla.com>2016-06-30 21:19:00 +0200
committerDylan Hardison <dylan@mozilla.com>2016-06-30 21:19:00 +0200
commit8920445cb25111f5748b3713ca59e8e549d6cb08 (patch)
tree762dd9871ea977c3d5acf9543864758015fc67ce /Bugzilla
parent584670c0f713744afc143593e3b810da6a5f6925 (diff)
downloadbugzilla-8920445cb25111f5748b3713ca59e8e549d6cb08.tar.gz
bugzilla-8920445cb25111f5748b3713ca59e8e549d6cb08.tar.xz
Bug 1283310 - Optimizations for Bugzilla::active_custom_fields()
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Bug.pm10
-rw-r--r--Bugzilla/Field.pm3
2 files changed, 7 insertions, 6 deletions
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(@_);
}