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. */