FINDBUG(1)

     NAME
          findbug - find selected defect record IDs

     SYNOPSIS
          findbug [-p project] ... [-u username] ... [-o fieldname] ...
                  [-s] [-e] [-t] [-fqv] [-z] [-NAORVDP] [-k class]
                  [-c | -d | -r | -h | -g ]
                  [expr [op expr] ...]

     DESCRIPTION
          Use findbug to query the ClearDDTS database to answer
          questions such as "What are all the severity 1 bugs?".  The
          options and other command line arguments restrict the search
          of the defect database.  The bug IDs of any bug records
          matching the query are printed on standard out.  Ordinarily,
          the output of findbug is piped to another program such as
          dumpbug(1) or summarybug(1).

          If invoked with no options, findbug will list to standard
          out every bug ID in the system.

          A search of the ClearDDTS database is fast for cached
          keywords.  These cached keywords may be found in the file
          ~ddts/dbms/ddts/schema_file.  The ClearDDTS administrator can
          add additional keywords to this list which will improve
          findbug's performance when searching for those keywords.  If
          entries are added to this list, the defect database must be
          rebuilt with the adminbug(1) dbms command.  See the
          ClearDDTS Administrator's Guide or adminbug(1) for more
          information.

          The command line options select defect record
          characteristics as follows:

          -c   Specifies that the number of qualifying records is only
               to be counted.  When the search is over the total
               number of qualifying record IDs is printed on the
               standard output.  The record IDs themselves are not
               printed.

          -h   Instead of printing record IDs to the standard output,
               print a pretty projects string from the query for use
               with graphbug.

          -g   Instead of printing record IDs to the standard output,
               print a pretty version of the query string for use with
               graphbug.

          -d   Instead of printing record IDs to the standard output,
               print the raw defect data from the ClearDDTS database.
               The output is written in the same format as the raw
               defect record file in ~ddts/allbugs.  Only the fields
               defined in ~ddts/dbms/ddts/schema_file are printed.

          -e   This option specifies that defect records assigned to
               the invoking user are to be listed.  It is the same as
               -u username where username is the login name of the
               invoking user.  If this option is used with the -s
               option, records submitted by the invoking user are
               listed.

          -f   Suppress the printing of the message "No bugs were
               found that match the search criteria" when no match is
               found.

          -k class
               Restrict the search to only those projects that belong
               to class class.  Note that this will produce redundant
               results if also used with the -p project option if the
               project belongs to the same class.

          -o fieldname
               If one or more -o options are used, the query output is
               ordered by the fieldnames.  Default SQL ordering
               (ascending) is used.

          -p project
               If one or more -p options are used, the search is
               restricted to the named projects.  Each project name
               must be preceded by a -p option.  Shell-style patterns
               are supported for project names.  For example, the
               command:

               findbug -N -p lang* -p comp*

               would find all of the New bugs in all projects whose
               names begin with lang or comp.  If such an expression
               is entered from the shell, the pattern characters must
               be escaped or quoted.  Thus, the above example could be
               entered as:

               $ findbug -N -p lang\* -p 'comp*'

          -q   Suppress warning message for specification of a bad
               project name with the -p option.

          -r   Instead of printing record IDs to the standard output,
               print the raw defect record file itself.  This differs
               from the -d option in that all fields and the
               enclosures are written to the standard output, not just
               the fields that are cached.  If per project or per bug
               security has been installed in the ~ddts/etc/ddtsrc
               file, then this option is ignored (its a security
               problem).

          -s   This option changes the meaning of the -u username
               option.  In this case the search is for defect
               submitters with the given username.  For example,

                    findbug -s -u mike

               will find all records on this system submitted by user
               mike.

          -t   This option puts findbug into test mode.  It returns
               the generated SQL string to stdout but does not
               actually run the query.

          -u username
               This restricts the search to defect records assigned to
               a user with login name username.  This may be used with
               other options such as the -p option to find records
               logged against the specified project and assigned to
               the engineer with name username.

          -v   This option prints the class name of the first bug that
               matches the search criteria.  It may not be specified
               unless -d has been specified also.  The option is used
               to give a "hint" about which class of bugs are being
               searched.  This is used for internal ClearDDTS shell
               scripts that need to decide what printing format &
               states are associated with a particular group of bugs.

          -NAORDVP
               Restrict the search to defect records in the specified
               states.  Each individual upper case letter specified
               represents a state that a defect record goes through.
               The letters stand for New, Assigned, Open, Resolved,
               Duplicate, Verified, and Postponed, respectively.  The
               findbug program will also accept any user-defined
               states and will perform searches on the basis of those
               states as well.

          expr Each expr is a relational expression that can be
               combined with other relational expressions by operators
               to direct the search.  Parentheses may also be used to
               give precedence.  These must be escaped or quoted to
               prevent their being interpreted directly by the shell.

               Each expression has three parts: a keyword, a
               relational operator, and a value.  For example:

                    Severity != 1
                    Engineer == mike
                    Software has foobar

               The relational operators have C-like forms and textual
               forms.  The textual form may be used for English-like
               expressions.  Either form of the operator is
               acceptable.  Listed below are the English-like and C-
               like forms.
English-like English-like C-like
isequal
notequal
greaterthan
lessthan
atleast
atmost
has
hasno
is

after
before



==
!=
>
<
>=
<=

               The has and hasno English-like operators above are for
               string comparison.  The after and before operators are
               provided to help make expressions involving dates more
               intelligible.

          op   The logical operators && and || can be used to combine
               expressions, performing the logical AND and OR
               operations.  Care should be taken with using these with
               the shell; they will need to be escaped or quoted.

          -z   This option changes the SQL code generated with the hasno
               and notequal operators.  The resulting SQL query does not
               match fields that have null values, conforming to  SQL
               standards.  Use the -t option to see the SQL code
               generated.

     EXAMPLES
          Find all bugs in the system:

               findbug

          Find all of the open bugs in the system:

               findbug -O

          Find all the bugs on this system which are assigned to mike:

               findbug -u mike

          Find all the bugs in the system that are unresolved (states
          O & A) and assigned to user mike:

               findbug -OA -u mike

          Find all the bugs submitted by user mike on this system:

               findbug -s -u mike

          List all the bugs for project compiler:

               findbug -p compiler

          Find all new and open bugs in projects compiler and kernel:

               findbug -NO -p compiler -p kernel

          Find all open bugs in project compiler with a severity of 1
          or 2:

               findbug -O -p compiler "Severity is 1 || \
               Severity == 2"

               findbug -O -p compiler "Severity <= 2"

          Find all open bugs in project blah with severity of 1 or 2
          assigned to engineer mike:

               findbug -O -p blah "(Severity == 1 || Severity == 2) \
               && Engineer is mike"

          Find all of the resolved bugs in project compiler where the
          string syntax was used in the headline description of the
          bug.

               findbug -R -p compiler "Headline has syntax"

     WARNING
          If you enter these commands to the shell you must escape the
          shell meta characters.  For example:

               % findbug (Severity == 1  || Headline has core)  \
                  && Opened-on < 900101

          will fail if entered as shown above to the shell.  Instead
          this should be entered as:

               % findbug \(Severity == 1 \|\| Headline has core\) \
                 \&\& Opened-on \< 900101

          this will escape the shell meta characters '&', '(', ')',
          and '<'.

     FILES
          ~ddts/dbms/ddts/schema_file List of cached keywords

     SEE ALSO
          bugs(1), dumpbug(1), sortbug(1), summarybug(1)