The canonical interval decomposition represents an interval as a union of disjoint subintervals. A search tree stores a piecewise constant function represented as a sum of weighted intervals. Each node stores the number of covering intervals, rather than a list. To query the function value at a key, the numbers in nodes on the search path are summed. To update an interval, the numbers in nodes of its canonical decomposition are adjusted.