Hi Bryan, I think the syntax and definition are both ok, you can keep on it.
Best regards, ---------------------- Yuan Tian On Mon, Jun 1, 2026 at 12:55 PM Bryan Yang <[email protected]> wrote: > Hi Apache IoTDB community, > > > I am working on https://github.com/apache/iotdb/issues/17798. Before > implementation, I would like to clarify the feature definition for FILL > METHOD NEXT. > > > Scope: > > This proposal is only for the table model. Tree model behavior is > unchanged. > > > Syntax: > > FILL METHOD NEXT > > FILL METHOD NEXT TIME_BOUND <interval> > > FILL METHOD NEXT TIME_COLUMN <columnIndex> FILL_GROUP <columnIndex>[, ...] > > FILL METHOD NEXT TIME_BOUND <interval> TIME_COLUMN <columnIndex> > > FILL METHOD NEXT TIME_BOUND <interval> TIME_COLUMN <columnIndex> FILL_GROUP > <columnIndex>[, ...] > > > Semantics: > > FILL METHOD NEXT is a look-ahead fill over the current result sequence. > > > When a column in the current row is null, it is filled with the nearest > non-null value that appears later in the current operator input/result > order. If no such value exists, it remains null. > > > NEXT copies the candidate value directly. It does not interpolate. > > > NEXT follows the operator input/result order. It does not independently > reorder rows by timestamp when searching for the candidate value. > > > Components: > > - TIME_BOUND <interval>: > > The candidate next value is used only when the time difference between > the current row and the candidate row is within the specified bound. > > - TIME_COLUMN <columnIndex>: > > Specifies the helper time column used for TIME_BOUND checking when > needed. Plain FILL METHOD NEXT does not require a helper time column in the > select list. > > - FILL_GROUP <columnIndex>[, ...]: > > Limits the look-ahead search to rows in the same group. Values must not > be filled across group boundaries. > > > Supported data types: > > NEXT should support the same value types as PREVIOUS: > > BOOLEAN, INT32, INT64, FLOAT, DOUBLE, DATE, TIMESTAMP, TEXT, STRING, BLOB, > and OBJECT. > > > Examples: > > > 1. Basic NEXT fill > > > SELECT time, s1 FROM table1 > > FILL METHOD NEXT; > > > If s1 is [null, null, 10, null], the filled result is [10, 10, 10, null]. > > > 2. NEXT with TIME_BOUND > > > SELECT time, s1 FROM table1 > > FILL METHOD NEXT TIME_BOUND 2ms; > > > A null value is filled only if the nearest later non-null value is within > 2ms. > > > 3. NEXT with FILL_GROUP > > > SELECT time, device, s1 FROM table1 > > FILL METHOD NEXT FILL_GROUP 2; > > > The next value is searched only within the same device group. > > > 4. NEXT with TIME_BOUND, TIME_COLUMN, and FILL_GROUP > > > SELECT time, device, s1 FROM table1 > > FILL METHOD NEXT TIME_BOUND 2ms TIME_COLUMN 1 FILL_GROUP 2; > > > The next value is searched only within the same device group, and is used > only if the time difference based on column 1 is within 2ms. > > > Compatibility: > > PREVIOUS, LINEAR, and CONSTANT semantics are unchanged. > > > Does this definition look reasonable? > > > Best, > > Bryan Yang(杨易达) >
