| Event | Timestamp | 
|---|---|
| Event F | 11:59:30 AM | 
| Event G | 12:00:00 PM | 
| Event H | 12:00:10 PM | 
| Event I | 11:59:50 PM | 
| Event | Timestamp | Watermark | 
|---|---|---|
| Event F | 11:59:30 AM | 11:59:20 AM | 
| Event G | 12:00:00 PM | 11:59:50 AM | 
| Event H | 12:00:11 PM | 12:00:01 PM | 
| Event I | 11:59:50 PM | 12:00:01 PM | 
Syntax
Watermarks can be generated directly on sources. The syntax of theWATERMARK clause in RisingWave is as follows:
column_name is a column that is created when generating the source, usually the event time column.
expr specifies the watermark generation strategy. The return type of the watermark must be of type timestamp. A watermark will be updated if the return value is greater than the current watermark.
For example, the watermark generation strategy can be specified as:
- Maximum observed timestamp
 
- Maximum observed timestamp with a delay
 
time_unit values include: second, minute, hour, day, month, and year. For more details, see the interval data type under Overview of data types.
Currently, RisingWave only supports using one of the columns from the table as the watermark column. To use nested fields (e.g., fields in 
STRUCT), or perform expression evaluation on the input rows (e.g., casting data types), please refer to generated columns.Example
The following query generates the watermark as the latest timestamp observed inorder_time minus 5 seconds.