Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
kritostar
Contributor III
Contributor III

Replication of large field gets replicated in consecutive rows

Hello, so I have a replication that is kind of propagating a large field content from a row to the consecutive ones, and we don't knwo why. It i hapenning in more than one table

Any ideas?

Source:

Screenshot 2023-05-12 161425.png

Destination:

Screenshot 2023-05-12 161324.png

Source:

SourceSource

Destination:

 

DestinationDestination

 

 

 

Labels (2)
18 Replies
narendersarva
Support
Support

Hi @kritostar 

Please open a support case, so that our technical support team can assist you with some working sessions if required.

 

Thanks
Naren

kritostar
Contributor III
Contributor III
Author

So, none of the two options seemed to work. Put as much as special characters I found, they are getting replaced on the destination, but still long rows are been mixed on other rows

Screenshot 2023-05-15 173625.png

 

kritostar
Contributor III
Contributor III
Author

Ok, thanks! I have just created one

shashi_holla
Support
Support

Hi @kritostar 

Is the source MySQL with 8.0.30 ODBC driver?

Then it's bug on the driver and is documented:

  • Due to an issue with MySQL ODBC Driver 8.0.30, empty TEXT columns may not be replicated correctly during Full Load. For example, if one table row contains a TEXT column with a value and the same column in the next row contains an empty value (but not NULL), both rows will display the value of the first row on the target.

https://bugs.mysql.com/bug.php?id=108431

Workaround would be downgrade the driver to 8.0.26.

Thank you,

kritostar
Contributor III
Contributor III
Author

Thanks! I am 99% sure this is the problem, I will ask to downgrade the drive and if it works, I'll accept the solution. 

shashi_holla
Support
Support

Sounds good, please update how it goes.

Thank you,

kritostar
Contributor III
Contributor III
Author

So, we cannot downgrade the driver because we fix another issue with an updated one.

How can I add a global rule to replace an empty text field with any other char like '-' ?

shashi_holla
Support
Support

@kritostar 

Please add the table level transformation on the column and set it to

ifnull($ColumnName,'-')

or

CASE $ColumnName WHEN null Then '-' Else $ColumnName END

But I doubt if it will work or not depending on how driver treats the data but give it a try.

Thank you,

Heinvandenheuvel
Specialist II
Specialist II

>>> How can I add a global rule to replace an empty text field with any other char like '-' ?

It'll be too late for that. If I understand the driver issue correctly then is it the driver which adds the repeated text chunks so Replicate does not get an empty field to replace. Replicate does not have an option to 'remember' and detect 'same as last time'.

>> cannot downgrade the driver because we fix another issue with an updated one

Is that other issue visible with Replicate or elsewhere and if with Replicate in this task (or other tasks processing table wit this issue?) . Maybe you can add a specify  a specific (older) MySQL driver Replicate or specific (newer) one to the other application? You could perhaps have multiple endpoints to the same DB, using different drivers through some connection setting possibly "additionalConnectionProperties" ? Not sure if/how this would work exactly for MySQL.  If this is a Linux server then perhaps some magic in /etc/odbcinst.ini ?

Hein.