IDEMPIERE-6194 2Pack must ignore the SIMILAR TO preference from user (#2423)
- make the SIMILAR TO conversion work just for SELECT queries
This commit is contained in:
parent
d1450a5ce0
commit
7a667bc5db
|
|
@ -171,11 +171,16 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert LIKE to SIMILAR TO depending on the user preference P|IsUseSimilarTo - applies just to SELECT queries
|
||||||
|
* @param statement
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private String convertSimilarTo(String statement) {
|
private String convertSimilarTo(String statement) {
|
||||||
String retValue = statement;
|
String retValue = statement;
|
||||||
boolean useSimilarTo = isUseSimilarTo();
|
boolean useSimilarTo = isUseSimilarTo();
|
||||||
if (useSimilarTo) {
|
if (useSimilarTo && statement.matches("(?i)^\\s*SELECT\\b.*")) {
|
||||||
String replacement = "SIMILAR TO";
|
final String replacement = "SIMILAR TO";
|
||||||
try {
|
try {
|
||||||
Matcher m = likePattern.matcher(retValue);
|
Matcher m = likePattern.matcher(retValue);
|
||||||
retValue = m.replaceAll(replacement);
|
retValue = m.replaceAll(replacement);
|
||||||
|
|
@ -188,6 +193,10 @@ public class Convert_PostgreSQL extends Convert_SQL92 {
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the user preference IsUseSimilarTo is set to Y
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private boolean isUseSimilarTo() {
|
private boolean isUseSimilarTo() {
|
||||||
return "Y".equals(Env.getContext(Env.getCtx(), "P|IsUseSimilarTo"));
|
return "Y".equals(Env.getContext(Env.getCtx(), "P|IsUseSimilarTo"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue