in kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/expression/ExpressionConverter.java [84:156]
public static Optional<SqlNode> convert(final ExpressionSegment segment) {
if (null == segment) {
return Optional.empty();
}
if (segment instanceof LiteralExpressionSegment) {
return LiteralExpressionConverter.convert((LiteralExpressionSegment) segment);
}
if (segment instanceof CommonExpressionSegment) {
// TODO
throw new UnsupportedSQLOperationException("unsupported CommonExpressionSegment");
}
if (segment instanceof ListExpression) {
return ListExpressionConverter.convert((ListExpression) segment);
}
if (segment instanceof BinaryOperationExpression) {
return BinaryOperationExpressionConverter.convert((BinaryOperationExpression) segment);
}
if (segment instanceof ColumnSegment) {
return ColumnConverter.convert((ColumnSegment) segment);
}
if (segment instanceof ExistsSubqueryExpression) {
return ExistsSubqueryExpressionConverter.convert((ExistsSubqueryExpression) segment);
}
if (segment instanceof SubqueryExpressionSegment) {
return SubqueryExpressionConverter.convert((SubqueryExpressionSegment) segment);
}
if (segment instanceof InExpression) {
return InExpressionConverter.convert((InExpression) segment);
}
if (segment instanceof BetweenExpression) {
return BetweenExpressionConverter.convert((BetweenExpression) segment);
}
if (segment instanceof ParameterMarkerExpressionSegment) {
return ParameterMarkerExpressionConverter.convert((ParameterMarkerExpressionSegment) segment);
}
if (segment instanceof FunctionSegment) {
return FunctionConverter.convert((FunctionSegment) segment);
}
if (segment instanceof AggregationProjectionSegment) {
return AggregationProjectionConverter.convert((AggregationProjectionSegment) segment);
}
if (segment instanceof DataTypeSegment) {
return DataTypeConverter.convert((DataTypeSegment) segment);
}
if (segment instanceof CaseWhenExpression) {
return CaseWhenExpressionConverter.convert((CaseWhenExpression) segment);
}
if (segment instanceof NotExpression) {
return NotExpressionConverter.convert((NotExpression) segment);
}
if (segment instanceof TypeCastExpression) {
return TypeCastExpressionConverter.convert((TypeCastExpression) segment);
}
if (segment instanceof ExtractArgExpression) {
return ExtractArgExpressionConverter.convert((ExtractArgExpression) segment);
}
if (segment instanceof MatchAgainstExpression) {
return MatchExpressionConverter.convert((MatchAgainstExpression) segment);
}
if (segment instanceof CollateExpression) {
return CollateExpressionConverter.convert((CollateExpression) segment);
}
if (segment instanceof RowExpression) {
return RowExpressionConverter.convert((RowExpression) segment);
}
if (segment instanceof VariableSegment) {
return VariableSegmentConverter.convert((VariableSegment) segment);
}
if (segment instanceof UnaryOperationExpression) {
return UnaryOperationExpressionConverter.convert((UnaryOperationExpression) segment);
}
throw new UnsupportedSQLOperationException("unsupported TableSegment type: " + segment.getClass());
}