This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/master by this push:
new 62c07ca86e Filter "Specify copies" GuiAction if transform doesn't
support it #3439 Disable multi-copy execution support for 4 transforms: - Abort
- Analytic query - Group by - Memory group by
new 90d1b9d58c Merge pull request #3446 from nadment/3439
62c07ca86e is described below
commit 62c07ca86ecdc06a2f297c7b4e7e3a0edaacd059
Author: Nicolas Adment <[email protected]>
AuthorDate: Wed Nov 22 21:04:15 2023 +0100
Filter "Specify copies" GuiAction if transform doesn't support it #3439
Disable multi-copy execution support for 4 transforms:
- Abort
- Analytic query
- Group by
- Memory group by
---
.../java/org/apache/hop/pipeline/transform/BaseTransformMeta.java | 5 +++++
.../java/org/apache/hop/pipeline/transform/ITransformMeta.java | 5 +++++
.../main/java/org/apache/hop/pipeline/transform/TransformMeta.java | 4 ++++
.../java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java | 5 +++++
.../hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java | 5 +++++
.../org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java | 5 +++++
.../hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java | 5 +++++
.../apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java | 7 ++++++-
8 files changed, 40 insertions(+), 1 deletion(-)
diff --git
a/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
b/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
index 7f369d5c6a..7f92b16bdc 100644
---
a/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
+++
b/engine/src/main/java/org/apache/hop/pipeline/transform/BaseTransformMeta.java
@@ -408,6 +408,11 @@ public class BaseTransformMeta<Main extends ITransform,
Data extends ITransformD
return false;
}
+ @Override
+ public boolean supportsMultiCopyExecution() {
+ return true;
+ }
+
/** This method is added to exclude certain transforms from layout checking.
*/
public boolean excludeFromRowLayoutVerification() {
return false;
diff --git
a/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
b/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
index 89406545ca..29b3e0e525 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/transform/ITransformMeta.java
@@ -330,6 +330,11 @@ public interface ITransformMeta {
*/
boolean supportsErrorHandling();
+ /**
+ * @return true if this transform supports multi-copies execution. By
default return true.
+ */
+ boolean supportsMultiCopyExecution();
+
/**
* Get a list of all the resource dependencies that the transform is
depending on.
*
diff --git
a/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
b/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
index 24cabaad87..2c08350171 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/transform/TransformMeta.java
@@ -665,6 +665,10 @@ public class TransformMeta
return null;
}
+ public boolean supportsMultiCopyExecution() {
+ return transform.supportsMultiCopyExecution();
+ }
+
public boolean supportsErrorHandling() {
return transform.supportsErrorHandling();
}
diff --git
a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
index 4b54d16b14..a90cbff925 100644
---
a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
+++
b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
@@ -204,4 +204,9 @@ public class AbortMeta extends BaseTransformMeta<Abort,
AbortData> {
public void setAbortOption(AbortOption abortOption) {
this.abortOption = abortOption;
}
+
+ @Override
+ public boolean supportsMultiCopyExecution() {
+ return false;
+ }
}
diff --git
a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
index d6495cab2f..ca499c10ce 100644
---
a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
+++
b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryMeta.java
@@ -178,4 +178,9 @@ public class AnalyticQueryMeta extends
BaseTransformMeta<AnalyticQuery, Analytic
public void setQueryFields(List<QueryField> queryFields) {
this.queryFields = queryFields;
}
+
+ @Override
+ public boolean supportsMultiCopyExecution() {
+ return false;
+ }
}
diff --git
a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
index 6b6eabc4f9..28940f7360 100644
---
a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
+++
b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByMeta.java
@@ -442,4 +442,9 @@ public class GroupByMeta extends BaseTransformMeta<GroupBy,
GroupByData> {
public void setAggregations(List<Aggregation> aggregations) {
this.aggregations = aggregations;
}
+
+ @Override
+ public boolean supportsMultiCopyExecution() {
+ return false;
+ }
}
diff --git
a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
index 8e38d9265a..55c4ecabe8 100644
---
a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
+++
b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
@@ -475,4 +475,9 @@ public class MemoryGroupByMeta extends
BaseTransformMeta<MemoryGroupBy, MemoryGr
public void setAlwaysGivingBackOneRow(boolean alwaysGivingBackOneRow) {
this.alwaysGivingBackOneRow = alwaysGivingBackOneRow;
}
+
+ @Override
+ public boolean supportsMultiCopyExecution() {
+ return false;
+ }
}
diff --git
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
index dd496538db..0e38652d0b 100644
---
a/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
+++
b/ui/src/main/java/org/apache/hop/ui/hopgui/file/pipeline/HopGuiPipelineGraph.java
@@ -265,6 +265,8 @@ public class HopGuiPipelineGraph extends HopGuiAbstractGraph
"pipeline-graph-transform-10650-rows-copy";
public static final String
ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ROWS_DISTRIBUTE =
"pipeline-graph-transform-10600-rows-distribute";
+ public static final String ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES
=
+ "pipeline-graph-transform-10100-copies";
public static final String ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ERROR_HANDLING
=
"pipeline-graph-transform-10800-error-handling";
public static final String
ACTION_ID_PIPELINE_GRAPH_TRANSFORM_VIEW_EXECUTION_INFO =
@@ -2279,7 +2281,7 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
}
@GuiContextAction(
- id = "pipeline-graph-transform-10100-copies",
+ id = ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES,
parentId = HopGuiPipelineTransformContext.CONTEXT_ID,
type = GuiActionType.Modify,
name = "i18n::HopGuiPipelineGraph.TransformAction.SpecifyCopies.Name",
@@ -2441,6 +2443,9 @@ public class HopGuiPipelineGraph extends
HopGuiAbstractGraph
if (contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ROWS_COPY)) {
return context.getTransformMeta().isDistributes();
}
+ if
(contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_SPECIFY_COPIES)) {
+ return context.getTransformMeta().supportsMultiCopyExecution();
+ }
if
(contextActionId.equals(ACTION_ID_PIPELINE_GRAPH_TRANSFORM_ERROR_HANDLING)) {
return context.getTransformMeta().supportsErrorHandling();
}