java.lang.Object
com.darkcollective.relix.plan.internal.SqlExpressions

public final class SqlExpressions extends Object
Translates relix Predicates and Operands into SQL text for pushdown. Every method returns Optional.empty() when the construct has no faithful SQL form (e.g. a scalar FunctionCall), which the pushdown planner treats as "not pushable" and falls back to in-engine evaluation.

How an attribute reference becomes a SQL column is decided by a SqlExpressions.ColumnRenderer: single-table pushdown drops any qualifier, while join pushdown maps each reference to an unambiguous alias.column. A renderer may itself return empty to reject an unresolvable or ambiguous reference, which propagates up as "not pushable".

String literals are single-quoted with embedded quotes doubled. This keeps the generated SQL portable across the dialects relix targets without a per-dialect literal layer.