mirror of
https://github.com/kestra-io/kestra.git
synced 2025-12-25 11:12:12 -05:00
Compare commits
1 Commits
feat/simul
...
fix/filter
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f1cd3d69e |
@@ -181,7 +181,7 @@ public abstract class AbstractExecutionRepositoryTest {
|
||||
Arguments.of(QueryFilter.builder().field(Field.LABELS).value(Map.of("key", "value")).operation(Op.EQUALS).build(), 1),
|
||||
Arguments.of(QueryFilter.builder().field(Field.FLOW_ID).value(FLOW).operation(Op.EQUALS).build(), 15),
|
||||
Arguments.of(QueryFilter.builder().field(Field.START_DATE).value(ZonedDateTime.now().minusMinutes(1)).operation(Op.GREATER_THAN).build(), 28),
|
||||
Arguments.of(QueryFilter.builder().field(Field.END_DATE).value(ZonedDateTime.now().plusMinutes(1)).operation(Op.LESS_THAN).build(), 28),
|
||||
Arguments.of(QueryFilter.builder().field(Field.END_DATE).value(ZonedDateTime.now().plusMinutes(1)).operation(Op.LESS_THAN).build(), 23),
|
||||
Arguments.of(QueryFilter.builder().field(Field.STATE).value(Type.RUNNING).operation(Op.EQUALS).build(), 5),
|
||||
Arguments.of(QueryFilter.builder().field(Field.TRIGGER_EXECUTION_ID).value("executionTriggerId").operation(Op.EQUALS).build(), 28),
|
||||
Arguments.of(QueryFilter.builder().field(Field.CHILD_FILTER).value(ChildFilter.CHILD).operation(Op.EQUALS).build(), 28)
|
||||
|
||||
@@ -302,12 +302,16 @@ public abstract class AbstractJdbcExecutionRepository extends AbstractJdbcReposi
|
||||
.from(this.jdbcRepository.getTable())
|
||||
.where(this.defaultFilter(tenantId, false))
|
||||
.and(NORMAL_KIND_CONDITION);
|
||||
|
||||
select = this.filter(select, filters, "start_date", Resource.EXECUTION);
|
||||
|
||||
select = this.filter(select, filters, this::getDateColumn, QueryFilter.Resource.EXECUTION);
|
||||
|
||||
return select;
|
||||
}
|
||||
|
||||
protected String getDateColumn(QueryFilter filter) {
|
||||
return filter.field() == QueryFilter.Field.END_DATE ? "end_date" : "start_date";
|
||||
}
|
||||
|
||||
private SelectConditionStep<Record1<Object>> findSelect(
|
||||
DSLContext context,
|
||||
@Nullable String query,
|
||||
|
||||
@@ -596,7 +596,7 @@ public abstract class AbstractJdbcFlowRepository extends AbstractJdbcRepository
|
||||
@SuppressWarnings("unchecked")
|
||||
private <R extends Record, E> SelectConditionStep<R> getFindFlowSelect(String tenantId, List<QueryFilter> filters, DSLContext context, List<Field<Object>> additionalFieldsToSelect) {
|
||||
var select = this.fullTextSelect(tenantId, context, additionalFieldsToSelect != null ? additionalFieldsToSelect : List.of());
|
||||
select = this.filter(select, filters, null, Resource.FLOW);
|
||||
select = this.filter(select, filters, unused -> null, Resource.FLOW);
|
||||
return (SelectConditionStep<R>) select;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ public abstract class AbstractJdbcLogRepository extends AbstractJdbcRepository i
|
||||
.where(this.defaultFilter(tenantId))
|
||||
.and(NORMAL_KIND_CONDITION);
|
||||
|
||||
select = this.filter(select, filters, "timestamp", Resource.LOG);
|
||||
select = this.filter(select, filters, unused -> "timestamp", Resource.LOG);
|
||||
|
||||
return this.jdbcRepository.fetchPage(context, select, pageable);
|
||||
});
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.time.Duration;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static io.kestra.core.utils.NamespaceUtils.SYSTEM_FLOWS_DEFAULT_NAMESPACE;
|
||||
@@ -243,7 +244,7 @@ public abstract class AbstractJdbcRepository {
|
||||
protected <T extends Record> SelectConditionStep<T> filter(
|
||||
SelectConditionStep<T> select,
|
||||
List<QueryFilter> filters,
|
||||
String dateColumn,
|
||||
Function<QueryFilter, String> dateColumn,
|
||||
Resource resource
|
||||
) {
|
||||
if (filters != null) {
|
||||
@@ -252,7 +253,7 @@ public abstract class AbstractJdbcRepository {
|
||||
QueryFilter.Field field = filter.field();
|
||||
QueryFilter.Op operation = filter.operation();
|
||||
Object value = filter.value();
|
||||
select = getConditionOnField(select, field, value, operation, dateColumn);
|
||||
select = getConditionOnField(select, field, value, operation, dateColumn.apply(filter));
|
||||
}
|
||||
}
|
||||
return select;
|
||||
@@ -260,7 +261,7 @@ public abstract class AbstractJdbcRepository {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param dateColumn the JDBC column name of the logical date to filter on with {@link io.kestra.core.models.QueryFilter.Field#START_DATE} and/or {@link QueryFilter.Field#END_DATE}
|
||||
* @param dateColumn the JDBC column name of the logical date to filter on with {@link QueryFilter.Field#START_DATE} and/or {@link QueryFilter.Field#END_DATE}
|
||||
*/
|
||||
protected <T extends Record> SelectConditionStep<T> getConditionOnField(
|
||||
SelectConditionStep<T> select,
|
||||
|
||||
@@ -305,7 +305,7 @@ public abstract class AbstractJdbcTriggerRepository extends AbstractJdbcReposito
|
||||
.from(this.jdbcRepository.getTable())
|
||||
.where(this.defaultFilter(tenantId));
|
||||
|
||||
return filter(select, filters, "next_execution_date", Resource.TRIGGER);
|
||||
return filter(select, filters, unused -> "next_execution_date", Resource.TRIGGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user