Smoke Query Language (Smoquel)

The Smoke Query Language or Smoquel was designed as an irc-bot interface to the smoke database where parsed versions of smoke-reports are stored.

The {patchlevel} and last smoqueries gather information about the different attributes of smoke reports so that they can be transferred to SQL. The result of a smoquery is a single smoke-report that qualifies as the last. This is the report with the highest changenumber (patchlevel), that came last in the newsgroup (has the highest articlenumber).

The language is parsed by a Parse::RecDescent parser and has basically five (5) production-rules. Most keywords have one or more alternatives (see table below).

I run a webface for Smoquel to smoquery the smoke database from your browser.

The basic production rules for Smoquel 5

[show] version
Shows the version of the agent and the language.
[show] list os|arch|cc
Shows a list of known operating systems, acrchitectures or compilers.
[show] id {report_id}
Show a report by its report_id as used on the nntp gateway(new window)
[show] {patchlevel} [[to] pass|fail] [[for] <os>[ <osver>]] [on <arch>] [from <smoker>] [using <cc>]
Show "the last" report of patchlevel that matches the criteria specified.
[show] [the] last [blead|maint|any|{pversion}] [before|after {patchlevel}] [[to] pass|fail] [test <testname>] [[for] <os>[ <osver>]] [on <arch>] [from <smoker>] [using <compiler>]
Show "the last" report that matches the criteria specified.

Phrases in [ ] are optional. Words in < > are MySQL regexen. Words in { } are (version)numbers.

Smoquel keywords and their alternatives
showwhat is, what's, whats
cc (with list)
ossen, osses
architecture, architectures, archs, hw
compiler, compilers, ccs
blead, maint, anybleadperl, maintperl, anyperl
before, after<, >
to (with status)that
passed, passes, succeed, succeeds, succeded, ok
failed, fails, nok
onhaving, hw
usingcc, compiler

Examples of Smoquries

{patchlevel} smoquery
  • 24263 for solaris on x86
  • 24309 for hp-ux
  • 24309 for hp-ux by merijn
last smoquery
  • last
  • last for hp-ux
  • what is the last bleadperl before 24271 that passed using xlc
  • last to pass test 105oneshot-deflate.t for linux 2.6 on ppc by ztreet