Parent
Part of #372 (ADR-0018).
What to build
after(position) pages a query whose order keys are root columns, include the primary key, and are all non-nullable. position is the ordered tuple of those values; position_of(row) reads it; after(row) is sugar. The bound is exclusive. A nullable order key is a build-time error until #394.
Acceptance criteria
Blocked by
Parent
Part of #372 (ADR-0018).
What to build
after(position)pages a query whose order keys are root columns, include the primary key, and are all non-nullable.positionis the ordered tuple of those values;position_of(row)reads it;after(row)is sugar. The bound is exclusive. A nullable order key is a build-time error until #394.Acceptance criteria
after((ts, id)).limit(n)returns the next n matching rows after that position, declared order, exclusive of the position.position_of(row)returns the order-key tuple;after(row)equalsafter(position_of(row)).after+offsetis a build-time error.count()drops the bound. Mutations reject it the same way they rejectlimit/offset.afterbound with typed values. Golden vector pins the shape.count/ mutate verb policy stays: bound dropped / paging keys omitted.Blocked by