Function: changeSetIsDescendantOf()

changeSetIsDescendantOf(changeSet, options?): (eb) => ExpressionWrapper<LixDatabaseSchema, "change_set", SqlBool>

Filters change sets that are descendants of the given change set.

By default, this is exclusive, meaning it returns only change sets strictly after the provided change set in the graph.

Traverses the change_set_edge graph recursively, starting from the provided change set (or its children if exclusive), and returns all change sets reachable via child edges.

This filter is useful for finding changes made after a specific point in time (e.g., a checkpoint).

⚠️ This filter only defines the traversal scope — it does not filter changes directly.

--- Options ---

  • includeSelf: If true, includes the starting changeSet in the results. Defaults to false.
  • depth: Limits the traversal depth. depth: 1 selects only immediate children (if exclusive) or the starting node and its immediate children (if includeSelf is true).

--- Examples ---

Parameters

changeSet

Pick<ChangeSet, "id">

options?

depth?

number

includeSelf?

boolean

Returns

(eb): ExpressionWrapper<LixDatabaseSchema, "change_set", SqlBool>

Parameters

eb

ExpressionBuilder<LixDatabaseSchema, "change_set">

Returns

ExpressionWrapper<LixDatabaseSchema, "change_set", SqlBool>

Examples

db.selectFrom("change_set")
  .where(changeSetIsDescendantOf({ id: "cs1" }))
  .selectAll()
// Select all change sets between startPoint and endPoint (inclusive)
db.selectFrom("change_set")
  .where(changeSetIsDescendantOf({ id: "startPoint" }))
  .where(changeSetIsAncestorOf({ id: "endPoint" }))
  .selectAll()