@@ -62,6 +62,8 @@ def diff_tables(
6262 max_threadpool_size : Optional [int ] = 1 ,
6363 # Algorithm
6464 algorithm : Algorithm = Algorithm .AUTO ,
65+ # An additional 'where' expression to restrict the search space.
66+ where : str = None ,
6567 # Into how many segments to bisect per iteration (hashdiff only)
6668 bisection_factor : int = DEFAULT_BISECTION_FACTOR ,
6769 # When should we stop bisecting and compare locally (in row count; hashdiff only)
@@ -92,6 +94,7 @@ def diff_tables(
9294 max_threadpool_size (int): Maximum size of each threadpool. ``None`` means auto.
9395 Only relevant when `threaded` is ``True``.
9496 There may be many pools, so number of actual threads can be a lot higher.
97+ where (str, optional): An additional 'where' expression to restrict the search space.
9598 algorithm (:class:`Algorithm`): Which diffing algorithm to use (`HASHDIFF` or `JOINDIFF`. Default=`AUTO`)
9699 bisection_factor (int): Into how many segments to bisect per iteration. (Used when algorithm is `HASHDIFF`)
97100 bisection_threshold (Number): Minimal row count of segment to bisect, otherwise download
@@ -106,7 +109,7 @@ def diff_tables(
106109
107110 Note:
108111 The following parameters are used to override the corresponding attributes of the given :class:`TableSegment` instances:
109- `key_columns`, `update_column`, `extra_columns`, `min_key`, `max_key`.
112+ `key_columns`, `update_column`, `extra_columns`, `min_key`, `max_key`, `where` .
110113 If different values are needed per table, it's possible to omit them here, and instead set
111114 them directly when creating each :class:`TableSegment`.
112115
@@ -135,6 +138,7 @@ def diff_tables(
135138 max_key = max_key ,
136139 min_update = min_update ,
137140 max_update = max_update ,
141+ where = where ,
138142 ).items ()
139143 if v is not None
140144 }
0 commit comments