From: Dylan William Hardison Date: Tue, 22 Jan 2019 19:19:54 +0000 (-0500) Subject: Bug 1512815 - Skip preloading tracking flags in the Bug API X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=820b742b86d1649dd3bc84f6bbf20ec19146952f;p=thirdparty%2Fbugzilla.git Bug 1512815 - Skip preloading tracking flags in the Bug API --- diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index e9d879bfe..df2e78718 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -352,7 +352,7 @@ sub SPECIAL_PARSING { # BMO - add ability to use pronoun for triage owners triage_owner => \&_triage_owner_pronoun, }; - foreach my $field (Bugzilla->active_custom_fields) { + foreach my $field (Bugzilla->active_custom_fields({skip_extensions => 1})) { if ($field->type == FIELD_TYPE_DATETIME) { $map->{$field->name} = \&_datetime_translate; } diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm index 0f25b9461..ab7bb3572 100644 --- a/Bugzilla/WebService/Bug.pm +++ b/Bugzilla/WebService/Bug.pm @@ -55,7 +55,7 @@ sub DATE_FIELDS { }; # Add date related custom fields - foreach my $field (Bugzilla->active_custom_fields) { + foreach my $field (Bugzilla->active_custom_fields({skip_extensions => 1})) { next unless ($field->type == FIELD_TYPE_DATETIME || $field->type == FIELD_TYPE_DATE); @@ -536,6 +536,7 @@ sub search { my $user = Bugzilla->user; my $dbh = Bugzilla->dbh; + local $Bugzilla::Extension::TrackingFlags::Flag::SKIP_PRELOAD = 1; Bugzilla->switch_to_shadow_db(); my $match_params = dclone($params); diff --git a/extensions/TrackingFlags/lib/Flag.pm b/extensions/TrackingFlags/lib/Flag.pm index c1ecbc4ad..903b0534c 100644 --- a/extensions/TrackingFlags/lib/Flag.pm +++ b/extensions/TrackingFlags/lib/Flag.pm @@ -23,6 +23,8 @@ use Bugzilla::Extension::TrackingFlags::Flag::Bug; use Bugzilla::Extension::TrackingFlags::Flag::Value; use Bugzilla::Extension::TrackingFlags::Flag::Visibility; +our $SKIP_PRELOAD = 0; + ############################### #### Initialization #### ############################### @@ -210,7 +212,7 @@ sub match { my $is_active_filter = delete $params->{is_active}; my $flags = $class->SUPER::match($params); - preload_all_the_things($flags, {bug_id => $bug_id}); + preload_all_the_things($flags, {bug_id => $bug_id}) unless $SKIP_PRELOAD; if ($is_active_filter) { $flags = [grep { $_->is_active || exists $_->{bug_flag} } @$flags]; @@ -223,7 +225,7 @@ sub get_all { my $cache = Bugzilla->request_cache; if (!exists $cache->{'tracking_flags'}) { my @tracking_flags = $self->SUPER::get_all(@_); - preload_all_the_things(\@tracking_flags); + preload_all_the_things(\@tracking_flags) unless $SKIP_PRELOAD; my %tracking_flags_hash = map { $_->flag_id => $_ } @tracking_flags; $cache->{'tracking_flags'} = \%tracking_flags_hash; }