[
https://issues.apache.org/jira/browse/METAMODEL-136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14517076#comment-14517076
]
ASF GitHub Bot commented on METAMODEL-136:
------------------------------------------
Github user albertostratio commented on a diff in the pull request:
https://github.com/apache/metamodel/pull/21#discussion_r29246239
--- Diff:
mongodb/src/main/java/org/apache/metamodel/mongodb/MongoDbDataContext.java ---
@@ -435,6 +441,19 @@ private String getOperatorName(FilterItem item) {
return operatorName;
}
+ private Pattern turnOperandIntoRegExp(Object operand) {
+ String operandAsString = operand.toString();
+ StringBuilder operandAsRegExp = new
StringBuilder(replaceWildCardLikeChars(operandAsString));
+ if (!operandAsString.startsWith("%") &&
operandAsString.contains("%")) {
+ operandAsRegExp = operandAsRegExp.insert(0, "^");
+ }
+ return Pattern.compile(operandAsRegExp.toString(),
Pattern.CASE_INSENSITIVE);
+ }
+
+ private String replaceWildCardLikeChars(String operand) {
+ return operand.replace("%","");
--- End diff --
Yes, you are right, is just removing the %. I think we don't need to add
more complexity to the regular expression, when we'd receive a string like
'%MALE%' we just need to create a pattern like this (removing the %):
```
Pattern j = Pattern.compile("MALE", Pattern.CASE_INSENSITIVE);
```
Whereas when we'd receive a string like 'MALE%' the pattern should be
(removing % and prepend ^):
```
Pattern j = Pattern.compile("^MALE", Pattern.CASE_INSENSITIVE);
```
I think these are the only cases we should care about. Both are working
fine as tested in the test I've added.
What do you think?
> LIKE operator not supported in MongoDB module
> ---------------------------------------------
>
> Key: METAMODEL-136
> URL: https://issues.apache.org/jira/browse/METAMODEL-136
> Project: Apache MetaModel
> Issue Type: Bug
> Affects Versions: 4.3.2
> Reporter: Alberto
>
> The LIKE operator has not been included in the list of available operators.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)