blob: ad673ab5822bafe5ca20319233ae27a73a7ecd2a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Searching for Bugs</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Bugzilla Guide - 2.20.1
Release"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bugzilla"
HREF="using.html"><LINK
REL="PREVIOUS"
TITLE="Life Cycle of a Bug"
HREF="lifecycle.html"><LINK
REL="NEXT"
TITLE="Bug Lists"
HREF="list.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide - 2.20.1
Release</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="lifecycle.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Using Bugzilla</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="list.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="query"
>6.5. Searching for Bugs</A
></H1
><P
>The Bugzilla Search page is the interface where you can find
any bug report, comment, or patch currently in the Bugzilla system. You
can play with it here:
<A
HREF="http://landfill.bugzilla.org/bugzilla-tip/query.cgi"
TARGET="_top"
>http://landfill.bugzilla.org/bugzilla-tip/query.cgi</A
>.</P
><P
>The Search page has controls for selecting different possible
values for all of the fields in a bug, as described above. For some
fields, multiple values can be selected. In those cases, Bugzilla
returns bugs where the content of the field matches any one of the selected
values. If none is selected, then the field can take any value.</P
><P
>Once you've run a search, you can save it as a Saved Search, which
appears in the page footer.</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="boolean"
>6.5.1. Boolean Charts</A
></H2
><P
>&#13; Highly advanced querying is done using Boolean Charts.
</P
><P
>&#13; The boolean charts further restrict the set of results
returned by a query. It is possible to search for bugs
based on elaborate combinations of critera.
</P
><P
>&#13; The simplest boolean searches have only one term. These searches
permit the selected left <EM
>field</EM
>
to be compared using a
selectable <EM
>operator</EM
> to a
specified <EM
>value.</EM
>
Using the "And," "Or," and "Add Another Boolean Chart" buttons,
additonal terms can be included in the query, further
altering the list of bugs returned by the query.
</P
><P
>&#13; There are three fields in each row of a boolean search.
</P
><P
></P
><UL
><LI
><P
>&#13; <EM
>Field:</EM
>
the items being searched
</P
></LI
><LI
><P
>&#13; <EM
>Operator:</EM
>
the comparison operator
</P
></LI
><LI
><P
>&#13; <EM
>Value:</EM
>
the value to which the field is being compared
</P
></LI
></UL
><DIV
CLASS="section"
><H3
CLASS="section"
><A
NAME="pronouns"
>6.5.1.1. Pronoun Substitution</A
></H3
><P
>&#13; Sometimes, a query needs to compare a field containing
a user's ID (such as ReportedBy) with
a user's ID (such as the user running the query or the user
to whom each bug is assigned). When the operator is either
"equals" or "notequals", the value can be "%reporter%",
"%assignee%", "%qacontact%", or "%user%." The user pronoun
referes to the user who is executing the query or, in the case
of whining reports, the user who will be the recipient
of the report. The reporter, assignee, and qacontact
pronouns refer to the corresponding fields in the bug.
</P
></DIV
><DIV
CLASS="section"
><H3
CLASS="section"
><A
NAME="negation"
>6.5.1.2. Negation</A
></H3
><P
>&#13; At first glance, negation seems redundant. Rather than
searching for
<A
NAME="AEN2277"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; NOT("summary" "contains the string" "foo"),
</P
></BLOCKQUOTE
>
one could search for
<A
NAME="AEN2279"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; ("summary" "does not contain the string" "foo").
</P
></BLOCKQUOTE
>
However, the search
<A
NAME="AEN2281"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; ("CC" "does not contain the string" "@mozilla.org")
</P
></BLOCKQUOTE
>
would find every bug where anyone on the CC list did not contain
"@mozilla.org" while
<A
NAME="AEN2283"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; NOT("CC" "contains the string" "@mozilla.org")
</P
></BLOCKQUOTE
>
would find every bug where there was nobody on the CC list who
did contain the string. Similarly, the use of negation also permits
complex expressions to be built using terms OR'd together and then
negated. Negation permits queries such as
<A
NAME="AEN2285"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; NOT(("product" "equals" "update") OR
("component" "equals" "Documentation"))
</P
></BLOCKQUOTE
>
to find bugs that are neither
in the update product or in the documentation component or
<A
NAME="AEN2287"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; NOT(("commenter" "equals" "%assignee%") OR
("component" "equals" "Documentation"))
</P
></BLOCKQUOTE
>
to find non-documentation
bugs on which the assignee has never commented.
</P
></DIV
><DIV
CLASS="section"
><H3
CLASS="section"
><A
NAME="multiplecharts"
>6.5.1.3. Multiple Charts</A
></H3
><P
>&#13; The terms within a single row of a boolean chart are all
constraints on a single piece of data. If you are looking for
a bug that has two different people cc'd on it, then you need
to use two boolean charts. A search for
<A
NAME="AEN2292"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; ("cc" "contains the string" "foo@") AND
("cc" "contains the string" "@mozilla.org")
</P
></BLOCKQUOTE
>
would return only bugs with "foo@mozilla.org" on the cc list.
If you wanted bugs where there is someone on the cc list
containing "foo@" and someone else containing "@mozilla.org",
then you would need two boolean charts.
<A
NAME="AEN2294"
></A
><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>&#13; First chart: ("cc" "contains the string" "foo@")
</P
><P
>&#13; Second chart: ("cc" "contains the string" "@mozilla.org")
</P
></BLOCKQUOTE
>
The bugs listed will be only the bugs where ALL the charts are true.
</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="lifecycle.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="list.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Life Cycle of a Bug</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bug Lists</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>