diff --git a/dqops/src/main/java/com/dqops/execution/sensors/SensorExecutionRunParametersFactoryImpl.java b/dqops/src/main/java/com/dqops/execution/sensors/SensorExecutionRunParametersFactoryImpl.java index 121cae8e3f..a38fc7be9e 100644 --- a/dqops/src/main/java/com/dqops/execution/sensors/SensorExecutionRunParametersFactoryImpl.java +++ b/dqops/src/main/java/com/dqops/execution/sensors/SensorExecutionRunParametersFactoryImpl.java @@ -198,8 +198,12 @@ public TimeWindowFilterParameters makeEffectiveIncrementalFilter( TableSpec tableSpec, TimeSeriesConfigurationSpec timeSeriesConfigurationSpec, TimeWindowFilterParameters userTimeWindowFilters) { + if (userTimeWindowFilters != null && userTimeWindowFilters.hasAnyParametersApplied()) { + return userTimeWindowFilters; + } + if (timeSeriesConfigurationSpec.getMode() == TimeSeriesMode.current_time) { - return userTimeWindowFilters != null ? userTimeWindowFilters : new TimeWindowFilterParameters(); + return new TimeWindowFilterParameters(); } PartitionIncrementalTimeWindowSpec tableTimeWindowSpec = tableSpec.getIncrementalTimeWindow(); diff --git a/dqops/src/main/java/com/dqops/execution/sensors/TimeWindowFilterParameters.java b/dqops/src/main/java/com/dqops/execution/sensors/TimeWindowFilterParameters.java index bcf4dc776c..f96223f55b 100644 --- a/dqops/src/main/java/com/dqops/execution/sensors/TimeWindowFilterParameters.java +++ b/dqops/src/main/java/com/dqops/execution/sensors/TimeWindowFilterParameters.java @@ -191,6 +191,24 @@ public TimeWindowFilterParameters withUserFilters(TimeWindowFilterParameters use return cloned; } + /** + * Detects if any filter parameter is set, so the user did not send an empty filter object. + * If DQOps receives an empty time window, the default time window configured on the table is used. + * @return True when any filters are applied, false when it is an empty (dummy) filter, to be ignored. + */ + public boolean hasAnyParametersApplied() { + return dailyPartitioningRecentDays != null || + dailyPartitioningIncludeToday != null || + monthlyPartitioningRecentMonths != null || + monthlyPartitioningIncludeCurrentMonth != null || + fromDate != null || + fromDateTime != null || + fromDateTimeOffset != null || + toDate != null || + toDateTime != null || + toDateTimeOffset != null; + } + /** * Creates and returns a copy of this object (deep clone). */