├── .asf.yaml
├── .dlc.json
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yml
│ └── issue-notice.yml
├── labeler.yml
└── workflows
│ ├── approve_label.yml
│ ├── approve_label_trigger.yml
│ ├── build_docs.yml
│ ├── close_stale.yml
│ ├── docs.sh
│ ├── flink_cdc_base.yml
│ ├── flink_cdc_ci.yml
│ ├── flink_cdc_ci_nightly.yml
│ ├── label.yml
│ └── utils.sh
├── .gitignore
├── .gitmodules
├── .idea
└── vcs.xml
├── Dockerfile
├── LICENSE
├── NOTICE
├── README.md
├── docs
├── .gitignore
├── README.md
├── assets
│ ├── _custom.scss
│ ├── _fonts.scss
│ ├── github.css
│ └── search-data.js
├── config.toml
├── content.zh
│ ├── _index.md
│ ├── docs
│ │ ├── connectors
│ │ │ ├── _index.md
│ │ │ ├── flink-sources
│ │ │ │ ├── _index.md
│ │ │ │ ├── datastream-api-package-guidance.md
│ │ │ │ ├── db2-cdc.md
│ │ │ │ ├── mongodb-cdc.md
│ │ │ │ ├── mysql-cdc.md
│ │ │ │ ├── oceanbase-cdc.md
│ │ │ │ ├── oracle-cdc.md
│ │ │ │ ├── overview.md
│ │ │ │ ├── postgres-cdc.md
│ │ │ │ ├── sqlserver-cdc.md
│ │ │ │ ├── tidb-cdc.md
│ │ │ │ ├── tutorials
│ │ │ │ │ ├── _index.md
│ │ │ │ │ ├── build-real-time-data-lake-tutorial.md
│ │ │ │ │ ├── build-streaming-etl-tutorial.md
│ │ │ │ │ ├── db2-tutorial.md
│ │ │ │ │ ├── mongodb-tutorial.md
│ │ │ │ │ ├── oceanbase-tutorial.md
│ │ │ │ │ ├── oracle-tutorial.md
│ │ │ │ │ ├── polardbx-tutorial.md
│ │ │ │ │ ├── sqlserver-tutorial.md
│ │ │ │ │ └── tidb-tutorial.md
│ │ │ │ └── vitess-cdc.md
│ │ │ └── pipeline-connectors
│ │ │ │ ├── _index.md
│ │ │ │ ├── doris.md
│ │ │ │ ├── elasticsearch.md
│ │ │ │ ├── iceberg.md
│ │ │ │ ├── kafka.md
│ │ │ │ ├── maxcompute.md
│ │ │ │ ├── mysql.md
│ │ │ │ ├── oceanbase.md
│ │ │ │ ├── overview.md
│ │ │ │ ├── paimon.md
│ │ │ │ └── starrocks.md
│ │ ├── core-concept
│ │ │ ├── _index.md
│ │ │ ├── data-pipeline.md
│ │ │ ├── data-sink.md
│ │ │ ├── data-source.md
│ │ │ ├── route.md
│ │ │ ├── schema-evolution.md
│ │ │ ├── table-id.md
│ │ │ └── transform.md
│ │ ├── deployment
│ │ │ ├── _index.md
│ │ │ ├── kubernetes.md
│ │ │ ├── standalone.md
│ │ │ └── yarn.md
│ │ ├── developer-guide
│ │ │ ├── _index.md
│ │ │ ├── contribute-to-flink-cdc.md
│ │ │ ├── licenses.md
│ │ │ └── understand-flink-cdc-api.md
│ │ ├── faq
│ │ │ ├── _index.md
│ │ │ └── faq.md
│ │ └── get-started
│ │ │ ├── _index.md
│ │ │ ├── introduction.md
│ │ │ └── quickstart
│ │ │ ├── _index.md
│ │ │ ├── cdc-up-quickstart-guide.md
│ │ │ ├── mysql-to-doris.md
│ │ │ └── mysql-to-starrocks.md
│ └── versions.md
├── content
│ ├── _index.md
│ ├── docs
│ │ ├── connectors
│ │ │ ├── _index.md
│ │ │ ├── flink-sources
│ │ │ │ ├── _index.md
│ │ │ │ ├── datastream-api-package-guidance.md
│ │ │ │ ├── db2-cdc.md
│ │ │ │ ├── mongodb-cdc.md
│ │ │ │ ├── mysql-cdc.md
│ │ │ │ ├── oceanbase-cdc.md
│ │ │ │ ├── oracle-cdc.md
│ │ │ │ ├── overview.md
│ │ │ │ ├── postgres-cdc.md
│ │ │ │ ├── sqlserver-cdc.md
│ │ │ │ ├── tidb-cdc.md
│ │ │ │ ├── tutorials
│ │ │ │ │ ├── _index.md
│ │ │ │ │ ├── build-real-time-data-lake-tutorial.md
│ │ │ │ │ ├── build-streaming-etl-tutorial.md
│ │ │ │ │ ├── db2-tutorial.md
│ │ │ │ │ ├── mongodb-tutorial.md
│ │ │ │ │ ├── oceanbase-tutorial.md
│ │ │ │ │ ├── oracle-tutorial.md
│ │ │ │ │ ├── polardbx-tutorial.md
│ │ │ │ │ ├── sqlserver-tutorial.md
│ │ │ │ │ └── tidb-tutorial.md
│ │ │ │ └── vitess-cdc.md
│ │ │ └── pipeline-connectors
│ │ │ │ ├── _index.md
│ │ │ │ ├── doris.md
│ │ │ │ ├── elasticsearch.md
│ │ │ │ ├── iceberg.md
│ │ │ │ ├── kafka.md
│ │ │ │ ├── maxcompute.md
│ │ │ │ ├── mysql.md
│ │ │ │ ├── oceanbase.md
│ │ │ │ ├── overview.md
│ │ │ │ ├── paimon.md
│ │ │ │ └── starrocks.md
│ │ ├── core-concept
│ │ │ ├── _index.md
│ │ │ ├── data-pipeline.md
│ │ │ ├── data-sink.md
│ │ │ ├── data-source.md
│ │ │ ├── route.md
│ │ │ ├── schema-evolution.md
│ │ │ ├── table-id.md
│ │ │ └── transform.md
│ │ ├── deployment
│ │ │ ├── _index.md
│ │ │ ├── kubernetes.md
│ │ │ ├── standalone.md
│ │ │ └── yarn.md
│ │ ├── developer-guide
│ │ │ ├── _index.md
│ │ │ ├── contribute-to-flink-cdc.md
│ │ │ ├── licenses.md
│ │ │ └── understand-flink-cdc-api.md
│ │ ├── faq
│ │ │ ├── _index.md
│ │ │ └── faq.md
│ │ └── get-started
│ │ │ ├── _index.md
│ │ │ ├── introduction.md
│ │ │ └── quickstart
│ │ │ ├── _index.md
│ │ │ ├── cdc-up-quickstart-guide.md
│ │ │ ├── mysql-to-doris.md
│ │ │ └── mysql-to-starrocks.md
│ └── versions.md
├── layouts
│ ├── _default
│ │ └── baseof.html
│ ├── partials
│ │ └── docs
│ │ │ ├── footer.html
│ │ │ ├── inject
│ │ │ ├── content-before.html
│ │ │ ├── head.html
│ │ │ ├── menu-after.html
│ │ │ └── menu-before.html
│ │ │ ├── interpolate.html
│ │ │ ├── menu-filetree.html
│ │ │ ├── menu.html
│ │ │ ├── simple-title.html
│ │ │ ├── title.html
│ │ │ └── toc.html
│ └── shortcodes
│ │ ├── all_versions.html
│ │ ├── artifact.html
│ │ ├── artifact_gradle.html
│ │ ├── artifact_tabs.html
│ │ ├── beta.html
│ │ ├── build_time.html
│ │ ├── center.html
│ │ ├── check.html
│ │ ├── connector_artifact.html
│ │ ├── downloads.html
│ │ ├── gh_link.html
│ │ ├── github_repo.html
│ │ ├── img.html
│ │ ├── include_reporter_config.html
│ │ ├── javadoc.html
│ │ ├── label.html
│ │ ├── py_connector_download_link.html
│ │ ├── py_download_link.html
│ │ ├── pythondoc.html
│ │ ├── query_state_warning.html
│ │ ├── query_state_warning_zh.html
│ │ ├── ref_static.html
│ │ ├── scala_version.html
│ │ ├── sql_connector_download_table.html
│ │ ├── sql_download_table.html
│ │ ├── sql_functions.html
│ │ ├── sql_functions_zh.html
│ │ ├── sql_optional_connectors.html
│ │ ├── sql_optional_formats.html
│ │ ├── stable.html
│ │ ├── tab.html
│ │ ├── tabs.html
│ │ ├── top.html
│ │ ├── training_link.html
│ │ ├── training_repo.html
│ │ ├── unstable.html
│ │ ├── version.html
│ │ └── xmark.html
└── static
│ ├── favicon.png
│ ├── fig
│ ├── LICENSE.txt
│ ├── architecture.png
│ ├── cdc-flow.png
│ ├── design.png
│ ├── favicon.png
│ ├── flinkcdc-logo.png
│ ├── flow-of-events.png
│ ├── index-background-footer.png
│ ├── index-background-header.png
│ ├── index-yaml-example.png
│ ├── mysql-doris-tutorial
│ │ ├── doris-create-table.png
│ │ ├── doris-display-data.png
│ │ ├── doris-display-result.png
│ │ ├── doris-ui.png
│ │ ├── flink-ui.png
│ │ └── mysql-to-doris.png
│ ├── mysql-postgres-tutorial
│ │ ├── flink-cdc-streaming-etl.png
│ │ ├── flink-sql-client.png
│ │ ├── flink-ui.png
│ │ ├── kafka-gmv-changes.gif
│ │ ├── kibana-create-index-pattern.png
│ │ ├── kibana-detailed-orders-changes.gif
│ │ └── kibana-detailed-orders.png
│ ├── mysql-starrocks-tutorial
│ │ ├── flink-ui.png
│ │ ├── mysql-to-starrocks.png
│ │ ├── starrocks-display-data.png
│ │ └── starrocks-display-result.png
│ └── real-time-data-lake-tutorial
│ │ ├── data_in_iceberg.png
│ │ ├── files-in-iceberg.png
│ │ ├── final-data-in-iceberg.png
│ │ ├── flink-cdc-iceberg-running-job.png
│ │ ├── flink-sql-client.png
│ │ ├── flink-ui.png
│ │ └── real-time-data-lake-tutorial.png
│ ├── flink-header-logo.svg
│ ├── font-awesome
│ ├── css
│ │ ├── font-awesome.css
│ │ └── font-awesome.min.css
│ └── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ ├── js
│ ├── anchor.min.js
│ └── flink.js
│ └── navbar-brand-logo.jpg
├── flink-cdc-cli
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── cli
│ │ ├── CliExecutor.java
│ │ ├── CliFrontend.java
│ │ ├── CliFrontendOptions.java
│ │ ├── parser
│ │ ├── PipelineDefinitionParser.java
│ │ └── YamlPipelineDefinitionParser.java
│ │ └── utils
│ │ ├── ConfigurationUtils.java
│ │ ├── FlinkEnvironmentUtils.java
│ │ └── YamlParserUtils.java
│ └── test
│ ├── java
│ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── cli
│ │ ├── CliFrontendTest.java
│ │ ├── parser
│ │ └── YamlPipelineDefinitionParserTest.java
│ │ └── utils
│ │ └── ConfigurationUtilsTest.java
│ └── resources
│ ├── definitions
│ ├── pipeline-definition-full-with-repsym.yaml
│ ├── pipeline-definition-full.yaml
│ ├── pipeline-definition-minimized.yaml
│ ├── pipeline-definition-with-optional.yaml
│ └── pipeline-definition-with-udf.yaml
│ ├── flink-home
│ └── conf
│ │ ├── config.yaml
│ │ └── flink-conf.yaml
│ ├── global-config
│ └── global-config.yaml
│ └── log4j2-test.properties
├── flink-cdc-common
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── common
│ │ ├── annotation
│ │ ├── Experimental.java
│ │ ├── Internal.java
│ │ ├── Public.java
│ │ ├── PublicEvolving.java
│ │ └── VisibleForTesting.java
│ │ ├── configuration
│ │ ├── ConfigOption.java
│ │ ├── ConfigOptions.java
│ │ ├── Configuration.java
│ │ ├── ConfigurationUtils.java
│ │ ├── FallbackKey.java
│ │ ├── StructuredOptionsSplitter.java
│ │ └── description
│ │ │ ├── BlockElement.java
│ │ │ ├── Description.java
│ │ │ ├── DescriptionElement.java
│ │ │ ├── Formatter.java
│ │ │ ├── HtmlFormatter.java
│ │ │ ├── InlineElement.java
│ │ │ ├── LineBreakElement.java
│ │ │ ├── LinkElement.java
│ │ │ ├── ListElement.java
│ │ │ └── TextElement.java
│ │ ├── data
│ │ ├── ArrayData.java
│ │ ├── DecimalData.java
│ │ ├── GenericArrayData.java
│ │ ├── GenericMapData.java
│ │ ├── LocalZonedTimestampData.java
│ │ ├── MapData.java
│ │ ├── RecordData.java
│ │ ├── StringData.java
│ │ ├── TimestampData.java
│ │ ├── ZonedTimestampData.java
│ │ └── binary
│ │ │ ├── BinaryArrayData.java
│ │ │ ├── BinaryFormat.java
│ │ │ ├── BinaryMapData.java
│ │ │ ├── BinaryRecordData.java
│ │ │ ├── BinarySection.java
│ │ │ ├── BinarySegmentUtils.java
│ │ │ ├── BinaryStringData.java
│ │ │ ├── LazyBinaryFormat.java
│ │ │ ├── MurmurHashUtils.java
│ │ │ └── NullAwareGetters.java
│ │ ├── event
│ │ ├── AddColumnEvent.java
│ │ ├── AlterColumnTypeEvent.java
│ │ ├── ChangeEvent.java
│ │ ├── CreateTableEvent.java
│ │ ├── DataChangeEvent.java
│ │ ├── DropColumnEvent.java
│ │ ├── DropTableEvent.java
│ │ ├── Event.java
│ │ ├── EventDeserializer.java
│ │ ├── FlushEvent.java
│ │ ├── OperationType.java
│ │ ├── RenameColumnEvent.java
│ │ ├── SchemaChangeEvent.java
│ │ ├── SchemaChangeEventType.java
│ │ ├── SchemaChangeEventTypeFamily.java
│ │ ├── SchemaChangeEventWithPreSchema.java
│ │ ├── TableId.java
│ │ ├── TruncateTableEvent.java
│ │ └── visitor
│ │ │ ├── AddColumnEventVisitor.java
│ │ │ ├── AlterColumnTypeEventVisitor.java
│ │ │ ├── CreateTableEventVisitor.java
│ │ │ ├── DropColumnEventVisitor.java
│ │ │ ├── DropTableEventVisitor.java
│ │ │ ├── RenameColumnEventVisitor.java
│ │ │ ├── SchemaChangeEventVisitor.java
│ │ │ └── TruncateTableEventVisitor.java
│ │ ├── exceptions
│ │ ├── SchemaEvolveException.java
│ │ └── UnsupportedSchemaChangeEventException.java
│ │ ├── factories
│ │ ├── DataSinkFactory.java
│ │ ├── DataSourceFactory.java
│ │ ├── Factory.java
│ │ └── FactoryHelper.java
│ │ ├── function
│ │ ├── HashFunction.java
│ │ └── HashFunctionProvider.java
│ │ ├── pipeline
│ │ ├── PipelineOptions.java
│ │ ├── RuntimeExecutionMode.java
│ │ └── SchemaChangeBehavior.java
│ │ ├── route
│ │ └── RouteRule.java
│ │ ├── schema
│ │ ├── Column.java
│ │ ├── MetadataColumn.java
│ │ ├── PhysicalColumn.java
│ │ ├── Schema.java
│ │ ├── Selectors.java
│ │ └── TableFilter.java
│ │ ├── sink
│ │ ├── DataSink.java
│ │ ├── DefaultDataChangeEventHashFunctionProvider.java
│ │ ├── EventSinkProvider.java
│ │ ├── FlinkSinkFunctionProvider.java
│ │ ├── FlinkSinkProvider.java
│ │ └── MetadataApplier.java
│ │ ├── source
│ │ ├── DataSource.java
│ │ ├── EventSourceProvider.java
│ │ ├── FlinkSourceFunctionProvider.java
│ │ ├── FlinkSourceProvider.java
│ │ ├── MetadataAccessor.java
│ │ └── SupportedMetadataColumn.java
│ │ ├── text
│ │ ├── ParsingException.java
│ │ ├── Position.java
│ │ └── TokenStream.java
│ │ ├── types
│ │ ├── ArrayType.java
│ │ ├── BigIntType.java
│ │ ├── BinaryType.java
│ │ ├── BooleanType.java
│ │ ├── CharType.java
│ │ ├── DataField.java
│ │ ├── DataType.java
│ │ ├── DataTypeChecks.java
│ │ ├── DataTypeDefaultVisitor.java
│ │ ├── DataTypeFamily.java
│ │ ├── DataTypeRoot.java
│ │ ├── DataTypeVisitor.java
│ │ ├── DataTypes.java
│ │ ├── DateType.java
│ │ ├── DecimalType.java
│ │ ├── DoubleType.java
│ │ ├── FloatType.java
│ │ ├── IntType.java
│ │ ├── LocalZonedTimestampType.java
│ │ ├── MapType.java
│ │ ├── RowType.java
│ │ ├── SmallIntType.java
│ │ ├── TimeType.java
│ │ ├── TimestampType.java
│ │ ├── TinyIntType.java
│ │ ├── VarBinaryType.java
│ │ ├── VarCharType.java
│ │ ├── ZonedTimestampType.java
│ │ └── utils
│ │ │ ├── DataTypeUtils.java
│ │ │ └── runtime
│ │ │ ├── DataInputViewStream.java
│ │ │ └── DataOutputViewStream.java
│ │ ├── udf
│ │ ├── UserDefinedFunction.java
│ │ └── UserDefinedFunctionContext.java
│ │ └── utils
│ │ ├── ChangeEventUtils.java
│ │ ├── DateTimeUtils.java
│ │ ├── EncodingUtils.java
│ │ ├── InstantiationUtil.java
│ │ ├── Preconditions.java
│ │ ├── Predicates.java
│ │ ├── SchemaMergingUtils.java
│ │ ├── SchemaUtils.java
│ │ ├── StringUtf8Utils.java
│ │ ├── StringUtils.java
│ │ ├── TestCaseUtils.java
│ │ ├── ThreadLocalCache.java
│ │ ├── TimeUtils.java
│ │ └── TypeCheckUtils.java
│ └── test
│ ├── java
│ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── common
│ │ ├── factories
│ │ └── FactoryHelperTests.java
│ │ ├── schema
│ │ └── SelectorsTest.java
│ │ ├── testutils
│ │ └── assertions
│ │ │ ├── AddColumnEventAssert.java
│ │ │ ├── AlterColumnTypeEventAssert.java
│ │ │ ├── ChangeEventAssert.java
│ │ │ ├── CreateTableEventAssert.java
│ │ │ ├── DataChangeEventAssert.java
│ │ │ ├── DropColumnEventAssert.java
│ │ │ ├── EventAssert.java
│ │ │ ├── EventAssertions.java
│ │ │ ├── RecordDataAssert.java
│ │ │ ├── RecordDataWithSchemaAssert.java
│ │ │ ├── RenameColumnEventAssert.java
│ │ │ └── SchemaChangeEventAssert.java
│ │ ├── types
│ │ └── utils
│ │ │ └── DataTypeUtilsTest.java
│ │ └── utils
│ │ ├── ChangeEventUtilsTest.java
│ │ ├── SchemaMergingUtilsTest.java
│ │ ├── SchemaUtilsTest.java
│ │ └── StringUtilsTest.java
│ └── resources
│ └── log4j2-test.properties
├── flink-cdc-composer
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── composer
│ │ ├── PipelineComposer.java
│ │ ├── PipelineDeploymentExecutor.java
│ │ ├── PipelineExecution.java
│ │ ├── definition
│ │ ├── ModelDef.java
│ │ ├── PipelineDef.java
│ │ ├── RouteDef.java
│ │ ├── SinkDef.java
│ │ ├── SourceDef.java
│ │ ├── TransformDef.java
│ │ └── UdfDef.java
│ │ ├── flink
│ │ ├── FlinkEnvironmentUtils.java
│ │ ├── FlinkPipelineComposer.java
│ │ ├── FlinkPipelineExecution.java
│ │ ├── coordination
│ │ │ └── OperatorIDGenerator.java
│ │ ├── deployment
│ │ │ ├── ComposeDeployment.java
│ │ │ ├── K8SApplicationDeploymentExecutor.java
│ │ │ └── YarnApplicationDeploymentExecutor.java
│ │ └── translator
│ │ │ ├── DataSinkTranslator.java
│ │ │ ├── DataSourceTranslator.java
│ │ │ ├── OperatorUidGenerator.java
│ │ │ ├── PartitioningTranslator.java
│ │ │ ├── SchemaOperatorTranslator.java
│ │ │ └── TransformTranslator.java
│ │ └── utils
│ │ └── FactoryDiscoveryUtils.java
│ └── test
│ ├── java
│ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── composer
│ │ ├── flink
│ │ ├── FlinkEnvironmentUtilsTest.java
│ │ ├── FlinkParallelizedPipelineITCase.java
│ │ ├── FlinkPipelineBatchComposerITCase.java
│ │ ├── FlinkPipelineComposerITCase.java
│ │ ├── FlinkPipelineComposerLenientITCase.java
│ │ ├── FlinkPipelineComposerTest.java
│ │ ├── FlinkPipelineTransformITCase.java
│ │ ├── FlinkPipelineUdfITCase.java
│ │ ├── deployment
│ │ │ └── ComposeDeploymentTest.java
│ │ └── translator
│ │ │ ├── DataSinkTranslatorTest.java
│ │ │ ├── DataSourceTranslatorTest.java
│ │ │ └── OperatorUidGeneratorTest.java
│ │ ├── testsource
│ │ ├── factory
│ │ │ └── DistributedDataSourceFactory.java
│ │ └── source
│ │ │ ├── DistributedDataSource.java
│ │ │ ├── DistributedSourceFunction.java
│ │ │ └── DistributedSourceOptions.java
│ │ └── utils
│ │ ├── FactoryDiscoveryUtilsTest.java
│ │ └── factory
│ │ ├── DataSinkFactory1.java
│ │ ├── DataSinkFactory2.java
│ │ ├── DataSourceFactory1.java
│ │ ├── DataSourceFactory2.java
│ │ └── TestOptions.java
│ └── resources
│ ├── META-INF
│ └── services
│ │ └── org.apache.flink.cdc.common.factories.Factory
│ ├── log4j2-test.properties
│ └── ref-output
│ ├── distributed-ignore.txt
│ ├── distributed.txt
│ └── regular.txt
├── flink-cdc-connect
├── flink-cdc-pipeline-connectors
│ ├── flink-cdc-pipeline-connector-doris
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── doris
│ │ │ │ │ ├── factory
│ │ │ │ │ └── DorisDataSinkFactory.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── DorisDataSink.java
│ │ │ │ │ ├── DorisDataSinkOptions.java
│ │ │ │ │ ├── DorisEventSerializer.java
│ │ │ │ │ ├── DorisMetadataApplier.java
│ │ │ │ │ ├── DorisRowConverter.java
│ │ │ │ │ └── DorisSchemaChangeManager.java
│ │ │ │ │ └── utils
│ │ │ │ │ └── DorisSchemaUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── doris
│ │ │ │ └── sink
│ │ │ │ ├── DorisEventSerializerTest.java
│ │ │ │ ├── DorisMetadataApplierITCase.java
│ │ │ │ ├── DorisPipelineITCase.java
│ │ │ │ ├── DorisRowConverterTest.java
│ │ │ │ ├── DorisSchemaUtilsTest.java
│ │ │ │ └── utils
│ │ │ │ ├── DorisContainer.java
│ │ │ │ └── DorisSinkTestBase.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-elasticsearch
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── elasticsearch
│ │ │ │ │ ├── config
│ │ │ │ │ └── ElasticsearchSinkOptions.java
│ │ │ │ │ ├── serializer
│ │ │ │ │ ├── Elasticsearch6RequestCreator.java
│ │ │ │ │ ├── ElasticsearchEventSerializer.java
│ │ │ │ │ └── ElasticsearchRowConverter.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── ElasticsearchDataSink.java
│ │ │ │ │ ├── ElasticsearchDataSinkFactory.java
│ │ │ │ │ └── ElasticsearchDataSinkOptions.java
│ │ │ │ │ └── v2
│ │ │ │ │ ├── Elasticsearch8AsyncSink.java
│ │ │ │ │ ├── Elasticsearch8AsyncSinkBuilder.java
│ │ │ │ │ ├── Elasticsearch8AsyncSinkSerializer.java
│ │ │ │ │ ├── Elasticsearch8AsyncWriter.java
│ │ │ │ │ ├── NetworkConfig.java
│ │ │ │ │ ├── Operation.java
│ │ │ │ │ └── OperationSerializer.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── elasticsearch
│ │ │ │ └── sink
│ │ │ │ ├── Elasticsearch6DataSinkITCaseTest.java
│ │ │ │ ├── Elasticsearch7DataSinkITCaseTest.java
│ │ │ │ ├── ElasticsearchDataSinkFactoryTest.java
│ │ │ │ ├── ElasticsearchDataSinkITCaseTest.java
│ │ │ │ ├── ElasticsearchEventSerializerTest.java
│ │ │ │ └── utils
│ │ │ │ ├── ElasticsearchContainer.java
│ │ │ │ └── ElasticsearchTestUtils.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-iceberg
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── iceberg
│ │ │ │ │ └── sink
│ │ │ │ │ ├── IcebergDataSink.java
│ │ │ │ │ ├── IcebergDataSinkFactory.java
│ │ │ │ │ ├── IcebergDataSinkOptions.java
│ │ │ │ │ ├── IcebergMetadataApplier.java
│ │ │ │ │ ├── utils
│ │ │ │ │ ├── IcebergTypeUtils.java
│ │ │ │ │ ├── OptionUtils.java
│ │ │ │ │ └── RowDataUtils.java
│ │ │ │ │ └── v2
│ │ │ │ │ ├── IcebergCommitter.java
│ │ │ │ │ ├── IcebergSink.java
│ │ │ │ │ ├── IcebergWriter.java
│ │ │ │ │ ├── TableMetric.java
│ │ │ │ │ ├── TableSchemaWrapper.java
│ │ │ │ │ ├── WriteResultWrapper.java
│ │ │ │ │ ├── WriteResultWrapperSerializer.java
│ │ │ │ │ └── compaction
│ │ │ │ │ ├── CompactionOperator.java
│ │ │ │ │ └── CompactionOptions.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── iceberg
│ │ │ │ └── sink
│ │ │ │ ├── IcebergDataSinkFactoryTest.java
│ │ │ │ ├── IcebergMetadataApplierTest.java
│ │ │ │ └── v2
│ │ │ │ ├── CompactionOperatorTest.java
│ │ │ │ ├── IcebergSinkITCase.java
│ │ │ │ └── IcebergWriterTest.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-kafka
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── kafka
│ │ │ │ │ ├── json
│ │ │ │ │ ├── ChangeLogJsonFormatFactory.java
│ │ │ │ │ ├── JsonSerializationType.java
│ │ │ │ │ ├── TableSchemaInfo.java
│ │ │ │ │ ├── canal
│ │ │ │ │ │ └── CanalJsonSerializationSchema.java
│ │ │ │ │ └── debezium
│ │ │ │ │ │ ├── DebeziumJsonRowDataSerializationSchema.java
│ │ │ │ │ │ ├── DebeziumJsonSerializationSchema.java
│ │ │ │ │ │ └── DebeziumJsonStruct.java
│ │ │ │ │ ├── serialization
│ │ │ │ │ ├── CsvSerializationSchema.java
│ │ │ │ │ └── JsonSerializationSchema.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── KafkaDataSink.java
│ │ │ │ │ ├── KafkaDataSinkFactory.java
│ │ │ │ │ ├── KafkaDataSinkOptions.java
│ │ │ │ │ ├── KafkaMetaDataApplier.java
│ │ │ │ │ ├── KeyFormat.java
│ │ │ │ │ ├── KeySerializationFactory.java
│ │ │ │ │ ├── PartitionStrategy.java
│ │ │ │ │ └── PipelineKafkaRecordSerializationSchema.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── JsonRowDataSerializationSchemaUtils.java
│ │ │ │ │ └── KafkaSinkUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── kafka
│ │ │ │ ├── json
│ │ │ │ ├── MockInitializationContext.java
│ │ │ │ ├── TableSchemaInfoTest.java
│ │ │ │ ├── canal
│ │ │ │ │ └── CanalJsonSerializationSchemaTest.java
│ │ │ │ └── debezium
│ │ │ │ │ └── DebeziumJsonSerializationSchemaTest.java
│ │ │ │ ├── serialization
│ │ │ │ ├── CsvSerializationSchemaTest.java
│ │ │ │ └── JsonSerializationSchemaTest.java
│ │ │ │ └── sink
│ │ │ │ ├── KafkaDataSinkFactoryTest.java
│ │ │ │ ├── KafkaDataSinkITCase.java
│ │ │ │ └── KafkaUtil.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-maxcompute
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── maxcompute
│ │ │ │ │ ├── MaxComputeDataSink.java
│ │ │ │ │ ├── MaxComputeDataSinkFactory.java
│ │ │ │ │ ├── MaxComputeDataSinkOptions.java
│ │ │ │ │ ├── MaxComputeMetadataApplier.java
│ │ │ │ │ ├── common
│ │ │ │ │ ├── Constant.java
│ │ │ │ │ ├── FlinkOdpsException.java
│ │ │ │ │ ├── SessionIdentifier.java
│ │ │ │ │ └── UncheckedOdpsException.java
│ │ │ │ │ ├── coordinator
│ │ │ │ │ ├── SessionManageCoordinatedOperatorFactory.java
│ │ │ │ │ ├── SessionManageCoordinator.java
│ │ │ │ │ ├── SessionManageOperator.java
│ │ │ │ │ └── message
│ │ │ │ │ │ ├── CommitSessionRequest.java
│ │ │ │ │ │ ├── CommitSessionResponse.java
│ │ │ │ │ │ ├── CreateSessionRequest.java
│ │ │ │ │ │ ├── CreateSessionResponse.java
│ │ │ │ │ │ ├── SyncRequest.java
│ │ │ │ │ │ └── WaitForFlushSuccessRequest.java
│ │ │ │ │ ├── options
│ │ │ │ │ ├── CompressAlgorithm.java
│ │ │ │ │ ├── MaxComputeOptions.java
│ │ │ │ │ └── MaxComputeWriteOptions.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── MaxComputeEventSink.java
│ │ │ │ │ ├── MaxComputeEventWriter.java
│ │ │ │ │ └── MaxComputeHashFunctionProvider.java
│ │ │ │ │ ├── utils
│ │ │ │ │ ├── MaxComputeUtils.java
│ │ │ │ │ ├── RetryUtils.java
│ │ │ │ │ ├── SchemaEvolutionUtils.java
│ │ │ │ │ ├── SessionCommitCoordinateHelper.java
│ │ │ │ │ └── TypeConvertUtils.java
│ │ │ │ │ └── writer
│ │ │ │ │ ├── BatchAppendWriter.java
│ │ │ │ │ ├── BatchUpsertWriter.java
│ │ │ │ │ └── MaxComputeWriter.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── maxcompute
│ │ │ │ ├── EmulatorTestBase.java
│ │ │ │ └── utils
│ │ │ │ ├── SchemaEvolutionUtilsTest.java
│ │ │ │ ├── SessionCommitCoordinateHelperTest.java
│ │ │ │ └── TypeConvertUtilsTest.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-mysql
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── mysql
│ │ │ │ │ ├── factory
│ │ │ │ │ └── MySqlDataSourceFactory.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── MySqlDataSource.java
│ │ │ │ │ ├── MySqlDataSourceOptions.java
│ │ │ │ │ ├── MySqlEventDeserializer.java
│ │ │ │ │ ├── MySqlMetadataAccessor.java
│ │ │ │ │ ├── MySqlSchemaDataTypeInference.java
│ │ │ │ │ ├── OpTsMetadataColumn.java
│ │ │ │ │ ├── parser
│ │ │ │ │ │ ├── CustomAlterTableParserListener.java
│ │ │ │ │ │ ├── CustomColumnDefinitionParserListener.java
│ │ │ │ │ │ ├── CustomMySqlAntlrDdlParser.java
│ │ │ │ │ │ └── CustomMySqlAntlrDdlParserListener.java
│ │ │ │ │ └── reader
│ │ │ │ │ │ └── MySqlPipelineRecordEmitter.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── MySqlSchemaUtils.java
│ │ │ │ │ └── MySqlTypeUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── mysql
│ │ │ │ ├── source
│ │ │ │ ├── MySqlAncientDateAndTimeITCase.java
│ │ │ │ ├── MySqlDataSourceFactoryTest.java
│ │ │ │ ├── MySqlFullTypesITCase.java
│ │ │ │ ├── MySqlMetadataAccessorITCase.java
│ │ │ │ ├── MySqlOnLineSchemaMigrationITCase.java
│ │ │ │ ├── MySqlParallelizedPipelineITCase.java
│ │ │ │ ├── MySqlPipelineITCase.java
│ │ │ │ ├── MySqlTablePatternMatchingTest.java
│ │ │ │ └── MysqlPipelineNewlyAddedTableITCase.java
│ │ │ │ └── testutils
│ │ │ │ ├── MySqSourceTestUtils.java
│ │ │ │ └── RecordDataTestUtils.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── ancient_date_and_time.sql
│ │ │ ├── column_type_test.sql
│ │ │ ├── column_type_test_mysql8.sql
│ │ │ ├── customer.sql
│ │ │ └── inventory.sql
│ │ │ ├── docker
│ │ │ ├── server-allow-ancient-date-time
│ │ │ │ └── my.cnf
│ │ │ ├── server-gtids
│ │ │ │ ├── expire-seconds
│ │ │ │ │ └── my.cnf
│ │ │ │ └── my.cnf
│ │ │ ├── server
│ │ │ │ └── my.cnf
│ │ │ └── setup.sql
│ │ │ ├── log4j2-test.properties
│ │ │ └── pipeline-test.yaml
│ ├── flink-cdc-pipeline-connector-oceanbase
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── oceanbase
│ │ │ │ │ ├── catalog
│ │ │ │ │ ├── OceanBaseCatalog.java
│ │ │ │ │ ├── OceanBaseCatalogException.java
│ │ │ │ │ ├── OceanBaseCatalogFactory.java
│ │ │ │ │ ├── OceanBaseColumn.java
│ │ │ │ │ ├── OceanBaseMySQLCatalog.java
│ │ │ │ │ ├── OceanBaseOracleCatalog.java
│ │ │ │ │ └── OceanBaseTable.java
│ │ │ │ │ ├── factory
│ │ │ │ │ └── OceanBaseDataSinkFactory.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── OceanBaseDataSink.java
│ │ │ │ │ ├── OceanBaseDataSinkOptions.java
│ │ │ │ │ ├── OceanBaseEventSerializationSchema.java
│ │ │ │ │ ├── OceanBaseMetadataApplier.java
│ │ │ │ │ ├── OceanBaseRowConvert.java
│ │ │ │ │ └── OceanBaseUtils.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── ListUtils.java
│ │ │ │ │ └── OptionUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── oceanbase
│ │ │ │ ├── catalog
│ │ │ │ └── OceanBaseMySQLCatalogTest.java
│ │ │ │ ├── sink
│ │ │ │ ├── OceanBaseDataSinkFactoryTest.java
│ │ │ │ ├── OceanBaseEventSerializationSchemaTest.java
│ │ │ │ └── OceanBaseMetadataApplierTest.java
│ │ │ │ └── utils
│ │ │ │ └── OceanBaseTestMySQLCatalog.java
│ │ │ └── resources
│ │ │ └── sql
│ │ │ └── init.sql
│ ├── flink-cdc-pipeline-connector-paimon
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── paimon
│ │ │ │ │ └── sink
│ │ │ │ │ ├── PaimonDataSink.java
│ │ │ │ │ ├── PaimonDataSinkFactory.java
│ │ │ │ │ ├── PaimonDataSinkOptions.java
│ │ │ │ │ ├── PaimonHashFunction.java
│ │ │ │ │ ├── PaimonHashFunctionProvider.java
│ │ │ │ │ ├── PaimonMetadataApplier.java
│ │ │ │ │ ├── SchemaChangeProvider.java
│ │ │ │ │ └── v2
│ │ │ │ │ ├── MultiTableCommittableChannelComputer.java
│ │ │ │ │ ├── OperatorIDGenerator.java
│ │ │ │ │ ├── PaimonCommitter.java
│ │ │ │ │ ├── PaimonEvent.java
│ │ │ │ │ ├── PaimonEventSink.java
│ │ │ │ │ ├── PaimonRecordEventSerializer.java
│ │ │ │ │ ├── PaimonRecordSerializer.java
│ │ │ │ │ ├── PaimonSink.java
│ │ │ │ │ ├── PaimonWriter.java
│ │ │ │ │ ├── PaimonWriterHelper.java
│ │ │ │ │ ├── PreCommitOperator.java
│ │ │ │ │ ├── StoreSinkWriteImpl.java
│ │ │ │ │ ├── TableSchemaInfo.java
│ │ │ │ │ └── bucket
│ │ │ │ │ ├── BucketAssignOperator.java
│ │ │ │ │ ├── BucketWrapper.java
│ │ │ │ │ ├── BucketWrapperChangeEvent.java
│ │ │ │ │ ├── BucketWrapperEventSerializer.java
│ │ │ │ │ ├── BucketWrapperEventTypeInfo.java
│ │ │ │ │ ├── BucketWrapperFlushEvent.java
│ │ │ │ │ └── FlushEventAlignmentOperator.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── paimon
│ │ │ │ └── sink
│ │ │ │ ├── PaimonDataSinkFactoryTest.java
│ │ │ │ ├── PaimonHashFunctionTest.java
│ │ │ │ ├── PaimonMetadataApplierTest.java
│ │ │ │ └── v2
│ │ │ │ ├── PaimonSinkITCase.java
│ │ │ │ ├── PaimonWriterHelperTest.java
│ │ │ │ └── TestMultiTableCommittableChannelComputer.java
│ │ │ └── resources
│ │ │ ├── hadoop-conf-dir
│ │ │ └── core-site.xml
│ │ │ ├── hive-conf-dir
│ │ │ └── hive-site.xml
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-starrocks
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── starrocks
│ │ │ │ │ └── sink
│ │ │ │ │ ├── EventRecordSerializationSchema.java
│ │ │ │ │ ├── SchemaChangeConfig.java
│ │ │ │ │ ├── StarRocksDataSink.java
│ │ │ │ │ ├── StarRocksDataSinkFactory.java
│ │ │ │ │ ├── StarRocksDataSinkOptions.java
│ │ │ │ │ ├── StarRocksEnrichedCatalog.java
│ │ │ │ │ ├── StarRocksMetadataApplier.java
│ │ │ │ │ ├── StarRocksUtils.java
│ │ │ │ │ └── TableCreateConfig.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── starrocks
│ │ │ │ └── sink
│ │ │ │ ├── CdcDataTypeTransformerTest.java
│ │ │ │ ├── EventRecordSerializationSchemaTest.java
│ │ │ │ ├── MockStarRocksCatalog.java
│ │ │ │ ├── StarRocksDataSinkFactoryTest.java
│ │ │ │ ├── StarRocksMetadataApplierITCase.java
│ │ │ │ ├── StarRocksMetadataApplierTest.java
│ │ │ │ ├── StarRocksPipelineITCase.java
│ │ │ │ └── utils
│ │ │ │ ├── StarRocksContainer.java
│ │ │ │ └── StarRocksSinkTestBase.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ ├── flink-cdc-pipeline-connector-values
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── values
│ │ │ │ │ ├── ValuesDatabase.java
│ │ │ │ │ ├── factory
│ │ │ │ │ └── ValuesDataFactory.java
│ │ │ │ │ ├── sink
│ │ │ │ │ ├── ValuesDataSink.java
│ │ │ │ │ ├── ValuesDataSinkFunction.java
│ │ │ │ │ ├── ValuesDataSinkHelper.java
│ │ │ │ │ └── ValuesDataSinkOptions.java
│ │ │ │ │ └── source
│ │ │ │ │ ├── OpTsMetadataColumn.java
│ │ │ │ │ ├── TimestampTypeMetadataColumn.java
│ │ │ │ │ ├── ValuesDataSource.java
│ │ │ │ │ ├── ValuesDataSourceHelper.java
│ │ │ │ │ └── ValuesDataSourceOptions.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.cdc.common.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── values
│ │ │ │ ├── ValuesDatabaseTest.java
│ │ │ │ ├── sink
│ │ │ │ └── ValuesDataSinkHelperTest.java
│ │ │ │ └── source
│ │ │ │ └── ValuesDataSourceITCase.java
│ │ │ └── resources
│ │ │ └── log4j2-test.properties
│ └── pom.xml
├── flink-cdc-source-connectors
│ ├── flink-cdc-base
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── base
│ │ │ │ ├── WatermarkDispatcher.java
│ │ │ │ ├── config
│ │ │ │ ├── BaseSourceConfig.java
│ │ │ │ ├── JdbcSourceConfig.java
│ │ │ │ ├── JdbcSourceConfigFactory.java
│ │ │ │ └── SourceConfig.java
│ │ │ │ ├── dialect
│ │ │ │ ├── DataSourceDialect.java
│ │ │ │ └── JdbcDataSourceDialect.java
│ │ │ │ ├── options
│ │ │ │ ├── JdbcSourceOptions.java
│ │ │ │ ├── SourceOptions.java
│ │ │ │ ├── StartupMode.java
│ │ │ │ └── StartupOptions.java
│ │ │ │ ├── relational
│ │ │ │ ├── JdbcSourceEventDispatcher.java
│ │ │ │ ├── connection
│ │ │ │ │ ├── ConnectionPoolId.java
│ │ │ │ │ ├── ConnectionPools.java
│ │ │ │ │ ├── JdbcConnectionFactory.java
│ │ │ │ │ ├── JdbcConnectionPoolFactory.java
│ │ │ │ │ └── JdbcConnectionPools.java
│ │ │ │ └── handler
│ │ │ │ │ └── SchemaChangeEventHandler.java
│ │ │ │ ├── source
│ │ │ │ ├── EmbeddedFlinkDatabaseHistory.java
│ │ │ │ ├── IncrementalSource.java
│ │ │ │ ├── assigner
│ │ │ │ │ ├── AssignerStatus.java
│ │ │ │ │ ├── HybridSplitAssigner.java
│ │ │ │ │ ├── SnapshotSplitAssigner.java
│ │ │ │ │ ├── SplitAssigner.java
│ │ │ │ │ ├── StreamSplitAssigner.java
│ │ │ │ │ ├── splitter
│ │ │ │ │ │ ├── ChunkRange.java
│ │ │ │ │ │ ├── ChunkSplitter.java
│ │ │ │ │ │ └── JdbcSourceChunkSplitter.java
│ │ │ │ │ └── state
│ │ │ │ │ │ ├── ChunkSplitterState.java
│ │ │ │ │ │ ├── HybridPendingSplitsState.java
│ │ │ │ │ │ ├── PendingSplitsState.java
│ │ │ │ │ │ ├── PendingSplitsStateSerializer.java
│ │ │ │ │ │ ├── SnapshotPendingSplitsState.java
│ │ │ │ │ │ └── StreamPendingSplitsState.java
│ │ │ │ ├── enumerator
│ │ │ │ │ └── IncrementalSourceEnumerator.java
│ │ │ │ ├── jdbc
│ │ │ │ │ └── JdbcIncrementalSource.java
│ │ │ │ ├── meta
│ │ │ │ │ ├── events
│ │ │ │ │ │ ├── FinishedSnapshotSplitsAckEvent.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitsReportEvent.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitsRequestEvent.java
│ │ │ │ │ │ ├── LatestFinishedSplitsNumberEvent.java
│ │ │ │ │ │ ├── LatestFinishedSplitsNumberRequestEvent.java
│ │ │ │ │ │ ├── StreamSplitAssignedEvent.java
│ │ │ │ │ │ ├── StreamSplitMetaEvent.java
│ │ │ │ │ │ ├── StreamSplitMetaRequestEvent.java
│ │ │ │ │ │ ├── StreamSplitUpdateAckEvent.java
│ │ │ │ │ │ └── StreamSplitUpdateRequestEvent.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── Offset.java
│ │ │ │ │ │ ├── OffsetDeserializerSerializer.java
│ │ │ │ │ │ └── OffsetFactory.java
│ │ │ │ │ ├── split
│ │ │ │ │ │ ├── ChangeEventRecords.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitInfo.java
│ │ │ │ │ │ ├── SchemalessSnapshotSplit.java
│ │ │ │ │ │ ├── SnapshotSplit.java
│ │ │ │ │ │ ├── SnapshotSplitState.java
│ │ │ │ │ │ ├── SourceRecords.java
│ │ │ │ │ │ ├── SourceSplitBase.java
│ │ │ │ │ │ ├── SourceSplitSerializer.java
│ │ │ │ │ │ ├── SourceSplitState.java
│ │ │ │ │ │ ├── StreamSplit.java
│ │ │ │ │ │ └── StreamSplitState.java
│ │ │ │ │ └── wartermark
│ │ │ │ │ │ ├── WatermarkEvent.java
│ │ │ │ │ │ └── WatermarkKind.java
│ │ │ │ ├── metrics
│ │ │ │ │ ├── SourceEnumeratorMetrics.java
│ │ │ │ │ └── SourceReaderMetrics.java
│ │ │ │ ├── reader
│ │ │ │ │ ├── IncrementalSourceReader.java
│ │ │ │ │ ├── IncrementalSourceReaderContext.java
│ │ │ │ │ ├── IncrementalSourceReaderWithCommit.java
│ │ │ │ │ ├── IncrementalSourceRecordEmitter.java
│ │ │ │ │ ├── IncrementalSourceSplitReader.java
│ │ │ │ │ └── external
│ │ │ │ │ │ ├── AbstractScanFetchTask.java
│ │ │ │ │ │ ├── FetchTask.java
│ │ │ │ │ │ ├── Fetcher.java
│ │ │ │ │ │ ├── IncrementalSourceScanFetcher.java
│ │ │ │ │ │ ├── IncrementalSourceStreamFetcher.java
│ │ │ │ │ │ └── JdbcSourceFetchTaskContext.java
│ │ │ │ └── utils
│ │ │ │ │ ├── JdbcChunkUtils.java
│ │ │ │ │ └── hooks
│ │ │ │ │ ├── SnapshotPhaseHook.java
│ │ │ │ │ └── SnapshotPhaseHooks.java
│ │ │ │ └── utils
│ │ │ │ ├── EnvironmentUtils.java
│ │ │ │ ├── ObjectUtils.java
│ │ │ │ ├── OptionUtils.java
│ │ │ │ ├── SerializerUtils.java
│ │ │ │ ├── SourceRecordUtils.java
│ │ │ │ └── VersionComparable.java
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── base
│ │ │ │ ├── GenericConnectionPoolTest.java
│ │ │ │ ├── mocked
│ │ │ │ ├── MockedPooledDataSourceFactory.java
│ │ │ │ └── MockedSourceConfig.java
│ │ │ │ └── source
│ │ │ │ └── assigner
│ │ │ │ └── state
│ │ │ │ └── PendingSplitsStateSerializerTest.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── inventory.sql
│ │ │ └── metrics.sql
│ │ │ ├── docker
│ │ │ ├── server-gtids
│ │ │ │ └── my.cnf
│ │ │ └── setup.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-db2-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ ├── io
│ │ │ │ │ └── debezium
│ │ │ │ │ │ └── connector
│ │ │ │ │ │ └── db2
│ │ │ │ │ │ ├── Db2Connection.java
│ │ │ │ │ │ └── Db2StreamingChangeEventSource.java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── db2
│ │ │ │ │ ├── Db2Source.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── Db2SourceBuilder.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── Db2SourceConfig.java
│ │ │ │ │ │ └── Db2SourceConfigFactory.java
│ │ │ │ │ ├── dialect
│ │ │ │ │ │ ├── Db2ChunkSplitter.java
│ │ │ │ │ │ ├── Db2Dialect.java
│ │ │ │ │ │ ├── Db2PooledDataSourceFactory.java
│ │ │ │ │ │ └── Db2Schema.java
│ │ │ │ │ ├── fetch
│ │ │ │ │ │ ├── Db2ScanFetchTask.java
│ │ │ │ │ │ ├── Db2SourceFetchTaskContext.java
│ │ │ │ │ │ └── Db2StreamFetchTask.java
│ │ │ │ │ ├── handler
│ │ │ │ │ │ └── Db2SchemaChangeEventHandler.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── LsnFactory.java
│ │ │ │ │ │ └── LsnOffset.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── Db2ConnectionUtils.java
│ │ │ │ │ │ ├── Db2TypeUtils.java
│ │ │ │ │ │ └── Db2Utils.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── Db2ReadableMetaData.java
│ │ │ │ │ ├── Db2TableSource.java
│ │ │ │ │ ├── Db2TableSourceFactory.java
│ │ │ │ │ └── StartupOptions.java
│ │ │ │ │ └── utils
│ │ │ │ │ └── OptionUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── db2
│ │ │ │ ├── Db2ParallelSourceExampleTest.java
│ │ │ │ ├── Db2SourceTest.java
│ │ │ │ ├── Db2TestBase.java
│ │ │ │ ├── source
│ │ │ │ └── Db2SourceITCase.java
│ │ │ │ ├── table
│ │ │ │ ├── Db2ConnectorITCase.java
│ │ │ │ └── Db2TableSourceFactoryTest.java
│ │ │ │ └── testutils
│ │ │ │ ├── RecordsFormatter.java
│ │ │ │ └── TestTable.java
│ │ │ └── resources
│ │ │ ├── db2_server
│ │ │ ├── Dockerfile
│ │ │ ├── asncdc.c
│ │ │ ├── asncdc_UDF.sql
│ │ │ ├── asncdcaddremove.sql
│ │ │ ├── asncdctables.sql
│ │ │ ├── cdcsetup.sh
│ │ │ ├── column_type_test.sql
│ │ │ ├── customers.sql
│ │ │ ├── dbsetup.sh
│ │ │ ├── inventory.sql
│ │ │ └── startup-agent.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-debezium
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ ├── io
│ │ │ └── debezium
│ │ │ │ ├── embedded
│ │ │ │ └── EmbeddedEngineChangeEvent.java
│ │ │ │ └── relational
│ │ │ │ ├── HistorizedRelationalDatabaseConnectorConfig.java
│ │ │ │ ├── RelationalChangeRecordEmitter.java
│ │ │ │ └── RelationalTableFilters.java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── debezium
│ │ │ ├── DebeziumDeserializationSchema.java
│ │ │ ├── DebeziumSourceFunction.java
│ │ │ ├── JsonDebeziumDeserializationSchema.java
│ │ │ ├── StringDebeziumDeserializationSchema.java
│ │ │ ├── Validator.java
│ │ │ ├── event
│ │ │ ├── DebeziumEventDeserializationSchema.java
│ │ │ ├── DebeziumSchemaDataTypeInference.java
│ │ │ ├── SchemaDataTypeInference.java
│ │ │ └── SourceRecordEventDeserializer.java
│ │ │ ├── history
│ │ │ └── FlinkJsonTableChangeSerializer.java
│ │ │ ├── internal
│ │ │ ├── DebeziumChangeConsumer.java
│ │ │ ├── DebeziumChangeFetcher.java
│ │ │ ├── DebeziumOffset.java
│ │ │ ├── DebeziumOffsetSerializer.java
│ │ │ ├── FlinkDatabaseHistory.java
│ │ │ ├── FlinkDatabaseSchemaHistory.java
│ │ │ ├── FlinkOffsetBackingStore.java
│ │ │ ├── Handover.java
│ │ │ └── SchemaRecord.java
│ │ │ ├── table
│ │ │ ├── AppendMetadataCollector.java
│ │ │ ├── DebeziumChangelogMode.java
│ │ │ ├── DebeziumOptions.java
│ │ │ ├── DeserializationRuntimeConverter.java
│ │ │ ├── DeserializationRuntimeConverterFactory.java
│ │ │ ├── MetadataConverter.java
│ │ │ ├── RowDataDebeziumDeserializeSchema.java
│ │ │ └── RowDataMetadataConverter.java
│ │ │ └── utils
│ │ │ ├── ConvertTimeBceUtil.java
│ │ │ ├── DatabaseHistoryUtil.java
│ │ │ ├── JdbcUrlUtils.java
│ │ │ ├── ResolvedSchemaUtils.java
│ │ │ └── TemporalConversions.java
│ ├── flink-connector-mongodb-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── mongodb
│ │ │ │ │ ├── MongoDBSource.java
│ │ │ │ │ ├── internal
│ │ │ │ │ ├── MongoDBConnectorSourceConnector.java
│ │ │ │ │ ├── MongoDBConnectorSourceTask.java
│ │ │ │ │ └── MongoDBEnvelope.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── MongoDBSource.java
│ │ │ │ │ ├── MongoDBSourceBuilder.java
│ │ │ │ │ ├── assigners
│ │ │ │ │ │ └── splitters
│ │ │ │ │ │ │ ├── MongoDBChunkSplitter.java
│ │ │ │ │ │ │ ├── SampleBucketSplitStrategy.java
│ │ │ │ │ │ │ ├── ShardedSplitStrategy.java
│ │ │ │ │ │ │ ├── SingleSplitStrategy.java
│ │ │ │ │ │ │ ├── SplitContext.java
│ │ │ │ │ │ │ ├── SplitStrategy.java
│ │ │ │ │ │ │ └── SplitVectorSplitStrategy.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── MongoDBSourceConfig.java
│ │ │ │ │ │ ├── MongoDBSourceConfigFactory.java
│ │ │ │ │ │ └── MongoDBSourceOptions.java
│ │ │ │ │ ├── connection
│ │ │ │ │ │ └── MongoClientPool.java
│ │ │ │ │ ├── dialect
│ │ │ │ │ │ └── MongoDBDialect.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── ChangeStreamDescriptor.java
│ │ │ │ │ │ ├── ChangeStreamOffset.java
│ │ │ │ │ │ └── ChangeStreamOffsetFactory.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ ├── MongoDBRecordEmitter.java
│ │ │ │ │ │ └── fetch
│ │ │ │ │ │ │ ├── MongoDBFetchTaskContext.java
│ │ │ │ │ │ │ ├── MongoDBScanFetchTask.java
│ │ │ │ │ │ │ └── MongoDBStreamFetchTask.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── BsonUtils.java
│ │ │ │ │ │ ├── ChunkUtils.java
│ │ │ │ │ │ ├── CollectionDiscoveryUtils.java
│ │ │ │ │ │ ├── MongoRecordUtils.java
│ │ │ │ │ │ ├── MongoUtils.java
│ │ │ │ │ │ └── ResumeTokenUtils.java
│ │ │ │ │ └── table
│ │ │ │ │ ├── MongoDBConnectorDeserializationSchema.java
│ │ │ │ │ ├── MongoDBConnectorFullChangelogDeserializationSchema.java
│ │ │ │ │ ├── MongoDBReadableMetadata.java
│ │ │ │ │ ├── MongoDBTableSource.java
│ │ │ │ │ └── MongoDBTableSourceFactory.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── mongodb
│ │ │ │ ├── LegacyMongoDBContainer.java
│ │ │ │ ├── LegacyMongoDBSourceExampleTest.java
│ │ │ │ ├── LegacyMongoDBSourceTest.java
│ │ │ │ ├── LegacyMongoDBSourceTestBase.java
│ │ │ │ ├── LegacyMongoDBTestBase.java
│ │ │ │ ├── source
│ │ │ │ ├── MongoDBFullChangelogITCase.java
│ │ │ │ ├── MongoDBParallelSourceExampleTest.java
│ │ │ │ ├── MongoDBParallelSourceITCase.java
│ │ │ │ ├── MongoDBSourceTestBase.java
│ │ │ │ ├── NewlyAddedTableITCase.java
│ │ │ │ ├── reader
│ │ │ │ │ ├── MongoDBSnapshotSplitReaderAssignEndingFirstTest.java
│ │ │ │ │ ├── MongoDBSnapshotSplitReaderTest.java
│ │ │ │ │ └── MongoDBStreamSplitReaderTest.java
│ │ │ │ └── utils
│ │ │ │ │ ├── BsonUtilsTest.java
│ │ │ │ │ └── ResumeTokenUtilsTest.java
│ │ │ │ ├── table
│ │ │ │ ├── MongoDBConnectorITCase.java
│ │ │ │ ├── MongoDBRegexFilterITCase.java
│ │ │ │ ├── MongoDBTableFactoryTest.java
│ │ │ │ └── MongoDBTimeZoneITCase.java
│ │ │ │ └── utils
│ │ │ │ ├── MongoDBAssertUtils.java
│ │ │ │ ├── MongoDBContainer.java
│ │ │ │ ├── MongoDBTestUtils.java
│ │ │ │ ├── RecordsFormatter.java
│ │ │ │ └── TestTable.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── chunk_test.js
│ │ │ ├── column_type_test.js
│ │ │ ├── customer.js
│ │ │ ├── inventory.js
│ │ │ ├── ns-dotted.js
│ │ │ ├── ns-regex.js
│ │ │ └── ns_regex.js
│ │ │ ├── docker
│ │ │ └── mongodb
│ │ │ │ ├── random.key
│ │ │ │ └── setup.js
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-mysql-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ ├── com
│ │ │ │ │ └── github
│ │ │ │ │ │ └── shyiko
│ │ │ │ │ │ └── mysql
│ │ │ │ │ │ └── binlog
│ │ │ │ │ │ ├── event
│ │ │ │ │ │ └── deserialization
│ │ │ │ │ │ │ ├── ColumnType.java
│ │ │ │ │ │ │ ├── TableMapEventDataDeserializer.java
│ │ │ │ │ │ │ ├── TableMapEventMetadataDeserializer.java
│ │ │ │ │ │ │ └── json
│ │ │ │ │ │ │ └── JsonStringFormatter.java
│ │ │ │ │ │ └── io
│ │ │ │ │ │ └── BufferedSocketInputStream.java
│ │ │ │ ├── io
│ │ │ │ │ └── debezium
│ │ │ │ │ │ └── connector
│ │ │ │ │ │ └── mysql
│ │ │ │ │ │ ├── GtidUtils.java
│ │ │ │ │ │ ├── MySqlConnection.java
│ │ │ │ │ │ ├── MySqlDefaultValueConverter.java
│ │ │ │ │ │ ├── MySqlStreamingChangeEventSource.java
│ │ │ │ │ │ ├── MySqlValueConverters.java
│ │ │ │ │ │ ├── antlr
│ │ │ │ │ │ └── listener
│ │ │ │ │ │ │ └── DefaultValueParserListener.java
│ │ │ │ │ │ ├── converters
│ │ │ │ │ │ └── MysqlDebeziumTimeConverter.java
│ │ │ │ │ │ └── util
│ │ │ │ │ │ └── ErrorMessageUtils.java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── mysql
│ │ │ │ │ ├── MySqlSource.java
│ │ │ │ │ ├── MySqlValidator.java
│ │ │ │ │ ├── SeekBinlogToTimestampFilter.java
│ │ │ │ │ ├── debezium
│ │ │ │ │ ├── DebeziumUtils.java
│ │ │ │ │ ├── EmbeddedFlinkDatabaseHistory.java
│ │ │ │ │ ├── dispatcher
│ │ │ │ │ │ ├── EventDispatcherImpl.java
│ │ │ │ │ │ └── SignalEventDispatcher.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ ├── BinlogSplitReader.java
│ │ │ │ │ │ ├── DebeziumReader.java
│ │ │ │ │ │ ├── SnapshotSplitReader.java
│ │ │ │ │ │ └── StoppableChangeEventSourceContext.java
│ │ │ │ │ └── task
│ │ │ │ │ │ ├── MySqlBinlogSplitReadTask.java
│ │ │ │ │ │ ├── MySqlSnapshotSplitReadTask.java
│ │ │ │ │ │ └── context
│ │ │ │ │ │ ├── MySqlErrorHandler.java
│ │ │ │ │ │ ├── MySqlTaskContextImpl.java
│ │ │ │ │ │ ├── StatefulTaskContext.java
│ │ │ │ │ │ └── exception
│ │ │ │ │ │ └── SchemaOutOfSyncException.java
│ │ │ │ │ ├── schema
│ │ │ │ │ ├── MySqlFieldDefinition.java
│ │ │ │ │ ├── MySqlSchema.java
│ │ │ │ │ ├── MySqlTableDefinition.java
│ │ │ │ │ ├── MySqlTypeUtils.java
│ │ │ │ │ └── Selectors.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── MySqlSource.java
│ │ │ │ │ ├── MySqlSourceBuilder.java
│ │ │ │ │ ├── assigners
│ │ │ │ │ │ ├── AssignerStatus.java
│ │ │ │ │ │ ├── ChunkRange.java
│ │ │ │ │ │ ├── ChunkSplitter.java
│ │ │ │ │ │ ├── MySqlBinlogSplitAssigner.java
│ │ │ │ │ │ ├── MySqlChunkSplitter.java
│ │ │ │ │ │ ├── MySqlHybridSplitAssigner.java
│ │ │ │ │ │ ├── MySqlSnapshotSplitAssigner.java
│ │ │ │ │ │ ├── MySqlSplitAssigner.java
│ │ │ │ │ │ └── state
│ │ │ │ │ │ │ ├── BinlogPendingSplitsState.java
│ │ │ │ │ │ │ ├── ChunkSplitterState.java
│ │ │ │ │ │ │ ├── HybridPendingSplitsState.java
│ │ │ │ │ │ │ ├── PendingSplitsState.java
│ │ │ │ │ │ │ ├── PendingSplitsStateSerializer.java
│ │ │ │ │ │ │ └── SnapshotPendingSplitsState.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── MySqlSourceConfig.java
│ │ │ │ │ │ ├── MySqlSourceConfigFactory.java
│ │ │ │ │ │ ├── MySqlSourceOptions.java
│ │ │ │ │ │ └── ServerIdRange.java
│ │ │ │ │ ├── connection
│ │ │ │ │ │ ├── ConnectionPoolId.java
│ │ │ │ │ │ ├── ConnectionPools.java
│ │ │ │ │ │ ├── JdbcConnectionFactory.java
│ │ │ │ │ │ ├── JdbcConnectionPools.java
│ │ │ │ │ │ └── PooledDataSourceFactory.java
│ │ │ │ │ ├── enumerator
│ │ │ │ │ │ └── MySqlSourceEnumerator.java
│ │ │ │ │ ├── events
│ │ │ │ │ │ ├── BinlogSplitAssignedEvent.java
│ │ │ │ │ │ ├── BinlogSplitMetaEvent.java
│ │ │ │ │ │ ├── BinlogSplitMetaRequestEvent.java
│ │ │ │ │ │ ├── BinlogSplitUpdateAckEvent.java
│ │ │ │ │ │ ├── BinlogSplitUpdateRequestEvent.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitsAckEvent.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitsReportEvent.java
│ │ │ │ │ │ ├── FinishedSnapshotSplitsRequestEvent.java
│ │ │ │ │ │ ├── LatestFinishedSplitsNumberEvent.java
│ │ │ │ │ │ └── LatestFinishedSplitsNumberRequestEvent.java
│ │ │ │ │ ├── metrics
│ │ │ │ │ │ └── MySqlSourceReaderMetrics.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── BinlogOffset.java
│ │ │ │ │ │ ├── BinlogOffsetBuilder.java
│ │ │ │ │ │ ├── BinlogOffsetKind.java
│ │ │ │ │ │ ├── BinlogOffsetSerializer.java
│ │ │ │ │ │ └── BinlogOffsetUtils.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ ├── MySqlRecordEmitter.java
│ │ │ │ │ │ ├── MySqlSourceReader.java
│ │ │ │ │ │ ├── MySqlSourceReaderContext.java
│ │ │ │ │ │ └── MySqlSplitReader.java
│ │ │ │ │ ├── split
│ │ │ │ │ │ ├── FinishedSnapshotSplitInfo.java
│ │ │ │ │ │ ├── MySqlBinlogSplit.java
│ │ │ │ │ │ ├── MySqlBinlogSplitState.java
│ │ │ │ │ │ ├── MySqlRecords.java
│ │ │ │ │ │ ├── MySqlSchemalessSnapshotSplit.java
│ │ │ │ │ │ ├── MySqlSnapshotSplit.java
│ │ │ │ │ │ ├── MySqlSnapshotSplitState.java
│ │ │ │ │ │ ├── MySqlSplit.java
│ │ │ │ │ │ ├── MySqlSplitSerializer.java
│ │ │ │ │ │ ├── MySqlSplitState.java
│ │ │ │ │ │ └── SourceRecords.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ChunkUtils.java
│ │ │ │ │ │ ├── EnvironmentUtils.java
│ │ │ │ │ │ ├── ObjectUtils.java
│ │ │ │ │ │ ├── RecordUtils.java
│ │ │ │ │ │ ├── SerializerUtils.java
│ │ │ │ │ │ ├── StatementUtils.java
│ │ │ │ │ │ ├── TableDiscoveryUtils.java
│ │ │ │ │ │ ├── VersionComparable.java
│ │ │ │ │ │ └── hooks
│ │ │ │ │ │ ├── SnapshotPhaseHook.java
│ │ │ │ │ │ └── SnapshotPhaseHooks.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── MySqlDeserializationConverterFactory.java
│ │ │ │ │ ├── MySqlReadableMetadata.java
│ │ │ │ │ ├── MySqlTableSource.java
│ │ │ │ │ ├── MySqlTableSourceFactory.java
│ │ │ │ │ ├── StartupMode.java
│ │ │ │ │ └── StartupOptions.java
│ │ │ │ │ └── utils
│ │ │ │ │ └── OptionUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ ├── com
│ │ │ │ └── github
│ │ │ │ │ └── shyiko
│ │ │ │ │ └── mysql
│ │ │ │ │ └── binlog
│ │ │ │ │ ├── event
│ │ │ │ │ └── deserialization
│ │ │ │ │ │ └── TableMapEventDataDeserializerTest.java
│ │ │ │ │ └── io
│ │ │ │ │ └── BufferedSocketInputStreamTest.java
│ │ │ ├── io
│ │ │ │ └── debezium
│ │ │ │ │ └── connector
│ │ │ │ │ └── mysql
│ │ │ │ │ ├── GtidUtilsTest.java
│ │ │ │ │ └── util
│ │ │ │ │ └── ErrorMessageUtilsTest.java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ ├── mysql
│ │ │ │ ├── LegacyMySqlSourceExampleTest.java
│ │ │ │ ├── LegacyMySqlSourceITCase.java
│ │ │ │ ├── LegacyMySqlSourceTest.java
│ │ │ │ ├── LegacyMySqlTestBase.java
│ │ │ │ ├── MySqlTestUtils.java
│ │ │ │ ├── MySqlValidatorTest.java
│ │ │ │ ├── debezium
│ │ │ │ │ ├── DebeziumUtilsTest.java
│ │ │ │ │ ├── converters
│ │ │ │ │ │ └── MysqlDebeziumTimeConverterITCase.java
│ │ │ │ │ └── reader
│ │ │ │ │ │ ├── BinlogSplitReaderTest.java
│ │ │ │ │ │ └── SnapshotSplitReaderTest.java
│ │ │ │ ├── source
│ │ │ │ │ ├── MySqlAncientDateAndTimeITCase.java
│ │ │ │ │ ├── MySqlMultipleTablesRenamingITCase.java
│ │ │ │ │ ├── MySqlOnLineSchemaMigrationSourceITCase.java
│ │ │ │ │ ├── MySqlSourceExampleTest.java
│ │ │ │ │ ├── MySqlSourceITCase.java
│ │ │ │ │ ├── MySqlSourceTestBase.java
│ │ │ │ │ ├── NewlyAddedTableITCase.java
│ │ │ │ │ ├── SpecificStartingOffsetITCase.java
│ │ │ │ │ ├── assigners
│ │ │ │ │ │ ├── MySqlBinlogSplitAssignerTest.java
│ │ │ │ │ │ ├── MySqlChunkSplitterTest.java
│ │ │ │ │ │ ├── MySqlHybridSplitAssignerTest.java
│ │ │ │ │ │ ├── MySqlSnapshotSplitAssignerTest.java
│ │ │ │ │ │ └── state
│ │ │ │ │ │ │ └── PendingSplitsStateSerializerTest.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ ├── MySqlRecordEmitterTest.java
│ │ │ │ │ │ └── MySqlSourceReaderTest.java
│ │ │ │ │ ├── split
│ │ │ │ │ │ ├── MySqlBinlogSplitTest.java
│ │ │ │ │ │ ├── MySqlSplitSerializerTest.java
│ │ │ │ │ │ └── MySqlSplitStateTest.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── MockMySqlSplitEnumeratorEnumeratorContext.java
│ │ │ │ │ │ ├── ObjectUtilsTest.java
│ │ │ │ │ │ ├── RecordUtilsTest.java
│ │ │ │ │ │ └── SerializerUtilsTest.java
│ │ │ │ ├── table
│ │ │ │ │ ├── MySqlAncientDateAndTimeITCase.java
│ │ │ │ │ ├── MySqlCompatibilityITCase.java
│ │ │ │ │ ├── MySqlConnectorITCase.java
│ │ │ │ │ ├── MySqlConnectorShardingTableITCase.java
│ │ │ │ │ ├── MySqlJsonArrayAsKeyIndexITCase.java
│ │ │ │ │ ├── MySqlOnLineSchemaMigrationTableITCase.java
│ │ │ │ │ ├── MySqlTableSourceFactoryTest.java
│ │ │ │ │ ├── MySqlTimezoneITCase.java
│ │ │ │ │ └── MysqlConnectorCharsetITCase.java
│ │ │ │ └── testutils
│ │ │ │ │ ├── MetricsUtils.java
│ │ │ │ │ ├── MySqlContainer.java
│ │ │ │ │ ├── MySqlVersion.java
│ │ │ │ │ ├── RecordsFormatter.java
│ │ │ │ │ ├── TestTable.java
│ │ │ │ │ ├── TestTableSchemas.java
│ │ │ │ │ └── UniqueDatabase.java
│ │ │ │ └── polardbx
│ │ │ │ ├── PolardbxCharsetITCase.java
│ │ │ │ ├── PolardbxSourceITCase.java
│ │ │ │ └── PolardbxSourceTestBase.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── ancient_date_and_time.sql
│ │ │ ├── binlog_metadata_test.sql
│ │ │ ├── charset_test.sql
│ │ │ ├── column_type_test.sql
│ │ │ ├── column_type_test_mysql8.sql
│ │ │ ├── customer.sql
│ │ │ ├── customer3.0.sql
│ │ │ ├── date_convert_test.sql
│ │ │ ├── inventory.sql
│ │ │ ├── json_array_as_key.sql
│ │ │ ├── polardbx_ddl_test.sql
│ │ │ ├── user_1.sql
│ │ │ └── user_2.sql
│ │ │ ├── docker
│ │ │ ├── server-allow-ancient-date-time
│ │ │ │ └── my.cnf
│ │ │ ├── server-gtids
│ │ │ │ ├── expire-seconds
│ │ │ │ │ └── my.cnf
│ │ │ │ └── my.cnf
│ │ │ ├── server
│ │ │ │ └── my.cnf
│ │ │ └── setup.sql
│ │ │ ├── file
│ │ │ ├── debezium-data-schema-exclude-with-numeric-decimal.json
│ │ │ ├── debezium-data-schema-exclude.json
│ │ │ └── debezium-data-schema-include.json
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-oceanbase-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── oceanbase
│ │ │ │ │ ├── OceanBaseSource.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── OceanBaseRichSourceFunction.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ └── OceanBaseConnectorConfig.java
│ │ │ │ │ ├── connection
│ │ │ │ │ │ └── OceanBaseConnection.java
│ │ │ │ │ ├── converter
│ │ │ │ │ │ ├── OceanBaseDeserializationConverterFactory.java
│ │ │ │ │ │ └── OceanBaseValueConverters.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── OceanBaseSourceInfo.java
│ │ │ │ │ │ └── OceanBaseSourceInfoStructMaker.java
│ │ │ │ │ └── schema
│ │ │ │ │ │ ├── OceanBaseDatabaseSchema.java
│ │ │ │ │ │ └── OceanBaseSchema.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── OceanBaseReadableMetadata.java
│ │ │ │ │ ├── OceanBaseTableSource.java
│ │ │ │ │ └── OceanBaseTableSourceFactory.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── OceanBaseUtils.java
│ │ │ │ │ └── OptionUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── oceanbase
│ │ │ │ ├── OceanBaseTestBase.java
│ │ │ │ ├── OceanBaseTestUtils.java
│ │ │ │ ├── table
│ │ │ │ ├── OceanBaseMySQLModeITCase.java
│ │ │ │ ├── OceanBaseOracleModeITCase.java
│ │ │ │ └── OceanBaseTableFactoryTest.java
│ │ │ │ └── testutils
│ │ │ │ ├── LogProxyContainer.java
│ │ │ │ ├── OceanBaseCdcMetadata.java
│ │ │ │ ├── OceanBaseContainer.java
│ │ │ │ ├── OceanBaseMySQLCdcMetadata.java
│ │ │ │ ├── OceanBaseOracleCdcMetadata.java
│ │ │ │ └── UniqueDatabase.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── mysql
│ │ │ │ ├── column_type_test.sql
│ │ │ │ └── inventory.sql
│ │ │ └── oracle
│ │ │ │ └── column_type_test.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-oracle-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ ├── io
│ │ │ │ │ └── debezium
│ │ │ │ │ │ └── connector
│ │ │ │ │ │ └── oracle
│ │ │ │ │ │ └── logminer
│ │ │ │ │ │ ├── LogMinerAdapter.java
│ │ │ │ │ │ ├── LogMinerChangeRecordEmitter.java
│ │ │ │ │ │ ├── LogMinerStreamingChangeEventSource.java
│ │ │ │ │ │ └── processor
│ │ │ │ │ │ └── AbstractLogMinerEventProcessor.java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── oracle
│ │ │ │ │ ├── OracleSource.java
│ │ │ │ │ ├── OracleValidator.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── OracleDialect.java
│ │ │ │ │ ├── OraclePooledDataSourceFactory.java
│ │ │ │ │ ├── OracleSourceBuilder.java
│ │ │ │ │ ├── assigner
│ │ │ │ │ │ └── splitter
│ │ │ │ │ │ │ └── OracleChunkSplitter.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── OracleSourceConfig.java
│ │ │ │ │ │ ├── OracleSourceConfigFactory.java
│ │ │ │ │ │ └── OracleSourceOptions.java
│ │ │ │ │ ├── handler
│ │ │ │ │ │ └── OracleSchemaChangeEventHandler.java
│ │ │ │ │ ├── meta
│ │ │ │ │ │ └── offset
│ │ │ │ │ │ │ ├── RedoLogOffset.java
│ │ │ │ │ │ │ └── RedoLogOffsetFactory.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ └── fetch
│ │ │ │ │ │ │ ├── EventProcessorFactory.java
│ │ │ │ │ │ │ ├── OracleScanFetchTask.java
│ │ │ │ │ │ │ ├── OracleSourceFetchTaskContext.java
│ │ │ │ │ │ │ ├── OracleStreamFetchTask.java
│ │ │ │ │ │ │ └── StoppableChangeEventSourceContext.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── OracleConnectionUtils.java
│ │ │ │ │ │ ├── OracleSchema.java
│ │ │ │ │ │ ├── OracleTypeUtils.java
│ │ │ │ │ │ └── OracleUtils.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── OracleDeserializationConverterFactory.java
│ │ │ │ │ ├── OracleReadableMetaData.java
│ │ │ │ │ ├── OracleTableSource.java
│ │ │ │ │ └── OracleTableSourceFactory.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── ChunkUtils.java
│ │ │ │ │ └── OracleJdbcUrlUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ ├── apache
│ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── oracle
│ │ │ │ │ ├── OracleChangeEventSourceExampleTest.java
│ │ │ │ │ ├── OracleSourceTest.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── NewlyAddedTableITCase.java
│ │ │ │ │ ├── OracleSourceITCase.java
│ │ │ │ │ ├── OracleSourceTestBase.java
│ │ │ │ │ ├── assigner
│ │ │ │ │ │ └── splitter
│ │ │ │ │ │ │ └── OracleChunkSplitterTest.java
│ │ │ │ │ └── reader
│ │ │ │ │ │ └── OracleSourceReaderTest.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── OracleConnectorITCase.java
│ │ │ │ │ └── OracleTableSourceFactoryTest.java
│ │ │ │ │ └── testutils
│ │ │ │ │ ├── OracleTestUtils.java
│ │ │ │ │ ├── RecordsFormatter.java
│ │ │ │ │ └── TestTable.java
│ │ │ │ └── testcontainers
│ │ │ │ └── containers
│ │ │ │ └── OracleContainer.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── column_type_test.sql
│ │ │ ├── customer.sql
│ │ │ └── product.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-postgres-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ ├── io
│ │ │ │ │ └── debezium
│ │ │ │ │ │ └── connector
│ │ │ │ │ │ └── postgresql
│ │ │ │ │ │ ├── PostgresObjectUtils.java
│ │ │ │ │ │ ├── PostgresStreamingChangeEventSource.java
│ │ │ │ │ │ ├── Utils.java
│ │ │ │ │ │ └── connection
│ │ │ │ │ │ ├── Lsn.java
│ │ │ │ │ │ ├── PostgresConnection.java
│ │ │ │ │ │ ├── PostgresConnectionUtils.java
│ │ │ │ │ │ └── PostgresReplicationConnection.java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── postgres
│ │ │ │ │ ├── PostgreSQLSource.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── PostgresChunkSplitter.java
│ │ │ │ │ ├── PostgresConnectionPoolFactory.java
│ │ │ │ │ ├── PostgresDialect.java
│ │ │ │ │ ├── PostgresSourceBuilder.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── PostgresSourceConfig.java
│ │ │ │ │ │ ├── PostgresSourceConfigFactory.java
│ │ │ │ │ │ └── PostgresSourceOptions.java
│ │ │ │ │ ├── enumerator
│ │ │ │ │ │ └── PostgresSourceEnumerator.java
│ │ │ │ │ ├── events
│ │ │ │ │ │ ├── OffsetCommitAckEvent.java
│ │ │ │ │ │ └── OffsetCommitEvent.java
│ │ │ │ │ ├── fetch
│ │ │ │ │ │ ├── CDCPostgresDispatcher.java
│ │ │ │ │ │ ├── PostgresScanFetchTask.java
│ │ │ │ │ │ ├── PostgresSourceFetchTaskContext.java
│ │ │ │ │ │ ├── PostgresStreamFetchTask.java
│ │ │ │ │ │ └── StoppableChangeEventSourceContext.java
│ │ │ │ │ ├── handler
│ │ │ │ │ │ └── PostgresSchemaChangeEventHandler.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── PostgresOffset.java
│ │ │ │ │ │ ├── PostgresOffsetFactory.java
│ │ │ │ │ │ └── PostgresOffsetUtils.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ └── PostgresSourceReader.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ChunkUtils.java
│ │ │ │ │ │ ├── CustomPostgresSchema.java
│ │ │ │ │ │ ├── PostgresQueryUtils.java
│ │ │ │ │ │ ├── PostgresTypeUtils.java
│ │ │ │ │ │ └── TableDiscoveryUtils.java
│ │ │ │ │ ├── table
│ │ │ │ │ ├── PostgreSQLDeserializationConverterFactory.java
│ │ │ │ │ ├── PostgreSQLReadableMetadata.java
│ │ │ │ │ ├── PostgreSQLTableFactory.java
│ │ │ │ │ ├── PostgreSQLTableSource.java
│ │ │ │ │ └── PostgresValueValidator.java
│ │ │ │ │ └── utils
│ │ │ │ │ └── OptionUtils.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── postgres
│ │ │ │ ├── PostgreSQLSourceTest.java
│ │ │ │ ├── PostgresTestBase.java
│ │ │ │ ├── source
│ │ │ │ ├── MockPostgresDialect.java
│ │ │ │ ├── NewlyAddedTableITCase.java
│ │ │ │ ├── PostgresDialectTest.java
│ │ │ │ ├── PostgresSourceExampleTest.java
│ │ │ │ ├── PostgresSourceITCase.java
│ │ │ │ ├── fetch
│ │ │ │ │ ├── PostgresScanFetchTaskTest.java
│ │ │ │ │ └── PostgresSourceFetchTaskContextTest.java
│ │ │ │ └── reader
│ │ │ │ │ └── PostgresSourceReaderTest.java
│ │ │ │ ├── table
│ │ │ │ ├── MockPostgreSQLTableFactory.java
│ │ │ │ ├── MockPostgreSQLTableSource.java
│ │ │ │ ├── PostgreSQLConnectorITCase.java
│ │ │ │ ├── PostgreSQLSavepointITCase.java
│ │ │ │ └── PostgreSQLTableFactoryTest.java
│ │ │ │ └── testutils
│ │ │ │ ├── PostgresTestUtils.java
│ │ │ │ ├── RecordsFormatter.java
│ │ │ │ ├── TestHelper.java
│ │ │ │ ├── TestTable.java
│ │ │ │ ├── TestTableId.java
│ │ │ │ └── UniqueDatabase.java
│ │ │ └── resources
│ │ │ ├── META-INF
│ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ ├── ddl
│ │ │ ├── column_type_test.sql
│ │ │ ├── customer.sql
│ │ │ ├── index_type_test.sql
│ │ │ ├── inventory.sql
│ │ │ └── replica_identity.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-sqlserver-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ ├── io
│ │ │ │ │ └── debezium
│ │ │ │ │ │ └── connector
│ │ │ │ │ │ └── sqlserver
│ │ │ │ │ │ ├── SqlServerOffsetContext.java
│ │ │ │ │ │ └── SqlServerStreamingChangeEventSource.java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── sqlserver
│ │ │ │ │ ├── SqlServerSource.java
│ │ │ │ │ ├── SqlServerValidator.java
│ │ │ │ │ ├── source
│ │ │ │ │ ├── SqlServerSourceBuilder.java
│ │ │ │ │ ├── config
│ │ │ │ │ │ ├── SqlServerSourceConfig.java
│ │ │ │ │ │ └── SqlServerSourceConfigFactory.java
│ │ │ │ │ ├── dialect
│ │ │ │ │ │ ├── SqlServerChunkSplitter.java
│ │ │ │ │ │ ├── SqlServerDialect.java
│ │ │ │ │ │ ├── SqlServerPooledDataSourceFactory.java
│ │ │ │ │ │ └── SqlServerSchema.java
│ │ │ │ │ ├── handler
│ │ │ │ │ │ └── SqlServerSchemaChangeEventHandler.java
│ │ │ │ │ ├── offset
│ │ │ │ │ │ ├── LsnFactory.java
│ │ │ │ │ │ └── LsnOffset.java
│ │ │ │ │ ├── reader
│ │ │ │ │ │ └── fetch
│ │ │ │ │ │ │ ├── SqlServerScanFetchTask.java
│ │ │ │ │ │ │ ├── SqlServerSourceFetchTaskContext.java
│ │ │ │ │ │ │ └── SqlServerStreamFetchTask.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── SqlServerConnectionUtils.java
│ │ │ │ │ │ ├── SqlServerTypeUtils.java
│ │ │ │ │ │ └── SqlServerUtils.java
│ │ │ │ │ └── table
│ │ │ │ │ ├── SqlServerDeserializationConverterFactory.java
│ │ │ │ │ ├── SqlServerReadableMetadata.java
│ │ │ │ │ ├── SqlServerTableFactory.java
│ │ │ │ │ └── SqlServerTableSource.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── sqlserver
│ │ │ │ ├── SqlServerParallelSourceExampleTest.java
│ │ │ │ ├── SqlServerTestBase.java
│ │ │ │ ├── source
│ │ │ │ ├── SqlServerSourceITCase.java
│ │ │ │ ├── SqlServerSourceTestBase.java
│ │ │ │ ├── reader
│ │ │ │ │ ├── SqlserverSourceReaderTest.java
│ │ │ │ │ └── fetch
│ │ │ │ │ │ └── SqlServerScanFetchTaskTest.java
│ │ │ │ └── utils
│ │ │ │ │ └── SQLServerUUIDComparatorTest.java
│ │ │ │ ├── table
│ │ │ │ ├── SqlServerConnectorITCase.java
│ │ │ │ ├── SqlServerTableFactoryTest.java
│ │ │ │ └── SqlServerTimezoneITCase.java
│ │ │ │ └── testutils
│ │ │ │ ├── RecordsFormatter.java
│ │ │ │ └── TestTable.java
│ │ │ └── resources
│ │ │ ├── container-license-acceptance.txt
│ │ │ ├── ddl
│ │ │ ├── column_type_test.sql
│ │ │ ├── customer.sql
│ │ │ ├── inventory.sql
│ │ │ ├── pk.sql
│ │ │ └── product.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-test-util
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── connectors
│ │ │ └── utils
│ │ │ ├── AssertUtils.java
│ │ │ ├── ExternalResourceProxy.java
│ │ │ ├── StaticExternalResourceProxy.java
│ │ │ └── TestSourceContext.java
│ ├── flink-connector-tidb-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ ├── apache
│ │ │ │ │ └── flink
│ │ │ │ │ │ └── cdc
│ │ │ │ │ │ └── connectors
│ │ │ │ │ │ └── tidb
│ │ │ │ │ │ ├── TDBSourceOptions.java
│ │ │ │ │ │ ├── TiDBSource.java
│ │ │ │ │ │ ├── TiKVChangeEventDeserializationSchema.java
│ │ │ │ │ │ ├── TiKVRichParallelSourceFunction.java
│ │ │ │ │ │ ├── TiKVSnapshotEventDeserializationSchema.java
│ │ │ │ │ │ ├── metrics
│ │ │ │ │ │ └── TiDBSourceMetrics.java
│ │ │ │ │ │ └── table
│ │ │ │ │ │ ├── RowDataTiKVChangeEventDeserializationSchema.java
│ │ │ │ │ │ ├── RowDataTiKVEventDeserializationSchemaBase.java
│ │ │ │ │ │ ├── RowDataTiKVSnapshotEventDeserializationSchema.java
│ │ │ │ │ │ ├── StartupMode.java
│ │ │ │ │ │ ├── StartupOptions.java
│ │ │ │ │ │ ├── TiDBTableSource.java
│ │ │ │ │ │ ├── TiDBTableSourceFactory.java
│ │ │ │ │ │ ├── TiKVAppendMetadataCollector.java
│ │ │ │ │ │ ├── TiKVDeserializationRuntimeConverter.java
│ │ │ │ │ │ ├── TiKVMetadataConverter.java
│ │ │ │ │ │ ├── TiKVReadableMetadata.java
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ ├── OptionUtils.java
│ │ │ │ │ │ ├── TableKeyRangeUtils.java
│ │ │ │ │ │ └── UriHostMapping.java
│ │ │ │ │ └── tikv
│ │ │ │ │ ├── cdc
│ │ │ │ │ ├── CDCClient.java
│ │ │ │ │ ├── CDCEvent.java
│ │ │ │ │ └── RegionCDCClient.java
│ │ │ │ │ └── common
│ │ │ │ │ ├── operation
│ │ │ │ │ └── iterator
│ │ │ │ │ │ └── ScanIterator.java
│ │ │ │ │ └── util
│ │ │ │ │ └── ChannelFactory.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── tidb
│ │ │ │ ├── TiDBTestBase.java
│ │ │ │ ├── metrics
│ │ │ │ └── TiDBSourceMetricsTest.java
│ │ │ │ └── table
│ │ │ │ ├── TiDBConnectorITCase.java
│ │ │ │ ├── TiDBConnectorRegionITCase.java
│ │ │ │ ├── TiDBTableSourceFactoryTest.java
│ │ │ │ └── utils
│ │ │ │ └── UriHostMappingTest.java
│ │ │ └── resources
│ │ │ ├── config
│ │ │ ├── pd.toml
│ │ │ ├── tidb.toml
│ │ │ └── tikv.toml
│ │ │ ├── ddl
│ │ │ ├── column_type_test.sql
│ │ │ ├── inventory.sql
│ │ │ └── region_switch_test.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-connector-vitess-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── flink
│ │ │ │ │ └── cdc
│ │ │ │ │ └── connectors
│ │ │ │ │ └── vitess
│ │ │ │ │ ├── VitessSource.java
│ │ │ │ │ ├── VitessValidator.java
│ │ │ │ │ ├── config
│ │ │ │ │ ├── SchemaAdjustmentMode.java
│ │ │ │ │ └── TabletType.java
│ │ │ │ │ └── table
│ │ │ │ │ ├── VitessTableFactory.java
│ │ │ │ │ └── VitessTableSource.java
│ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── org.apache.flink.table.factories.Factory
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── vitess
│ │ │ │ ├── VitessSourceTest.java
│ │ │ │ ├── VitessTestBase.java
│ │ │ │ ├── container
│ │ │ │ └── VitessContainer.java
│ │ │ │ └── table
│ │ │ │ ├── VitessConnectorITCase.java
│ │ │ │ └── VitessTableFactoryTest.java
│ │ │ └── resources
│ │ │ ├── ddl
│ │ │ ├── column_type_test.sql
│ │ │ └── inventory.sql
│ │ │ └── log4j2-test.properties
│ ├── flink-sql-connector-db2-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── db2
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-mongodb-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── mongodb
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-mysql-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── mysql
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-oceanbase-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── oceanbase
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-oracle-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── oracle
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-postgres-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── postgres
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-sqlserver-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── flink
│ │ │ │ └── cdc
│ │ │ │ └── connectors
│ │ │ │ └── sqlserver
│ │ │ │ └── DummyDocs.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ ├── flink-sql-connector-tidb-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── connectors
│ │ │ └── tidb
│ │ │ └── DummyDocs.java
│ ├── flink-sql-connector-vitess-cdc
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── connectors
│ │ │ └── vitess
│ │ │ └── DummyDocs.java
│ └── pom.xml
└── pom.xml
├── flink-cdc-dist
├── pom.xml
└── src
│ └── main
│ ├── assembly
│ └── assembly.xml
│ └── flink-cdc-bin
│ ├── bin
│ └── flink-cdc.sh
│ └── conf
│ ├── flink-cdc.yaml
│ └── log4j-cli.properties
├── flink-cdc-e2e-tests
├── flink-cdc-e2e-utils
│ ├── pom.xml
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── common
│ │ └── test
│ │ └── utils
│ │ ├── JdbcProxy.java
│ │ ├── ParameterProperty.java
│ │ └── TestUtils.java
├── flink-cdc-pipeline-e2e-tests
│ ├── pom.xml
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── pipeline
│ │ │ └── tests
│ │ │ ├── MaxComputeE2eITCase.java
│ │ │ ├── MySqlToDorisE2eITCase.java
│ │ │ ├── MySqlToIcebergE2eITCase.java
│ │ │ ├── MySqlToPaimonE2eITCase.java
│ │ │ ├── MysqlE2eITCase.java
│ │ │ ├── MysqlE2eWithYarnApplicationITCase.java
│ │ │ ├── MysqlToKafkaE2eITCase.java
│ │ │ ├── OceanBaseE2eITCase.java
│ │ │ ├── RouteE2eITCase.java
│ │ │ ├── SchemaEvolveE2eITCase.java
│ │ │ ├── SchemaEvolvingTransformE2eITCase.java
│ │ │ ├── TransformE2eITCase.java
│ │ │ ├── UdfE2eITCase.java
│ │ │ ├── migration
│ │ │ └── YamlJobMigrationITCase.java
│ │ │ └── utils
│ │ │ ├── PipelineTestEnvironment.java
│ │ │ ├── PipelineTestOnYarnEnvironment.java
│ │ │ └── TarballFetcher.java
│ │ └── resources
│ │ ├── ddl
│ │ ├── data_types_test.sql
│ │ ├── iceberg_inventory.sql
│ │ ├── mysql_2_oceanbase_test.sql
│ │ ├── mysql_inventory.sql
│ │ ├── paimon_inventory.sql
│ │ ├── route_test.sql
│ │ ├── schema_evolve.sql
│ │ └── transform_test.sql
│ │ ├── docker
│ │ ├── mysql
│ │ │ ├── my.cnf
│ │ │ └── setup.sql
│ │ ├── peek-iceberg.sql
│ │ └── peek-paimon.sql
│ │ ├── expectedEvents
│ │ └── mysqlToKafka
│ │ │ ├── canal-json.txt
│ │ │ ├── debezium-json-with-schema.txt
│ │ │ └── debezium-json.txt
│ │ └── log4j2-test.properties
├── flink-cdc-source-e2e-tests
│ ├── pom.xml
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── apache
│ │ │ └── flink
│ │ │ └── cdc
│ │ │ └── connectors
│ │ │ └── tests
│ │ │ ├── Db2E2eITCase.java
│ │ │ ├── MongoE2eITCase.java
│ │ │ ├── MySqlE2eITCase.java
│ │ │ ├── OceanBaseE2eITCase.java
│ │ │ ├── OracleE2eITCase.java
│ │ │ ├── PostgresE2eITCase.java
│ │ │ ├── SqlServerE2eITCase.java
│ │ │ ├── TiDBE2eITCase.java
│ │ │ ├── VitessE2eITCase.java
│ │ │ └── utils
│ │ │ ├── FlinkContainerTestEnvironment.java
│ │ │ └── SQLJobSubmission.java
│ │ └── resources
│ │ ├── container-license-acceptance.txt
│ │ ├── ddl
│ │ ├── mongo_inventory.js
│ │ ├── mysql_inventory.sql
│ │ ├── oceanbase_inventory.sql
│ │ ├── oracle_inventory.sql
│ │ ├── postgres_inventory.sql
│ │ ├── sqlserver_inventory.sql
│ │ ├── tidb_inventory.sql
│ │ └── vitess_inventory.sql
│ │ ├── docker
│ │ ├── db2
│ │ │ ├── Dockerfile
│ │ │ ├── asncdc.c
│ │ │ ├── asncdc_UDF.sql
│ │ │ ├── asncdcaddremove.sql
│ │ │ ├── asncdctables.sql
│ │ │ ├── cdcsetup.sh
│ │ │ ├── column_type_test.sql
│ │ │ ├── customers.sql
│ │ │ ├── dbsetup.sh
│ │ │ ├── inventory.sql
│ │ │ └── startup-agent.sql
│ │ ├── mongodb
│ │ │ ├── random.key
│ │ │ └── setup.js
│ │ ├── mysql
│ │ │ ├── my.cnf
│ │ │ └── setup.sql
│ │ └── tidb
│ │ │ ├── pd.toml
│ │ │ ├── tidb.toml
│ │ │ └── tikv.toml
│ │ └── log4j2-test.properties
└── pom.xml
├── flink-cdc-pipeline-model
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── runtime
│ │ └── model
│ │ ├── ModelOptions.java
│ │ ├── OpenAIChatModel.java
│ │ └── OpenAIEmbeddingModel.java
│ └── test
│ └── java
│ └── org
│ └── apache
│ └── flink
│ └── cdc
│ └── runtime
│ └── model
│ ├── TestOpenAIChatModel.java
│ └── TestOpenAIEmbeddingModel.java
├── flink-cdc-pipeline-udf-examples
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── org
│ │ └── apache
│ │ └── flink
│ │ ├── cdc
│ │ └── udf
│ │ │ └── examples
│ │ │ └── java
│ │ │ ├── AddOneFunctionClass.java
│ │ │ ├── FormatFunctionClass.java
│ │ │ ├── LifecycleFunctionClass.java
│ │ │ ├── TypeHintFunctionClass.java
│ │ │ ├── TypeOfFunctionClass.java
│ │ │ └── precision
│ │ │ ├── BinaryTypeReturningClass.java
│ │ │ ├── CharTypeReturningClass.java
│ │ │ ├── DecimalTypeNonNullReturningClass.java
│ │ │ ├── DecimalTypeReturningClass.java
│ │ │ ├── LocalZonedTimestampTypeReturningClass.java
│ │ │ ├── TimestampTypeReturningClass.java
│ │ │ ├── VarBinaryTypeReturningClass.java
│ │ │ └── VarCharTypeReturningClass.java
│ │ └── udf
│ │ └── examples
│ │ └── java
│ │ ├── AddOneFunctionClass.java
│ │ ├── FormatFunctionClass.java
│ │ └── TypeOfFunctionClass.java
│ └── scala
│ └── org
│ └── apache
│ └── flink
│ ├── cdc
│ └── udf
│ │ └── examples
│ │ └── scala
│ │ ├── AddOneFunctionClass.scala
│ │ ├── FormatFunctionClass.scala
│ │ ├── LifecycleFunctionClass.scala
│ │ ├── TypeHintFunctionClass.scala
│ │ ├── TypeOfFunctionClass.scala
│ │ └── precision
│ │ ├── BinaryTypeReturningClass.scala
│ │ ├── CharTypeReturningClass.scala
│ │ ├── DecimalTypeNonNullReturningClass.scala
│ │ ├── DecimalTypeReturningClass.scala
│ │ ├── LocalZonedTimestampTypeReturningClass.scala
│ │ ├── TimestampTypeReturningClass.scala
│ │ ├── VarBinaryTypeReturningClass.scala
│ │ └── VarCharTypeReturningClass.scala
│ └── udf
│ └── examples
│ └── scala
│ ├── AddOneFunctionClass.scala
│ ├── FormatFunctionClass.scala
│ └── TypeOfFunctionClass.scala
├── flink-cdc-runtime
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── runtime
│ │ ├── functions
│ │ ├── BuiltInScalarFunction.java
│ │ ├── BuiltInTimestampFunction.java
│ │ └── SystemFunctionUtils.java
│ │ ├── operators
│ │ ├── schema
│ │ │ ├── common
│ │ │ │ ├── CoordinationResponseUtils.java
│ │ │ │ ├── CoordinatorExecutorThreadFactory.java
│ │ │ │ ├── SchemaDerivator.java
│ │ │ │ ├── SchemaManager.java
│ │ │ │ ├── SchemaRegistry.java
│ │ │ │ ├── TableIdRouter.java
│ │ │ │ ├── event
│ │ │ │ │ ├── FlushSuccessEvent.java
│ │ │ │ │ ├── GetEvolvedSchemaRequest.java
│ │ │ │ │ ├── GetEvolvedSchemaResponse.java
│ │ │ │ │ ├── GetOriginalSchemaRequest.java
│ │ │ │ │ ├── GetOriginalSchemaResponse.java
│ │ │ │ │ └── SinkWriterRegisterEvent.java
│ │ │ │ └── metrics
│ │ │ │ │ └── SchemaOperatorMetrics.java
│ │ │ ├── distributed
│ │ │ │ ├── SchemaCoordinator.java
│ │ │ │ ├── SchemaCoordinatorProvider.java
│ │ │ │ ├── SchemaOperator.java
│ │ │ │ ├── SchemaOperatorFactory.java
│ │ │ │ └── event
│ │ │ │ │ ├── SchemaChangeRequest.java
│ │ │ │ │ └── SchemaChangeResponse.java
│ │ │ └── regular
│ │ │ │ ├── BatchSchemaOperator.java
│ │ │ │ ├── SchemaCoordinator.java
│ │ │ │ ├── SchemaCoordinatorProvider.java
│ │ │ │ ├── SchemaOperator.java
│ │ │ │ ├── SchemaOperatorFactory.java
│ │ │ │ └── event
│ │ │ │ ├── SchemaChangeRequest.java
│ │ │ │ └── SchemaChangeResponse.java
│ │ ├── sink
│ │ │ ├── BatchDataSinkFunctionOperator.java
│ │ │ ├── BatchDataSinkWriterOperator.java
│ │ │ ├── DataSinkFunctionOperator.java
│ │ │ ├── DataSinkWriterOperator.java
│ │ │ ├── DataSinkWriterOperatorFactory.java
│ │ │ ├── SchemaEvolutionClient.java
│ │ │ └── exception
│ │ │ │ └── SinkWrapperException.java
│ │ └── transform
│ │ │ ├── PostTransformChangeInfo.java
│ │ │ ├── PostTransformOperator.java
│ │ │ ├── PostTransformOperatorBuilder.java
│ │ │ ├── PostTransformer.java
│ │ │ ├── PreTransformChangeInfo.java
│ │ │ ├── PreTransformOperator.java
│ │ │ ├── PreTransformOperatorBuilder.java
│ │ │ ├── PreTransformProcessor.java
│ │ │ ├── PreTransformer.java
│ │ │ ├── ProjectionColumn.java
│ │ │ ├── ProjectionColumnProcessor.java
│ │ │ ├── SchemaMetadataTransform.java
│ │ │ ├── TransformContext.java
│ │ │ ├── TransformExpressionCompiler.java
│ │ │ ├── TransformExpressionKey.java
│ │ │ ├── TransformFilter.java
│ │ │ ├── TransformFilterProcessor.java
│ │ │ ├── TransformProjection.java
│ │ │ ├── TransformProjectionProcessor.java
│ │ │ ├── TransformRule.java
│ │ │ ├── UserDefinedFunctionDescriptor.java
│ │ │ ├── converter
│ │ │ ├── PostTransformConverter.java
│ │ │ ├── PostTransformConverters.java
│ │ │ └── SoftDeleteConverter.java
│ │ │ └── exceptions
│ │ │ └── TransformException.java
│ │ ├── parser
│ │ ├── JaninoCompiler.java
│ │ ├── TransformParser.java
│ │ └── metadata
│ │ │ ├── MetadataColumns.java
│ │ │ ├── TransformNumericExceptFirstOperandChecker.java
│ │ │ ├── TransformSchema.java
│ │ │ ├── TransformSchemaFactory.java
│ │ │ ├── TransformSqlOperatorTable.java
│ │ │ ├── TransformSqlReturnTypes.java
│ │ │ └── TransformTable.java
│ │ ├── partitioning
│ │ ├── BatchRegularPrePartitionOperator.java
│ │ ├── DistributedPrePartitionOperator.java
│ │ ├── EventPartitioner.java
│ │ ├── PartitioningEvent.java
│ │ ├── PartitioningEventKeySelector.java
│ │ ├── PostPartitionProcessor.java
│ │ └── RegularPrePartitionOperator.java
│ │ ├── serializer
│ │ ├── BooleanSerializer.java
│ │ ├── BytePrimitiveArraySerializer.java
│ │ ├── ByteSerializer.java
│ │ ├── DoubleSerializer.java
│ │ ├── EnumSerializer.java
│ │ ├── FloatSerializer.java
│ │ ├── IntSerializer.java
│ │ ├── InternalSerializers.java
│ │ ├── LinkedListSerializer.java
│ │ ├── ListSerializer.java
│ │ ├── LongSerializer.java
│ │ ├── MapSerializer.java
│ │ ├── NestedSerializersSnapshotDelegate.java
│ │ ├── NullableSerializerWrapper.java
│ │ ├── ShortSerializer.java
│ │ ├── StringSerializer.java
│ │ ├── TableIdSerializer.java
│ │ ├── TypeSerializerSingleton.java
│ │ ├── data
│ │ │ ├── ArrayDataSerializer.java
│ │ │ ├── DecimalDataSerializer.java
│ │ │ ├── LocalZonedTimestampDataSerializer.java
│ │ │ ├── MapDataSerializer.java
│ │ │ ├── RecordDataSerializer.java
│ │ │ ├── StringDataSerializer.java
│ │ │ ├── TimestampDataSerializer.java
│ │ │ ├── ZonedTimestampDataSerializer.java
│ │ │ ├── binary
│ │ │ │ ├── BinaryRecordDataDataUtil.java
│ │ │ │ └── BinaryRecordDataSerializer.java
│ │ │ ├── util
│ │ │ │ └── MapDataUtil.java
│ │ │ └── writer
│ │ │ │ ├── AbstractBinaryWriter.java
│ │ │ │ ├── BinaryArrayWriter.java
│ │ │ │ ├── BinaryRecordDataWriter.java
│ │ │ │ └── BinaryWriter.java
│ │ ├── event
│ │ │ ├── AddColumnEventSerializer.java
│ │ │ ├── AlterColumnTypeEventSerializer.java
│ │ │ ├── CreateTableEventSerializer.java
│ │ │ ├── DataChangeEventSerializer.java
│ │ │ ├── DropColumnEventSerializer.java
│ │ │ ├── DropTableEventSerializer.java
│ │ │ ├── EventSerializer.java
│ │ │ ├── PartitioningEventSerializer.java
│ │ │ ├── RenameColumnEventSerializer.java
│ │ │ ├── SchemaChangeEventSerializer.java
│ │ │ └── TruncateTableEventSerializer.java
│ │ └── schema
│ │ │ ├── ColumnSerializer.java
│ │ │ ├── ColumnWithPositionSerializer.java
│ │ │ ├── DataFieldSerializer.java
│ │ │ ├── DataTypeSerializer.java
│ │ │ ├── MetadataColumnSerializer.java
│ │ │ ├── PhysicalColumnSerializer.java
│ │ │ ├── RowTypeSerializer.java
│ │ │ └── SchemaSerializer.java
│ │ └── typeutils
│ │ ├── BinaryRecordDataExtractor.java
│ │ ├── BinaryRecordDataGenerator.java
│ │ ├── DataTypeConverter.java
│ │ ├── EventTypeInfo.java
│ │ └── PartitioningEventTypeInfo.java
│ └── test
│ ├── java
│ └── org
│ │ └── apache
│ │ └── flink
│ │ └── cdc
│ │ └── runtime
│ │ ├── operators
│ │ ├── schema
│ │ │ ├── common
│ │ │ │ ├── SchemaDerivatorTest.java
│ │ │ │ ├── SchemaManagerTest.java
│ │ │ │ ├── SchemaTestBase.java
│ │ │ │ └── TableIdRouterTest.java
│ │ │ ├── distributed
│ │ │ │ └── SchemaEvolveTest.java
│ │ │ └── regular
│ │ │ │ ├── SchemaEvolveTest.java
│ │ │ │ └── SchemaOperatorTest.java
│ │ ├── sink
│ │ │ ├── DataSinkOperatorAdapter.java
│ │ │ └── DataSinkOperatorWithSchemaEvolveTest.java
│ │ └── transform
│ │ │ ├── PostTransformOperatorTest.java
│ │ │ ├── PreTransformOperatorTest.java
│ │ │ ├── TransformOperatorWithSchemaEvolveTest.java
│ │ │ ├── UnifiedTransformOperatorTest.java
│ │ │ └── UserDefinedFunctionDescriptorTest.java
│ │ ├── parser
│ │ ├── JaninoCompilerTest.java
│ │ └── TransformParserTest.java
│ │ ├── partitioning
│ │ └── PrePartitionOperatorTest.java
│ │ ├── serializer
│ │ ├── BooleanSerializerTest.java
│ │ ├── BytePrimitiveArraySerializerTest.java
│ │ ├── ByteSerializerTest.java
│ │ ├── DoubleSerializerTest.java
│ │ ├── EnumSerializerTest.java
│ │ ├── FloatSerializerTest.java
│ │ ├── IntSerializerTest.java
│ │ ├── LinkedListSerializerTest.java
│ │ ├── ListSerializerTest.java
│ │ ├── LongSerializerTest.java
│ │ ├── MapSerializerTest.java
│ │ ├── NullableSerializerWrapperTest.java
│ │ ├── SerializerTestBase.java
│ │ ├── ShortSerializerTest.java
│ │ ├── StringSerializerTest.java
│ │ ├── TableIdSerializerTest.java
│ │ ├── data
│ │ │ ├── ArrayDataSerializerTest.java
│ │ │ ├── DecimalDataSerializerTest.java
│ │ │ ├── LocalZonedTimestampDataSerializerTest.java
│ │ │ ├── MapDataSerializerTest.java
│ │ │ ├── RecordDataSerializerTest.java
│ │ │ ├── StringDataSerializerTest.java
│ │ │ ├── TimestampDataSerializerTest.java
│ │ │ ├── ZonedTimestampDataSerializerTest.java
│ │ │ ├── binary
│ │ │ │ └── BinarySegmentUtilsTest.java
│ │ │ ├── util
│ │ │ │ └── DataFormatTestUtil.java
│ │ │ └── writer
│ │ │ │ └── BinaryArrayWriterTest.java
│ │ ├── event
│ │ │ ├── AddColumnEventSerializerTest.java
│ │ │ ├── AlterColumnTypeEventSerializerTest.java
│ │ │ ├── CreateTableEventSerializerTest.java
│ │ │ ├── DataChangeEventSerializerTest.java
│ │ │ ├── DropColumnEventSerializerTest.java
│ │ │ ├── DropTableEventSerializerTest.java
│ │ │ ├── EventSerializerTest.java
│ │ │ ├── PartitioningEventSerializerTest.java
│ │ │ ├── RenameColumnEventSerializerTest.java
│ │ │ ├── SchemaChangeEventSerializerTest.java
│ │ │ └── TruncateTableEventSerializerTest.java
│ │ └── schema
│ │ │ ├── ColumnSerializerTest.java
│ │ │ ├── ColumnWithPositionSerializerTest.java
│ │ │ ├── DataFieldSerializerTest.java
│ │ │ ├── DataTypeSerializerTest.java
│ │ │ ├── MetadataColumnSerializerTest.java
│ │ │ ├── PhysicalColumnSerializerTest.java
│ │ │ ├── RowTypeSerializerTest.java
│ │ │ └── SchemaSerializerTest.java
│ │ ├── testutils
│ │ ├── operators
│ │ │ ├── DistributedEventOperatorTestHarness.java
│ │ │ ├── MockedOperatorCoordinatorContext.java
│ │ │ └── RegularEventOperatorTestHarness.java
│ │ └── schema
│ │ │ ├── CollectingMetadataApplier.java
│ │ │ └── TestingSchemaRegistryGateway.java
│ │ └── typeutils
│ │ ├── BinaryRecordDataExtractorTest.java
│ │ └── BinaryRecordDataGeneratorTest.java
│ └── resources
│ └── log4j2-test.properties
├── pom.xml
└── tools
├── cdcup
├── .gitignore
├── Dockerfile
├── README.md
├── cdcup.sh
└── src
│ ├── app.rb
│ ├── download_libs.rb
│ ├── sink
│ ├── doris.rb
│ ├── kafka.rb
│ ├── paimon.rb
│ ├── star_rocks.rb
│ └── values_sink.rb
│ └── source
│ ├── my_sql.rb
│ └── values_source.rb
├── ci
└── license_check.rb
├── maven
├── checkstyle.xml
└── suppressions.xml
└── releasing
├── create_release_branch.sh
├── create_source_release.sh
├── deploy_staging_jars.sh
└── update_branch_version.sh
/.dlc.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignorePatterns": [
3 | {
4 | "pattern": "^http://localhost"
5 | },
6 | {
7 | "pattern": "^#"
8 | },
9 | {
10 | "pattern": "^{"
11 | },
12 | {
13 | "pattern": "^https://repo1.maven.org/maven2/org/apache/flink.*"
14 | },
15 | {
16 | "pattern": "^https://mvnrepository.com"
17 | },
18 | {
19 | "pattern": "^https://img.shields.io"
20 | },
21 | {
22 | "pattern": "^https://twitter.com*"
23 | }
24 | ],
25 | "timeout": "30s",
26 | "retryOn429": true,
27 | "retryCount": 10,
28 | "fallbackRetryDelay": "1000s",
29 | "aliveStatusCodes": [
30 | 0,
31 | 200,
32 | 401,
33 | 403
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one or more
2 | # contributor license agreements. See the NOTICE file distributed with
3 | # this work for additional information regarding copyright ownership.
4 | # The ASF licenses this file to You under the Apache License, Version 2.0
5 | # (the "License"); you may not use this file except in compliance with
6 | # the License. You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | blank_issues_enabled: false
17 |
18 |
--------------------------------------------------------------------------------
/.github/workflows/approve_label_trigger.yml:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | #
18 |
19 | name: Label-when-reviewed
20 | on: pull_request_review
21 | jobs:
22 |
23 | label-when-reviewed:
24 | name: "Label PRs when reviewed"
25 | runs-on: ubuntu-latest
26 | steps:
27 | - name: "Do nothing. Only trigger corresponding workflow_run event"
28 | run: echo
--------------------------------------------------------------------------------
/.github/workflows/utils.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ################################################################################
3 | # Licensed to the Apache Software Foundation (ASF) under one
4 | # or more contributor license agreements. See the NOTICE file
5 | # distributed with this work for additional information
6 | # regarding copyright ownership. The ASF licenses this file
7 | # to you under the Apache License, Version 2.0 (the
8 | # "License"); you may not use this file except in compliance
9 | # with the License. You may obtain a copy of the License at
10 | #
11 | # http://www.apache.org/licenses/LICENSE-2.0
12 | #
13 | # Unless required by applicable law or agreed to in writing, software
14 | # distributed under the License is distributed on an "AS IS" BASIS,
15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | # See the License for the specific language governing permissions and
17 | # limitations under the License.
18 | ################################################################################
19 |
20 | function random_timezone() {
21 | local rnd=$(expr $RANDOM % 25)
22 | local hh=$(expr $rnd / 2)
23 | local mm=$(expr $rnd % 2 \* 3)"0"
24 | local sgn=$(expr $RANDOM % 2)
25 | if [ $sgn -eq 0 ]
26 | then
27 | echo "GMT+$hh:$mm"
28 | else
29 | echo "GMT-$hh:$mm"
30 | fi
31 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .cache
2 | scalastyle-output.xml
3 | .classpath
4 | .idea/*
5 | !.idea/vcs.xml
6 | .metadata
7 | .settings
8 | .project
9 | .version.properties
10 | filter.properties
11 | logs.zip
12 | target
13 | tmp
14 | *.class
15 | *.iml
16 | *.swp
17 | *.jar
18 | *.zip
19 | *.log
20 | *.pyc
21 | .DS_Store
22 | build-targetatlassian-ide-plugin.xml
23 | *.ipr
24 | *.iws
25 | docs/_build
26 | **/.flattened-pom.xml
27 | **/dependency-reduced-pom.xml
28 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "docs/themes/book"]
2 | path = docs/themes/book
3 | url = https://github.com/alex-shpak/hugo-book
4 | [submodule ".github/actions/get-workflow-origin"]
5 | path = .github/actions/get-workflow-origin
6 | url = https://github.com/potiuk/get-workflow-origin
7 | [submodule ".github/actions/label-when-approved-action"]
8 | path = .github/actions/label-when-approved-action
9 | url = https://github.com/TobKed/label-when-approved-action
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
24 |
25 |
v{{ $.Site.Params.Version }}
-------------------------------------------------------------------------------- /docs/layouts/partials/docs/interpolate.html: -------------------------------------------------------------------------------- 1 | 19 | 22 | {{ $str := replace . "$scala_version" site.Params.ScalaVersion }} 23 | {{ $str = replace $str "$version" site.Params.Version }} 24 | {{ return $str }} -------------------------------------------------------------------------------- /docs/layouts/partials/docs/simple-title.html: -------------------------------------------------------------------------------- 1 | 19 | 23 | {{ $title := "" }} 24 | 25 | {{ if .Title }} 26 | {{ $title = .Title }} 27 | {{ else if and .IsSection .File }} 28 | {{ $title = path.Base .File.Dir | humanize | title }} 29 | {{ else if and .IsPage .File }} 30 | {{ $title = .File.BaseFileName | humanize | title }} 31 | {{ end }} 32 | 33 | {{ return $title }} -------------------------------------------------------------------------------- /docs/layouts/partials/docs/toc.html: -------------------------------------------------------------------------------- 1 | 19 | {{/* 20 | Generates the pages table of contents. Unfortunately, hugo does not give us a lot of flexibility 21 | around how the TOC is generated so we have to fall back to a regex to add the header. 22 | */}} 23 | {{ .TableOfContents | replaceRE "