Skip to content

Commit ac9b827

Browse files
author
Christopher M. Wolff
authored
fix(plan): fix logic bug in planner helper method (#5115)
Fixes #5114.
1 parent b80a613 commit ac9b827

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

libflux/go/libflux/buildinfo.gen.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ var sourceHashes = map[string]string{
581581
"stdlib/universe/simple_max_test.flux": "a63b3f530e4d81451e3c71a1abeea50cff02e743c9313ab3ffd5bc3b3ce9ad2e",
582582
"stdlib/universe/skew_test.flux": "7782d41c563c77ba9f4176fa1b5f4f6107e418b7ea301e4896398dbcb514315a",
583583
"stdlib/universe/sort2_test.flux": "1d2043c0d0b38abb8dc61fc1baa6d6052fae63fea55cc6e67fd1600911513bdb",
584-
"stdlib/universe/sort_limit_test.flux": "c595da9613faf8734932d8c2e63291517b7842b5656f795b32d50e987493ec2a",
584+
"stdlib/universe/sort_limit_test.flux": "32825b6b789c5b3287ae72967687a63fa3fee783e6626426c9b1cc7f39306dc8",
585585
"stdlib/universe/sort_rules_test.flux": "0770ae42e99b04167ca5bef8340a310b224baf1ba1928997273de9663b64684a",
586586
"stdlib/universe/sort_test.flux": "f69ebb5972762078e759af3c1cd3d852431a569dce74f3c379709c9e174bfa31",
587587
"stdlib/universe/spread_test.flux": "1ddf25e4d86b6365da254229fc8f77bd838c24a79e6a08c9c4c50330ace0a6a3",

plan/types.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,8 @@ func mergePlanNodes(top, bottom, merged Node) (Node, error) {
265265
}
266266

267267
merged.AddPredecessors(bottom.Predecessors()...)
268-
for i, pred := range merged.Predecessors() {
269-
for _, succ := range pred.Successors() {
268+
for _, pred := range merged.Predecessors() {
269+
for i, succ := range pred.Successors() {
270270
if succ == bottom {
271271
pred.Successors()[i] = merged
272272
}

stdlib/universe/sort_limit_test.flux

+34
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,37 @@ testcase sort_limit_zero_row_table {
138138

139139
testing.diff(got, want)
140140
}
141+
142+
testcase sort_limit_multi_successor {
143+
input =
144+
array.from(
145+
rows: [
146+
{_time: 2022-01-11T00:00:00Z, _value: 10.0},
147+
{_time: 2022-01-11T01:00:00Z, _value: 12.0},
148+
{_time: 2022-01-11T02:00:00Z, _value: 18.0},
149+
{_time: 2022-01-11T03:00:00Z, _value: 4.0},
150+
{_time: 2022-01-11T04:00:00Z, _value: 8.0},
151+
],
152+
)
153+
in0 =
154+
input
155+
|> bottom(n: 2)
156+
in1 =
157+
input
158+
|> top(n: 2)
159+
got =
160+
union(tables: [in0, in1])
161+
|> sort(columns: ["_time"])
162+
163+
want =
164+
array.from(
165+
rows: [
166+
{_time: 2022-01-11T01:00:00Z, _value: 12.0},
167+
{_time: 2022-01-11T02:00:00Z, _value: 18.0},
168+
{_time: 2022-01-11T03:00:00Z, _value: 4.0},
169+
{_time: 2022-01-11T04:00:00Z, _value: 8.0},
170+
],
171+
)
172+
173+
testing.diff(got: got, want: want)
174+
}

0 commit comments

Comments
 (0)