watermarks.py 764 B

1234567891011121314151617181920
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. class Watermarks:
  10. """Holds the minimum and the maximum value expected to be present in a topic, source, table or view"""
  11. def __init__(self, min_watermark: int = 0, max_watermark: int = 0) -> None:
  12. self.min = min_watermark
  13. self.max = max_watermark
  14. def shift(self, delta: int) -> None:
  15. self.min = self.min + delta
  16. self.max = self.max + delta