Skip to content

Commit ac9f300

Browse files
authored
chore: drop unused columns at is_monotonic methods (#912)
* chore: drop unused columns at is_monotonic methods * fixing mypy
1 parent a2640a2 commit ac9f300

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

‎bigframes/core/blocks.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2429,9 +2429,11 @@ def _is_monotonic(
24292429
block, last_notna_id = self.apply_unary_op(column_ids[0], ops.notnull_op)
24302430
for column_id in column_ids[1:]:
24312431
block, notna_id = block.apply_unary_op(column_id, ops.notnull_op)
2432+
old_last_notna_id = last_notna_id
24322433
block, last_notna_id = block.apply_binary_op(
2433-
last_notna_id, notna_id, ops.and_op
2434+
old_last_notna_id, notna_id, ops.and_op
24342435
)
2436+
block.drop_columns([notna_id, old_last_notna_id])
24352437

24362438
# loop over all columns to check monotonicity
24372439
last_result_id = None
@@ -2443,21 +2445,27 @@ def _is_monotonic(
24432445
column_id, lag_result_id, ops.gt_op if increasing else ops.lt_op
24442446
)
24452447
block, equal_id = block.apply_binary_op(column_id, lag_result_id, ops.eq_op)
2448+
block = block.drop_columns([lag_result_id])
24462449
if last_result_id is None:
24472450
block, last_result_id = block.apply_binary_op(
24482451
equal_id, strict_monotonic_id, ops.or_op
24492452
)
2450-
continue
2451-
block, equal_monotonic_id = block.apply_binary_op(
2452-
equal_id, last_result_id, ops.and_op
2453-
)
2454-
block, last_result_id = block.apply_binary_op(
2455-
equal_monotonic_id, strict_monotonic_id, ops.or_op
2456-
)
2453+
block = block.drop_columns([equal_id, strict_monotonic_id])
2454+
else:
2455+
block, equal_monotonic_id = block.apply_binary_op(
2456+
equal_id, last_result_id, ops.and_op
2457+
)
2458+
block = block.drop_columns([equal_id, last_result_id])
2459+
block, last_result_id = block.apply_binary_op(
2460+
equal_monotonic_id, strict_monotonic_id, ops.or_op
2461+
)
2462+
block = block.drop_columns([equal_monotonic_id, strict_monotonic_id])
24572463

24582464
block, monotonic_result_id = block.apply_binary_op(
24592465
last_result_id, last_notna_id, ops.and_op # type: ignore
24602466
)
2467+
if last_result_id is not None:
2468+
block = block.drop_columns([last_result_id, last_notna_id])
24612469
result = block.get_stat(monotonic_result_id, agg_ops.all_op)
24622470
self._stats_cache[column_name].update({op_name: result})
24632471
return result

0 commit comments

Comments
 (0)