When searching a path / drv path, use separate queries for both options to prevent seq. scan.

[?]
Apr 26, 2013, 12:51 PM
FHOH54HQJOWN2HGIKLVADURVYYHIIORLKEFI4NVKE4K457GLG6CAC

Dependencies

  • [2] EJ7C77C3 Allow searching for store and drv paths. Only does a complete match to reduce load on database.
  • [3] HRAFVVOE make logo configurable via HYDRA_LOGO env var
  • [4] UICHT2PS Add a search feature
  • [5] WYMEG4VP Make some more tables clickable
  • [6] LCLXI7PT Search: Mark disabled projects/jobsets/jobs
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.

Change contents

  • edit in src/lib/Hydra/Controller/Root.pm at line 299
    [2.51]
    [2.51]
    # Perform build search in separate queries to prevent seq scan on buildoutputs table.
  • replacement in src/lib/Hydra/Controller/Root.pm at line 301
    [2.112][2.112:198]()
    { -or => { "buildoutputs.path" => trim($query), "drvpath" => trim($query)} },
    [2.112]
    [2.198]
    { "buildoutputs.path" => trim($query) },
  • edit in src/lib/Hydra/Controller/Root.pm at line 304
    [2.266]
    [3.416]
    $c->stash->{buildsdrv} = [ $c->model('DB::Builds')->search(
    { "drvpath" => trim($query) },
    { order_by => ["id desc"] } ) ];
  • edit in src/root/search.tt at line 3
    [3.1156]
    [3.1156]
    [% matched = 0 %]
    [% BLOCK renderBuildSearch %]
    [% IF builds.size > 0 %]
    <p>The following builds match your query:[% IF builds.size > limit %] <span class="text-warning">(first [% limit %] results only)</span>[% END %]</p>
    [% INCLUDE renderBuildList %]
  • edit in src/root/search.tt at line 14
    [3.1157]
    [3.1157]
    [% END %]
    [% END; %]
  • replacement in src/root/search.tt at line 78
    [2.279][2.279:317]()
    [% IF builds.size > 0; matched = 1 %]
    [2.279]
    [2.317]
    [% INCLUDE renderBuildSearch %]
    [% INCLUDE renderBuildSearch builds=buildsdrv %]
  • replacement in src/root/search.tt at line 81
    [2.318][2.318:468]()
    <p>The following builds match your query:[% IF jobs.size > limit %] <span class="text-warning">(first [% limit %] results only)</span>[% END %]</p>
    [2.318]
    [2.468]
    [% IF builds.size > 0 || buildsdrv.size > 0 ; matched = 1 ; END %]
  • edit in src/root/search.tt at line 83
    [2.469][2.469:501](),[2.501][3.2543:2555](),[3.2543][3.2543:2555]()
    [% INCLUDE renderBuildList %]
    [% END %]
  • replacement in src/root/search.tt at line 84
    [3.2573][3.2573:2648]()
    <div class="alert alert-warn">Sorry! Nothing matches your
    query.</div>
    [3.2573]
    [3.2648]
    <div class="alert alert-warn">Sorry! Nothing matches your query.</div>