Skip to content

Commit cfabb78

Browse files
authored
Merge pull request #777 from tianlu-root/master
fix: variable ignore case bug fix
2 parents d061495 + 6c2e19d commit cfabb78

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

data-providers/src/main/java/datart/data/provider/calcite/SqlVariableVisitor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.calcite.sql.*;
2525
import org.apache.calcite.sql.util.SqlBasicVisitor;
2626
import org.apache.commons.collections4.CollectionUtils;
27+
import org.apache.commons.lang3.StringUtils;
2728

2829
import java.util.*;
2930

@@ -131,6 +132,9 @@ private void createVariablePlaceholders(SqlCall logicExpressionCall, Set<SqlIden
131132
if (variable != null) {
132133
variables.add(variable);
133134
}
135+
if (!StringUtils.containsIgnoreCase(originalSqlFragment, identifier.toString())) {
136+
variablePlaceholders.add(new SimpleVariablePlaceholder(variable, sqlDialect, identifier.toString()));
137+
}
134138
}
135139
variablePlaceholders.add(new VariablePlaceholder(variables, sqlDialect, logicExpressionCall, originalSqlFragment));
136140
}

data-providers/src/main/java/datart/data/provider/jdbc/SqlScriptRender.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,10 @@ public String replaceVariables(String selectSql) throws SqlParseException {
169169
if (CollectionUtils.isNotEmpty(placeholders)) {
170170
for (VariablePlaceholder placeholder : placeholders) {
171171
ReplacementPair replacementPair = placeholder.replacementPair();
172-
selectSql = selectSql.replace(replacementPair.getPattern(), replacementPair.getReplacement());
172+
selectSql = StringUtils.replaceIgnoreCase(selectSql,replacementPair.getPattern(),replacementPair.getReplacement());
173173
}
174174
}
175+
175176
return selectSql;
176177
}
177178

0 commit comments

Comments
 (0)