[#3936] AbstractQuery unnecessarily creates two DefaultRenderContext instances
This commit is contained in:
parent
a5e3421ca0
commit
4a876ee2f4
@ -46,6 +46,7 @@ import static org.jooq.ExecuteType.DDL;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.conf.ParamType.INDEXED;
|
||||
import static org.jooq.conf.ParamType.INLINED;
|
||||
import static org.jooq.conf.SettingsTools.executePreparedStatements;
|
||||
@ -63,11 +64,13 @@ import java.util.Map;
|
||||
|
||||
import org.jooq.AttachableInternal;
|
||||
import org.jooq.Configuration;
|
||||
import org.jooq.Constants;
|
||||
import org.jooq.ExecuteContext;
|
||||
import org.jooq.ExecuteListener;
|
||||
import org.jooq.Param;
|
||||
import org.jooq.Query;
|
||||
import org.jooq.RenderContext;
|
||||
import org.jooq.Select;
|
||||
import org.jooq.conf.ParamType;
|
||||
import org.jooq.conf.StatementType;
|
||||
import org.jooq.exception.ControlFlowSignal;
|
||||
@ -426,12 +429,14 @@ abstract class AbstractQuery extends AbstractQueryPart implements Query, Attacha
|
||||
}
|
||||
|
||||
private final String getSQL0(ExecuteContext ctx) {
|
||||
String result;
|
||||
|
||||
/* [pro] xx
|
||||
|
||||
xx xxxxxxx xxxxxx xxx xxxxxxxxxx xx xxx xxxxxxx xxxx xxxxxx
|
||||
xx xxxxxxxxxxx xx xxx xx xxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx
|
||||
xxxxxx xxxxxxxxxxxxxxxx
|
||||
xxxxxx x xxxxxxxxxxxxxxxx
|
||||
x
|
||||
xxxx
|
||||
xx [/pro] */
|
||||
@ -440,18 +445,62 @@ abstract class AbstractQuery extends AbstractQueryPart implements Query, Attacha
|
||||
try {
|
||||
RenderContext render = new DefaultRenderContext(configuration);
|
||||
render.data(DATA_COUNT_BIND_VALUES, true);
|
||||
return render.render(this);
|
||||
result = render.visit(this).render();
|
||||
}
|
||||
catch (DefaultRenderContext.ForceInlineSignal e) {
|
||||
ctx.data(DATA_FORCE_STATIC_STATEMENT, true);
|
||||
return getSQL(INLINED);
|
||||
result = getSQL(INLINED);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return getSQL(INLINED);
|
||||
result = getSQL(INLINED);
|
||||
}
|
||||
|
||||
/* [pro] xx xx xxxxxxx xx
|
||||
|
||||
xx xxxxxx xx xxx xxxxxx xx xxxxxxxxxx xxx xxxxx xxxxx
|
||||
xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xx xxxx xxxxxxxxx xxx xxxxxxx xx x xxxxxxxx xxxxxxxx xxxx xxx xxx xxxxx
|
||||
xx x xxxxxxxxxx xxxxxxx xx xxxx xxxx x xxxx xx xxxx xxxxx xxxxxxxx xx xx
|
||||
xx xxx xxxx xx xxxxxx xxx xxxxxx xxxxxxxxx xxxx xxxxxxxx xxxxxxx
|
||||
xx xxxxxxxxxxxxx xxx xx xxx xxxx xx xxxxxx xxx xxxxx xxxxxxx xxxxxxxx
|
||||
xx xxxxxxxxxx x xxxxxxx xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
xx xxxxx xxxxxxxxxx xxxxxxx x
|
||||
|
||||
xx xx xxxxx xx xxxxxx xx xxxxxx xxxxxx xxxxxx xxx xxx xxxxxxxx
|
||||
xx xxxxxxx xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
x
|
||||
xxxx xx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
xxxxxx xx x xx xxx xxxxxxxx xxxx x xxxx xxxxx xxxxxxx xx xxxx x x xxxxxxxxxxxxxxxxxxxxxx x x xxxx
|
||||
x
|
||||
xxxx x
|
||||
xxxxxx xx x xx xxx xxxxxxxx xxxx x xxxx xxxxx xxxxxxx xx xxxx x x xxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
x
|
||||
|
||||
xx xxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxx x
|
||||
xxxxx xxx xxxxxxxxxxxxxxxxxxxxx xxxx xxxxxxxx x xxxxxx xxxxxxx xxxx xxx xxxx xxxxx xxxxxxxx xxxxxx xxxxxxxx xxxxxxxxx xx x xxxxxxxxxx xxxxxxx xx xxxxxxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxx xx xxx xxxx xxxxxxx xxxx xxxx xxxx xxxxxxxxx
|
||||
x
|
||||
|
||||
xx xxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
xxxxx xxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxxx xxxxxx xxx xxxxx xxxx xxxx xxxx xxxxxx xxxxxxxx xxxxxxxxx xx x xxxxxxxxxx xxxxxxx xx xxxxxxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxx xx xxxxxx xxxx xxxx xxxxxxxxx
|
||||
x
|
||||
|
||||
xx xxxxxxxx xx xx [/pro] */
|
||||
return result;
|
||||
}
|
||||
|
||||
/* [pro] xx xx xxxxxxx xx
|
||||
xxxxxxx xxxxxx xxxxx xxxx xxxx
|
||||
xxxxxxx xxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx
|
||||
|
||||
xxxxxx x
|
||||
xxx x xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
xx xxxxxxxx xx xx [/pro] */
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
||||
@ -173,8 +173,8 @@ abstract class AbstractStoreQuery<R extends Record> extends AbstractQuery implem
|
||||
public final void accept(Context<?> ctx) {
|
||||
|
||||
/* [pro] xx
|
||||
xx xxxxxxxxxxxxxxxxxxxxx
|
||||
xx xxxxxxxxxxxx xx xxx
|
||||
xx xxxxxxxxxxxxx xx xxx
|
||||
xx xxxxxxxxxxxxxxxxxxxx
|
||||
xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx xxxxx x
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx xxxxxxxxxxxxxxx
|
||||
|
||||
@ -40,9 +40,6 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.SQLITE;
|
||||
import static org.jooq.conf.ParamType.INDEXED;
|
||||
import static org.jooq.conf.ParamType.INLINED;
|
||||
@ -71,7 +68,6 @@ import org.jooq.QueryPart;
|
||||
import org.jooq.QueryPartInternal;
|
||||
import org.jooq.RenderContext;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.jooq.Select;
|
||||
import org.jooq.conf.RenderKeywordStyle;
|
||||
import org.jooq.conf.RenderNameStyle;
|
||||
import org.jooq.conf.Settings;
|
||||
@ -153,85 +149,9 @@ class DefaultRenderContext extends AbstractContext<RenderContext> implements Ren
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
/* [pro] xx xx xxxxxxx xx
|
||||
xxxxxxx xxxxxx xxxxx xxxx xxxx
|
||||
xxxxxxx xxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx
|
||||
|
||||
xxxxxx x
|
||||
xxxxxx x x xxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxxx x x xxxxx
|
||||
|
||||
xxx x
|
||||
x x xxx xxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx
|
||||
|
||||
xxxxxx xxx x xxxxx
|
||||
xxxxxx xxxxxxxx x xxx xxxxxxxxxx xxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxx
|
||||
xxx x xxx xxxxxxxxxxxxxxxxx
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxxx x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxxxx x x xxxxxxxxxxxxxxx
|
||||
|
||||
xx xxxxxxxxxx x
|
||||
x x xxxxxxxxxxx
|
||||
x
|
||||
x
|
||||
xxxxx xxxxxxxxxx xxxxxxx xx
|
||||
xxxxxxx x
|
||||
xx xx xx xxxxx x
|
||||
xxx x
|
||||
xxxxxxxxxx
|
||||
x
|
||||
xxxxx xxxxxxxxxx xxxxxxx xx
|
||||
x
|
||||
x
|
||||
|
||||
xx xxxxxx xxxxxxx xxxx xxxxxxxxxx
|
||||
xxx x xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
|
||||
xx xxxxxxxx xx xx [/pro] */
|
||||
|
||||
@Override
|
||||
public final String render(QueryPart part) {
|
||||
RenderContext local = new DefaultRenderContext(this).visit(part);
|
||||
|
||||
/* [pro] xx xx xxxxxxx xx
|
||||
|
||||
xx xxxxxx xx xxx xxxxxx xx xxxxxxxxxx xxx xxxxx xxxxx
|
||||
xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xx xxxx xxxxxxxxx xxx xxxxxxx xx x xxxxxxxx xxxxxxxx xxxx xxx xxx xxxxx
|
||||
xx x xxxxxxxxxx xxxxxxx xx xxxx xxxx x xxxx xx xxxx xxxxx xxxxxxxx xx xx
|
||||
xx xxx xxxx xx xxxxxx xxx xxxxxx xxxxxxxxx xxxx xxxxxxxx xxxxxxx
|
||||
xx xxxxxxxxxxxxx xxx xx xxx xxxx xx xxxxxx xxx xxxxx xxxxxxx xxxxxxxx
|
||||
xx xxxxxxxxxx x xxxxxxx xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
xx xxxxx xxxxxxxxxx xxxxxxx x
|
||||
|
||||
xx xx xxxxx xx xxxxxx xx xxxxxx xxxxxx xxxxxx xxx xxx xxxxxxxx
|
||||
xx xxxxxxx xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
x
|
||||
xxxx xx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
xxxxxxxxxxx xx xxx xxxxxxxx xxxx x xxxx xxxxx xxxxxxx xx xxxx x x xxxxxxxxxxxxxxxxxxxxxx x x xxxxx
|
||||
x
|
||||
xxxx x
|
||||
xxxxxxxxxxx xx xxx xxxxxxxx xxxx x xxxx xxxxx xxxxxxx xx xxxx x x xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
x
|
||||
|
||||
xx xxxxxxxxxxxxxxxxxxxxxx x xxxxxxx x
|
||||
xxxxx xxx xxxxxxxxxxxxxxxxxxxxx xxxx xxxxxxxx x xxxxxx xxxxxxx xxxx xxx xxxx xxxxx xxxxxxxx xxxxxx xxxxxxxx xxxxxxxxx xx x xxxxxxxxxx xxxxxxx xx xxxxxxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxx xx xxx xxxx xxxxxxx xxxx xxxx xxxx xxxxxxxxx
|
||||
x
|
||||
|
||||
xx xxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxx x
|
||||
xxxxx xxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxxx xxxxxx xxx xxxxx xxxx xxxx xxxx xxxxxx xxxxxxxx xxxxxxxxx xx x xxxxxxxxxx xxxxxxx xx xxxxxxx xxxxxxxxxxxxxxxxxxxxxx xx xxx xxxx xx xxxxxx xxxx xxxx xxxxxxxxx
|
||||
x
|
||||
|
||||
xx xxxxxxxx xx xx [/pro] */
|
||||
|
||||
return local.render();
|
||||
return new DefaultRenderContext(this).visit(part).render();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
Reference in New Issue
Block a user