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()); }
@Override public final void toSQL(RenderContext context) { ParamType paramType = context.paramType(); CastMode castMode = context.castMode(); case POSTGRES: // No break case SQLITE: { context.castMode(NEVER) .formatSeparator() .keyword("limit") .sql(" ").keyword("offset") .sql(" ").visit(offsetOrZero) .castMode(castMode); context.castMode(NEVER) .formatSeparator() .keyword("limit") .sql(" ").visit(offsetOrZero) .sql(", ").visit(numberOfRows) .castMode(castMode); context.castMode(NEVER) .formatSeparator() .keyword("rows") .sql(" ").keyword("to") .sql(" ").visit(getUpperRownum()) .castMode(castMode);
@Override public final void sql(BindingSQLContext<U> ctx) throws SQLException { T converted = converter().to(ctx.value()); // Casting can be enforced or prevented switch (ctx.render().castMode()) { case NEVER: sql(ctx, converted); return; case ALWAYS: sqlCast(ctx, converted); return; } // See if we "should" cast, to stay on the safe side if (shouldCast(ctx, converted)) sqlCast(ctx, converted); // Most RDBMS can infer types for bind values else sql(ctx, converted); }
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(); }
switch (context.castMode()) { case NEVER: toSQL(context, value, getType());