-
Interfaces Interface Description org.apache.flink.table.catalog.CatalogLock This interface will be removed soon. Please see FLIP-346 for more details.org.apache.flink.table.catalog.CatalogLock.Factory This interface will be removed soon. Please see FLIP-346 for more details.org.apache.flink.table.connector.RequireCatalogLock This interface will be removed soon. Please see FLIP-346 for more details.org.apache.flink.table.descriptors.DescriptorValidator SeeDescriptor
for details.org.apache.flink.table.factories.ManagedTableFactory This interface will be removed soon. Please see FLIP-346 for more details.org.apache.flink.table.legacy.api.constraints.Constraint SeeResolvedSchema
andConstraint
.org.apache.flink.table.legacy.connector.source.AsyncTableFunctionProvider Please useAsyncLookupFunctionProvider
to implement asynchronous lookup table.org.apache.flink.table.legacy.connector.source.TableFunctionProvider Please useLookupFunctionProvider
to implement synchronous lookup table.org.apache.flink.table.legacy.descriptors.Descriptor Descriptor
was primarily used for the legacy connector stack and have been deprecated. UseTableDescriptor
for creating sources and sinks from the Table API.org.apache.flink.table.legacy.factories.TableFactory This interface has been replaced byFactory
.org.apache.flink.table.legacy.factories.TableSinkFactory This interface has been replaced byDynamicTableSinkFactory
. The new interface consumes internal data structures. See FLIP-95 for more information.org.apache.flink.table.legacy.factories.TableSourceFactory This interface has been replaced byDynamicTableSourceFactory
. The new interface produces internal data structures. See FLIP-95 for more information.org.apache.flink.table.legacy.sinks.OverwritableTableSink This interface will not be supported in the new sink design aroundDynamicTableSink
. UseSupportsOverwrite
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sinks.PartitionableTableSink This interface will not be supported in the new sink design aroundDynamicTableSink
. UseSupportsPartitioning
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sinks.TableSink This interface has been replaced byDynamicTableSink
. The new interface consumes internal data structures. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.DefinedFieldMapping This interface will not be supported in the new source design aroundDynamicTableSource
. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.DefinedProctimeAttribute This interface will not be supported in the new source design aroundDynamicTableSource
. Use the concept of computed columns instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.DefinedRowtimeAttributes This interface will not be supported in the new source design aroundDynamicTableSource
. Use the concept of computed columns instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.FieldComputer This interface will not be supported in the new source design aroundDynamicTableSource
. Use the concept of computed columns instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.FilterableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseSupportsFilterPushDown
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.LimitableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseSupportsLimitPushDown
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.LookupableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseLookupTableSource
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.NestedFieldsProjectableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseSupportsProjectionPushDown
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.PartitionableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseSupportsPartitionPushDown
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.ProjectableTableSource This interface will not be supported in the new source design aroundDynamicTableSource
. UseSupportsProjectionPushDown
instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.TableSource This interface has been replaced byDynamicTableSource
. The new interface produces internal data structures. See FLIP-95 for more information.
-
Classes Class Description org.apache.flink.table.dataview.ListViewSerializer org.apache.flink.table.dataview.ListViewSerializerSnapshot org.apache.flink.table.dataview.ListViewTypeInfo org.apache.flink.table.dataview.ListViewTypeInfoFactory org.apache.flink.table.dataview.MapViewSerializer org.apache.flink.table.dataview.MapViewSerializerSnapshot org.apache.flink.table.dataview.MapViewTypeInfo org.apache.flink.table.dataview.MapViewTypeInfoFactory org.apache.flink.table.dataview.NullAwareMapSerializer org.apache.flink.table.dataview.NullAwareMapSerializerSnapshot org.apache.flink.table.descriptors.ConnectorDescriptorValidator org.apache.flink.table.descriptors.DescriptorProperties This utility will be dropped soon.DynamicTableFactory
is based onConfigOption
and catalogs useCatalogPropertiesUtil
.org.apache.flink.table.descriptors.FileSystemValidator The legacy CSV connector has been replaced byFileSource
/FileSink
. It is kept only to support tests for the legacy connector stack.org.apache.flink.table.factories.TableFactoryService org.apache.flink.table.factories.TableSinkFactoryContextImpl org.apache.flink.table.factories.TableSourceFactoryContextImpl org.apache.flink.table.functions.AggregateFunctionDefinition Non-legacy functions can simply omit this wrapper for declarations.org.apache.flink.table.functions.LegacyUserDefinedFunctionInference org.apache.flink.table.functions.ScalarFunctionDefinition Non-legacy functions can simply omit this wrapper for declarations.org.apache.flink.table.functions.TableAggregateFunctionDefinition Non-legacy functions can simply omit this wrapper for declarations.org.apache.flink.table.functions.TableFunctionDefinition Non-legacy functions can simply omit this wrapper for declarations.org.apache.flink.table.legacy.api.constraints.UniqueConstraint SeeResolvedSchema
andUniqueConstraint
.org.apache.flink.table.legacy.api.TableColumn SeeResolvedSchema
andColumn
.org.apache.flink.table.legacy.api.TableSchema This class has been deprecated as part of FLIP-164. It has been replaced by two more dedicated classesSchema
andResolvedSchema
. UseSchema
for declaration in APIs.ResolvedSchema
is offered by the framework after resolution and validation.org.apache.flink.table.legacy.api.Types This class will be removed in future versions as it uses the old type system. It is recommended to useDataTypes
instead which uses the new type system based on instances ofDataType
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.api.WatermarkSpec SeeResolvedSchema
andWatermarkSpec
.org.apache.flink.table.legacy.descriptors.Rowtime This class was used for legacy connectors usingDescriptor
.org.apache.flink.table.legacy.descriptors.Schema This class was used for legacy connectors usingDescriptor
.org.apache.flink.table.legacy.sources.RowtimeAttributeDescriptor This interface will not be supported in the new source design aroundDynamicTableSource
. Use the concept of computed columns instead. See FLIP-95 for more information.org.apache.flink.table.legacy.sources.tsextractors.TimestampExtractor This interface will not be supported in the new source design aroundDynamicTableSource
. Use the concept of computed columns instead. See FLIP-95 for more information.org.apache.flink.table.legacy.types.logical.TypeInformationRawType UseRawType
instead.org.apache.flink.table.legacy.utils.TypeStringUtils This utility is based onTypeInformation
. However, the Table & SQL API is currently updated to useDataType
s based onLogicalType
s. UseLogicalTypeParser
instead.org.apache.flink.table.sinks.TableSinkBase This class is implementing the deprecatedTableSink
interface. ImplementDynamicTableSink
directly instead.org.apache.flink.table.types.utils.LegacyTypeInfoDataTypeConverter UseDataTypeFactory.createDataType(TypeInformation)
instead. Note that this method will not create legacy types anymore. It fully uses the new type system available only in the planner.org.apache.flink.table.typeutils.TimeIndicatorTypeInfo This class will be removed in future versions as it is used for the old type system. It is recommended to useDataTypes
instead. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.typeutils.TimeIntervalTypeInfo This class will be removed in future versions as it is used for the old type system. It is recommended to useDataTypes
instead. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.
-
Exceptions Exceptions Description org.apache.flink.table.api.AmbiguousTableFactoryException This exception is considered internal and has been erroneously placed in the *.api package. It is replaced byAmbiguousTableFactoryException
and should not be used directly anymore.org.apache.flink.table.api.ExpressionParserException This exception is considered internal and has been erroneously placed in the *.api package. It is replaced byExpressionParserException
and should not be used directly anymore.org.apache.flink.table.api.NoMatchingTableFactoryException This exception is considered internal and has been erroneously placed in the *.api package. It is replaced byNoMatchingTableFactoryException
and should not be used directly anymore.
-
Fields Field Description org.apache.flink.table.api.dataview.ListView.elementType org.apache.flink.table.api.dataview.MapView.keyType org.apache.flink.table.api.dataview.MapView.valueType org.apache.flink.table.legacy.descriptors.Schema.SCHEMA_TYPE org.apache.flink.table.module.CommonModuleOptions.MODULE_TYPE This is only required for the legacy factory stack
-
Methods Method Description org.apache.flink.table.catalog.Catalog.getTableFactory() UseCatalog.getFactory()
for the new factory stack. The new factory stack uses the new table sources and sinks defined in FLIP-95 and a slightly different discovery mechanism.org.apache.flink.table.catalog.Catalog.supportsManagedTable() This method will be removed soon. Please see FLIP-346 for more details.org.apache.flink.table.catalog.CatalogBaseTable.getSchema() This method returns the deprecatedTableSchema
class. The old class was a hybrid of resolved and unresolved schema information. It has been replaced by the newSchema
which is always unresolved and will be resolved by the framework later.org.apache.flink.table.catalog.CatalogFunction.isGeneric() There is no replacement for this function, as now functions have type inference strategiesorg.apache.flink.table.catalog.CatalogTable.of(Schema, String, List<String>, Map<String, String>) Use the builderCatalogTable.newBuilder()
instead.org.apache.flink.table.catalog.CatalogTable.toProperties() Only aResolvedCatalogTable
is serializable to properties.org.apache.flink.table.catalog.ResolvedCatalogBaseTable.getSchema() This method returns the deprecatedTableSchema
class. The old class was a hybrid of resolved and unresolved schema information. It has been replaced by the newResolvedSchema
which is resolved by the framework and accessible viaResolvedCatalogBaseTable.getResolvedSchema()
.org.apache.flink.table.connector.source.abilities.SupportsProjectionPushDown.applyProjection(int[][]) Please implementSupportsProjectionPushDown.applyProjection(int[][], DataType)
org.apache.flink.table.factories.CatalogFactory.createCatalog(String, Map<String, String>) Use {@link this#createCatalog(Context)} instead and implementFactory
instead ofTableFactory
.org.apache.flink.table.factories.CatalogFactory.requiredContext() Implement theFactory
based stack instead.org.apache.flink.table.factories.CatalogFactory.supportedProperties() Implement theFactory
based stack instead.org.apache.flink.table.factories.FactoryUtil.createDynamicTableSink(DynamicTableSinkFactory, ObjectIdentifier, ResolvedCatalogTable, ReadableConfig, ClassLoader, boolean) org.apache.flink.table.factories.FactoryUtil.createDynamicTableSource(DynamicTableSourceFactory, ObjectIdentifier, ResolvedCatalogTable, ReadableConfig, ClassLoader, boolean) org.apache.flink.table.factories.FactoryUtil.createTableSink(Catalog, ObjectIdentifier, ResolvedCatalogTable, ReadableConfig, ClassLoader, boolean) org.apache.flink.table.factories.FactoryUtil.createTableSource(Catalog, ObjectIdentifier, ResolvedCatalogTable, ReadableConfig, ClassLoader, boolean) org.apache.flink.table.factories.FunctionDefinitionFactory.createFunctionDefinition(String, CatalogFunction) Please implementFunctionDefinitionFactory.createFunctionDefinition(String, CatalogFunction, Context)
instead.org.apache.flink.table.factories.ModuleFactory.createModule(Map<String, String>) org.apache.flink.table.factories.ModuleFactory.requiredContext() Implement theFactory
based stack instead.org.apache.flink.table.factories.ModuleFactory.supportedProperties() Implement theFactory
based stack instead.org.apache.flink.table.functions.ImperativeAggregateFunction.getAccumulatorType() This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.functions.ImperativeAggregateFunction.getResultType() This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.functions.ScalarFunction.getParameterTypes(Class<?>[]) This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.functions.ScalarFunction.getResultType(Class<?>[]) This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.functions.TableFunction.getParameterTypes(Class<?>[]) This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.functions.TableFunction.getResultType() This method uses the old type system and is based on the old reflective extraction logic. The method will be removed in future versions and is only called when using the deprecatedTableEnvironment.registerFunction(...)
method. The new reflective extraction logic (possibly enriched withDataTypeHint
andFunctionHint
) should be powerful enough to cover most use cases. For advanced users, it is possible to overrideUserDefinedFunction.getTypeInference(DataTypeFactory)
.org.apache.flink.table.legacy.api.TableColumn.of(String, DataType) UseTableColumn.physical(String, DataType)
instead.org.apache.flink.table.legacy.api.TableSchema.Builder.field(String, TypeInformation<?>) This method will be removed in future versions as it uses the old type system. It is recommended to useTableSchema.Builder.field(String, DataType)
instead which uses the new type system based onDataTypes
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.api.TableSchema.fromTypeInfo(TypeInformation<?>) This method will be removed soon. UseDataTypes
to declare types.org.apache.flink.table.legacy.api.TableSchema.getFieldType(int) This method will be removed in future versions as it uses the old type system. It is recommended to useTableSchema.getFieldDataType(int)
instead which uses the new type system based onDataTypes
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.api.TableSchema.getFieldTypes() This method will be removed in future versions as it uses the old type system. It is recommended to useTableSchema.getFieldDataTypes()
instead which uses the new type system based onDataTypes
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.api.TableSchema.toRowType() UseTableSchema.toRowDataType()
instead.org.apache.flink.table.legacy.descriptors.Schema.field(String, TypeInformation<?>) This method will be removed in future versions as it uses the old type system. Please useSchema.field(String, DataType)
instead.org.apache.flink.table.legacy.factories.TableSinkFactory.createTableSink(Map<String, String>) TableSinkFactory.Context
contains more information, and already contains table schema too. Please useTableSinkFactory.createTableSink(Context)
instead.org.apache.flink.table.legacy.factories.TableSourceFactory.createTableSource(Map<String, String>) TableSourceFactory.Context
contains more information, and already contains table schema too. Please useTableSourceFactory.createTableSource(Context)
instead.org.apache.flink.table.legacy.sinks.TableSink.configure(String[], TypeInformation<?>[]) This method will be dropped in future versions. It is recommended to pass a static schema when instantiating the sink instead.org.apache.flink.table.legacy.sinks.TableSink.getFieldNames() Use the field names ofTableSink.getTableSchema()
instead.org.apache.flink.table.legacy.sinks.TableSink.getFieldTypes() Use the field types ofTableSink.getTableSchema()
instead.org.apache.flink.table.legacy.sinks.TableSink.getOutputType() This method will be removed in future versions as it uses the old type system. It is recommended to useTableSink.getConsumedDataType()
instead which uses the new type system based onDataTypes
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.sources.TableSource.getReturnType() This method will be removed in future versions as it uses the old type system. It is recommended to useTableSource.getProducedDataType()
instead which uses the new type system based onDataTypes
. Please make sure to use either the old or the new type system consistently to avoid unintended behavior. See the website documentation for more information.org.apache.flink.table.legacy.sources.TableSource.getTableSchema() Table schema is a logical description of a table and should not be part of the physical TableSource. Define schema when registering a Table either in DDL or inTableEnvironment#connect(...)
.org.apache.flink.table.plan.stats.ColumnStats.getMaxValue() org.apache.flink.table.plan.stats.ColumnStats.getMinValue() org.apache.flink.table.types.logical.utils.LogicalTypeParser.parse(String) You should useLogicalTypeParser.parse(String, ClassLoader)
to correctly load user typesorg.apache.flink.table.types.utils.DataTypeUtils.projectRow(DataType, int[][]) Use theProjection
typeorg.apache.flink.table.types.utils.TypeConversions.fromDataTypeToLegacyInfo(DataType) Please don't use this method anymore. It will be removed soon and we should not make the removal more painful. Sources and sinks should use the method available in context to convert, within the planner you should use eitherInternalTypeInfo
orExternalTypeInfo
depending on the use case.org.apache.flink.table.types.utils.TypeConversions.fromLegacyInfoToDataType(TypeInformation<?>) Please don't use this method anymore. It will be removed soon and we should not make the removal more painful. Sources and sinks should use the method available in context to convert, within the planner you should use eitherInternalTypeInfo
orExternalTypeInfo
depending on the use case.org.apache.flink.table.utils.EncodingUtils.loadClass(String) UseEncodingUtils.loadClass(String, ClassLoader)
instead, in order to explicitly provide the correct classloader.
-
Constructors Constructor Description org.apache.flink.table.api.dataview.ListView(TypeInformation<?>) This method uses the old type system. Please use aDataTypeHint
instead if the reflective type extraction is not successful.org.apache.flink.table.api.dataview.MapView(TypeInformation<?>, TypeInformation<?>) This method uses the old type system. Please use aDataTypeHint
instead if the reflective type extraction is not successful.org.apache.flink.table.expressions.CallExpression(FunctionIdentifier, FunctionDefinition, List<ResolvedExpression>, DataType) org.apache.flink.table.legacy.api.TableSchema(String[], TypeInformation<?>[]) Use theTableSchema.Builder
instead.org.apache.flink.table.plan.stats.ColumnStats(Long, Long, Double, Integer, Number, Number) org.apache.flink.table.types.logical.SymbolType(boolean, Class<T>) Symbol types have been simplified to not require a class.