This is an automated email from the ASF dual-hosted git repository.
linxinyuan pushed a commit to branch xinyuan-loop-feb
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/xinyuan-loop-feb by this push:
new 44fc0e795b update
44fc0e795b is described below
commit 44fc0e795bc02d064c3e517bd0004615bbd7fa6d
Author: Xinyuan Lin <[email protected]>
AuthorDate: Wed Feb 11 02:06:12 2026 -0800
update
---
.../amber/engine/architecture/scheduling/Schedule.scala | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/scheduling/Schedule.scala
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/scheduling/Schedule.scala
index c4b9c34c6c..20f2994221 100644
---
a/amber/src/main/scala/org/apache/texera/amber/engine/architecture/scheduling/Schedule.scala
+++
b/amber/src/main/scala/org/apache/texera/amber/engine/architecture/scheduling/Schedule.scala
@@ -19,10 +19,14 @@
package org.apache.texera.amber.engine.architecture.scheduling
+import org.apache.texera.amber.core.executor.OpExecWithClassName
+import org.apache.texera.amber.operator.loop.LoopEndOpDesc
+import org.apache.texera.amber.util.JSONUtils.objectMapper
+
case class Schedule(private val levelSets: Map[Int, Set[Region]]) extends
Iterator[Set[Region]] {
private var currentLevel = levelSets.keys.minOption.getOrElse(0)
private var loopStartLevel = currentLevel
- private var i = 0
+ private var i = 1
def getRegions: List[Region] = levelSets.values.flatten.toList
@@ -37,10 +41,14 @@ case class Schedule(private val levelSets: Map[Int,
Set[Region]]) extends Iterat
def loopNext(): Set[Region] = {
val regions = levelSets(currentLevel)
-
if(regions.exists(_.getOperators.exists(_.id.logicalOpId.id.startsWith("LoopEnd-operator-")))
&& i < 5) {
- currentLevel = loopStartLevel
- i+=1
+
+
if(regions.exists(_.getOperators.exists(_.id.logicalOpId.id.startsWith("LoopEnd-operator-"))))
{
+ if (i <
objectMapper.readValue(regions.head.getOperators.head.opExecInitInfo.asInstanceOf[OpExecWithClassName].descString,
classOf[LoopEndOpDesc]).iteration) {
+ currentLevel = loopStartLevel
+ i+=1
+ }
}
+
currentLevel += 1
regions
}