@Override public void render(FunctionRenderContext context) { context.addChunk("COUNT(*)"); }
@Override public void render(FunctionRenderContext context) { context.addChunk("zero()"); }
@Override public void render(FunctionRenderContext context) { context.addChunk("zero()"); }
@Override public void render(FunctionRenderContext context) { context.addChunk("COUNT(*)"); }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("(select max(c) from (select "); context.addArgument(0); context.addChunk(" as c"); for (int i = 1; i < size; i++) { context.addChunk(" union all select "); context.addArgument(i); } context.addChunk(") T)"); }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("(select min(c) from (select "); context.addArgument(0); context.addChunk(" as c"); for (int i = 1; i < size; i++) { context.addChunk(" union all select "); context.addArgument(i); } context.addChunk(") T)"); }
@Override public void render(FunctionRenderContext context) { if (context.getArgumentsSize() > 1) { throw new IllegalArgumentException("The VIEW_ROOT macro allows maximally one argument: <expression>!"); } context.addChunk("NULL"); } }
@Override public void render(FunctionRenderContext context) { if (context.getArgumentsSize() > 1) { throw new IllegalArgumentException("The EMBEDDING_VIEW macro allows maximally one argument: <expression>!"); } context.addChunk("NULL"); } }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("min("); context.addArgument(0); for (int i = 1; i < size; i++) { context.addChunk(", "); context.addArgument(i); } context.addChunk(")"); }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("max("); context.addArgument(0); for (int i = 1; i < size; i++) { context.addChunk(", "); context.addArgument(i); } context.addChunk(")"); }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("greatest("); context.addArgument(0); for (int i = 1; i < size; i++) { context.addChunk(","); context.addArgument(i); } context.addChunk(")"); } }
@Override public void render(FunctionRenderContext context) { int size = context.getArgumentsSize(); if (size < 2) { throw new RuntimeException("The " + FUNCTION_NAME + " function needs at least two argument!"); } context.addChunk("least("); context.addArgument(0); for (int i = 1; i < size; i++) { context.addChunk(","); context.addArgument(i); } context.addChunk(")"); } }
@Override public void render(FunctionRenderContext context) { if (context.getArgumentsSize() > 1) { throw new IllegalArgumentException("The VIEW_ROOT macro allows maximally one argument: <expression>!"); } if (viewRoot == null) { if (context.getArgumentsSize() > 0) { context.addChunk("."); context.addArgument(0); } } else { context.addChunk(viewRoot); if (context.getArgumentsSize() > 0) { context.addChunk("."); context.addArgument(0); } } }
@Override public void render(FunctionRenderContext context) { if (context.getArgumentsSize() != 2) { throw new IllegalArgumentException("The prefix macro requires exactly two arguments: <prefix> and <expression>!"); } context.addArgument(0); context.addChunk("."); context.addArgument(1); }
@Override public void render(FunctionRenderContext context) { if (context.getArgumentsSize() != 2) { throw new IllegalArgumentException("The prefix macro requires exactly two arguments: <prefix> and <expression>!"); } context.addArgument(0); context.addChunk("."); context.addArgument(1); }
protected void renderLimitOnly(FunctionRenderContext functionRenderContext) { StringBuilder sqlSb = getSql(functionRenderContext); dbmsDialect.appendExtendedSql(sqlSb, DbmsStatementType.SELECT, true, false, null, functionRenderContext.getArgument(1), null, null, null); functionRenderContext.addChunk(sqlSb.toString()); }
protected void renderLimitOffset(FunctionRenderContext functionRenderContext) { StringBuilder sqlSb = getSql(functionRenderContext); if (limitIncludesOffset) { // Careful, parameters are not supported in this case as that would require parameter rewriting or something like that String limit = functionRenderContext.getArgument(1); String offset = functionRenderContext.getArgument(2); if (limit.contains("?") || offset.contains("?")) { throw new IllegalArgumentException("Limit and offset in subquery can not be a parameter!"); } Integer limitValue = Integer.parseInt(limit); Integer offsetValue = Integer.parseInt(offset); dbmsDialect.appendExtendedSql(sqlSb, DbmsStatementType.SELECT, true, false, null, Integer.toString(limitValue + offsetValue), offset, null, null); } else { dbmsDialect.appendExtendedSql(sqlSb, DbmsStatementType.SELECT, true, false, null, functionRenderContext.getArgument(1), functionRenderContext.getArgument(2), null, null); } functionRenderContext.addChunk(sqlSb.toString()); }