final boolean isInline(RenderContext context) { return isInline() || context.paramType() == INLINED; } }
@Override public String renderNamedParams(QueryPart part) { return renderContext().paramType(NAMED).render(part); }
@Override public String renderInlined(QueryPart part) { return renderContext().paramType(INLINED).render(part); }
final void toSQL0(RenderContext ctx) { ParamType paramType = ctx.paramType(); if (isInline()) ctx.paramType(INLINED); switch (ctx.family()) { // Due to lack of UDT support in the Postgres JDBC drivers, all UDT's // have to be inlined case POSTGRES: { toSQLInline(ctx); break; } // Assume default behaviour if dialect is not available default: toSQLInline(ctx); break; } if (isInline()) ctx.paramType(paramType); }
@Override public String renderNamedParams(QueryPart part) { return renderContext().paramType(NAMED).visit(part).render(); }
@Override public String renderNamedOrInlinedParams(QueryPart part) { return renderContext().paramType(NAMED_OR_INLINED).visit(part).render(); }
@Override public String renderInlined(QueryPart part) { return renderContext().paramType(INLINED).visit(part).render(); }
private final boolean shouldCast(BindingSQLContext<U> ctx, T converted) { if (ctx.render().paramType() != INLINED) {
private final void sql(BindingSQLContext<U> ctx, T value) throws SQLException { if (ctx.render().paramType() == INLINED) if (value == null) ctx.render().visit(K_NULL); else sqlInline0(ctx, value); else sqlBind0(ctx, value); }
/** * Get a bind variable, depending on value of * {@link RenderContext#namedParams()} */ private final String getBindVariable(RenderContext context) { if (context.paramType() == NAMED) { int index = context.nextIndex(); if (StringUtils.isBlank(getParamName())) { return ":" + index; } else { return ":" + getName(); } } else { return "?"; } }
java.util.function.Supplier<String> sqlSupplier = () -> context .renderContext() .paramType(ParamType.INLINED) .render(query);
/** * Creates an instance that can translate the given {@code query} * with the given {@code database}. */ public SqlQuery(AbstractSqlDatabase database, Query<?> query, String aliasPrefix) { this.database = database; this.query = query; this.aliasPrefix = aliasPrefix; dslContext = DSL.using(database.getDialect()); tableRenderContext = dslContext.renderContext().paramType(ParamType.INLINED).declareTables(true); renderContext = dslContext.renderContext().paramType(ParamType.INLINED); recordTableAlias = aliasPrefix + "r"; recordTable = DSL.table(DSL.name(database.recordTable.getName())).as(recordTableAlias); recordIdField = DSL.field(DSL.name(recordTableAlias, database.recordIdField.getName()), database.uuidType()); recordTypeIdField = DSL.field(DSL.name(recordTableAlias, database.recordTypeIdField.getName()), database.uuidType()); mappedKeys = query.mapEmbeddedKeys(database.getEnvironment()); selectedIndexes = new HashMap<>(); for (Map.Entry<String, Query.MappedKey> entry : mappedKeys.entrySet()) { selectIndex(entry.getKey(), entry.getValue()); } }
DefaultRenderContext(RenderContext context) { this(context.configuration()); paramType(context.paramType()); qualify(context.qualify()); castMode(context.castMode()); declareFields(context.declareFields()); declareTables(context.declareTables()); data().putAll(context.data()); }
QueryPart substitute = substitutes.get(substituteIndex++); if (render.paramType() == INLINED) { render.visit(substitute);
DefaultRenderContext(RenderContext context) { this(context.configuration()); paramType(context.paramType()); qualifyCatalog(context.qualifyCatalog()); qualifySchema(context.qualifySchema()); quote(context.quote()); castMode(context.castMode()); data().putAll(context.data()); declareCTE = context.declareCTE(); declareWindows = context.declareWindows(); declareFields = context.declareFields(); declareTables = context.declareTables(); declareAliases = context.declareAliases(); }
@Override public final void toSQL(RenderContext context) { ParamType paramType = context.paramType(); CastMode castMode = context.castMode();