Query:
separate multiple queries with semi-colon (";") -> database schema (fields, tables, constraints)


#--------#--------#--------#--------
# get bug details for a given bug

SELECT DISTINCT
  BUG.bug_id, 
  PROD.name as PNAME, CMP.name as CNAME, 
  PROF.userid, PROF.realname, 
  BUG.short_desc, 
  BUG.priority, BUG.bug_severity, 
  BUG.bug_status, BUG.resolution, 
  BUG.creation_ts, BUG.lastdiffed, 
  BUG.version, BUG.target_milestone, BUG.votes 
FROM 
  bugs as BUG, 
  profiles as PROF, 
  products as PROD, 
  components as CMP
WHERE 
  BUG.reporter = PROF.userid AND 
  CMP.id = BUG.component_id AND 
  PROD.id = BUG.product_id AND 
  BUG.bug_id = 61639

#--------#--------#--------#--------
# get activity (changes) for a given bug
# fielddefs gives field names/descs

SELECT DISTINCT 
  ACT.bug_when, PROF.realname, 
  FLD.name, FLD.description, 
  ACT.removed, ACT.added
FROM 
  bugs as BUG,
  bugs_activity as ACT,
  profiles as PROF, 
  fielddefs as FLD
WHERE 
  ACT.who = PROF.userid AND 
  FLD.fieldid = ACT.fieldid AND
  BUG.bug_id = ACT.bug_id AND 
  BUG.bug_id = 61639
ORDER BY
  bug_when
ASC

#--------#--------#--------#--------
# get text (Description / Add. Comments) for a given bug

SELECT DISTINCT
  PROF.realname, TXT.bug_when, TXT.thetext
FROM 
  bugs as BUG, 
  profiles as PROF, 
  longdescs as TXT 
WHERE 
  TXT.who = PROF.userid AND 
  BUG.bug_id = TXT.bug_id AND 
  BUG.bug_id = 61639
ORDER BY
  bug_when
ASC

#--------#--------#--------#--------
# get committer name for a given id, from activity

SELECT DISTINCT
  PROF.userid, PROF.realname
FROM 
  profiles as PROF, 
  bugs_activity as ACT
WHERE 
  ACT.who = PROF.userid AND 
  ACT.who = 2253

#--------#--------#--------#--------
# get committers' id, email, and real name for a given bug

SELECT DISTINCT
  PROF.userid, PROF.login_name, PROF.realname 
FROM 
  bugs as BUG, 
  profiles as PROF, 
  longdescs as TXT 
WHERE 
  TXT.who = PROF.userid AND 
  BUG.bug_id = TXT.bug_id AND 
  BUG.bug_id = 108470;

#--------#--------#--------#--------
# get committer name for a given id, from comments

SELECT DISTINCT
  PROF.userid, PROF.realname
FROM 
  profiles as PROF, 
  longdescs as TXT 
WHERE 
  TXT.who = PROF.userid AND 
  TXT.who = 2253

#--------#--------#--------#--------
# get committer name for a given id, from bug

SELECT DISTINCT
  PROF.userid, PROF.realname
FROM 
  profiles as PROF, 
  bugs as BUG
WHERE 
  BUG.reporter = PROF.userid AND 
  BUG.reporter = 2253

#--------#--------#--------#--------
# get bugs for a given project and priority

SELECT DISTINCT
  BUG.bug_id, PROD.name,
  BUG.priority, BUG.bug_severity, 
  BUG.bug_status, BUG.resolution, 
  BUG.creation_ts, BUG.lastdiffed, 
  BUG.version
FROM 
  bugs as BUG, 
  profiles as PROF, 
  products as PROD, 
  components as CMP
WHERE 
  BUG.reporter = PROF.userid AND 
  CMP.id = BUG.component_id AND 
  PROD.id = BUG.product_id AND 
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND
  BUG.priority ='P1'
ORDER BY
  BUG.bug_id
DESC

#--------#--------#--------#--------
# count of bugs entered between two dates
# for a given product

SELECT DISTINCT
  count(BUG.bug_id) AS CNT
FROM 
  bugs as BUG, 
  products as PROD 
WHERE 
  PROD.id = BUG.product_id AND 
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND
  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'

#--------#--------#--------#--------
# count of P1 bugs entered between two dates 
# unresolved and unfixed, for a given product

SELECT DISTINCT
  count(BUG.bug_id) AS CNT
FROM 
  bugs as BUG, 
  products as PROD 
WHERE 
  PROD.id = BUG.product_id AND 
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND
  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'
    AND (BUG.bug_status != 'RESOLVED' AND
      BUG.resolution != 'FIXED')
    AND BUG.priority = 'P1'

#--------#--------#--------#--------
# count of bugs marked Fixed or Resolved 
# between two dates, for a given product

SELECT DISTINCT 
   count(BUG.bug_id) as CNT
FROM 
  bugs as BUG,
  bugs_activity as ACT,
  products as PROD, 
  fielddefs as FLD
WHERE 
  FLD.fieldid = ACT.fieldid AND
  PROD.id = BUG.product_id AND 
  BUG.bug_id = ACT.bug_id AND 
  ACT.bug_when >= '2004-07-01' AND
  ACT.bug_when <= '2005-07-07' AND
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND
    ( (FLD.description = 'Resolution' AND 
       ACT.added = 'FIXED') OR
      (FLD.description = 'Status' AND 
       ACT.added = 'RESOLVED') 
    )

#--------#--------#--------#--------
# get list of bugs changed to a status of closed, 
# resolved, verified, etc. within a given timeframe

SELECT DISTINCT 
  BUG.bug_id,  BUG.short_desc, BUG.priority,
  BUG.bug_severity, BUG.bug_status, BUG.resolution,
  BUG.lastdiffed
FROM 
  bugs as BUG,
  bugs_activity as ACT,
  products as PROD, 
  fielddefs as FLD
WHERE 
  FLD.fieldid = ACT.fieldid AND
  PROD.id = BUG.product_id AND 
  BUG.bug_id = ACT.bug_id AND 
  ACT.bug_when >= '2004-07-01' AND 
    ACT.bug_when <= '2005-07-07' AND
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND
    ( (FLD.description = 'Resolution' AND 
        ACT.added = 'FIXED') OR
      (FLD.description = 'Resolution' AND 
        ACT.added = 'INVALID') OR
      (FLD.description = 'Resolution' AND 
        ACT.added = 'WONTFIX') OR
      (FLD.description = 'Resolution' AND 
        ACT.added = 'WORKSFORME') OR
      (FLD.description = 'Status' AND 
        ACT.added = 'RESOLVED') OR
      (FLD.description = 'Status' AND 
        ACT.added = 'VERIFIED') OR
      (FLD.description = 'Status' AND 
        ACT.added = 'CLOSED') 
    )
ORDER BY
  lastdiffed
DESC

#--------#--------#--------#--------
# other useful bug contraints for count()

SELECT DISTINCT
  count(BUG.bug_id) AS CNT
FROM 
  bugs as BUG, 
  profiles as PROF, 
  products as PROD, 
  components as CMP
WHERE 
  BUG.reporter = PROF.userid AND 
  CMP.id = BUG.component_id AND 
  PROD.id = BUG.product_id AND 
  (PROD.name = 'EMF' OR PROD.name = 'XSD') AND

...

  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'

  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'
    AND (BUG.bug_status = 'RESOLVED' OR 
      BUG.resolution = 'FIXED')

  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'
    AND BUG.bug_severity = 'critical'

  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'
    AND BUG.bug_severity = 'blocker'

  BUG.creation_ts >= '2004-07-01' 
    AND BUG.creation_ts <= '2005-07-07'
    AND BUG.priority = 'P1'