Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-392

Debezium MySQL connector only works for lower-case table names on case-insensitive file systems

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 0.7.2
    • 0.6
    • mysql-connector
    • None
      1. Create a database with tables which have mixed case in their names on a case insensitive filesystem
      2. Use debezium to try and parse updates from these tables. Debug logging will reveal that it is skipping the updates.

    Description

      The issue is that during schema parsing, case sensitive versions of each table name look to be gathered and stored in MySqlSchema.tableSchemaByTableId (e.g. "TableName").

      However when the binlog is read, all lowercase table names look to be used in the binlog (e.g. "tablename" as printed when i point mysqlbinlog to the bin log file. This means that when the event is triggered, and RecordMakers.assign is called, the lookup fails and the record is skipped.

      Now if you look here: https://bugs.mysql.com/bug.php?id=59240, this may well actually be by design. OSX and Windows both create case insensitive filesystems by default so I expect this effects mysql servers running on those platforms only.

      It may be worth either having a debezium configuration parameter to make these lookups case insensitive, or else consider the lower_case_table_names or lower_case_file_system mysql variables when parsing the DDL schema changes.

      Attachments

        Activity

          People

            jpechane Jiri Pechanec
            fquinner_jira Frank Quinn (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: