Skip to content

support functions/expression in condition #655

Closed
@mmm8955405

Description

@mmm8955405
SELECT name, SUM ( id>1)
FROM foo
WHERE ..
public class Sum<T> extends AbstractUniTypeFunction<T, Sum<T>> {

    private final VisitableCondition<T> condition;

    private Sum(BindableColumn<T> column, VisitableCondition<T> condition) {
        super(column);
        this.condition = condition;
    }

    @Override
    public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
    	ColumnAndConditionCriterion<T>  criteion = ColumnAndConditionCriterion
    			.withColumn(column)
    			.withCondition(condition).build();
        String s = criteion.toString();
    	
        return "sum(" //$NON-NLS-1$
                + column.renderWithTableAlias(tableAliasCalculator)
                + s
                + ")"; //$NON-NLS-1$
    }

    @Override
    protected Sum<T> copy() {
        return new Sum<>(column, condition);
    }

    public static <T> Sum<T> of(BindableColumn<T> column, VisitableCondition<T> condition) {
        return new Sum<>(column, condition);
    }
}

How to render VisitableCondition ?

I see that this method is outdated

CriterionRenderer.withCriterion(subCriterion).withSequence(sequence)
  .withRenderingStrategy(renderingStrategy)
  .withTableAliasCalculator(tableAliasCalculator)
  .build()
  .render();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions