List of EPL keywords
The table below lists the reserved words called keywords. EPL keywords are case sensitive. You cannot use keywords as identifiers in EPL programs unless you prefix them with a hash symbol (
#). See
Escaping keywords to use them as identifiers.
The superscript numbers on the keywords indicate:
1 You can safely use these keywords outside the scope of an Apama query without prefixing a hash symbol.
2 You can safely use these keywords outside the scope of a stream query without prefixing a hash symbol.
For example, suppose you define the E event type and it has a field named parameters. If you intend to use E as an input event for a query and want to access the parameters field, then you must specify #parameters as the field name. Apama recommends that you avoid defining events that are primarily for queries and that contain query keywords.
action | aggregate | all | and |
as | at | between1 | boolean |
bounded | break | by2 | call |
catch | chunk | completed | constant |
context | continue | currentTime | day1 |
days1 | decimal | dictionary | die |
else | emit | enqueue | event |
every 1 and 2 | false | find1 | float |
for | from | group2 | having1 and 2 |
hour1 | hours1 | if | import |
in | inputs11 | integer | join2 |
key1 | largest2 | location | log |
millisecond1 | milliseconds1 | min1 | minute1 |
minutes1 | monitor | msec1 | new |
not | on | optional | or |
package | parameters1 | partition2 | persistent |
print | query1 | retain1 and 2 | return |
returns | route | rstream2 | sec1 |
second1 | seconds1 | select1 and 2 | send |
sequence | smallest2 | spawn | static |
stream | streamsource | string | then |
throw | to | true | try |
unbounded | unique2 | unmatched | using |
wait | where1 and 2 | while | wildcard |
with2 | within | without1 | xor |
Some reserved keywords are actually operators. Nevertheless, the restriction still applies. Some Apama tools, such as the Event Modeler, generate code based on EPL and in such code there might be symbols that resemble identifiers but contain hash (#) characters, which are not allowed in identifiers. These "identifiers" are placeholders that are later replaced with valid identifiers that do not contain the hash character.
The string join() method is still supported. That is, you can still use the following and you do not receive a warning: string.join(). Also, note that the join keyword has a stream query scope and join is also a reserved word for use outside stream queries in a future release.
Note that ondie, onload, onunload onBeginRecovery, and onConcludeRecovery are not reserved keywords. They are the names of special actions. While you can use them as identifiers, doing so is not recommended.