Compare commits

...

1 Commits

Author SHA1 Message Date
Florian Hussonnois
6f1cd3d69e fix(core): fix search lookup for endDate field 2025-07-24 20:22:22 +02:00
6 changed files with 14 additions and 9 deletions

View File

@@ -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)

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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);
});

View File

@@ -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,

View File

@@ -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