This is an automated email from the ASF dual-hosted git repository.

linxinyuan pushed a commit to branch xinyuan-support-mutilink
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/xinyuan-support-mutilink by 
this push:
     new 452d7d609a update
452d7d609a is described below

commit 452d7d609a476a08eb31cba6c4b8cbc637205e55
Author: Xinyuan Lin <[email protected]>
AuthorDate: Sat Mar 28 23:09:10 2026 -0700

    update
---
 ...xample] Data Exploration on Movies Dataset.json | 25 ----------------------
 .../workflow-editor/workflow-editor.component.ts   |  2 +-
 .../validation/validation-workflow.service.ts      | 13 +++--------
 .../model/workflow-action.service.ts               |  5 +----
 4 files changed, 5 insertions(+), 40 deletions(-)

diff --git a/bin/single-node/examples/workflows/[Example] Data Exploration on 
Movies Dataset.json b/bin/single-node/examples/workflows/[Example] Data 
Exploration on Movies Dataset.json
index 3e9f99c613..9144958b09 100644
--- a/bin/single-node/examples/workflows/[Example] Data Exploration on Movies 
Dataset.json      
+++ b/bin/single-node/examples/workflows/[Example] Data Exploration on Movies 
Dataset.json      
@@ -17,7 +17,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -40,7 +39,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -49,7 +47,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -79,7 +76,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -88,7 +84,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -115,7 +110,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -124,7 +118,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -147,7 +140,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -156,7 +148,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -183,7 +174,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -192,7 +182,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -215,7 +204,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -224,7 +212,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -250,7 +237,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -259,7 +245,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -292,7 +277,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": true,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -301,7 +285,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -332,7 +315,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -341,7 +323,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -371,7 +352,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -380,7 +360,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -404,7 +383,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -413,7 +391,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
@@ -437,7 +414,6 @@
         {
           "portID": "input-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false,
           "dependencies": []
         }
@@ -446,7 +422,6 @@
         {
           "portID": "output-0",
           "displayName": "",
-          "allowMultiInputs": false,
           "isDynamicPort": false
         }
       ],
diff --git 
a/frontend/src/app/workspace/component/workflow-editor/workflow-editor.component.ts
 
b/frontend/src/app/workspace/component/workflow-editor/workflow-editor.component.ts
index 6255560108..a7d3e60900 100644
--- 
a/frontend/src/app/workspace/component/workflow-editor/workflow-editor.component.ts
+++ 
b/frontend/src/app/workspace/component/workflow-editor/workflow-editor.component.ts
@@ -827,7 +827,7 @@ export class WorkflowEditorComponent implements OnInit, 
AfterViewInit, OnDestroy
       .pipe(untilDestroyed(this))
       .subscribe(elementView => {
         if 
(this.workflowActionService.getTexeraGraph().hasOperator(elementView.model.id.toString()))
 {
-          this.workflowActionService.addPort(elementView.model.id.toString(), 
true, false);
+          this.workflowActionService.addPort(elementView.model.id.toString(), 
true);
         }
       });
     fromJointPaperEvent(this.paper, "element:add-output-port")
diff --git 
a/frontend/src/app/workspace/service/validation/validation-workflow.service.ts 
b/frontend/src/app/workspace/service/validation/validation-workflow.service.ts
index 93099888b2..b0cbe176e0 100644
--- 
a/frontend/src/app/workspace/service/validation/validation-workflow.service.ts
+++ 
b/frontend/src/app/workspace/service/validation/validation-workflow.service.ts
@@ -325,16 +325,9 @@ export class ValidationWorkflowService {
     for (let i = 0; i < operator.inputPorts.length; i++) {
       const port = operator.inputPorts[i];
       const portNumInputs = numInputLinksByPort.get(port.portID) ?? 0;
-      if (port.allowMultiInputs) {
-        if (portNumInputs < 1) {
-          satisfyInput = false;
-          inputPortsViolationMessage += `${port.displayName ?? ""} requires at 
least 1 inputs, has ${portNumInputs}`;
-        }
-      } else {
-        if (portNumInputs !== 1) {
-          satisfyInput = false;
-          inputPortsViolationMessage += `${port.displayName ?? ""} requires 1 
input, has ${portNumInputs}`;
-        }
+      if (portNumInputs < 1) {
+        satisfyInput = false;
+        inputPortsViolationMessage += `${port.displayName ?? ""} requires at 
least 1 inputs, has ${portNumInputs}`;
       }
     }
 
diff --git 
a/frontend/src/app/workspace/service/workflow-graph/model/workflow-action.service.ts
 
b/frontend/src/app/workspace/service/workflow-graph/model/workflow-action.service.ts
index 0215f14b7d..a943975176 100644
--- 
a/frontend/src/app/workspace/service/workflow-graph/model/workflow-action.service.ts
+++ 
b/frontend/src/app/workspace/service/workflow-graph/model/workflow-action.service.ts
@@ -236,7 +236,7 @@ export class WorkflowActionService {
     });
   }
 
-  public addPort(operatorID: string, isInput: boolean, allowMultiInputs?: 
boolean): void {
+  public addPort(operatorID: string, isInput: boolean): void {
     const operator = this.texeraGraph.getOperator(operatorID);
     // TODO: use uniform serde to calculate the portID
     const prefix = isInput ? "input-" : "output-";
@@ -261,9 +261,6 @@ export class WorkflowActionService {
     if (!operator.dynamicOutputPorts && !isInput) {
       throw new Error(`operator ${operatorID} does not have dynamic output 
ports`);
     }
-    if (!isInput && allowMultiInputs !== undefined) {
-      throw new Error("error: allowMultiInputs property of an output port 
should not be specified");
-    }
 
     this.texeraGraph.bundleActions(() => {
       // add port to the operator

Reply via email to