You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ma...@apache.org on 2022/11/29 14:48:37 UTC

[flink-connector-jdbc] branch main updated (b8af8ec -> 9559acf)

This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git


    from b8af8ec  [hotfix] Setup auto-linking
     new a9443d8  [FLINK-17537][jdbc] Refactor flink-jdbc connector structure
     new aa2bc44  [FLINK-17222][table-common] Ensure deterministic field order in FieldsDataType
     new 465823e  [FLINK-17697][jdbc] Fix JdbcFullTest.testEnrichedClassCastException is failed in JDK11
     new e67cd8b  [FLINK-17029][jdbc] Introduce a new JDBC connector with new property keys
     new 65c058f  Update version to 1.12-SNAPSHOT
     new 3576fb7  [FLINK-17361] Add custom query on JDBC tables
     new 971d124  [FLINK-17361] Refactor JdbcTableSourceITCase to use TableResult instead of StreamITCase
     new 44754b2  [FLINK-17798][connector/jdbc] Align the behavior between the new and legacy JDBC table source
     new ff075f3  [FLINK-17622][connectors/jdbc] Remove useless switch for decimal in PostgresCatalog
     new 4e46e53  [FLINK-15947] Fix table implicit conversions structure
     new 8d6fb8a  [FLINK-17356][jdbc][postgres] Support PK and Unique constraints
     new dba0250  [FLINK-17356][jdbc][postgres] Add IT cases for inserting group by query into posgres catalog table
     new 266f9b2  Revert "[FLINK-17356][jdbc][postgres] Add IT cases for inserting group by query into posgres catalog table"
     new 4d52cdc  [FLINK-17356][jdbc][postgres] Add IT cases for inserting group by query into posgres catalog table
     new dc29b0b  [FLINK-16021][table-common] Fix DescriptorProperties.putTableSchema does not include PRIMARY KEY
     new cd39193  [FLINK-17284][jdbc][postgres] Fix serial type columns not work in Postgres catalog
     new c6998cc  [FLINK-17657][jdbc] Fix reading BIGINT UNSIGNED type field not work in JDBC
     new 11517b3  [FLINK-17887][table][connector] Improve interface of ScanFormatFactory and SinkFormatFactory
     new 183a271  [FLINK-16681][jdbc] Fix JDBC source/sink lost connection after a long time idle
     new f5d2861  [FLINK-18082][jdbc] Fix UnsignedTypeConversionITCase stalls in ch.vorburger.mariadb4j.DB.stop
     new a340a9e  [FLINK-16497][jdbc][table] Improve default flush strategy for new JDBC sink for better out-of-box
     new 858f291  [FLINK-17544][jdbc] Fix NPE and resource leak problem in JdbcOutputFormat
     new 8fc2a92  [hotfix][FLINK-18412] Fix JdbcFullTest failed to compile on JDK11
     new 09e1205  [hotfix][table] Code cleanup: use new methods introduced in FLIP-84 instead of deprecated methods
     new bdfac60  [FLINK-18461][table-planner-blink] Fix Changelog source can't be insert into upsert sink
     new caed3d2  [FLINK-18434] Fix getter methods of AbstractJdbcCatalog
     new f8188cd  [FLINK-18537][table] Replace RowDataTypeInfo with InternalTypeInfo
     new 27710ce  [FLINK-18607][build] Give the maven module a human readable name
     new 7db80fe  [FLINK-18579][jdbc] Remove deprecated classes in flink-connector-jdbc
     new 47f156a  [FLINK-15728][jdbc] Introduce FieldNamedPreparedStatement to support fields are bound multiple times in update statement
     new 262d1da  [FLINK-18900][hive] HiveCatalog should error out when listing partitions with an invalid spec
     new 33ea8ad  [FLINK-19050][Documentation] Doc of MAX_DECIMAL_PRECISION should be DECIMAL
     new 4d4fb26  [FLINK-18337][table] Introduce TableResult#await method to block until data is ready or job finished
     new 6b35762  [hotfix][table][connector] Use CollectionUtil#iteratorToList instead of Guava Lists
     new cc969fa  [FLINK-18333][jdbc] Harden fragile UnsignedTypeConversionITCase caused by MariaDB4j
     new 9a0881a  [FLINK-19280][jdbc] Fix option "sink.buffer-flush.max-rows" for JDBC can't be disabled by setting to zero
     new 077dcda  [FLINK-19317] Remove unnecessary calls to setStreamTimeCharacteristic (java)
     new 59c6335  [FLINK-19341][table] Update all API related methods to FLIP-107
     new 41bea3b  [FLINK-19522][jdbc] Add "scan.auto-commit" option for JDBC SQL connector
     new 3dba872  [FLINK-18999][table-common][table-planner-blink] Add isTemporary flag to table factory context
     new 04fd36e  [FLINK-17528][table] Remove RowData#get() API and use FieldGetter instead
     new 8927497  [hotfix][table-common] Avoid unnecessary casting when creating type information in sources and sinks
     new 11a6c16  [FLINK-19684][jdbc] Fix 'max-retries' option doesn't work when set to zero
     new e8d1599  Update version to 1.13-SNAPSHOT
     new 34bb4c0  [FLINK-20509][table-planner-blink] Refactor verifyPlan methods in TableTestBase
     new 348aa6f  [hotfix][jdbc] Fix invalid string format
     new 2384af0  [FLINK-19905][jdbc] Fix the 'lookup.max-retries' option initial value is 1 in JdbcLookupFunction
     new 6045ad1  [FLINK-19435][connectors/jdbc] Add hang test case to reveal deadlock when loading different sql driver classes concurrently using Class.forName
     new c0ab8e3  [FLINK-19435][connectors/jdbc] Fix deadlock when loading different sql driver classes concurrently using Class.forName
     new ffb654e  [FLINK-19942][jdbc] Support sink parallelism configuration for JDBC connector
     new fa865f5  [FLINK-20552][jdbc] JdbcDynamicTableSink doesn't sink buffered data on checkpoint
     new 890b577  [FLINK-19691][jdbc] Support connection.max-retry-timeout configuration for JDBC connector
     new b8cad51  [FLINK-19650][jdbc][table] Support limit push down for the JDBC connector
     new 9fe6dce  [FLINK-20657][connectors/jdbc] Migrate jdbc InputFormat/LookupFunction to SimpleJdbcConnectionProvider for connection establishment
     new 250f2fd  [FLINK-20540][jdbc] Fix JdbcCatalog connection exception when baseUrl doesn't end with slash
     new b2bc510  [FLINK-20651] Format code with Spotless/google-java-format
     new 029b21e  [FLINK-18090] Update tests for new Row.toString
     new f9ecc7b  [hotfix][sink][test] Unignore JdbcITCase
     new 9fe783c  [FLINK-15578][connectors/jdbc] implement exactly once JDBC sink using JTA (XA)
     new 0de24c6  [FLINK-21044][connectors/jdbc] Use more random bytes in Xid
     new c7a6c11  [FLINK-19771][connector-jdbc] Fix NPE when accessing array using postgres
     new ba65955  [hotfix][jdbc] Fix typo in UnsignedTypeConversionITCase
     new 4cd4a19  [FLINK-21193][docs] Migrate Flink docs from Jekyll to Hugo
     new be1d2b6  [hotfix][docs] Correct rendering of maven modules
     new 18a4433  [FLINK-21426][docs] adds English details to jdbc sink connector
     new 09ec1c1  [FLINK-20994][python] Add public method to create TableEnvironment in PyFlink
     new 124c0d9  [FLINK-21442][connectors/jdbc] Fix XaSinkStateSerializer serialization
     new 9eae03e  [FLINK-20658][jdbc] Establish connection through driver with given name (#15043)
     new b3c6f1d  [hotfix][runtime] Add job ID to RuntimeContext
     new 5314ab9  [FLINK-21635][jdbc] Support optional driverName in jdbc connection establishment
     new 0898429  [FLINK-21488][connectors/jdbc] Use JobID in XA global transaction ID
     new 47b24f2  [hotfix][connectors/jdbc] Use full checkpoint ID in XA global transaction ID
     new d87da12  [FLINK-21620][table] Use TIMESTAMP_LTZ as summary string for LocalZonedTimestampType
     new aab791f  [FLINK-21396][table-planner-blink] Use ResolvedCatalogTable within the planner
     new 56f5dd3  [FLINK-21885] Fixed minor typo within batch execution criteria
     new 84496c1  [FLINK-21838][docs-zh] retranslate "JDBC SQL Connector" page into Chinese (#15254)
     new 52228d3  [FLINK-21913][table][connectors] Update DynamicTableFactory.Context to use ResolvedCatalogTable
     new 41609d5  [FLINK-21822][table] Migrate built-in and test catalog factories to new stack
     new fccd3e3  [FLINK-21822][table] Introduce CatalogFactoryHelper
     new 3ca8561  [FLINK-21626][core] Make RuntimeContext.jobID non-optional
     new e3a065f  [hotfix] fix broken javadoc links in JDBC connector doc
     new 65fbdff  [FLINK-21240][jdbc] Fix Mysql row converter doesn't support external LocalDateTime type
     new 7656be3  [hotfix] Fix the release version for JdbcXaSinkFunction
     new dcc6699  [hotfix] Remove unnessary rollbackPreparedFromCheckpoint from JdbcXaSinkFunction.snapshot
     new 9927d3b  [FLINK-21743] Document limitation of JdbcXaSinkFunction for MySQL support
     new d5b6410  [FLINK-22288][connectors / jdbc] Remove unnecessary argument in JdbcSink
     new beab728  Update version to 1.14-SNAPSHOT
     new ec1a200  [FLINK-22239][jdbc] Pool connections in JDBC XA sink
     new 7c42c11  [FLINK-22239][jdbc] Rollback XA transactions on recovery
     new ae28f9b  [FLINK-22239][tests] Test JDBC XA Sink against PostgreSQL
     new b9e6403  [hotfix][docs] Fix typo in jdbc execution options
     new f0699e3  [FLINK-22289] Update JDBC XA sink docs
     new 198bba2  [FLINK-22471][connector-jdbc] Improve spelling and avoid repeating default values
     new 0ddc0a9  [FLINK-22740][docs] Drop legacy planner references in docs
     new a0a45f9  [FLINK-22782][docs] Remove legacy planner from Chinese docs
     new 0427df9  [FLINK-22822][connector-jdbc] Clean up flink-connector-jdbc's pom.xml
     new c3aa498  [FLINK-22889][tests] Ignore JdbcExactlyOnceSinkE2eTest temporarily
     new 9d0e7ff  [FLINK-22776][connector-jdbc] Delete unuseful casting to byte[] in AbstractJdbcRowConverter class
     new 5ec7721  [FLINK-22744][table] Update and simplify EnvironmentSettings
     new 94abd73  [FLINK-22744][docs] Update and simplify docs for EnvironmentSettings
     new a633348  [FLINK-22462][connectors / jdbc] Fix XA connection leak
     new ebf2703  [FLINK-22462][tests] Fix and harden JdbcExactlyOnceSinkE2eTest
     new 4937592  [FLINK-23084] Move Executors/-ThreadFactory to flink-core
     new 719de26  [FLINK-22462][tests] Fix JdbcExactlyOnceSinkE2eTest by pausing emission until checkpoint confirmed
     new d535a28  [FLINK-22880][table] Remove 'blink' term from code base
     new e3d82a0  [FLINK-21448] Add dependency for ChangelogStateBackend ITTests
     new 61c478a  [FLINK-22879][table] Rename flink-table-planner-blink to flink-table-planner
     new e76e614  [FLINK-22889] Add debug statements to JdbcExactlyOnceSinkE2eTest
     new cbc0e76  [FLINK-23064][connector-jdbc] Create PublicEvolving JdbcOptions
     new 258d77d  [FLINK-18783] Load Akka with separate classloader
     new 617a6df  Revert "[FLINK-18783] Load Akka with separate classloader"
     new 0129173  [hotfix][connectors/jdbc] Rename JdbcOutputFormat to JdbcRowOutputFormat
     new d10c0bb  [hotfix][connectors/jdbc] Merge Batching and Abstract into JdbcOutputFormat
     new 7a05c85  [hotfix][connectors/jdbc] Rename JdbcDynamicOutputFormatBuilder to JdbcOutputFormatBuilder
     new bbc68fa  [FLINK-21367][connectors/jdbc] Support Object Reuse in JDBC sink
     new 3b1f41d  [FLINK-18783] Load Akka with separate classloader
     new 3c2bff0  [FLINK-23329][build] Bump flink-shaded to 14.0
     new a9f9720  [FLINK-22889][tests] Use LogLevelRule JdbcExactlyOnceSinkE2eTest
     new 187c4b7  [FLINK-22889][tests] Configure MySQL lock wait timeout in JdbcExactlyOnceSinkE2eTest
     new f22770c  [FLINK-22889][tests] Log InnoDB details in JdbcExactlyOnceSinkE2eTest to ease debugging
     new 2b085be  [hotfix][connector][jdbc] Corrected exception variable name (#16662)
     new 2c56865  [FLINK-23437][jdbc] Add an option to (dis)allow XA transaction multiplexing
     new bd02ff2  [FLINK-23644][build] Resolve maven warnings
     new 720d9f1  [hotfix][test/testcontainers] Use Testcontainer BOM to manage versions in the project
     new 9cf0c1e  [FLINK-23652][core/metrics] Extract Operator(IO)MetricGroup interfaces and expose them in RuntimeContext
     new a2dcb97  [FLINK-23044][docs] Fix typos
     new c4e7262  [FLINK-23813][connectors/jdbc] Update delete executor in TableJdbcUpsertOutputFormat
     new 274d038  [FLINK-23909][connector-jdbc][scala-shell][yarn] Remove redundant variables and improve some style format in coding.
     new 97db2d6  [hotfix][docs] Remove list of supported JDBC drivers
     new 6c582d0  [FLINK-23876][docs] Add JDBC XA DataSource examples
     new 43942c0  [FLINK-23776][docs] Clarify JDBC XA sink usage
     new 13b2df7  Update version to 1.15-SNAPSHOT
     new 0871b50  [FLINK-23854][datastream] Expose the restored checkpoint id in ManagedInitializationContext.
     new 11bd793  [FLINK-23859] Fix typos
     new bb36ba8  [FLINK-22889][tests] Increase timeouts in JdbcExactlyOnceSinkE2eTest
     new 5b776b5  [FLINK-23607][state/changelog] Make Changelog Backend a transitive dependency
     new 7954b55  [FLINK-24253][jdbc] Migrate JDBC validation from TableSchema to DataType
     new d632f98  [FLINK-24253][jdbc] Load Dialects via ServiceLoader
     new 576e7fc  [FLINK-24253][jdbc] Mark Dialect as Public and move converter out of internal package
     new 37b2c26  [FLINK-24253][jdbc] Cleanup JavaDoc of newly public interfaces
     new 00a35ac  [FLINK-24253][jdbc] move default implementations to AbstractDialect
     new 1480468  [FLINK-24397][connectors/jdbc] Cleanup the Jdbc table connector by removing legacy
     new 30e4f57  [FLINK-24018][build] Remove Scala dependencies from Java APIs
     new 8d50344  [FLINK-24599][table] Replace static methods with convenient methods in LogicalType
     new 8920524  [FLINK-24747][table] Let SupportsProjectionPushDown#applyProjection provide the projected data type
     new b175b51  [FLINK-24719][jdbc] Update Postgres test dependencies
     new bd262c8  [FLINK-24771][jdbc][tests] Bump test dependencies mariadb-java-client to 2.7.4 and mysql-connector-java to 8.0.27
     new bed82b8  [FLINK-24861][connector][jdbc] Support to disable caching missing key for lookup cache (#17754)
     new 5af11ed  [FLINK-25065][docs] Update document for "lookup.cache.caching-missing-key" option for jdbc connector (#17918)
     new 3ee75da  [FLINK-24596][core] Introduce SerializableFunction and unify usages
     new 01befa8  [FLINK-25060][table-common] Replace projection methods of FLINK-24399 with the new Projection util
     new 17e6045  [hotfix][docs] Improve the description of JDBC docs (#17661)
     new 1e8ba64  [FLINK-25229][table] Introduce flink-table-api-bridge-base
     new f6b2e03  [FLINK-23375][connector/jdbc] Build JDBC test jar.
     new 8738f20  [hotfix][jdbc] Fix method name typo in Postgres test
     new 7c29c07  [hotfix][docs] Fixing multiple 404 links in docs
     new 963f422  [FLINK-25239][connector/jdbc] delete useless variables
     new ab854a7  [FLINK-25576][Connectors][JDBC] Upgrade com.h2database:h2 to 2.0.206
     new 8d57f59  [FLINK-14100][jdbc] Introduce Oracle dialect for JDBC Connector
     new a478d1c  [FLINK-25351][annotations] Introduce `FlinkVersion` as a global enum
     new a28c041  [FLINK-15352][connector-jdbc] Develop MySQLCatalog to connect Flink with MySQL tables and ecosystem.
     new dc073ce  [FLINK-25391][connector-jdbc] Forward catalog table options
     new 28fdf05  [FLINK-25129][docs] Restructure project configuation pages
     new bc2e3f9  [FLINK-25892][jdbc][test] add ArchUnit tests for test code
     new 3cbfab6  [FLINK-22311] [connector/jdbc] Validate maxRetries for XA Sink
     new c94300e  [FLINK-25785][Connectors][JDBC] Upgrade com.h2database:h2 to 2.1.210
     new 0ca170c  [FLINK-25825][connector-jdbc] MySqlCatalogITCase fails on azure
     new 5b41098  [hotfix] Fix JUnit 5 mini cluster arch unit rules
     new 3bc8075  [FLINK-26294][test] Using fixed description for ArchUnit ITCaseRules
     new 7bf3488  [hotfix][tests] Add instructions for updating archunit stores
     new 4943cb1  [FLINK-26252][tests] Refactor MiniClusterExtension to support JUnit 5 parallel tests
     new c1ec37e  Update version to 1.16-SNAPSHOT
     new d454d39  [FLINK-26551][table-planner] Change legacy casting config option to DISABLED by default
     new 1111549  [hotfix][table] Replace TableConfig constructor with getDefault()
     new 8834abe  [FLINK-26578][docs-zh] Translate new Project Configuration section to Chinese. This closes #19100
     new 45868bc  [FLINK-26716][test][connectors/jdbc] Migrate PostgreSQL tests to Testcontainers
     new d725fff  [hotfix][docs]add the missing ending symbol ‘;’
     new 64c1685  [FLINK-26709][table] Replace TableConfig.getConfiguration.set()
     new c250af5  [FLINK-25926][Connectors][JDBC] Update org.postgresql:postgresql to 42.3.3. This required adding support for smallserial and applying changes after refactoring pgjdbc/pgjdbc#1194. PG's bytea[] now uses primitive arrays. This closes #18604
     new 633efa0  [FLINK-27234][jdbc] Enable fork-reuse for unit tests
     new 6cbf588  [FLINK-27212][table-planner] Use UTF-8 encoding when casting between binary/character string
     new 9ddc369  [FLINK-24721][build] Remove unnecessary relativePath to parent
     new 9837826  [FLINK-27501][tests] Migrate SerializerTestBase to JUnit5
     new 806b9d4  [FLINK-27185][connector] Convert connector-jdbc module to assertj
     new 164930c  [FLINK-27794][connectors/jdbc] Fix the wrong primary key for MysqlCatalog when there are tables with same name in different databases
     new cf8496f  [FLINK-28217] Bumps [mysql-connector-java](https://github.com/mysql/mysql-connector-j) from 8.0.27 to 8.0.29.
     new 947da1d  [FLINK-19869][connectors/jdbc] Add support for postgres UUID type
     new 02e86e3  [FLINK-28140][python][docs] Improve the documentation connector pages and metrics pages
     new 8b753f7  [FLINK-25485][connector/jdbc] Add default jdbc option 'rewriteBatchedStatements' for MySQL dialect
     new 671733c  [FLINK-28854][connector/jdbc] Migrate JDBC lookup table to the new LookupFunction and caching interface
     new f125b25  [FLINK-28814][Connectors][JDBC] Update org.postgresql:postgresql to 42.4.1
     new 5eef621  [FLINK-29087][connector/jdbc] Change dependencies order to avoid compile failure while running in idea
     new c4c80ad  [hotfix][tests] Replace deprecated AbstractThrowableAssert#getRootCause
     new 09cbf05  [FLINK-29138][table-planner] fix project can not be pushed into lookup source
     new 00b5b71  Update version to 1.17-SNAPSHOT
     new 6c8d5db  [FLINK-29074][Connectors/JDBC] Fix ClassNotFound exception when using jdbc connector by add jar syntax
     new c42af39  [FLINK-29096][table] Keep backward compatibility of JdbcCatalog constructor
     new eceece3  [FLINK-14101][jdbc-connector] Support SQLServer dialect in the jdbc connector.
     new bbb4448  Revert "[FLINK-19869][connectors/jdbc] Add support for postgres UUID type"
     new 341030a  [FLINK-29389][docs] Update documentation of JDBC and HBase lookup table for new caching options (#20884)
     new 9efb82b  [FLINK-29466][Connector/JDBC] Bump postgresql in /flink-connectors/flink-connector-jdbc
     new 3e3b40e  [FLINK-16024][connector/jdbc] Support filter pushdown
     new 29c8af8  [FLINK-30177][Connectors/JDBC] Update pgjdbc to avoid CVE-2022-41946
     new 9559acf  [FLINK-30060][Connector/JDBC] Move existing JDBC connector code from Flink repo to dedicated JDBC repo

The 204 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitmodules                                        |   4 +
 .idea/vcs.xml                                      |  24 +
 docs/content.zh/docs/connectors/datastream/jdbc.md |  90 +++
 docs/content.zh/docs/connectors/table/jdbc.md      | 799 +++++++++++++++++++
 docs/content/docs/connectors/datastream/jdbc.md    | 336 ++++++++
 docs/content/docs/connectors/table/jdbc.md         | 789 +++++++++++++++++++
 .../0f94f11b-9bc8-445a-8be8-e7dfd8a384b0           |   0
 .../6b9ab1b0-c14d-4667-bab5-407b81fba98b           |  24 +
 .../archunit-violations/stored.rules               |   4 +
 flink-connector-jdbc/pom.xml                       | 239 ++++++
 .../connector/jdbc/JdbcConnectionOptions.java      | 120 +++
 .../connector/jdbc/JdbcExactlyOnceOptions.java     | 179 +++++
 .../flink/connector/jdbc/JdbcExecutionOptions.java | 108 +++
 .../flink/connector/jdbc/JdbcInputFormat.java      | 431 ++++++++++
 .../flink/connector/jdbc/JdbcRowOutputFormat.java  | 150 ++++
 .../org/apache/flink/connector/jdbc/JdbcSink.java  | 116 +++
 .../flink/connector/jdbc/JdbcStatementBuilder.java |  38 +
 .../jdbc/catalog/AbstractJdbcCatalog.java          | 541 +++++++++++++
 .../flink/connector/jdbc/catalog/JdbcCatalog.java  | 126 +++
 .../connector/jdbc/catalog/JdbcCatalogUtils.java   |  61 ++
 .../flink/connector/jdbc/catalog/MySqlCatalog.java | 171 ++++
 .../connector/jdbc/catalog/PostgresCatalog.java    | 177 +++++
 .../connector/jdbc/catalog/PostgresTablePath.java  | 102 +++
 .../jdbc/catalog/factory/JdbcCatalogFactory.java   |  80 ++
 .../catalog/factory/JdbcCatalogFactoryOptions.java |  48 ++
 .../jdbc/converter/AbstractJdbcRowConverter.java   | 269 +++++++
 .../connector/jdbc/converter/JdbcRowConverter.java |  52 ++
 .../connector/jdbc/dialect/AbstractDialect.java    | 267 +++++++
 .../flink/connector/jdbc/dialect/JdbcDialect.java  | 157 ++++
 .../connector/jdbc/dialect/JdbcDialectFactory.java |  49 ++
 .../connector/jdbc/dialect/JdbcDialectLoader.java  | 106 +++
 .../jdbc/dialect/JdbcDialectTypeMapper.java        |  32 +
 .../connector/jdbc/dialect/derby/DerbyDialect.java | 110 +++
 .../jdbc/dialect/derby/DerbyDialectFactory.java    |  37 +
 .../connector/jdbc/dialect/mysql/MySqlDialect.java | 147 ++++
 .../jdbc/dialect/mysql/MySqlDialectFactory.java    |  37 +
 .../jdbc/dialect/mysql/MySqlTypeMapper.java        | 223 ++++++
 .../jdbc/dialect/oracle/OracleDialect.java         | 162 ++++
 .../jdbc/dialect/oracle/OracleDialectFactory.java  |  37 +
 .../jdbc/dialect/psql/PostgresDialect.java         | 131 ++++
 .../jdbc/dialect/psql/PostgresDialectFactory.java  |  37 +
 .../jdbc/dialect/psql/PostgresTypeMapper.java      | 176 +++++
 .../jdbc/dialect/sqlserver/SqlServerDialect.java   | 160 ++++
 .../dialect/sqlserver/SqlServerDialectFactory.java |  37 +
 .../jdbc/internal/GenericJdbcSinkFunction.java     |  77 ++
 .../connector/jdbc/internal/JdbcOutputFormat.java  | 418 ++++++++++
 .../jdbc/internal/TableJdbcUpsertOutputFormat.java | 209 +++++
 .../connection/JdbcConnectionProvider.java         |  67 ++
 .../connection/SimpleJdbcConnectionProvider.java   | 150 ++++
 .../jdbc/internal/converter/DerbyRowConverter.java |  40 +
 .../jdbc/internal/converter/MySQLRowConverter.java |  40 +
 .../internal/converter/OracleRowConverter.java     | 183 +++++
 .../internal/converter/PostgresRowConverter.java   | 101 +++
 .../internal/converter/SqlServerRowConverter.java  |  51 ++
 .../executor/InsertOrUpdateJdbcExecutor.java       | 137 ++++
 .../executor/JdbcBatchStatementExecutor.java       |  52 ++
 .../executor/KeyedBatchStatementExecutor.java      |  89 +++
 .../executor/SimpleBatchStatementExecutor.java     |  85 ++
 .../TableBufferReducedStatementExecutor.java       | 111 +++
 .../executor/TableBufferedStatementExecutor.java   |  72 ++
 .../TableInsertOrUpdateStatementExecutor.java      | 117 +++
 .../executor/TableSimpleStatementExecutor.java     |  74 ++
 .../internal/options/JdbcConnectorOptions.java     | 211 +++++
 .../jdbc/internal/options/JdbcDmlOptions.java      | 152 ++++
 .../jdbc/internal/options/JdbcInsertOptions.java   |  51 ++
 .../jdbc/internal/options/JdbcReadOptions.java     | 173 ++++
 .../internal/options/JdbcTypedQueryOptions.java    |  48 ++
 .../CompositeJdbcParameterValuesProvider.java      |  58 ++
 .../split/JdbcGenericParameterValuesProvider.java  |  44 ++
 .../JdbcNumericBetweenParametersProvider.java      | 118 +++
 .../jdbc/split/JdbcParameterValuesProvider.java    |  36 +
 .../statement/FieldNamedPreparedStatement.java     | 248 ++++++
 .../statement/FieldNamedPreparedStatementImpl.java | 240 ++++++
 .../connector/jdbc/statement/StatementFactory.java |  29 +
 .../connector/jdbc/table/JdbcConnectorOptions.java | 177 +++++
 .../jdbc/table/JdbcDynamicTableFactory.java        | 340 ++++++++
 .../connector/jdbc/table/JdbcDynamicTableSink.java | 125 +++
 .../jdbc/table/JdbcDynamicTableSource.java         | 296 +++++++
 ...JdbcFilterPushdownPreparedStatementVisitor.java | 201 +++++
 .../jdbc/table/JdbcOutputFormatBuilder.java        | 261 ++++++
 .../jdbc/table/JdbcRowDataInputFormat.java         | 401 ++++++++++
 .../jdbc/table/JdbcRowDataLookupFunction.java      | 192 +++++
 .../jdbc/table/ParameterizedPredicate.java         |  59 ++
 .../flink/connector/jdbc/utils/JdbcTypeUtil.java   | 133 ++++
 .../flink/connector/jdbc/utils/JdbcUtils.java      | 171 ++++
 .../flink/connector/jdbc/xa/CheckpointAndXid.java  |  91 +++
 .../jdbc/xa/CheckpointAndXidSerializer.java        | 135 ++++
 .../connector/jdbc/xa/JdbcXaSinkFunction.java      | 370 +++++++++
 .../connector/jdbc/xa/JdbcXaSinkFunctionState.java |  73 ++
 .../connector/jdbc/xa/SemanticXidGenerator.java    | 110 +++
 .../apache/flink/connector/jdbc/xa/XaFacade.java   | 122 +++
 .../flink/connector/jdbc/xa/XaFacadeImpl.java      | 462 +++++++++++
 .../connector/jdbc/xa/XaFacadePoolingImpl.java     | 193 +++++
 .../apache/flink/connector/jdbc/xa/XaGroupOps.java |  99 +++
 .../flink/connector/jdbc/xa/XaGroupOpsImpl.java    | 143 ++++
 .../connector/jdbc/xa/XaSinkStateHandler.java      |  31 +
 .../connector/jdbc/xa/XaSinkStateHandlerImpl.java  |  95 +++
 .../connector/jdbc/xa/XaSinkStateSerializer.java   | 159 ++++
 .../flink/connector/jdbc/xa/XidGenerator.java      |  71 ++
 .../apache/flink/connector/jdbc/xa/XidImpl.java    |  98 +++
 .../flink/connector/jdbc/xa/XidSerializer.java     | 140 ++++
 .../flink/connector/jdbc/xa/package-info.java      |  23 +
 ...flink.connector.jdbc.dialect.JdbcDialectFactory |  20 +
 .../org.apache.flink.table.factories.Factory       |  17 +
 .../architecture/TestCodeArchitectureTest.java     |  40 +
 .../apache/flink/connector/jdbc/DbMetadata.java    |  49 ++
 .../flink/connector/jdbc/DerbyDbMetadata.java      |  61 ++
 .../connector/jdbc/JdbcConnectionOptionsTest.java  |  53 ++
 .../flink/connector/jdbc/JdbcDataTestBase.java     |  81 ++
 .../flink/connector/jdbc/JdbcDataTypeTest.java     | 228 ++++++
 .../apache/flink/connector/jdbc/JdbcITCase.java    | 180 +++++
 .../flink/connector/jdbc/JdbcInputFormatTest.java  | 412 ++++++++++
 .../connector/jdbc/JdbcRowOutputFormatTest.java    | 358 +++++++++
 .../apache/flink/connector/jdbc/JdbcTestBase.java  |  41 +
 .../flink/connector/jdbc/JdbcTestCheckpoint.java   |  33 +
 .../flink/connector/jdbc/JdbcTestFixture.java      | 256 ++++++
 .../jdbc/catalog/JdbcCatalogUtilsTest.java         |  41 +
 .../connector/jdbc/catalog/MySqlCatalogITCase.java | 382 +++++++++
 .../jdbc/catalog/MySqlCatalogTestBase.java         | 149 ++++
 .../jdbc/catalog/PostgresCatalogITCase.java        | 196 +++++
 .../jdbc/catalog/PostgresCatalogTest.java          | 177 +++++
 .../jdbc/catalog/PostgresCatalogTestBase.java      | 374 +++++++++
 .../jdbc/catalog/PostgresTablePathTest.java        |  32 +
 .../catalog/factory/JdbcCatalogFactoryTest.java    | 111 +++
 .../converter/AbstractJdbcRowConverterTest.java    |  61 ++
 .../jdbc/dialect/mysql/MySqlDialectTest.java       |  41 +
 .../jdbc/dialect/oracle/OracleContainer.java       |  99 +++
 .../oracle/OraclePreparedStatementTest.java        | 175 +++++
 .../jdbc/dialect/oracle/OracleTableSinkITCase.java | 450 +++++++++++
 .../dialect/oracle/OracleTableSourceITCase.java    | 247 ++++++
 .../sqlserver/SqlServerPreparedStatementTest.java  |  94 +++
 .../sqlserver/SqlServerTableSinkITCase.java        | 492 ++++++++++++
 .../sqlserver/SqlServerTableSourceITCase.java      | 229 ++++++
 .../flink/connector/jdbc/fakedb/FakeDBUtils.java   |  42 +
 .../jdbc/fakedb/driver/FakeConnection.java         | 328 ++++++++
 .../jdbc/fakedb/driver/FakeConnection1.java        |  24 +
 .../jdbc/fakedb/driver/FakeConnection2.java        |  24 +
 .../jdbc/fakedb/driver/FakeConnection3.java        |  24 +
 .../connector/jdbc/fakedb/driver/FakeDriver1.java  |  80 ++
 .../connector/jdbc/fakedb/driver/FakeDriver2.java  |  80 ++
 .../connector/jdbc/fakedb/driver/FakeDriver3.java  |  71 ++
 .../connector/jdbc/internal/JdbcFullTest.java      | 195 +++++
 .../jdbc/internal/JdbcTableOutputFormatTest.java   | 264 +++++++
 ...ProviderDriverClassConcurrentLoadingITCase.java | 108 +++
 .../SimpleJdbcConnectionProviderTest.java          | 181 +++++
 .../NumericBetweenParametersProviderTest.java      | 126 +++
 .../FieldNamedPreparedStatementImplTest.java       | 170 ++++
 .../jdbc/table/JdbcAppendOnlyWriterTest.java       | 120 +++
 .../jdbc/table/JdbcDynamicTableFactoryTest.java    | 400 ++++++++++
 .../jdbc/table/JdbcDynamicTableSinkITCase.java     | 450 +++++++++++
 .../jdbc/table/JdbcDynamicTableSourceITCase.java   | 529 +++++++++++++
 ...FilterPushdownPreparedStatementVisitorTest.java | 297 +++++++
 .../connector/jdbc/table/JdbcLookupTestBase.java   | 113 +++
 .../connector/jdbc/table/JdbcOutputFormatTest.java | 517 ++++++++++++
 .../jdbc/table/JdbcRowDataInputFormatTest.java     | 374 +++++++++
 .../jdbc/table/JdbcRowDataLookupFunctionTest.java  | 126 +++
 .../connector/jdbc/table/JdbcTablePlanTest.java    |  67 ++
 .../jdbc/table/UnsignedTypeConversionITCase.java   | 199 +++++
 .../connector/jdbc/test/DockerImageVersions.java   |  28 +
 .../connector/jdbc/utils/JdbcTypeUtilTest.java     |  45 ++
 .../jdbc/xa/CheckpointAndXidSerializersTest.java   |  47 ++
 .../jdbc/xa/JdbcExactlyOnceSinkE2eTest.java        | 872 +++++++++++++++++++++
 .../connector/jdbc/xa/JdbcXaFacadeImplTest.java    | 105 +++
 .../connector/jdbc/xa/JdbcXaFacadeTestHelper.java  | 116 +++
 .../connector/jdbc/xa/JdbcXaSinkDerbyTest.java     | 175 +++++
 .../flink/connector/jdbc/xa/JdbcXaSinkH2Test.java  |  77 ++
 .../connector/jdbc/xa/JdbcXaSinkMigrationTest.java | 229 ++++++
 .../jdbc/xa/JdbcXaSinkNoInsertionTest.java         |  69 ++
 .../connector/jdbc/xa/JdbcXaSinkTestBase.java      | 388 +++++++++
 .../connector/jdbc/xa/JdbcXaSinkTestHelper.java    |  92 +++
 .../jdbc/xa/SemanticXidGeneratorTest.java          |  64 ++
 .../flink/connector/jdbc/xa/XidImplTest.java       |  66 ++
 .../connector/jdbc/xa/XidSerializersTest.java      |  47 ++
 .../flink/connector/jdbc/xa/h2/H2DbMetadata.java   |  56 ++
 .../jdbc/xa/h2/H2XaConnectionWrapper.java          |  74 ++
 .../flink/connector/jdbc/xa/h2/H2XaDsWrapper.java  |  78 ++
 .../connector/jdbc/xa/h2/H2XaResourceWrapper.java  | 247 ++++++
 .../flink/connector/jdbc/xa/h2/package-info.java   |  22 +
 .../resources/META-INF/services/java.sql.Driver    |  19 +
 .../src/test/resources/archunit.properties         |  31 +
 .../src/test/resources/log4j2-test.properties      |  24 +-
 .../mysql-scripts/catalog-init-for-test.sql        | 129 +++
 .../connector/jdbc/table/JdbcTablePlanTest.xml     |  71 ++
 pom.xml                                            | 394 ++++++++++
 tools/releasing/shared                             |   1 +
 185 files changed, 28875 insertions(+), 14 deletions(-)
 create mode 100644 .gitmodules
 create mode 100644 .idea/vcs.xml
 create mode 100644 docs/content.zh/docs/connectors/datastream/jdbc.md
 create mode 100644 docs/content.zh/docs/connectors/table/jdbc.md
 create mode 100644 docs/content/docs/connectors/datastream/jdbc.md
 create mode 100644 docs/content/docs/connectors/table/jdbc.md
 create mode 100644 flink-connector-jdbc/archunit-violations/0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
 create mode 100644 flink-connector-jdbc/archunit-violations/6b9ab1b0-c14d-4667-bab5-407b81fba98b
 create mode 100644 flink-connector-jdbc/archunit-violations/stored.rules
 create mode 100644 flink-connector-jdbc/pom.xml
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcConnectionOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExactlyOnceOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExecutionOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcInputFormat.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormat.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcSink.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcStatementBuilder.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/AbstractJdbcCatalog.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalog.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtils.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/MySqlCatalog.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalog.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/PostgresTablePath.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/JdbcRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectLoader.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeMapper.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/derby/DerbyDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/derby/DerbyDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/mysql/MySqlDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/mysql/MySqlDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/mysql/MySqlTypeMapper.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/oracle/OracleDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/oracle/OracleDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/psql/PostgresDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/psql/PostgresDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/psql/PostgresTypeMapper.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/sqlserver/SqlServerDialect.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/sqlserver/SqlServerDialectFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/GenericJdbcSinkFunction.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputFormat.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/TableJdbcUpsertOutputFormat.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/connection/JdbcConnectionProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/DerbyRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/MySQLRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/OracleRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/SqlServerRowConverter.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/InsertOrUpdateJdbcExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/JdbcBatchStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/KeyedBatchStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/SimpleBatchStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferReducedStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferedStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableInsertOrUpdateStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableSimpleStatementExecutor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcConnectorOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcDmlOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcInsertOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcReadOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcTypedQueryOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/CompositeJdbcParameterValuesProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcGenericParameterValuesProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcParameterValuesProvider.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatement.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/StatementFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcConnectorOptions.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactory.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSink.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSource.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitor.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatBuilder.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormat.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunction.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/ParameterizedPredicate.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtil.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcUtils.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXid.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializer.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunction.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunctionState.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/SemanticXidGenerator.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacade.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadePoolingImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOps.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOpsImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandler.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandlerImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateSerializer.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidGenerator.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidImpl.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidSerializer.java
 create mode 100644 flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/package-info.java
 create mode 100644 flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.connector.jdbc.dialect.JdbcDialectFactory
 create mode 100644 flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/DbMetadata.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/DerbyDbMetadata.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcConnectionOptionsTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTypeTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcInputFormatTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormatTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestCheckpoint.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestFixture.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtilsTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/MySqlCatalogITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/MySqlCatalogTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresTablePathTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverterTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/mysql/MySqlDialectTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/oracle/OracleContainer.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/oracle/OraclePreparedStatementTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/oracle/OracleTableSinkITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/oracle/OracleTableSourceITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/sqlserver/SqlServerPreparedStatementTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/sqlserver/SqlServerTableSinkITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/sqlserver/SqlServerTableSourceITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/FakeDBUtils.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection1.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection2.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection3.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver1.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver2.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver3.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcFullTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcTableOutputFormatTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImplTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcAppendOnlyWriterTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactoryTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSinkITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSourceITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitorTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcLookupTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormatTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunctionTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/UnsignedTypeConversionITCase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/test/DockerImageVersions.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtilTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializersTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeImplTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeTestHelper.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkDerbyTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkH2Test.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkMigrationTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkNoInsertionTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestBase.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestHelper.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/SemanticXidGeneratorTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XidImplTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XidSerializersTest.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/h2/H2DbMetadata.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/h2/H2XaConnectionWrapper.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/h2/H2XaDsWrapper.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/h2/H2XaResourceWrapper.java
 create mode 100644 flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/h2/package-info.java
 create mode 100644 flink-connector-jdbc/src/test/resources/META-INF/services/java.sql.Driver
 create mode 100644 flink-connector-jdbc/src/test/resources/archunit.properties
 copy .github/workflows/weekly.yml => flink-connector-jdbc/src/test/resources/log4j2-test.properties (70%)
 create mode 100644 flink-connector-jdbc/src/test/resources/mysql-scripts/catalog-init-for-test.sql
 create mode 100644 flink-connector-jdbc/src/test/resources/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.xml
 create mode 100644 pom.xml
 create mode 160000 tools/releasing/shared