Commit Graph

533 Commits

Author SHA1 Message Date
Chris Cranford
a2fc19f409 DBZ-3062 Oracle connector support snapshot.include.collection.list 2021-06-07 11:19:54 +02:00
Chris Cranford
de2fe7149b DBZ-3563 Deduplicate logs based on sequence number and not scn ranges 2021-06-07 11:17:11 +02:00
jackey.zhang
c32e290fac DBZ-3587 fix NPE when builder is null 2021-06-04 07:19:15 +02:00
Chris Cranford
fa3b7fd758 DBZ-3557 Fix test failures 2021-06-02 15:58:23 +02:00
Chris Cranford
078b8f7270 DBZ-3557 Remove exclusive from SnapshotLockingMode, use shared as default 2021-06-02 15:58:23 +02:00
Chris Cranford
d9d2706a17 DBZ-3557 Fix typo 2021-06-02 15:58:23 +02:00
Chris Cranford
047c505bc1 DBZ-3557 Add snapshot.locking.mode option for Oracle 2021-06-02 15:58:23 +02:00
Gunnar Morling
c4f5cbca6c DBZ-3328 Removing unused field 2021-06-02 12:18:48 +02:00
Chris Cranford
0af3959c2d DBZ-3328 Use object arrays to write column values
Previously we used a wrapper class, LogMinerColumnValueImpl, to store
both the column name and value; however this introduced some overhead
in object allocation.  This change mostly focused on the removal of
that implementation and its interface in favor of creating object
arrays up-front and writing the column values directly.

Included as well as the following changes:

* Deprecated LogMinerColumnValue, impl, and wrapper
* Removed SEQUENCE# from LogMiner query, no longer needed
* Adapted tests to runtime changes with object arrays
2021-06-02 12:18:48 +02:00
Chris Cranford
f178a6e235 DBZ-3328 Remove superfluous state from LogMinerDmlEntryImpl 2021-06-02 12:18:48 +02:00
Chris Cranford
7dd980e505 DBZ-3328 Fix test failures 2021-06-02 12:18:48 +02:00
Gunnar Morling
4dcda868b5 DBZ-3328 Adding factory methods for LogMinerDmlEntryImpl 2021-06-02 12:18:48 +02:00
Chris Cranford
19e650dc25 DBZ-3328 Updated comment 2021-06-02 12:18:48 +02:00
Chris Cranford
49f3ee6172 DBZ-3328 Performance cleanup
* Use loop rather than streams
* Remove usage of Optional
* No need to add superfluous null-valued columns
2021-06-02 12:18:48 +02:00
Chris Cranford
52906cf154 DBZ-3328 Avoid copying in Oracle LogMiner DML parser 2021-06-02 12:18:48 +02:00
Chris Cranford
ae9a32ab83 DBZ-3565 Make log.mining.history.xxx options internal 2021-06-02 10:47:54 +02:00
Chris Cranford
fd5afb04ea DBZ-3565 Fix formatting 2021-06-02 10:47:54 +02:00
Chris Cranford
eb22eaf85f DBZ-3565 Always use NeverHistoryRecorder if retention hours are 0 2021-06-02 10:47:54 +02:00
Chris Cranford
68c2c40097 DBZ-3565 Rename Oracle LogMiner history retention hours option
* Moved option to `log.mining.` namespace rather than `database.`
* Updated the documentation and field description accordingly.
2021-06-02 10:47:54 +02:00
Chris Cranford
9a5d48524a DBZ-3556 Remove ByteBuffer usage and refactor
* Combines BLOB chunks into a single hex-string for conversion
* Moved several strings to static variables
2021-05-31 10:03:24 +02:00
Gunnar Morling
28e36d55b1 DBZ-3554 Formatting 2021-05-26 13:04:25 +02:00
Chris Cranford
abb19d7437 DBZ-3554 Exclude ORA_TEMP_% tables from LogMiner DDL detection 2021-05-26 12:56:09 +02:00
Gunnar Morling
50bfd93e64 DBZ-3556 Moving getHexToRawByteArray() to value converters 2021-05-26 09:10:55 +02:00
Chris Cranford
901a74e604 DBZ-3556 Reduce database round-trip for LOB handling 2021-05-26 08:56:57 +02:00
Jiri Pechanec
39df21cdc1 DBZ-3460 New Oracle version in README 2021-05-25 08:02:56 +02:00
Patrick Chu
9bdbec995f DBZ-3545 Check for "IS NULL" in SelectLobParser 2021-05-21 10:13:16 +02:00
Debezium Builder
ead4ee7226 [maven-release-plugin] prepare for next development iteration 2021-05-20 19:07:44 +02:00
Debezium Builder
9e16df7d4b [maven-release-plugin] prepare release v1.6.0.Beta1 2021-05-20 19:07:44 +02:00
Chris Cranford
172c17d207 DBZ-2948 Fix IndexOutOfBoundsException with LOB select parser 2021-05-20 08:21:08 +02:00
Chris Cranford
754462a436 DBZ-2948 Fix potential null value being assigned to offset SCN 2021-05-20 08:21:08 +02:00
Chris Cranford
4aeb6069a3 DBZ-814 Ignore unsupported column types 2021-05-20 08:21:08 +02:00
Chris Cranford
8306bb5f15 DBZ-2948 Increase size of large CLOB/BLOB values 2021-05-20 08:21:08 +02:00
Chris Cranford
467a7f21f6 DBZ-2948 Implement BLOB/CLOB support for Oracle Xstream 2021-05-20 08:21:08 +02:00
Chris Cranford
fb7378ef52 DBZ-2948 Fix formatting 2021-05-20 08:21:08 +02:00
Chris Cranford
49703d9dc9 DBZ-2948 Implement BLOB/CLOB support for Oracle LogMiner 2021-05-20 08:21:08 +02:00
Chris Cranford
837a70f131
DBZ-3472 Relax retry logic for "No more data to read from socket"
Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2021-05-20 07:58:31 +02:00
Chris Cranford
d147d1f517
DBZ-3240 Remove database.tablename.case.insensitive deprecated option 2021-05-19 20:44:59 +02:00
Chris Cranford
d5c8dcff9f DBZ-3539 Mark xstream dependency scope as provided 2021-05-19 17:22:27 +02:00
Gunnar Morling
50c285031a
DBZ-3456 Minor clean-up 2021-05-19 13:42:03 +02:00
Thomas Aregger
d1670b636c
DBZ-3456 Timezone difference not considered in LagFromSourceInMilliseconds calculation;
* Retrieve v$logmnr_contents.change_time in UTC
* Respect time zones when calculating time difference
* Allow constructors to be annotated with VisibleForTesting
2021-05-19 13:41:02 +02:00
Chris Cranford
118cee24a7 DBZ-3256 Formatting 2021-05-19 09:40:19 +02:00
Chris Cranford
81190df6a8 DBZ-3256 Document query fragments 2021-05-19 09:40:19 +02:00
Chris Cranford
b7c1d798a3 DBZ-3256 Consolidate Oracle redo/archive log queries
* Moves de-duplication to database using SQL query, i.e. no duplicate SCN ranges
* Provides a consistent view of logs rather than relying on multiple queries
2021-05-19 09:40:19 +02:00
Chris Cranford
ab2c3f41e6 DBZ-3533 Drop tables after signal tests concluded 2021-05-18 14:24:54 -04:00
Chris Cranford
a33af6a2d7 DBZ-2916 Fix test failures 2021-05-18 13:53:43 -04:00
Thomas Aregger
2d87fa9b3d DBZ-3482 Parse timestamps with short form for months with locale "en" 2021-05-18 11:05:13 -04:00
Thomas Aregger
0027eb9f9c DBZ-3482 Add missing format model
When the format model is omitted, the default is used. The default is determined from NLS settings
2021-05-18 11:05:13 -04:00
Thomas Aregger
5009a9d586 DBZ-3482 Change date string to match provided format model 2021-05-18 11:05:13 -04:00
Thomas Aregger
f31909ab12 DBZ-3482 Use format model for DATE data types that is independent of clients NLS settings 2021-05-18 11:05:13 -04:00
Chris Cranford
9b011c75a3 DBZ-3322 Suggested test case change 2021-05-18 15:49:19 +02:00
Chris Cranford
967b945e0f DBZ-3322 Bubble up exceptions from RowMapper 2021-05-18 15:49:19 +02:00
Chris Cranford
00d75c282b DBZ-3322 Handle Oracle partially committed transactions 2021-05-18 15:49:19 +02:00
Chris Cranford
b13cbb1077 DBZ-2916 Add support for Oracle DDL statement parsing 2021-05-18 14:58:20 +02:00
Chris Cranford
0c8c0255a9 DBZ-3377 Restart Oracle connector on ORA-01291, missing logfile 2021-05-17 11:01:25 +02:00
Chris Cranford
d5bf7a3c0b DBZ-832 Add Oracle test for table without primary key 2021-05-13 06:50:15 +02:00
John Wu
05ce63e06a DBZ-3516 LogMining redo log switch not being detected 2021-05-12 14:40:16 -04:00
Chris Cranford
8f953dc9fe DBZ-3400 Remove Oracle Antlr DML parser 2021-05-11 17:56:55 +02:00
Chris Cranford
1d46cdb6b7 DBZ-3332 Limit oldest archive log query to only active records 2021-05-11 12:42:49 +02:00
Debezium Builder
4dd3a146ca [maven-release-plugin] prepare for next development iteration 2021-05-06 02:40:15 -04:00
Debezium Builder
b3c5bb281c [maven-release-plugin] prepare release v1.6.0.Alpha1 2021-05-06 02:40:15 -04:00
Gunnar Morling
dc02b896cd DBZ-3449 Moving QA releated plug-ins to separate profile, so to avoid loading them at all 2021-04-28 15:14:05 +02:00
Gunnar Morling
2088c035b1 DBZ-3449 Adding "quick" profile 2021-04-26 06:09:14 +02:00
kewenchao
47f380b565 DBZ-3397 Avoiding exception if system language is not English 2021-04-20 09:14:36 +02:00
Patrick Chu
e37abe5f92 DBZ-3413 Add additional unit tests for insert and update 2021-04-19 08:53:19 -04:00
Patrick Chu
ecae5b6b91 DBZ-3413 Handle double single quotes in LogMinerDmlParser
Double single quotes are treated as 2 quotes instead of 1 escaped quote in the WHERE clause parsing function.
2021-04-19 08:53:19 -04:00
Chris Cranford
7bd3e51e12 DBZ-1721 Fix DDL ParserException ID NUMBER(4) GENERATED BY
* Sync Oracle DDL grammar with latest upstream changes
* Implemented identity sequence spec for auto-generated column types
* Added Oracle examples to DDL parser project
* Corrected syntax failure after syncing grammar with upstream
2021-04-08 13:23:23 +02:00
Chris Cranford
bf0138064b DBZ-3365 Use Instantiator implementation 2021-04-08 11:56:35 +02:00
Chris Cranford
e5f8491fbb DBZ-3365 Fix formatting 2021-04-08 11:56:35 +02:00
Chris Cranford
c406527ccb DBZ-3365 Remove unused imports 2021-04-08 11:56:35 +02:00
Chris Cranford
0f35b0455d DBZ-3365 Allow building Oracle connector on CI 2021-04-08 11:56:35 +02:00
Debezium Builder
8a88ba9b45 [maven-release-plugin] prepare for next development iteration 2021-04-08 04:04:00 -04:00
Debezium Builder
74152afe74 [maven-release-plugin] prepare release v1.5.0.Final 2021-04-08 04:04:00 -04:00
Chris Cranford
f95a2f877e DBZ-3367 Correctly parse function string-args with parenthesis characters 2021-03-31 12:44:55 +02:00
Chris Cranford
776180a0df DBZ-3347 Emit schema change events with correct source partition 2021-03-30 07:26:06 +02:00
Chris Cranford
dd24a94a62 DBZ-2911 Fix Oracle test compatibility 2021-03-30 05:53:38 +02:00
Chris Cranford
705b98f79f DBZ-3341 Handle multiple local locations 2021-03-26 18:48:02 +01:00
Chris Cranford
6b7c7bc252 DBZ-3341 Only mine local destination archive logs 2021-03-26 18:48:02 +01:00
Chris Cranford
aee3550dc6 DBZ-3348 Oracle LogMiner can incorrectly resolve starting SCN is available 2021-03-26 08:22:34 +01:00
Chris Cranford
23baf34ee1 DBZ-3344 Fix Oracle test failures 2021-03-25 11:06:31 +01:00
Debezium Builder
6b4d88bb51 [maven-release-plugin] prepare for next development iteration 2021-03-24 06:35:02 -04:00
Debezium Builder
c578715233 [maven-release-plugin] prepare release v1.5.0.CR1 2021-03-24 06:35:02 -04:00
Chris Cranford
d8f0d2ba5a DBZ-2537 Rework Oracle's streaming metrics
* Consolidated LogMinerMetrics and TransactionalBufferMetrics
* Renamed LogMinerMetrics to OracleStreamingChangeEventSourceMetrics
* Standardized metrics method names & types
* Updated documentation to reflect metrics changes
2021-03-23 15:25:14 -04:00
Chris Cranford
1d9594ed88 DBZ-3290 Suggested changes
* Use {debezium-version} variable in examples
* Correct typos
* Document non-support for CLOB/BLOB data types
* Fix rendering of <= with unicode character
* Moved XStream documentation into separate section
* Moved database.oracle.version to internal
* Removed reference to database.oracle.version
* Resolve XStream POS version from OracleDatabaseVersion as fallback
  when internal.database.oracle.version is not supplied.
2021-03-23 15:25:14 -04:00
Jiri Pechanec
9e994967ed DBZ-3257 Use new method in tests 2021-03-23 09:48:54 +01:00
Chris Cranford
6d686d7543 DBZ-3257 Use DebeziumException instead 2021-03-23 06:12:04 +01:00
Chris Cranford
9aa1ba1471 DBZ-3257 Revert Clob behavior for Oracle LogMiner to avoid null values
* Snapshot now emits clob/nclob values correctly (all adapters)
* Fixed bug with LogMiner emitting clob/nclob values when using new parser
2021-03-23 06:12:04 +01:00
Chris Cranford
b85044cb14 DBZ-3319 Recalculate current log sequence 2021-03-22 20:04:00 -04:00
Chris Cranford
d75319a3ca DBZ-3319 Fix race condition with log switch detection
Rather than relying on log switch detection by looking at the name
of the current log file, this change uses the unique and always
increasing sequence to derive the log switch state to avoid any
type of ambiguity.
2021-03-22 09:04:54 +01:00
Chris Cranford
a8a22bd828 DBZ-3268 Remove unused code 2021-03-19 18:07:12 +01:00
Chris Cranford
fae784001e DBZ-3268 Emit TIMESTAMP WITH LOCAL TIME ZONE columns in UTC 2021-03-19 18:07:12 +01:00
Chris Cranford
d47db6e098 DBZ-3268 Use dedicated connection for XStream API
Once a connection is bound to XStream API, issuing any other type of query
or operation can lead to failures due to concurrent use of the connection
by Debezium and XStream's native methods.  This commit adds a dedicated
connection used specifically by XStream to avoid this concurrency issue,
so that data types such as TIMESTAMP WITH LOCAL TIME ZONE works.
2021-03-19 18:07:12 +01:00
Chris Cranford
7a98fcd96c DBZ-3268 Implement timestamp with local timezone support 2021-03-19 18:07:12 +01:00
Chris Cranford
6b8f61386b DBZ-3268 Fix Oracle time.precision.mode support 2021-03-19 18:07:12 +01:00
Chris Cranford
31ffa5e816 DBZ-2994 Fix ClassCastException & compilation error 2021-03-18 22:23:41 -04:00
Chris Cranford
41b571fb37 DBZ-3292 Apply suggested changes 2021-03-18 21:59:38 +01:00
Chris Cranford
dc92001676 DBZ-3292 Prefer archived logs over redo logs for same SCN range. 2021-03-18 21:59:38 +01:00
Jiri Pechanec
495be2659b DBZ-2511 Dedicated logger for schema name adjuster 2021-03-18 14:42:34 +01:00
Chris Cranford
97da4333a3 DBZ-2994 Return current SCN as string in LogMinerMetrics 2021-03-17 20:37:24 +01:00
Chris Cranford
bd7adb40ed DBZ-2994 Fix test failures for Oracle XStreams 2021-03-17 20:37:24 +01:00
Chris Cranford
36f17a7630 DBZ-2994 Removed Scn.ZERO and Scn.INVALID in favor of Scn.NULL 2021-03-17 20:37:24 +01:00