From 8c2aa382632876cc5bc26f1aceeb46e65cbc8292 Mon Sep 17 00:00:00 2001 From: glegal Date: Mon, 29 Jun 2026 14:57:55 +0200 Subject: [PATCH] feat(sql); handle like filter in sql storage --- .../sis/storage/sql/feature/SelectionClauseWriter.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClauseWriter.java b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClauseWriter.java index 750d6e6095..39c6d1920d 100644 --- a/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClauseWriter.java +++ b/endorsed/src/org.apache.sis.storage.sql/main/org/apache/sis/storage/sql/feature/SelectionClauseWriter.java @@ -43,6 +43,7 @@ import org.opengis.filter.LogicalOperatorName; import org.opengis.filter.ComparisonOperatorName; import org.opengis.filter.BinaryComparisonOperator; +import org.opengis.filter.LikeOperator; import org.opengis.filter.SpatialOperatorName; import org.opengis.filter.BetweenComparisonOperator; import org.opengis.filter.ResourceId; @@ -112,6 +113,14 @@ private SelectionClauseWriter() { sql.invalidate(); } }); + setFilterHandler(ComparisonOperatorName.valueOf(FunctionNames.PROPERTY_IS_LIKE), (f,sql) -> { + final var filter = (LikeOperator) f; + final List> parameters = filter.getExpressions(); + write(sql, parameters.get(0)); + sql.append(" LIKE "); + write(sql, parameters.get(1)); + sql.declareFunction(JDBCType.BOOLEAN); + }); /* * Spatial filters. */