Param clause

The param clause contains code snippets that are supplied to the operator at invocation time.

For example, the clause param match: Bid.item == Ask.item && Bid.price >= Ask.price; supplies a Boolean expression as the match parameter to an operator, such as Join. At run time, the operator executes the expression whenever needed for its behavior. For each time the operator fires, the expression might execute zero, one, or multiple times; depending on the operator. But if it executes, it executes after the logic clause and before the output clause. Expressions are just one of a total of five kinds of parameter:
  1. A comma-separated list of stream attribute names
  2. A comma-separated list of expressions
  3. A function name
  4. An operator name
  5. A type
The documentation of an operator specifies which parameters it expects, and the compiler checks that the right kind of entity is passed as a parameter. Primitive operators can accept only parameters of the forms 1 and 2 in the list; composite operators can also accept parameters of the forms 3, 4, and 5 in the list.