Chris Cranford
c3dcaf92a4
DBZ-3401 Add test for NUMBER(36,-2) as VariableScaleDecimal
2024-03-03 00:46:23 -05:00
Chris Cranford
ab61686e44
DBZ-3401 Remove todos, fix typo
2024-03-03 00:46:23 -05:00
Chris Cranford
af42a22f2e
DBZ-3401 Run HybridMiningStrategyIT only for LogMiner (fix JUnit rule)
2024-03-03 00:46:23 -05:00
Chris Cranford
86799e7cef
DBZ-3401 Introduce SkipWhenLogMiningStrategyIs
rule
2024-03-03 00:46:23 -05:00
Chris Cranford
e33901959d
DBZ-3401 Don't apply attributes if table not in schema
2024-03-03 00:46:23 -05:00
Chris Cranford
d245034d1e
DBZ-3401 Fix test parameter bindings
2024-03-03 00:46:23 -05:00
Chris Cranford
648db88868
DBZ-3401 Add new hybrid
mining strategy
2024-03-03 00:46:23 -05:00
mfvitale
446931a349
DBZ-7461 validate ArchiveLogDestination for all Oracle flavors
2024-03-01 14:12:31 +01:00
mfvitale
d142c7ec52
DBZ-7461 Fix getOffsetScn for XStreamAdapter
2024-03-01 14:12:31 +01:00
mfvitale
ff1f38ae0b
DBZ-7461 Fix getOffsetScn for XStreamAdapter
2024-03-01 14:12:31 +01:00
mfvitale
e174eae235
DBZ-7461 Remove redundant log
2024-03-01 14:12:31 +01:00
mfvitale
ce17bdcce6
DBZ-7461 Add generic properties for redo log archive and retention
2024-03-01 14:12:31 +01:00
mfvitale
4ade54351f
DBZ-7461 Rename SCHEMA_ONLY_RECOVERY to RECOVERY and SCHEMA_ONLY to NO_DATA
2024-03-01 14:12:31 +01:00
mfvitale
211675a355
DBZ-7461 Rename shouldSnapshot to shouldSnapshotData
2024-03-01 14:12:31 +01:00
mfvitale
562c999da4
DBZ-7461 Move out-of-the-box snapshotters to core
2024-03-01 14:12:31 +01:00
mfvitale
371905f135
DBZ-7461 Move snapshot mode validation logic to BaseSourceTask
2024-03-01 14:12:31 +01:00
mfvitale
99eee98e9d
DBZ-7461 Align common code for Snapshotters
2024-03-01 14:12:31 +01:00
mfvitale
b1a907757d
DBZ-7461 Support WhenNeededSnapshotter for Oracle
2024-03-01 14:12:31 +01:00
mfvitale
1f52b81b6d
DBZ-7461 Support AlwaysSnapshotter for MySQL
2024-03-01 14:12:31 +01:00
James Johnston
f632fa081e
DBZ-5071 Correctly handle NULL values in incremental snapshots
...
It turns out that the existing code for chunking a table when taking
an incremental snapshot was buggy and did not correctly handle NULL
values when building the chunk query. An example of such a situation
would be when the user has specified "message.key.columns" to reference
a column that is part of a PostgreSQL UNIQUE INDEX that was created with
the NULLS NOT DISTINCT option.
This commit updates the new AbstractChunkQueryBuilder so that it checks
whether a key column is optional. If it is, then additional will
appropriately consider NULL values when generating a chunk query using
"IS [NOT] NULL" clauses.
One complication is that different database engines have different
sorting behavior of ORDER BY. It is apparently not well-defined by the
SQL standard. Some databases consider NULL values to be higher than any
non-NULL values, and others consider them to be lower.
To handle this situation, a new nullsSortLast() function is added to the
JdbcConnection class. By default, it returns an empty value, indicating
that the behavior of the database engine is unknown. When an optional
field is encountered by AbstractChunkQueryBuilder in this situation, we
throw an error because we don't actually know how to correctly chunk the
query: there's no safe assumption that can be made here.
Derived JdbcConnection classes can then override the nullsSortLast
function, and return a value indicating the actual behavior of that
database engine. When this is done, the AbstractChunkQueryBuilder then
knows how to correctly build a chunk query that can handle NULL values.
To help test this, new tests have been added to
AbstractIncrementalSnapshotTest. First, the existing insertsWithoutPks
test has been moved and deduplicated from MySQL and PostgreSQL so that
the test case can be reused on other engines. Second, a new
insertsWithoutPksAndNull test is run, which inserts data with NULL
values in the message key columns. To demonstrate that chunk queries
are being correctly generated for practically every case, the
INCREMENTAL_SNAPSHOT_CHUNK_SIZE is set to 1 so that NULL values are not
returned in the middle of a chunk, which can cause us to skip testing
the code we need to test.
2024-02-29 13:36:26 +01:00
Chris Cranford
66e23613ce
DBZ-7072 Retry Oracle Flashback-based snapshot queries
2024-02-29 13:33:10 +01:00
Chris Cranford
5c144cd0d0
DBZ-7559 Retry XStream ORA-23656 exceptions
2024-02-23 07:31:59 -05:00
rkerner
1e69e40ec2
DBZ-7416 Fix duplicate SMTs sometimes returned by Kafka Connect. Moved deduplication from Map to LinkedHashSet.
...
+ minor fixes added for cleanup and centralization of common code
closes https://issues.redhat.com/browse/DBZ-7416
2024-02-22 13:34:08 -05:00
Jiri Pechanec
68b6591142
DBZ-7416 Fix duplicate SMTs sometimes returned by Kafka Connect. Moved deduplication from Map to LinkedHashSet.
...
closes https://issues.redhat.com/browse/DBZ-7416
2024-02-22 13:34:08 -05:00
mfvitale
440c2cb509
DBZ-7302 Increase "task.management.timeout.ms" fro Oracles tests
2024-02-20 14:45:59 +01:00
mfvitale
d9deb7a944
DBZ-7302 Increase "task.management.timeout.ms" for Oracles tests
2024-02-20 14:45:59 +01:00
mfvitale
b6149d8f68
DBZ-7302 Increase "task.management.timeout.ms" fro Oracles tests
2024-02-20 14:45:59 +01:00
mfvitale
7ed5649e07
DBZ-7302 Implement Snapshotter for Oracle
2024-02-20 14:45:59 +01:00
mfvitale
6392a1b816
DBZ-7302 Implement SnapshotLock and SnapshotQuery for Oracle connector
2024-02-20 14:45:59 +01:00
Chris Cranford
2af17ac69c
DBZ-7365 Upgrade Oracle ojdbc8 from 21.6.0.0 to 21.11.0.0
2024-02-19 14:25:25 +01:00
Chris Cranford
2034d48cf9
DBZ-6960 Fail validation with config state mismatch
2024-02-19 14:02:06 +01:00
Chris Cranford
aab87365d9
DBZ-6960 Include REDO SQL in Oracle source info block
2024-02-19 14:02:06 +01:00
Chris Cranford
340234c2ac
DBZ-6679 Only advance LogMiner start position when query has data
2024-02-19 13:52:41 +01:00
Chris Cranford
a75744547a
DBZ-7364 Distribute Oracle ojdbc8 with Oracle connector
2024-02-19 08:54:50 +01:00
Chris Cranford
438f0adcde
DBZ-7504 Fix LogMinerHelperIT random test failure
2024-02-18 13:03:50 -05:00
jchipmunk
79763211cb
DBZ-7479 Refactor code to support re-selection without flashback
...
Because OracleConnection uses flashback query (AS OF SCN) to re-select row, it is potentially possible to get "ORA-01555 Snapshot too old" error, which can be solved by performing reselection without flashback to get at least its latest row state.
2024-02-17 11:21:45 -05:00
jchipmunk
f50aa7a987
DBZ-7479 PreparedStatement leak in Oracle ReselectColumnsProcessor
...
Each time, Oracle connector creates a new instance of PreparedStatement because value of commit SCN is added directly to SQL query to reselect column values.
2024-02-17 11:21:45 -05:00
Chris Cranford
e3472d8082
DBZ-7489 Correctly handle setting XML field to "NULL"
2024-02-16 12:54:19 +01:00
Chris Cranford
4978312dad
DBZ-7489 Correctly parse XML preamble SQL ending with "IS NULL"
2024-02-16 12:54:19 +01:00
Chris Cranford
928aa26cdb
DBZ-7107 Fix source info test failures
2024-02-16 12:52:20 +01:00
Debezium Builder
10e327602c
[maven-release-plugin] prepare for next development iteration
2024-02-13 09:20:04 +00:00
Debezium Builder
0c5b05738c
[maven-release-plugin] prepare release v2.6.0.Alpha2
2024-02-13 09:20:04 +00:00
Vojtech Juranek
4452e3d095
DBZ-7024 Move EmbeddedConfig into separate class
...
`EmbeddedConfig` needs to be shared with other implmentations of
`DebeziumEngine` as long as Debezium embedded depends on the Kafka
model.
2024-02-12 13:43:21 +01:00
Chris Cranford
9fbcd6baa1
DBZ-7456 Skip PK change LOB column reselect if column is excluded
2024-02-09 16:43:13 -05:00
Chris Cranford
e2d03d9936
DBZ-7425 Use adapter-specific offset loaders when copying offsets
2024-02-07 19:40:30 -05:00
Chris Cranford
a597a82c19
DBZ-7439 Remove unnecessary log/output entries
2024-02-07 15:00:27 +01:00
Chris Cranford
de9364bb4d
DBZ-7439 Fix test compatibility
2024-02-07 15:00:27 +01:00
Ondrej Babec
c806a04531
DBZ-7439 [ci] Add Oracle 23 initialisation scripts
...
* Create oracle-init dir with SQL init scripts
* Create init-db.sh to set default password and run init scripts
* Update test.sh to run init-db.sh for oracle-23
2024-02-07 15:00:27 +01:00
Chris Cranford
3d22ed30a3
DBZ-7439 [ci] Update TF with Oracle 23
...
* Introduce new InstantClient version property
Needed because ojdbc8 versions for Oracle 23 have different version semantics
Also adjusted documentation/build pipelines
* Introduce oracle-23 profile
Allows testing Oracle 23 separately from distribution builds
2024-02-07 15:00:27 +01:00
mfvitale
f78d0cbd19
DBZ-7301 Add SnapshotterService to ChangeEventSourceFactory and SnapshotChangeEventSource
2024-02-06 07:12:42 +01:00
jchipmunk
c51ef3099a
DBZ-7445 LogMiner batch size does not increase automatically
...
The condition for increasing the LogMiner batch size must depend on log.mining.batch.size.max, and not on log.mining.batch.size.min.
2024-02-05 12:28:16 -05:00
Chris Cranford
c669857760
DBZ-7446 Fix test failure
2024-02-05 12:26:39 -05:00
jchipmunk
04b8597239
DBZ-7446 Reduce string creation during SQL_REDO column read
...
Oracle Connector can create a new string when reading SQL_REDO column only if CSF column value is 1.
2024-02-05 12:26:39 -05:00
Chris Cranford
2bfa92e6af
DBZ-7429 Resolve primary key values from after struct
2024-01-31 12:05:07 +01:00
nicholas-fwang
7d99605886
DBZ-7143 Add case when EventConvertingFailureHandlingMode is null
2024-01-29 13:48:19 +01:00
nicholas-fwang
eeea0f1e70
DBZ-7143 Add event.converting.failure.handling.mode option
2024-01-29 13:48:19 +01:00
Debezium Builder
65d63ed42d
[maven-release-plugin] prepare for next development iteration
2024-01-21 10:12:45 +00:00
Debezium Builder
485fa82a8f
[maven-release-plugin] prepare release v2.6.0.Alpha1
2024-01-21 10:12:44 +00:00
Chris Cranford
98bd969624
DBZ-7345 Use equality check instead
2024-01-17 13:07:19 +01:00
Chris Cranford
317daed728
DBZ-7345 Oracle log de-dupe on sequence and redo thread
2024-01-17 13:07:19 +01:00
Vojtech Juranek
33c8430a84
DBZ-7356 Update comment to include relevant DBZ issue
2024-01-17 09:45:43 +01:00
Peter Hamer
e2c0a59ec3
DBZ-7347 Update notification tests.
2024-01-17 09:42:27 +01:00
Chris Cranford
c2eac1714e
DBZ-7313 Use parameterized types
2024-01-16 07:32:53 -05:00
Jiri Kulhanek
12a99f33f7
DBZ-7313: close stream
2024-01-16 07:32:53 -05:00
Jiri Kulhanek
f7a06d0c96
DBZ-7313: check if debug log is enabled
2024-01-16 07:32:53 -05:00
Chris Cranford
d689fe1244
DBZ-7313 Fix formatting
2024-01-16 07:32:53 -05:00
Jiri Kulhanek
4d14ef3c22
DBZ-7313: Oracle Infinispan abandoned trasactions minor enhancements
2024-01-16 07:32:53 -05:00
mfvitale
20fbe73bc8
DBZ-7311 Use a more meaningful name for identify an on demand blocking snapshot
2024-01-08 12:52:03 +01:00
mfvitale
47cbdee526
DBZ-7311 Permits to execute a blocking snapshot even if snapshot.mode=never
2024-01-08 12:52:03 +01:00
Chris Cranford
0f5e654193
DBZ-7315 Fix Oracle include/exclude lists with spaces
2024-01-05 10:52:32 +01:00
Mickael Maison
70e7186868
DBZ-7298 Add service loader manifests for all Connect plugins
...
Add manifests for source/sink connectors, converters and transformations.
2024-01-04 09:22:29 +01:00
Ilyas Ahsan
62cb43a72e
DBZ-7288 Unittest for hasCommitAlreadyBeenHandled in CommitScn Class
...
fix formatting
2024-01-03 08:29:50 -05:00
Debezium Builder
3853d20f44
[maven-release-plugin] prepare for next development iteration
2023-12-21 06:52:01 +00:00
Debezium Builder
5d35e9caaa
[maven-release-plugin] prepare release v2.5.0.Final
2023-12-21 06:52:01 +00:00
Jiri Pechanec
d05848ea89
DBZ-6764 Use correct user for registration
2023-12-20 14:26:55 +01:00
ani-sha
4b36ed9975
DBZ-7177 DBZ-6764 Use correct context name and add suggestions for code review
2023-12-20 08:56:56 +01:00
ani-sha
5a27d42257
DBZ-7177 Add isStreaming check for all tests, remove unused files
2023-12-20 08:56:56 +01:00
ani-sha
a12b1a9872
DBZ-6764 Connector metrics implementation for REST extension
2023-12-20 08:56:56 +01:00
ani-sha
e535e5b78d
DBZ-7177 Add suggestions from code review, adjust code style changes
2023-12-20 08:56:56 +01:00
ani-sha
2555a1cee2
DBZ-6764 DBZ-7178 DBZ-7177 Use MBeanServer to query metrics for REST endpoint and create new metrics descriptor
2023-12-20 08:56:56 +01:00
ani-sha
2165d9bed1
DBZ-6764 Connector metrics implementation for REST extension
2023-12-20 08:56:56 +01:00
Roman Kudryashov
516aa87fad
DBZ-7235 Add option to customize CloudEvents schema name
2023-12-20 06:53:37 +01:00
Jiri Pechanec
4472b4bcd6
DBZ-7251 Enable fitering of Oracle connector
2023-12-19 17:29:37 +01:00
Vojtech Juranek
676876689c
DBZ-7257 Fix regression in parsin Oracle 12 version
2023-12-19 16:27:08 +01:00
Vojtech Juranek
043f11e261
DBZ-7257 Add test for paring Oracle versions
2023-12-19 16:27:08 +01:00
harveyyue
225277c5c0
DBZ-7251 Return generic DataCollectionId instead of REST response DataCollection in getMatchingCollections method
2023-12-19 12:53:57 +01:00
harveyyue
4719396ffc
DBZ-7145 Introduce a common parent connect for all Debezium source connectors
2023-12-19 12:53:57 +01:00
harveyyue
5553059fb8
DBZ-7167 Provide a public API from the connector implementations to retrieve the list of matching collections or tables based on the different include-/exclude lists
2023-12-19 12:53:57 +01:00
Vojtech Juranek
37ebb8ecae
DBZ-7275 Close connection registerd with bean registry
...
New connection created for bean registry is never closed. Close it
during when stopping the task.
2023-12-19 10:22:02 +01:00
Vojtech Juranek
e48786c194
DBZ-7276 Grant DELETE on signalling table in the incremental snapshot tests
...
Delete is needed for `insert_delete` watermarking strategy.
2023-12-19 06:23:25 +01:00
Debezium Builder
2c1def7241
[maven-release-plugin] prepare for next development iteration
2023-12-14 09:43:13 +00:00
Debezium Builder
ef8260f802
[maven-release-plugin] prepare release v2.5.0.CR1
2023-12-14 09:43:12 +00:00
Chris Cranford
25ef5fa7d0
DBZ-4321 Fix test failures with Oracle XStream
2023-12-13 11:27:40 -05:00
Chris Cranford
2b02b3982e
DBZ-4321 Rework configuration options
2023-12-13 11:27:40 -05:00
Chris Cranford
ada157d117
DBZ-4321 Introduce BeanRegistry
and ServiceRegistry
...
As a part of this work to handle injection in a cleaner way, this commit
adds two new broad concepts called `BeanRegistry` and `ServiceRegistry`.
A BeanRegistry is a glorified registry of different objects that are not
necessarily services but may be desired by a service. This contract will
allow Debezium to integrate in the future with other CDI providers.
A ServiceRegistry is more of an internal concept, where various systems
can be started based on their dependency order and provides a universal
way to split larger parts of the code into smaller, focused modules that
can be accessed using the Service Locator pattern.
2023-12-13 11:27:40 -05:00
Chris Cranford
26b3881941
DBZ-4321 Add MongoDB hook & polish injection handler
2023-12-13 11:27:40 -05:00
Chris Cranford
59027ed5ed
DBZ-4321 New PostProcessor
contract and Column Reselection
2023-12-13 11:27:40 -05:00
Chris Cranford
9a5d04578e
DBZ-7237 Align LOB behavior in snapshot and streaming
...
The snapshot phase was not setting the unavailable value placeholder when the
user had configured LOB as off, this aligns that behavior to be consistent
with the behavior from streaming.
2023-12-12 10:36:23 +01:00
Chris Cranford
d27154dc60
DBZ-7218 Log warnings if log destination misconfigured
2023-12-11 07:51:24 -05:00
Jiri Kulhanek
28188692d7
DBZ-7236 simple fix of inversed if logic
2023-12-07 05:00:39 -05:00