Merge pull request #3170 from ebean-orm/feature/prefer-char-append

Refactor prefer char append
This commit is contained in:
Rob Bygrave
2023-08-19 11:11:35 +12:00
committed by GitHub
56 changed files with 147 additions and 136 deletions
@@ -333,10 +333,10 @@ public class OrderBy<T> implements Serializable {
sb.append(property);
}
if (!ascending) {
sb.append(" ").append("desc");
sb.append(' ').append("desc");
}
if (nulls != null) {
sb.append(" ").append(nulls).append(" ").append(highLow);
sb.append(' ').append(nulls).append(' ').append(highLow);
}
return sb.toString();
}
@@ -45,7 +45,7 @@ public final class ToStringBuilder {
id.putIfAbsent(bean, 0);
}
if (counter <= MAX) {
sb.append(bean.getClass().getSimpleName()).append("@").append(counter).append("(");
sb.append(bean.getClass().getSimpleName()).append('@').append(counter).append('(');
}
}
@@ -77,7 +77,7 @@ public final class ToStringBuilder {
*/
public void end() {
if (counter <= MAX) {
sb.append(")");
sb.append(')');
}
}
@@ -90,7 +90,7 @@ public final class ToStringBuilder {
} else {
sb.append(", ");
}
sb.append(name).append(":");
sb.append(name).append(':');
}
private void value(Object value) {
@@ -125,20 +125,20 @@ public final class ToStringBuilder {
sb.append("{}");
} else {
boolean firstElement = true;
sb.append("{");
sb.append('{');
for (Map.Entry<?, ?> entry : map.entrySet()) {
if (firstElement) {
firstElement = false;
} else {
sb.append(", ");
}
sb.append(entry.getKey()).append(":");
sb.append(entry.getKey()).append(':');
value(entry.getValue());
if (counter > MAX) {
return;
}
}
sb.append("}");
sb.append('}');
}
}
@@ -151,7 +151,7 @@ public final class ToStringBuilder {
return;
}
boolean firstElement = true;
sb.append("[");
sb.append('[');
for (Object o : c) {
if (firstElement) {
firstElement = false;
@@ -163,7 +163,7 @@ public final class ToStringBuilder {
return;
}
}
sb.append("]");
sb.append(']');
}
private boolean push(Object bean) {
@@ -178,7 +178,7 @@ public final class ToStringBuilder {
Integer idx = id.putIfAbsent(bean, counter++);
if (idx != null) {
--counter;
sb.append(bean.getClass().getSimpleName()).append("@").append(idx);
sb.append(bean.getClass().getSimpleName()).append('@').append(idx);
return false;
}
first = true;
@@ -23,11 +23,11 @@ public class BasicSqlLimitOffset implements BasicSqlLimiter {
sb.append(dbSql);
if (maxRows > 0) {
sb.append(" ").append(LIMIT);
sb.append(" ").append(maxRows);
sb.append(' ').append(LIMIT);
sb.append(' ').append(maxRows);
}
if (firstRow > 0) {
sb.append(" ").append(OFFSET).append(" ");
sb.append(' ').append(OFFSET).append(' ');
sb.append(firstRow);
}
return sb.toString();
@@ -41,6 +41,11 @@ public interface SpiExpressionRequest {
*/
SpiExpressionRequest append(String expression);
/**
* Append to the expression sql without any parsing.
*/
SpiExpressionRequest append(char c);
/**
* Append to the expression sql with logical property parsing to db columns with logical path prefix.
* <p>
@@ -121,7 +121,7 @@ final class DumpMetrics {
}
private void appendQueryName(MetaQueryMetric metric, StringBuilder sb) {
sb.append("query:").append(padName(metric.name())).append(" ");
sb.append("query:").append(padName(metric.name())).append(' ');
}
private void appendProfileAndSql(MetaQueryMetric metric, StringBuilder sb) {
@@ -136,7 +136,7 @@ final class DumpMetrics {
private void log(MetaTimedMetric metric) {
StringBuilder sb = new StringBuilder();
sb.append(padNameTimed(metric.name())).append(" ");
sb.append(padNameTimed(metric.name())).append(' ');
appendCounters(metric, sb);
out(sb.toString());
}
@@ -105,9 +105,9 @@ public final class TableJoin {
@Override
public String toString() {
StringBuilder sb = new StringBuilder(30);
sb.append(type).append(" ").append(table).append(" ");
sb.append(type).append(' ').append(table).append(' ');
for (TableJoinColumn column : columns) {
sb.append(column).append(" ");
sb.append(column).append(' ');
}
return sb.toString();
}
@@ -68,7 +68,7 @@ final class AllEqualsExpression extends NonPrepareExpression {
if (propMap.isEmpty()) {
return;
}
request.append("(");
request.append('(');
int count = 0;
for (Map.Entry<String, Object> entry : propMap.entrySet()) {
Object value = entry.getValue();
@@ -84,7 +84,7 @@ final class AllEqualsExpression extends NonPrepareExpression {
}
count++;
}
request.append(")");
request.append(')');
}
/**
@@ -105,9 +105,9 @@ final class AllEqualsExpression extends NonPrepareExpression {
} else {
builder.append(" =?");
}
builder.append(",");
builder.append(',');
}
builder.append("]");
builder.append(']');
}
@Override
@@ -44,7 +44,7 @@ final class ArrayContainsExpression extends AbstractExpression {
public void queryPlanHash(StringBuilder builder) {
builder.append("ArrayContains[").append(propName)
.append(" b:").append(contains)
.append(" ?:").append(values.length).append("]");
.append(" ?:").append(values.length).append(']');
}
@Override
@@ -30,7 +30,7 @@ final class ArrayIsEmptyExpression extends AbstractExpression {
} else {
builder.append("ArrayIsNotEmpty[");
}
builder.append(propName).append("]");
builder.append(propName).append(']');
}
@Override
@@ -57,7 +57,7 @@ final class BetweenExpression extends AbstractExpression {
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("Between[").append(propName).append("]");
builder.append("Between[").append(propName).append(']');
}
@Override
@@ -86,7 +86,7 @@ final class BetweenPropertyExpression extends NonPrepareExpression {
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("BetweenProperties[").append("low:").append(lowProperty).append(" high:").append(highProperty).append("]");
builder.append("BetweenProperties[").append("low:").append(lowProperty).append(" high:").append(highProperty).append(']');
}
@Override
@@ -61,9 +61,9 @@ final class CaseInsensitiveEqualExpression extends AbstractValueExpression {
@Override
public void queryPlanHash(StringBuilder builder) {
if (not) {
builder.append("Ine[").append(propName).append("]");
builder.append("Ine[").append(propName).append(']');
} else {
builder.append("Ieq[").append(propName).append("]");
builder.append("Ieq[").append(propName).append(']');
}
}
@@ -209,7 +209,7 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
if (list.isEmpty()) {
request.append(SQL_TRUE);
} else {
request.append("(");
request.append('(');
for (int i = 0; i < list.size(); i++) {
SpiExpression item = list.get(i);
if (i > 0) {
@@ -217,7 +217,7 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
}
item.addSql(request);
}
request.append(")");
request.append(')');
}
}
@@ -229,9 +229,9 @@ final class DefaultExampleExpression implements SpiExpression, ExampleExpression
builder.append("Example[");
for (SpiExpression expr : list) {
expr.queryPlanHash(builder);
builder.append(",");
builder.append(',');
}
builder.append("]");
builder.append(']');
}
@Override
@@ -610,7 +610,7 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
builder.append("textRoot:true ");
}
if (allDocNestedPath != null) {
builder.append("path:").append(allDocNestedPath).append(" ");
builder.append("path:").append(allDocNestedPath).append(' ');
}
for (SpiExpression expr : list) {
expr.queryPlanHash(builder);
@@ -82,7 +82,7 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
*/
@Override
public void appendLike(boolean rawLikeExpression) {
sql.append(" ");
sql.append(' ');
sql.append(queryRequest.dbLikeClause(rawLikeExpression));
}
@@ -114,15 +114,18 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
return sql;
}
/**
* Append text the underlying sql expression.
*/
@Override
public SpiExpressionRequest append(String expression) {
sql.append(expression);
return this;
}
@Override
public SpiExpressionRequest append(char c) {
sql.append(c);
return this;
}
@Override
public SpiExpressionRequest property(String expression) {
if (deployParser == null) {
@@ -160,7 +163,7 @@ public final class DefaultExpressionRequest implements SpiExpressionRequest {
if (bindLog == null) {
bindLog = new StringBuilder();
} else {
bindLog.append(",");
bindLog.append(',');
}
bindLog.append(val);
}
@@ -82,7 +82,7 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("ExistsQuery[").append(" not:").append(not);
builder.append(" sql:").append(sql).append(" ?:").append(bindParams.size()).append("]");
builder.append(" sql:").append(sql).append(" ?:").append(bindParams.size()).append(']');
}
@Override
@@ -95,7 +95,7 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE
if (not) {
request.append("not ");
}
request.append("exists (").parse(sql).append(")");
request.append("exists (").parse(sql).append(')');
}
@Override
@@ -58,7 +58,7 @@ final class ExistsSqlQueryExpression implements SpiExpression, UnsupportedDocSto
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("ExistsSqlQuery[").append(" not:").append(not);
builder.append(" sql:").append(subQuery).append(" ?:").append(bindParams.length).append("]");
builder.append(" sql:").append(subQuery).append(" ?:").append(bindParams.length).append(']');
}
@Override
@@ -73,7 +73,7 @@ final class ExistsSqlQueryExpression implements SpiExpression, UnsupportedDocSto
if (not) {
request.append("not ");
}
request.append("exists (").parse(subQuery).append(")");
request.append("exists (").parse(subQuery).append(')');
}
@Override
@@ -109,7 +109,7 @@ public final class IdInExpression extends NonPrepareExpression implements IdInCo
// query plan specific to the number of parameters in the IN clause
builder.append(idCollection.size());
}
builder.append("]");
builder.append(']');
}
@Override
@@ -193,7 +193,7 @@ public final class InExpression extends AbstractExpression implements IdInCommon
builder.append(bindValues.size());
}
}
builder.append("]");
builder.append(']');
}
@Override
@@ -103,15 +103,15 @@ final class InPairsExpression extends AbstractExpression {
} else {
builder.append("InPairs[");
}
builder.append(property0).append("-");
builder.append(property1).append("-");
builder.append(separator).append("-");
builder.append(property0).append('-');
builder.append(property1).append('-');
builder.append(separator).append('-');
builder.append(suffix).append(" ?");
if (!multiValueSupported || entries.isEmpty()) {
// query plan specific to the number of parameters in the IN clause
builder.append(entries.size());
}
builder.append("]");
builder.append(']');
}
@Override
@@ -55,12 +55,12 @@ final class InRangeExpression extends AbstractExpression {
if (prop != null && prop.isDbEncrypted()) {
pname = prop.beanProperty().decryptProperty(propName);
}
request.append("(").property(pname).append(" >= ? and ").property(pname).append(" < ?)");
request.append('(').property(pname).append(" >= ? and ").property(pname).append(" < ?)");
}
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("InRange[").append(propName).append("]");
builder.append("InRange[").append(propName).append(']');
}
@Override
@@ -98,10 +98,10 @@ final class InTuplesExpression extends AbstractExpression {
request.append(not ? SQL_TRUE : SQL_FALSE);
return;
}
request.append("(");
request.append('(');
for (int i = 0; i < properties.length; i++) {
if (i > 0) {
request.append(",");
request.append(',');
}
request.property(properties[i]);
}
@@ -111,7 +111,7 @@ final class InTuplesExpression extends AbstractExpression {
} else {
addSqlBinding(request);
}
request.append(")");
request.append(')');
}
private void addSqlLiterals(SpiExpressionRequest request) {
@@ -136,7 +136,7 @@ final class InTuplesExpression extends AbstractExpression {
final String eb = entryBinding();
for (int i = 0; i < entries.size(); i++) {
if (i > 0) {
request.append(",");
request.append(',');
}
request.append(eb);
}
@@ -84,7 +84,7 @@ final class IsEmptyExpression extends AbstractExpression {
request
.append("exists (select 1 ")
.parse(prop.assocIsEmpty(request, propertyPath))
.append(")");
.append(')');
}
/**
@@ -97,7 +97,7 @@ final class IsEmptyExpression extends AbstractExpression {
} else {
builder.append("IsNotEmpty[");
}
builder.append(propName).append("]");
builder.append(propName).append(']');
}
@Override
@@ -80,7 +80,7 @@ final class JsonPathExpression extends AbstractExpression {
if (upperValue != null) {
builder.append(" ?2");
}
builder.append("]");
builder.append(']');
}
@Override
@@ -152,7 +152,7 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
List<SpiExpression> list = exprList.internalList();
if (!list.isEmpty()) {
request.append(type.prefix());
request.append("(");
request.append('(');
for (int i = 0; i < list.size(); i++) {
SpiExpression item = list.get(i);
if (i > 0) {
@@ -160,7 +160,7 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
}
item.addSql(request);
}
request.append(")");
request.append(')');
}
}
@@ -176,12 +176,12 @@ final class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expr
*/
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append(type).append("[");
builder.append(type).append('[');
for (SpiExpression expr : exprList.internalList()) {
expr.queryPlanHash(builder);
builder.append(",");
builder.append(',');
}
builder.append("]");
builder.append(']');
}
@Override
@@ -44,7 +44,7 @@ final class LikeExpression extends AbstractValueExpression {
pname = prop.beanProperty().decryptProperty(propName);
}
if (caseInsensitive) {
request.append("lower(").property(pname).append(")");
request.append("lower(").property(pname).append(')');
} else {
request.property(pname);
}
@@ -62,9 +62,9 @@ final class LikeExpression extends AbstractValueExpression {
@Override
public void queryPlanHash(StringBuilder builder) {
if (caseInsensitive){
builder.append("I");
builder.append('I');
}
builder.append("Like[").append(type).append(" ").append(propName).append("]");
builder.append("Like[").append(type).append(' ').append(propName).append(']');
}
@Override
@@ -141,11 +141,11 @@ abstract class LogicExpression implements SpiExpression {
@Override
public void addSql(SpiExpressionRequest request) {
request.append("(");
request.append('(');
expOne.addSql(request);
request.append(conjunction ? AND : OR);
expTwo.addSql(request);
request.append(")");
request.append(')');
}
@Override
@@ -159,11 +159,11 @@ abstract class LogicExpression implements SpiExpression {
*/
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("Logic").append(conjunction ? AND : OR).append("[");
builder.append("Logic").append(conjunction ? AND : OR).append('[');
expOne.queryPlanHash(builder);
builder.append(",");
builder.append(',');
expTwo.queryPlanHash(builder);
builder.append("]");
builder.append(']');
}
@Override
@@ -49,7 +49,7 @@ final class NativeILikeExpression extends AbstractExpression {
*/
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append("NativeILike[").append(propName).append("]");
builder.append("NativeILike[").append(propName).append(']');
}
@Override
@@ -72,10 +72,10 @@ final class NestedPathWrapperExpression implements SpiExpression {
public void queryPlanHash(StringBuilder builder) {
builder.append("NestedPath[");
if (nestedPath != null) {
builder.append("path:").append(nestedPath).append(" ");
builder.append("path:").append(nestedPath).append(' ');
}
delegate.queryPlanHash(builder);
builder.append("]");
builder.append(']');
}
@Override
@@ -96,7 +96,7 @@ final class NotExpression implements SpiExpression {
public void queryPlanHash(StringBuilder builder) {
builder.append("Not[");
exp.queryPlanHash(builder);
builder.append("]");
builder.append(']');
}
@Override
@@ -86,7 +86,7 @@ final class NullExpression extends AbstractExpression {
} else {
builder.append("Null[");
}
builder.append(propName).append("]");
builder.append(propName).append(']');
}
@Override
@@ -65,7 +65,7 @@ final class RawExpression extends NonPrepareExpression {
if (values != null) {
builder.append(" ?").append(values.length);
}
builder.append("]");
builder.append(']');
}
@Override
@@ -54,9 +54,9 @@ final class RawExpressionBuilder {
StringBuilder sqlExpand = new StringBuilder(values.size() * 2);
for (int i = 0; i < values.size(); i++) {
if (i > 0) {
sqlExpand.append(",");
sqlExpand.append(',');
}
sqlExpand.append("?");
sqlExpand.append('?');
}
return sqlExpand.toString();
}
@@ -117,7 +117,7 @@ public final class SimpleExpression extends AbstractValueExpression {
*/
@Override
public void queryPlanHash(StringBuilder builder) {
builder.append(type.name()).append("[").append(propName).append("]");
builder.append(type.name()).append('[').append(propName).append(']');
}
@Override
@@ -57,7 +57,7 @@ final class SubQueryExpression extends AbstractExpression implements Unsupported
public void queryPlanHash(StringBuilder builder) {
builder.append("SubQuery[").append(propName).append(op.expression)
.append(" sql:").append(sql)
.append(" ?:").append(bindParams.size()).append("]");
.append(" ?:").append(bindParams.size()).append(']');
}
/**
@@ -75,7 +75,7 @@ final class SubQueryExpression extends AbstractExpression implements Unsupported
@Override
public void addSql(SpiExpressionRequest request) {
request.property(propName).append(op.expression).append("(").parse(sql).append(")");
request.property(propName).append(op.expression).append('(').parse(sql).append(')');
}
@Override
@@ -31,7 +31,7 @@ final class SubQueryRawExpression extends AbstractExpression implements Unsuppor
public void queryPlanHash(StringBuilder builder) {
builder.append("SubQueryRaw[").append(propName).append(op.expression)
.append(" subQuery:").append(subQuery)
.append(" ?:").append(bindParams.length).append("]");
.append(" ?:").append(bindParams.length).append(']');
}
@Override
@@ -43,7 +43,7 @@ final class SubQueryRawExpression extends AbstractExpression implements Unsuppor
@Override
public void addSql(SpiExpressionRequest request) {
request.property(propName).append(op.expression).append("(").append(subQuery).append(")");
request.property(propName).append(op.expression).append('(').append(subQuery).append(')');
}
@Override
@@ -11,7 +11,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
@Override
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
final String bitOp = bitOp(operator);
request.append("(").property(propName).append(" ").append(bitOp).append(" ? ").append(compare).append(" ?)");
request.append('(').property(propName).append(' ').append(bitOp).append(" ? ").append(compare).append(" ?)");
}
private String bitOp(BitwiseOp operator) {
@@ -30,7 +30,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
*/
protected void bitwiseFunction(SpiExpressionRequest request, String propName, BitwiseOp operator, String compare) {
final String funcName = functionName(operator);
request.append(funcName).append("(").property(propName).append(", ?) ").append(compare).append(" ?");
request.append(funcName).append('(').property(propName).append(", ?) ").append(compare).append(" ?");
}
protected String functionName(BitwiseOp operator) {
@@ -60,7 +60,7 @@ abstract class BaseDbExpression implements DbExpressionHandler {
*/
String concatOperator(String property0, String separator, String property1, String suffix) {
StringBuilder sb = new StringBuilder(40);
sb.append("(").append(property0).append("||'").append(separator).append("'||").append(property1);
sb.append('(').append(property0).append("||'").append(separator).append("'||").append(property1);
if (suffix != null && !suffix.isEmpty()) {
sb.append("||'").append(suffix).append('\'');
}
@@ -11,6 +11,6 @@ final class H2DbExpression extends BasicDbExpression {
@Override
public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) {
final String funcName = functionName(operator);
request.append(funcName).append("(").property(propName).append(", cast(? as long)) ").append(compare).append(" cast(? as long)");
request.append(funcName).append('(').property(propName).append(", cast(? as long)) ").append(compare).append(" cast(? as long)");
}
}
@@ -21,7 +21,7 @@ final class HanaDbExpression extends BaseDbExpression {
@Override
public void arrayIsEmpty(SpiExpressionRequest request, String propName, boolean empty) {
request.append("cardinality(").property(propName).append(")");
request.append("cardinality(").property(propName).append(')');
if (empty) {
request.append(" = 0");
} else {
@@ -36,7 +36,7 @@ final class HanaDbExpression extends BaseDbExpression {
if (suffix != null && !suffix.isEmpty()) {
sb.append("||'").append(suffix).append('\'');
}
sb.append(")");
sb.append(')');
return sb.toString();
}
@@ -50,7 +50,7 @@ final class HanaDbExpression extends BaseDbExpression {
if (!contains) {
request.append(" not ");
}
request.append(" member of ").property(propName).append(")");
request.append(" member of ").property(propName).append(')');
}
}
@@ -10,6 +10,6 @@ final class MariaDbExpression extends BasicDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
request.append("(").property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
request.append('(').property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
}
}
@@ -10,7 +10,7 @@ final class MySqlDbExpression extends BasicDbExpression {
@Override
public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) {
request.append("(").property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
request.append('(').property(propName).append(" ->> '$.").append(path).append("')").append(operator.bind());
}
}
@@ -18,13 +18,13 @@ final class PostgresDbExpression extends BaseDbExpression {
String[] paths = path.split("\\.");
if (paths.length == 1) {
// (t0.content ->> 'title') = 'Some value'
request.append("(").property(propName).append(" ->> '").append(path).append("')");
request.append('(').property(propName).append(" ->> '").append(path).append("')");
} else {
// (t0.content #>> '{path,inner}') = 'Some value'
request.append("(").property(propName).append(" #>> '{");
request.append('(').property(propName).append(" #>> '{");
for (int i = 0; i < paths.length; i++) {
if (i > 0) {
request.append(",");
request.append(',');
}
request.append(paths[i]);
}
@@ -42,9 +42,9 @@ final class PostgresDbExpression extends BaseDbExpression {
for (int i = 1; i < values.length; i++) {
request.append(",?");
}
request.append("]").append(PostgresCast.cast(values[0], true));
request.append(']').append(PostgresCast.cast(values[0], true));
if (!contains) {
request.append(")");
request.append(')');
}
}
@@ -28,7 +28,7 @@ final class DTimeMetricStats implements TimedMetricStats {
public String toString() {
StringBuilder sb = new StringBuilder();
if (name != null) {
sb.append("name:").append(name).append(" ");
sb.append("name:").append(name).append(' ');
}
sb.append("count:").append(count)
.append(" total:").append(total)
@@ -148,7 +148,7 @@ final class CQueryBuilder {
StringBuilder sb = new StringBuilder(200);
sb.append("update ").append(request.descriptor().baseTable());
if (rootTableAlias != null) {
sb.append(" ").append(rootTableAlias);
sb.append(' ').append(rootTableAlias);
}
sb.append(" set ").append(predicates.dbUpdateClause());
String updateClause = sb.toString();
@@ -70,7 +70,7 @@ final class CQueryBuilderRawSql {
} else {
sb.append(sql.getPreFrom());
}
sb.append(" ");
sb.append(' ');
String s = sql.getPreWhere();
BindParams bindParams = request.query().bindParams();
@@ -80,7 +80,7 @@ final class CQueryBuilderRawSql {
// clause (so not allowed in having etc - use unparsed)
s = BindParamsParser.parse(bindParams, s);
}
sb.append(s).append(" ");
sb.append(s).append(' ');
String dynamicWhere = null;
if (request.query().getId() != null) {
@@ -109,12 +109,12 @@ final class CQueryBuilderRawSql {
} else {
sb.append(" where ");
}
sb.append(dynamicWhere).append(" ");
sb.append(dynamicWhere).append(' ');
}
String preHaving = sql.getPreHaving();
if (hasValue(preHaving)) {
sb.append(preHaving).append(" ");
sb.append(preHaving).append(' ');
}
String dbHaving = predicates.dbHaving();
@@ -124,10 +124,10 @@ final class CQueryBuilderRawSql {
} else {
sb.append(" having ");
}
sb.append(dbHaving).append(" ");
sb.append(dbHaving).append(' ');
}
if (hasValue(orderBy)) {
sb.append(" ").append(sql.getOrderByPrefix()).append(" ").append(orderBy);
sb.append(' ').append(sql.getOrderByPrefix()).append(' ').append(orderBy);
}
return sb.toString().trim();
}
@@ -122,12 +122,12 @@ final class DefaultDbSqlContext implements DbSqlContext {
}
tableJoins.add(joinKey);
sb.append(" ").append(type);
sb.append(' ').append(type);
boolean addAsOfOnClause = false;
if (draftSupport != null) {
appendTable(table, draftSupport.draftTable(table));
} else if (!historyQuery) {
sb.append(" ").append(table).append(" ");
sb.append(' ').append(table).append(' ');
} else {
// check if there is an associated history table and if so
// use the unionAll view - we expect an additional predicate to match
@@ -174,9 +174,9 @@ final class DefaultDbSqlContext implements DbSqlContext {
private void appendTable(String table, String draftTable) {
if (draftTable != null) {
// there is an associated history table and view so use that
sb.append(" ").append(draftTable).append(" ");
sb.append(' ').append(draftTable).append(' ');
} else {
sb.append(" ").append(table).append(" ");
sb.append(' ').append(table).append(' ');
}
}
@@ -237,7 +237,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
}
// we only want to add this join once
formulaJoins.add(converted);
sb.append(" ");
sb.append(' ');
if (joinType == SqlJoinType.OUTER) {
if ("join".equalsIgnoreCase(converted.substring(0, 4))) {
// prepend left as we are in the 'many' part
@@ -259,7 +259,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
sb.append(COMMA);
sb.append(converted);
if (columnAlias != null) {
sb.append(" ").append(columnAlias);
sb.append(' ').append(columnAlias);
} else {
appendColumnAlias();
}
@@ -286,7 +286,7 @@ final class DefaultDbSqlContext implements DbSqlContext {
private void appendColumnAlias() {
if (useColumnAlias) {
sb.append(" ");
sb.append(' ');
sb.append(columnAliasPrefix);
sb.append(columnIndex);
}
@@ -66,13 +66,10 @@ final class SqlTreeNodeRoot extends SqlTreeNodeBean {
*/
@Override
public SqlJoinType appendFromBaseTable(DbSqlContext ctx, SqlJoinType joinType) {
ctx.append(baseTable);
ctx.append(" ").append(baseTableAlias);
ctx.appendFromForUpdate();
ctx.append(baseTable).append(" ").append(baseTableAlias).appendFromForUpdate();
if (includeJoin != null) {
String a1 = baseTableAlias;
String a2 = "int_"; // unique alias for intersection join
includeJoin.addJoin(joinType, a1, a2, ctx);
// unique alias for intersection join
includeJoin.addJoin(joinType, baseTableAlias, "int_", ctx);
}
return joinType;
}
@@ -108,7 +108,7 @@ public final class OrmQueryDetail implements Serializable {
if (fetchPaths != null) {
for (OrmQueryProperties join : fetchPaths.values()) {
if (sb.length() > 0) {
sb.append(" ");
sb.append(' ');
}
join.asStringDebug("fetch ", sb);
}
@@ -265,7 +265,7 @@ public final class OrmQueryProperties implements Serializable {
public void asStringDebug(String prefix, StringBuilder sb) {
sb.append(prefix);
if (path != null) {
sb.append(path).append(" ");
sb.append(path).append(' ');
}
if (allProperties) {
sb.append("(*)");
@@ -67,7 +67,7 @@ final class DRawSqlColumnsParser {
StringBuilder sb = new StringBuilder();
sb.append(split[0]);
for (int i = 1; i < split.length - 2; i++) {
sb.append(" ").append(split[i]);
sb.append(' ').append(split[i]);
}
return new ColumnMapping.Column(indexPos++, sb.toString(), split[split.length - 1]);
}
@@ -51,19 +51,19 @@ public final class DocPropertyOptions {
public String toString() {
StringBuilder sb = new StringBuilder();
if (code != null) {
sb.append("code:").append(code).append(" ");
sb.append("code:").append(code).append(' ');
}
if (sortable != null) {
sb.append("sortable:").append(sortable).append(" ");
sb.append("sortable:").append(sortable).append(' ');
}
if (store != null) {
sb.append("store:").append(store).append(" ");
sb.append("store:").append(store).append(' ');
}
if (boost != null) {
sb.append("boost:").append(boost).append(" ");
sb.append("boost:").append(boost).append(' ');
}
if (nullValue != null) {
sb.append("nullValue:").append(nullValue).append(" ");
sb.append("nullValue:").append(nullValue).append(' ');
}
return sb.toString();
}
@@ -54,6 +54,12 @@ public class TDSpiExpressionRequest implements SpiExpressionRequest {
return this;
}
@Override
public SpiExpressionRequest append(char c) {
sql.append(c);
return this;
}
@Override
public SpiExpressionRequest property(String expression) {
sql.append(expression);
@@ -9,11 +9,11 @@ final class HanaBasicSqlLimiter implements BasicSqlLimiter {
StringBuilder sb = new StringBuilder(50 + dbSql.length());
sb.append(dbSql);
if (maxRows > 0) {
sb.append(" ").append("limit");
sb.append(" ").append(maxRows);
sb.append(' ').append("limit");
sb.append(' ').append(maxRows);
if (firstRow > 0) {
sb.append(" ").append("offset").append(" ");
sb.append(' ').append("offset").append(' ');
sb.append(firstRow);
}
}
@@ -22,11 +22,11 @@ public final class SqlAnywhereLimiter implements SqlLimiter {
}
int maxRows = request.getMaxRows();
if (maxRows > 0) {
sb.append("top ").append(maxRows).append(" ");
sb.append("top ").append(maxRows).append(' ');
}
int firstRow = request.getFirstRow();
if (firstRow > 0) {
sb.append("start at ").append(firstRow + 1).append(" ");
sb.append("start at ").append(firstRow + 1).append(' ');
}
sb.append(dbSql);
String sql = request.getDbPlatform().completeSql(sb.toString(), request.getOrmQuery());
@@ -14,8 +14,8 @@ final class SqlServerBasicSqlLimiter implements BasicSqlLimiter {
if (!dbSql.toLowerCase().contains("order by")) {
sb.append(" order by 1");
}
sb.append(" ").append("offset");
sb.append(" ").append(firstRow).append(" rows");
sb.append(' ').append("offset");
sb.append(' ').append(firstRow).append(" rows");
if (maxRows > 0) {
sb.append(" fetch next ").append(maxRows).append(" rows only");
}
@@ -21,7 +21,7 @@ final class SqlServerSqlLimiter implements SqlLimiter {
if (request.isDistinct()) {
sb.append("distinct ");
}
sb.append("top ").append(maxRows).append(" ");
sb.append("top ").append(maxRows).append(' ');
sb.append(dbSql);
return new SqlLimitResponse(sb.toString());
}
@@ -30,8 +30,8 @@ final class SqlServerSqlLimiter implements SqlLimiter {
sb.append("distinct ");
}
sb.append(dbSql);
sb.append(" ").append("offset");
sb.append(" ").append(firstRow).append(" rows");
sb.append(' ').append("offset");
sb.append(' ').append(firstRow).append(" rows");
if (maxRows > 0) {
sb.append(" fetch next ").append(maxRows).append(" rows only");
}