mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-24 05:44:59 +00:00
SQL: Replace String.format() with LoggerMessageFormat.format() (#37216)
Fixes: #36532
This commit is contained in:
parent
87ac3103f4
commit
5f2fbedd8c
@ -5,10 +5,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.elasticsearch.xpack.sql.jdbc;
|
package org.elasticsearch.xpack.sql.jdbc;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.logging.LoggerMessageFormat;
|
||||||
import org.elasticsearch.test.ESTestCase;
|
import org.elasticsearch.test.ESTestCase;
|
||||||
import org.elasticsearch.xpack.sql.jdbc.EsType;
|
|
||||||
import org.elasticsearch.xpack.sql.jdbc.JdbcConfiguration;
|
|
||||||
import org.elasticsearch.xpack.sql.jdbc.JdbcPreparedStatement;
|
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@ -287,12 +285,12 @@ public class JdbcPreparedStatementTests extends ESTestCase {
|
|||||||
|
|
||||||
Float floatNotInt = 5_155_000_000f;
|
Float floatNotInt = 5_155_000_000f;
|
||||||
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, floatNotInt, Types.INTEGER));
|
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, floatNotInt, Types.INTEGER));
|
||||||
assertEquals(String.format(Locale.ROOT, "Numeric %s out of range",
|
assertEquals(LoggerMessageFormat.format("Numeric {} out of range",
|
||||||
Long.toString(Math.round(floatNotInt.doubleValue()))), sqle.getMessage());
|
Math.round(floatNotInt.doubleValue())), sqle.getMessage());
|
||||||
|
|
||||||
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, floatNotInt, Types.SMALLINT));
|
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, floatNotInt, Types.SMALLINT));
|
||||||
assertEquals(String.format(Locale.ROOT, "Numeric %s out of range",
|
assertEquals(LoggerMessageFormat.format("Numeric {} out of range",
|
||||||
Long.toString(Math.round(floatNotInt.doubleValue()))), sqle.getMessage());
|
Math.round(floatNotInt.doubleValue())), sqle.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSettingDoubleValues() throws SQLException {
|
public void testSettingDoubleValues() throws SQLException {
|
||||||
@ -328,8 +326,8 @@ public class JdbcPreparedStatementTests extends ESTestCase {
|
|||||||
|
|
||||||
Double doubleNotInt = 5_155_000_000d;
|
Double doubleNotInt = 5_155_000_000d;
|
||||||
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, doubleNotInt, Types.INTEGER));
|
sqle = expectThrows(SQLException.class, () -> jps.setObject(1, doubleNotInt, Types.INTEGER));
|
||||||
assertEquals(String.format(Locale.ROOT, "Numeric %s out of range",
|
assertEquals(LoggerMessageFormat.format("Numeric {} out of range",
|
||||||
Long.toString(((Number) doubleNotInt).longValue())), sqle.getMessage());
|
((Number) doubleNotInt).longValue()), sqle.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testUnsupportedClasses() throws SQLException {
|
public void testUnsupportedClasses() throws SQLException {
|
||||||
|
@ -10,7 +10,7 @@ import org.elasticsearch.xpack.sql.ClientSqlException;
|
|||||||
import org.elasticsearch.xpack.sql.tree.Location;
|
import org.elasticsearch.xpack.sql.tree.Location;
|
||||||
import org.elasticsearch.xpack.sql.tree.Node;
|
import org.elasticsearch.xpack.sql.tree.Node;
|
||||||
|
|
||||||
import java.util.Locale;
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class AnalysisException extends ClientSqlException {
|
public class AnalysisException extends ClientSqlException {
|
||||||
|
|
||||||
@ -54,6 +54,6 @@ public class AnalysisException extends ClientSqlException {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return String.format(Locale.ROOT, "line %s:%s: %s", getLineNumber(), getColumnNumber(), super.getMessage());
|
return format("line {}:{}: {}", getLineNumber(), getColumnNumber(), super.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,15 +9,15 @@ import org.elasticsearch.xpack.sql.expression.Expression;
|
|||||||
import org.elasticsearch.xpack.sql.expression.Nullability;
|
import org.elasticsearch.xpack.sql.expression.Nullability;
|
||||||
import org.elasticsearch.xpack.sql.expression.gen.processor.Processor;
|
import org.elasticsearch.xpack.sql.expression.gen.processor.Processor;
|
||||||
import org.elasticsearch.xpack.sql.expression.gen.script.ScriptTemplate;
|
import org.elasticsearch.xpack.sql.expression.gen.script.ScriptTemplate;
|
||||||
import org.elasticsearch.xpack.sql.tree.Source;
|
|
||||||
import org.elasticsearch.xpack.sql.tree.NodeInfo;
|
import org.elasticsearch.xpack.sql.tree.NodeInfo;
|
||||||
|
import org.elasticsearch.xpack.sql.tree.Source;
|
||||||
import org.elasticsearch.xpack.sql.type.DataType;
|
import org.elasticsearch.xpack.sql.type.DataType;
|
||||||
import org.elasticsearch.xpack.sql.type.DataTypeConversion;
|
import org.elasticsearch.xpack.sql.type.DataTypeConversion;
|
||||||
import org.elasticsearch.xpack.sql.type.DataTypes;
|
import org.elasticsearch.xpack.sql.type.DataTypes;
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
import static org.elasticsearch.xpack.sql.expression.gen.script.ParamsBuilder.paramsBuilder;
|
import static org.elasticsearch.xpack.sql.expression.gen.script.ParamsBuilder.paramsBuilder;
|
||||||
|
|
||||||
public class Cast extends UnaryScalarFunction {
|
public class Cast extends UnaryScalarFunction {
|
||||||
@ -86,7 +86,7 @@ public class Cast extends UnaryScalarFunction {
|
|||||||
public ScriptTemplate asScript() {
|
public ScriptTemplate asScript() {
|
||||||
ScriptTemplate fieldAsScript = asScript(field());
|
ScriptTemplate fieldAsScript = asScript(field());
|
||||||
return new ScriptTemplate(
|
return new ScriptTemplate(
|
||||||
formatTemplate(String.format(Locale.ROOT, "{sql}.cast(%s,{})", fieldAsScript.template())),
|
formatTemplate(format("{sql}.", "cast({},{})", fieldAsScript.template())),
|
||||||
paramsBuilder()
|
paramsBuilder()
|
||||||
.script(fieldAsScript.params())
|
.script(fieldAsScript.params())
|
||||||
.variable(dataType.name())
|
.variable(dataType.name())
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.elasticsearch.xpack.sql.expression.gen.script;
|
package org.elasticsearch.xpack.sql.expression.gen.script;
|
||||||
|
|
||||||
import java.util.Locale;
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
abstract class Param<T> {
|
abstract class Param<T> {
|
||||||
private final T value;
|
private final T value;
|
||||||
@ -22,6 +22,6 @@ abstract class Param<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(Locale.ROOT, "{%s=%s}", prefix(), value);
|
return format(null, "{{}={}}", prefix(), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,19 +12,19 @@ import org.elasticsearch.xpack.sql.expression.Nullability;
|
|||||||
import org.elasticsearch.xpack.sql.expression.function.scalar.ScalarFunction;
|
import org.elasticsearch.xpack.sql.expression.function.scalar.ScalarFunction;
|
||||||
import org.elasticsearch.xpack.sql.expression.gen.pipeline.Pipe;
|
import org.elasticsearch.xpack.sql.expression.gen.pipeline.Pipe;
|
||||||
import org.elasticsearch.xpack.sql.expression.gen.script.ScriptTemplate;
|
import org.elasticsearch.xpack.sql.expression.gen.script.ScriptTemplate;
|
||||||
import org.elasticsearch.xpack.sql.tree.Source;
|
|
||||||
import org.elasticsearch.xpack.sql.tree.NodeInfo;
|
import org.elasticsearch.xpack.sql.tree.NodeInfo;
|
||||||
|
import org.elasticsearch.xpack.sql.tree.Source;
|
||||||
import org.elasticsearch.xpack.sql.type.DataType;
|
import org.elasticsearch.xpack.sql.type.DataType;
|
||||||
import org.elasticsearch.xpack.sql.util.CollectionUtils;
|
import org.elasticsearch.xpack.sql.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.StringJoiner;
|
import java.util.StringJoiner;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
import static org.elasticsearch.xpack.sql.expression.gen.script.ParamsBuilder.paramsBuilder;
|
import static org.elasticsearch.xpack.sql.expression.gen.script.ParamsBuilder.paramsBuilder;
|
||||||
|
|
||||||
public class In extends ScalarFunction {
|
public class In extends ScalarFunction {
|
||||||
@ -100,7 +100,7 @@ public class In extends ScalarFunction {
|
|||||||
List<Object> values = new ArrayList<>(new LinkedHashSet<>(Foldables.valuesOf(list, value.dataType())));
|
List<Object> values = new ArrayList<>(new LinkedHashSet<>(Foldables.valuesOf(list, value.dataType())));
|
||||||
|
|
||||||
return new ScriptTemplate(
|
return new ScriptTemplate(
|
||||||
formatTemplate(String.format(Locale.ROOT, "{sql}.in(%s, {})", leftScript.template())),
|
formatTemplate(format("{sql}.","in({}, {})", leftScript.template())),
|
||||||
paramsBuilder()
|
paramsBuilder()
|
||||||
.script(leftScript.params())
|
.script(leftScript.params())
|
||||||
.variable(values)
|
.variable(values)
|
||||||
|
@ -9,7 +9,7 @@ import org.elasticsearch.rest.RestStatus;
|
|||||||
import org.elasticsearch.xpack.sql.ClientSqlException;
|
import org.elasticsearch.xpack.sql.ClientSqlException;
|
||||||
import org.elasticsearch.xpack.sql.tree.Source;
|
import org.elasticsearch.xpack.sql.tree.Source;
|
||||||
|
|
||||||
import java.util.Locale;
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class ParsingException extends ClientSqlException {
|
public class ParsingException extends ClientSqlException {
|
||||||
private final int line;
|
private final int line;
|
||||||
@ -56,6 +56,6 @@ public class ParsingException extends ClientSqlException {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return String.format(Locale.ROOT, "line %s:%s: %s", getLineNumber(), getColumnNumber(), getErrorMessage());
|
return format("line {}:{}: {}", getLineNumber(), getColumnNumber(), getErrorMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import org.elasticsearch.xpack.sql.ClientSqlException;
|
|||||||
import org.elasticsearch.xpack.sql.tree.Location;
|
import org.elasticsearch.xpack.sql.tree.Location;
|
||||||
import org.elasticsearch.xpack.sql.tree.Node;
|
import org.elasticsearch.xpack.sql.tree.Node;
|
||||||
|
|
||||||
import java.util.Locale;
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class FoldingException extends ClientSqlException {
|
public class FoldingException extends ClientSqlException {
|
||||||
|
|
||||||
@ -54,6 +54,6 @@ public class FoldingException extends ClientSqlException {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return String.format(Locale.ROOT, "line %s:%s: %s", getLineNumber(), getColumnNumber(), super.getMessage());
|
return format("line {}:{}: {}", getLineNumber(), getColumnNumber(), super.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,11 @@ import org.elasticsearch.xpack.sql.type.TypesTests;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class IndexResolverTests extends ESTestCase {
|
public class IndexResolverTests extends ESTestCase {
|
||||||
|
|
||||||
public void testMergeSameMapping() throws Exception {
|
public void testMergeSameMapping() throws Exception {
|
||||||
@ -218,14 +219,14 @@ public class IndexResolverTests extends ESTestCase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(Locale.ROOT, "%s,%s->%s", getName(), getType(), indices);
|
return format("{},{}->{}", getName(), getType(), indices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <K, V> void assertEqualsMaps(Map<K, V> left, Map<K, V> right) {
|
private static <K, V> void assertEqualsMaps(Map<K, V> left, Map<K, V> right) {
|
||||||
for (Entry<K, V> entry : left.entrySet()) {
|
for (Entry<K, V> entry : left.entrySet()) {
|
||||||
V rv = right.get(entry.getKey());
|
V rv = right.get(entry.getKey());
|
||||||
assertEquals(String.format(Locale.ROOT, "Key [%s] has different values", entry.getKey()), entry.getValue(), rv);
|
assertEquals(format("Key [{}] has different values", entry.getKey()), entry.getValue(), rv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ import org.elasticsearch.xpack.sql.tree.Source;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.hamcrest.Matchers.hasSize;
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
@ -22,6 +21,7 @@ import static org.hamcrest.Matchers.instanceOf;
|
|||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
import static org.hamcrest.Matchers.nullValue;
|
import static org.hamcrest.Matchers.nullValue;
|
||||||
|
|
||||||
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class QuotingTests extends ESTestCase {
|
public class QuotingTests extends ESTestCase {
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ public class QuotingTests extends ESTestCase {
|
|||||||
public void testMultiSingleQuotedLiteral() {
|
public void testMultiSingleQuotedLiteral() {
|
||||||
String first = "bucket";
|
String first = "bucket";
|
||||||
String second = "head";
|
String second = "head";
|
||||||
Expression exp = new SqlParser().createExpression(String.format(Locale.ROOT, "'%s' '%s'", first, second));
|
Expression exp = new SqlParser().createExpression(format(null, "'{}' '{}'", first, second));
|
||||||
assertThat(exp, instanceOf(Literal.class));
|
assertThat(exp, instanceOf(Literal.class));
|
||||||
Literal l = (Literal) exp;
|
Literal l = (Literal) exp;
|
||||||
assertThat(l.value(), equalTo(first + second));
|
assertThat(l.value(), equalTo(first + second));
|
||||||
|
@ -12,19 +12,19 @@ import org.elasticsearch.xpack.sql.expression.predicate.regex.LikePattern;
|
|||||||
import org.elasticsearch.xpack.sql.proto.SqlTypedParamValue;
|
import org.elasticsearch.xpack.sql.proto.SqlTypedParamValue;
|
||||||
import org.elasticsearch.xpack.sql.type.DataType;
|
import org.elasticsearch.xpack.sql.type.DataType;
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import static java.util.Collections.singletonList;
|
import static java.util.Collections.singletonList;
|
||||||
import static org.hamcrest.Matchers.instanceOf;
|
import static org.hamcrest.Matchers.instanceOf;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
|
|
||||||
|
import static org.elasticsearch.common.logging.LoggerMessageFormat.format;
|
||||||
|
|
||||||
public class LikeEscapingParsingTests extends ESTestCase {
|
public class LikeEscapingParsingTests extends ESTestCase {
|
||||||
|
|
||||||
private final SqlParser parser = new SqlParser();
|
private final SqlParser parser = new SqlParser();
|
||||||
|
|
||||||
private String error(String pattern) {
|
private String error(String pattern) {
|
||||||
ParsingException ex = expectThrows(ParsingException.class,
|
ParsingException ex = expectThrows(ParsingException.class,
|
||||||
() -> parser.createExpression(String.format(Locale.ROOT, "exp LIKE %s", pattern)));
|
() -> parser.createExpression(format(null, "exp LIKE {}", pattern)));
|
||||||
|
|
||||||
return ex.getMessage();
|
return ex.getMessage();
|
||||||
}
|
}
|
||||||
@ -35,7 +35,7 @@ public class LikeEscapingParsingTests extends ESTestCase {
|
|||||||
if (parameterized) {
|
if (parameterized) {
|
||||||
exp = parser.createExpression("exp LIKE ?", singletonList(new SqlTypedParamValue(DataType.KEYWORD.esType, pattern)));
|
exp = parser.createExpression("exp LIKE ?", singletonList(new SqlTypedParamValue(DataType.KEYWORD.esType, pattern)));
|
||||||
} else {
|
} else {
|
||||||
exp = parser.createExpression(String.format(Locale.ROOT, "exp LIKE '%s'", pattern));
|
exp = parser.createExpression(format(null, "exp LIKE '{}'", pattern));
|
||||||
}
|
}
|
||||||
assertThat(exp, instanceOf(Like.class));
|
assertThat(exp, instanceOf(Like.class));
|
||||||
Like l = (Like) exp;
|
Like l = (Like) exp;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user