Updated at July 17, 2026 02:08 PM
sequence_object:next()
sequence_object method sequence_object:next()
Generate the next value and return it.
The generation algorithm is simple:
- If this is the first time, then return the STARTS WITH value.
- If the previous value plus the INCREMENT value is less than the
MINIMUM value or greater than the MAXIMUM value, that is "overflow",
so either raise an error (if
cycle=false) or return the MAXIMUM value (ifcycle=trueandstep< 0) or return the MINIMUM value (ifcycle=trueandstep> 0).
If there was no error, then save the returned result, it is now the "previous value".
For example, suppose sequence 'S' has:
min== -6,max== -1,step== -3,start= -2,cycle= true,- previous value = -2.
Then box.sequence.S:next() returns -5 because -2 + (-3) == -5.
Then box.sequence.S:next() again returns -1 because -5 + (-3) < -6,
which is overflow, causing cycle, and max == -1.
This function requires a 'write' privilege on the sequence.