Interface SqlExpressionResolver

All Known Implementing Classes:
AbstractSqlAstQueryNodeProcessingStateImpl, BaseSqmToSqlAstConverter.DelegatingSqmAliasedNodeCollector, BaseSqmToSqlAstConverter.SqmAliasedNodePositionTracker, DomainResultCreationStateImpl, SqlAstProcessingStateImpl, SqlAstQueryNodeProcessingStateImpl, SqlAstQueryPartProcessingStateImpl

public interface SqlExpressionResolver
Resolution of a SqlSelection reference for a given SqlSelectable. Some SqlSelectable are required to be qualified (e.g. a Column) - this is indicated by the QualifiableSqlSelectable subtype. The NonQualifiableSqlSelectable subtype indicates a SqlSelectable that does not require qualification (e.g. a literal).

The point of this contract is to allow "unique-ing" of SqlSelectable references in a query to a single SqlSelection reference - effectively a caching of SqlSelection instances keyed by the SqlSelectable (+ qualifier when applicable) that it refers to.

Note also that the returns can be a specialized Expression represented by SqlSelectionExpression