Commit Graph

1336 Commits

Author SHA1 Message Date
Andrew Walker
b6222d42bf DBZ-5136: Add first flag and refactor OffsetContext 2022-06-01 16:56:29 +02:00
Andrew Walker
593c2769e6 DBZ-5136: Add last in table flag 2022-06-01 16:56:29 +02:00
Vojtech Juranek
a2110f7c02 DBZ-5042 Add DB name logging support into MySQL connector 2022-05-27 14:20:30 -04:00
Vojtech Juranek
f8d4307155 DBZ-5052 Send tombstones only when consumer is able to consume them
Change event consumer may specify if is able to consume tombstones or
not. If the it's not, don't send them. However, connector configuration
takes precence and thus cunsumer capability is taken into account only
when `tombstones.on.delete` is not explicitely configured for the
connector.

Also fix debezium server - setting notifier has to be done once embedded
config already exists, not before it.
2022-05-26 12:40:02 +02:00
harveyyue
3ada04b522 DBZ-3865 Debezium MySql connector does not capture floating point numbers with the right precision 2022-05-25 12:54:42 -04:00
Chris Cranford
7d8c9486d6 DBZ-5119 Move Heartbeat creation to ConnectorConfig & descendants 2022-05-25 09:59:59 +02:00
Chris Cranford
7ff7826743 DBZ-5119 Pull heartbeat.action.query support into debezium-core 2022-05-24 12:54:40 +02:00
Chris Lee
2a8456d21b DBZ-5123 data-collection regex snapshot signal 2022-05-24 12:46:28 +02:00
harveyyue
52ba58ccc3 DBZ-5098 Introduce a new field "ts_ms" to identify the process time for schema change event 2022-05-18 14:21:39 +02:00
Vojtech Juranek
80aad894a2 DBZ-5131 Use fetch size only in tests which need it
Cuncurrent reading and modification of MySQL table can result into MySQL
JDBC driver ArrayIndexOutOfBoundsException when it tried to merge table
fields. This is result fo caching parepared statements while table
schema is modified. It seems that caching of prepared statements is
triggered by using fetch size. Use it only in test which needs this
option to work properly and which don't do any schema changes.
2022-05-17 05:56:42 +02:00
harveyyue
10632a3489 DBZ-5134 java.lang.NumberFormatException: For input string: \"0.000000000000000000\" 2022-05-16 10:53:32 +02:00
Jiabao Sun
6a2071acee DBZ-5126 Clear tableMapEventByTableId on rotate event 2022-05-16 09:19:47 +02:00
Vojtech Juranek
fd6be945b5 DBZ-5099 Allow zero-length dates
When date is zero and binary protocol use comperssion, date has zero
length [1]:

    type to store a DATE, DATETIME and TIMESTAMP fields in the binary protocol.

    to save space the packet can be compressed:
    if year, month, day, hour, minutes, seconds and micro_seconds are all 0, length is 0 and no other field is sent

Allow zero-lenght date and return null if column is optional, epoch date
otherwise (this conforms to MySqlDefaultValueConverter.convertToLocalDate()).

[1] https://dev.mysql.com/doc/internals/en/binary-protocol-value.html#packet-ProtocolBinary::MYSQL_TYPE_TIME
2022-05-09 13:57:04 +02:00
Chris Cranford
65017dc2d6 DBZ-5100 Do not default database.server.id 2022-05-09 08:52:24 +02:00
Vojtech Juranek
dfd8afab7b DBZ-4939 Fall back to JDBC driver if we fail to read timestamp or date
MySQL protocol can change during connection and as a result our custom
field reader may fail. In such case fall back to JDBC to read the value.
This is workaround until proper solution, which will require bigger
refactoring, is implemented, see DBZ-5084 for more details.
2022-05-06 07:55:58 +02:00
Sergei Morozov
194934b74a DBZ-5075: Clean up Javadocs 2022-05-03 13:46:23 +02:00
Sergei Morozov
f6546e4d87 DBZ-5075: Remove unused legacy MySQL code 2022-05-03 13:46:23 +02:00
Sergei Morozov
1e8181e5c4 DBZ-5075: Fix typo in a private property name 2022-05-03 13:46:23 +02:00
harveyyue
7fbc53df9d DBZ-5078 Rename "Mysql" to "MySql" in related MysqlFieldReader interface 2022-05-02 07:21:47 +02:00
Debezium Builder
901825810a [maven-release-plugin] prepare for next development iteration 2022-04-28 13:51:13 +00:00
Debezium Builder
05dcb45647 [maven-release-plugin] prepare release v2.0.0.Alpha1 2022-04-28 13:51:12 +00:00
Vojtech Juranek
391f36c52f DBZ-5054 Wait for the MySQL to be fully started before starting tests 2022-04-27 08:49:43 -04:00
harveyyue
7f60baa6e1 DBZ-4998 Should store event header timestamp in HistoryRecord 2022-04-19 13:50:09 +02:00
LarsWerkman
dbcb6e27c8 DBZ-4983 fix incorrect sorted import 2022-04-14 14:39:40 +02:00
LarsWerkman
6522809719 DBZ-4983 Move CharsetMappingWrapper to MysqlConnection class and expose using a static method 2022-04-14 14:39:40 +02:00
LarsWerkman
fec5aef1ec DBZ-4983 Use correct Java encoding Charset in AbstractMysqlFieldReader 2022-04-14 14:39:40 +02:00
Anisha Mohanty
b57b5e66dd DBZ-4965 Remove JDBC legacy date time properties 2022-04-08 08:31:30 +02:00
Anisha Mohanty
7d92a137e8 DBZ-4950 Remove MySQL legacy implementation 2022-04-08 08:31:30 +02:00
Debezium Builder
4a6de64c25 [maven-release-plugin] prepare for next development iteration 2022-04-05 14:49:52 +00:00
Debezium Builder
683851fd90 [maven-release-plugin] prepare release v1.9.0.Final 2022-04-05 14:49:51 +00:00
Nenad Stojanovikj
2d89f296de DBZ-4933 Fix NPE on null column data in MySQL
When doing a snapshot on a MySQL database which has char type columns
(VARCHAR, TEXT, CHAR) and they are null, and a custom converter is
present, the MySQL reader throws an NPE.

This fix addresses the problem by returning an object from the `null`
value.

https://issues.redhat.com/browse/DBZ-4933
2022-04-01 08:36:05 +02:00
Jiri Pechanec
586657f715 DBZ-3541 Test scientific as string 2022-03-29 09:12:17 +02:00
Sergei Morozov
a0533227cb DBZ-3541 Test case for scientific notation 2022-03-29 09:12:17 +02:00
Sergei Morozov
d766d806af DBZ-3541 Round decimal default values of integer columns 2022-03-29 09:12:17 +02:00
Debezium Builder
ab7fe3b96a [maven-release-plugin] prepare for next development iteration 2022-03-25 16:45:06 +00:00
Debezium Builder
d19fc234ee [maven-release-plugin] prepare release v1.9.0.CR1 2022-03-25 16:45:06 +00:00
Sergei Morozov
b258674782 DBZ-3535: Introduce schema.name.adjustment.mode 2022-03-24 09:37:05 +01:00
Sergei Morozov
3a03ff0186 DBZ-3535: Remove unused EventDispatcher constructor parameter 2022-03-24 09:37:05 +01:00
Vojtěch Juránek
49d3a10f1e
DBZ-3949 Ignore DML records in binlog in MySQL connector;
In some cases (e.g. in some cases when MEMORY engine is used), DML
records can appear in binlog in spite of the fact it's set to ROW
format. Always ignore these records.


Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2022-03-23 08:12:02 +01:00
Vojtech Juranek
0163c07800 DBZ-4786 Avoid NPE when removing column which doesn't exists 2022-03-23 07:53:06 +01:00
harveyyue
e1706802a6
DBZ-4787 Improving MySQL SSL truststore/keystore property descriptions
Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2022-03-18 09:11:23 +01:00
kate
4b2d5c29be DBZ-4878 Re-read incremental snapshot chunk on DDL event 2022-03-18 07:55:43 +01:00
harveyyue
044e454e0a DBZ-4832 Don't set truststore/keystore parameters to system variables 2022-03-15 11:25:28 +01:00
harveyyue
dac2e1350f DBZ-4841 Debezium Mysql connector can't handle CREATE INDEX IF NOT EXISTS (MariaDB) 2022-03-11 15:11:00 +01:00
harveyyue
ba3438c860 DBZ-4822 Mysql: Getting ERROR `Failed due to error: connect.errors.ConnectException: For input string: "false" 2022-03-11 10:22:43 +01:00
harveyyue
759e52c423 DBZ-4787 Skip some tests with SSL auth enabled 2022-03-11 10:10:18 +01:00
harveyyue
66d413c114 DBZ-4833 MySQL 5.7 - no viable alternative at input 'ALTER TABLE ORD_ALLOCATION_CONFIG CHANGE RANK' 2022-03-10 15:09:13 +01:00
Gunnar Morling
b46773e5e4 DBZ-4787 Making one more test pass with SSL auth enabled, removing another, now obsolete, one 2022-03-09 14:42:51 +01:00
Gunnar Morling
76b365e1cb DBZ-4787 Skipping one test when SSL authentication is enabled 2022-03-09 12:12:25 +01:00
Gunnar Morling
8896feb635 DBZ-4787 Adjusting several tests to run with SSL enabled 2022-03-09 11:24:49 +01:00
Gunnar Morling
7e987cd806 DBZ-4787 Simplifying the execution of tests with SSL authentication in the IDE;
When starting a MySQL test with -Ddatabase.ssl.mode=verify_ca, the right
defaults for truststore/keystore location and password are used, matching
the set-up created and executed by the Maven build.
2022-03-09 09:23:13 +01:00
Gunnar Morling
8125b7d8b8 DBZ-4787 Allowing to run entire MySQL test suite with SSL authentication 2022-03-09 09:23:13 +01:00
harveyyue
e7dc03fe6d DBZ-4787 Add mysql connector ssl it and build the relation mysql docker container 2022-03-09 09:23:13 +01:00
harveyyue
49963a5688 DBZ-4787 Not reading the keystore/truststore when enable mysql ssl configurations 2022-03-09 09:23:13 +01:00
harveyyue
da67ba332e DBZ-4823 Add event type for filtering trace message 2022-03-08 09:43:01 +01:00
Gunnar Morling
d20a6f00e7 DBZ-4801 Using JdbcConfiguration in JdbcConnection 2022-03-07 17:53:45 +01:00
Gunnar Morling
c1c322ecf0 DBZ-4801 Simplifying JdbcConnection constructors 2022-03-07 17:53:45 +01:00
Gunnar Morling
d7dfeed12d DBZ-4823 Consistent trace message in case of filtering 2022-03-07 14:41:21 +01:00
harveyyue
b30a8d8492 DBZ-4823 Log the tableId is null when filter out some tables 2022-03-07 12:44:58 +01:00
harveyyue
856ab85cef DBZ-4824 Expect the null value with snapshot CapturedTables metric when skipping snapshotting 2022-03-07 12:19:13 +01:00
Debezium Builder
fece16039c [maven-release-plugin] prepare for next development iteration 2022-03-03 17:00:08 +00:00
Debezium Builder
e0d8a0d809 [maven-release-plugin] prepare release v1.9.0.Beta1 2022-03-03 17:00:08 +00:00
Gunnar Morling
e050d17c4c [ci] Expanding logging in flaky test 2022-02-23 08:57:02 +01:00
Jiri Pechanec
d13a1635d7 DBZ-3952 Store schema for tables not in schema collection list 2022-02-17 07:41:00 +01:00
Sergei Morozov
2d14b5b09f DBZ-4478: Multi-partition metrics for SQL Server 2022-02-16 11:31:38 +01:00
Sergei Morozov
6d0aa9408c DBZ-4478: Add Partition parameter to io.debezium.pipeline.source.spi.*Listener interfaces 2022-02-16 11:31:38 +01:00
harveyyue
8431a614a2 DBZ-4730 Expect plain value instead of scientific exponential notation when using decimal string mode 2022-02-10 17:40:12 +01:00
Debezium Builder
7a47f478a4 [maven-release-plugin] prepare for next development iteration 2022-02-09 07:23:10 +00:00
Debezium Builder
b1dd35025e [maven-release-plugin] prepare release v1.9.0.Alpha2 2022-02-09 07:23:10 +00:00
Farid Uyar
a559e51b08 DBZ-4547 Create History Topic with optional RF 2022-02-08 16:58:13 +01:00
Ismail Simsek
25ed5898c5 DBZ-4675 parse MariaDB PAGE_COMPRESSED and PAGE_COMPRESSION_LEVEL table options 2022-02-04 11:07:14 -05:00
Snigdhajyoti Ghosh
0ab45ecab0 DBZ-4518 Make kafka query timeout configurable 2022-02-04 14:08:15 +01:00
Ismail Simsek
a59b5a203e DBZ-4661 parse MariaDB encrypted keyword
Co-authored-by: Anisha Mohanty <anishamohanty23@gmail.com>
2022-02-04 15:15:07 +05:30
Gunnar Morling
a9bf4d6bd5 DBZ-4294 Awaiting PURGE has happened;
Also fixing the regexp for capturing the start TX id. Only one
capturing group is needed, and the first one would never capture
anything due to the greedy part before.
2022-02-03 15:10:05 -05:00
Jiri Pechanec
fafcea9fe4
DBZ-4605 Upgrade binlog client; test MySQL partial update
Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2022-02-02 10:36:56 +01:00
harveyyue
bfd2ce97e8 DBZ-4640 Parse including keyword column table ddl error 2022-01-30 12:04:04 -05:00
Debezium Builder
33e2f5cd0f [maven-release-plugin] prepare for next development iteration 2022-01-26 19:00:20 +00:00
Debezium Builder
a77b6f8b8e [maven-release-plugin] prepare release v1.9.0.Alpha1 2022-01-26 19:00:20 +00:00
Chris Cranford
35ef67852c DBZ-4562 Reduce log verbosity 2022-01-25 18:41:06 +01:00
Jiri Pechanec
4236e3291a DBZ-4583 Workround for columns longer than max int 2022-01-25 15:16:47 +01:00
Jiri Pechanec
664d989e42 DBZ-4577 Provide custom error message handling 2022-01-21 10:24:19 +01:00
Jiri Pechanec
8f5bb31eab DBZ-3700 Strings a bytes only when converters present
When database was used with non-UTF8 charset the snapshot was sending
byte array with UTF-8 bytes but MySQL converter was using database based
charset to convert it to String leading to malformed data.
It is necessary to convert strings using the database charset but it
might be a problem in case of non-charset matching.
The current solution
1) Uses strings by default
2) Switches to byte array only when converters are present to cover
original use case
3) If the conversion fails it switches back to string
2022-01-19 16:20:32 +01:00
Jiri Pechanec
8fd3243a86 DBZ-2224 Test logging based on logback 2022-01-18 11:24:21 +01:00
Sergei Morozov
17fba7258b DBZ-4541: Promote failure to register metrics to exception 2022-01-14 19:50:57 +01:00
Sergei Morozov
6d97433d18 DBZ-4541: Remove logger from Metrics register/unregister signatures 2022-01-14 19:50:57 +01:00
Chris Cranford
4f5f72500c DBZ-4371 Add hint on how to log problematic values 2022-01-13 08:16:20 +01:00
Chris Cranford
0721ff991c DBZ-4371 Log problematic column values 2022-01-13 08:16:20 +01:00
Sergei Morozov
0329859cda DBZ-4459: Introduce interfaces and default implementations for change event source metrics 2022-01-12 14:32:19 +01:00
Anisha Mohanty
d6c5ad2e7c DBZ-4460 Renaming all openapi occurrences to schema 2022-01-07 15:05:34 +01:00
Anisha Mohanty
3d1988cf6f DBZ-4460 Set default values for format & output directory 2022-01-07 15:05:34 +01:00
Anisha Mohanty
06860b3691 DBZ-4460 Apply the plug-in to all connector modules 2022-01-07 15:05:34 +01:00
harveyyue
291e8ac221 DBZ-4351 Add create/update/delete event seen metrics for monitor upstream dml operation 2022-01-06 19:03:46 +01:00
Kate
22ba108e0d DBZ-4502 Check GTID changes when current GTID is undefined 2022-01-04 08:54:19 +01:00
Kate
5d81466ec1 DBZ-4501 Null out incremental snapshot event's query field 2022-01-03 14:38:36 +01:00
Qishang Zhong
189c3baa07 DBZ-4500 Set the correct binlog serverId & threadId 2022-01-03 14:03:58 +01:00
harveyyue
831217053c DBZ-4503 Drop the primary key column getting exception 2022-01-03 10:57:07 +01:00
harveyyue
3670b0c6ef DBZ-4497 Parse multiple signed/unsigned keyword from ddl statement failed 2022-01-03 10:47:03 +01:00
harveyyue
792187f669 DBZ-4472 Make connector task partition readability for log 2021-12-20 15:58:14 +01:00
Debezium Builder
67c9663c98 [maven-release-plugin] prepare for next development iteration 2021-12-16 10:11:29 +00:00
Debezium Builder
8d532d895f [maven-release-plugin] prepare release v1.8.0.Final 2021-12-16 10:11:28 +00:00