Postgres supports partitioned tables. Debezium requires tables to have
primary key to be able to snapshot them. Primary key support for
partitioned was added in Postgres 11, see [1]. Add partitioned table
type into supported table tables so that Debezium fetches the schema
and can do the snapshot for partitioned tables.
N.B.: On Postgres < 11 is still possible to define primary key
constraint on partitioned sub-tables. In such cases sub-tables are
snapshotted, but parent table is not.
Fix RecordsSnapshotProducerIT#shouldGenerateSnapshotsForPartitionedTables
test after adding support for partitioned tables. Test assumed that
the parent table is not snapshotted and filters out duplicate records
which results into lossing `LAST` snapshot record. Keepting original
test by filtering parent table.
[1] https://www.postgresql.org/docs/11/release-11.html
Assertion would fail if one or both of the scenario occurs
1) Deadlock between Writer and Reader Threads
2) Thread Starvation between Writer and Reader Threads
When enabling the `database.history.store.only.captured.tables.ddl`,
the logging in RelationalSnapshotChangeEventSource does not take into
account this setting when logging, leading to a false impression of
what tables will actually be captured in the schema history.
Some IDE environments do not support maven-compiler-plugin include/exclude
filter configurations well and this profile is meant to bridge that gap by
enabling all sources and dependencies for IDE compiles.
* No need to toggle the oracle profile, enabled by default
* No need to specify the logminer profile, this is used by default
* Converted several release pipeline usages from oracle to oracle-xstream
This is needed so that the release contains both LogMiner & Xstream bits.
* Removed oracle-ci profile entirely, no longer required
The default build with no profiles explicitly uses the previous oracle-ci behavior.
* Removed the use of the oracle profile, the Oracle connector enabled by default
* Removed the xstream-dependency usage, Xstream dependencies aren't enabled by default.
* Oracle will always be built with LogMiner by default
* Oracle tests are always compiled, integration tests skipped by default
* Integration tests require oracle-tests profile to be executed
* Xstream requires oracle-xstream profile
* Instant client dependencies are excluded by default
* The assembly profile enables Xstream bits automatically