Class TransformParser
- java.lang.Object
-
- org.apache.flink.cdc.runtime.parser.TransformParser
-
public class TransformParser extends Object
Use Flink's calcite parser to parse the statement of flink cdc pipeline transform.
-
-
Constructor Summary
Constructors Constructor Description TransformParser()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static DataTypededuceSubExpressionType(List<Column> columns, org.apache.calcite.sql.SqlNode subExpression, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns)static DataTypededuceSubExpressionType(List<Column> columns, org.apache.calcite.sql.SqlNode subExpression, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, DecimalPrecisionMode decimalPrecisionMode)static Map<String,String>generateColumnNameMap(List<String> originalColumnNames)static List<ProjectionColumn>generateProjectionColumns(String projectionExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns)static List<ProjectionColumn>generateProjectionColumns(String projectionExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, DecimalPrecisionMode decimalPrecisionMode)static List<Column>generateReferencedColumns(String projectionExpression, String filterExpression, List<Column> columns)static booleanhasAsterisk(String projection)static List<String>parseComputedColumnNames(String projection, SupportedMetadataColumn[] supportedMetadataColumns)static List<String>parseFilterColumnNameList(String filterExpression)static org.apache.calcite.sql.SqlSelectparseFilterExpression(String filterExpression)static org.apache.calcite.sql.SqlSelectparseSelect(String statement)static ProjectionColumnresolveProjectionColumnFromIdentifier(org.apache.calcite.rel.type.RelDataType relDataType, Map<String,Column> originalColumnMap, String identifier, String projectedColumnName, SupportedMetadataColumn[] supportedMetadataColumns)Create a projection column from a simple identifier node (could be an upstream physical column or a metadata column).static StringtranslateFilterExpressionToJaninoExpression(String filterExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, Map<String,String> columnNameMap)static StringtranslateFilterExpressionToJaninoExpression(String filterExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, Map<String,String> columnNameMap, DecimalPrecisionMode decimalPrecisionMode)
-
-
-
Method Detail
-
parseSelect
public static org.apache.calcite.sql.SqlSelect parseSelect(String statement)
-
generateReferencedColumns
public static List<Column> generateReferencedColumns(String projectionExpression, @Nullable String filterExpression, List<Column> columns)
-
generateProjectionColumns
public static List<ProjectionColumn> generateProjectionColumns(String projectionExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns)
-
generateProjectionColumns
public static List<ProjectionColumn> generateProjectionColumns(String projectionExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, DecimalPrecisionMode decimalPrecisionMode)
-
resolveProjectionColumnFromIdentifier
public static ProjectionColumn resolveProjectionColumnFromIdentifier(org.apache.calcite.rel.type.RelDataType relDataType, Map<String,Column> originalColumnMap, String identifier, String projectedColumnName, SupportedMetadataColumn[] supportedMetadataColumns)
Create a projection column from a simple identifier node (could be an upstream physical column or a metadata column).
-
translateFilterExpressionToJaninoExpression
public static String translateFilterExpressionToJaninoExpression(String filterExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, Map<String,String> columnNameMap)
-
translateFilterExpressionToJaninoExpression
public static String translateFilterExpressionToJaninoExpression(String filterExpression, List<Column> columns, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, Map<String,String> columnNameMap, DecimalPrecisionMode decimalPrecisionMode)
-
parseComputedColumnNames
public static List<String> parseComputedColumnNames(String projection, SupportedMetadataColumn[] supportedMetadataColumns)
-
parseFilterColumnNameList
public static List<String> parseFilterColumnNameList(String filterExpression)
-
parseFilterExpression
public static org.apache.calcite.sql.SqlSelect parseFilterExpression(String filterExpression)
-
generateColumnNameMap
public static Map<String,String> generateColumnNameMap(List<String> originalColumnNames)
-
deduceSubExpressionType
public static DataType deduceSubExpressionType(List<Column> columns, org.apache.calcite.sql.SqlNode subExpression, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns)
-
deduceSubExpressionType
public static DataType deduceSubExpressionType(List<Column> columns, org.apache.calcite.sql.SqlNode subExpression, List<UserDefinedFunctionDescriptor> udfDescriptors, SupportedMetadataColumn[] supportedMetadataColumns, DecimalPrecisionMode decimalPrecisionMode)
-
-