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

Database name should not be converted to lower case if tablenameCaseInsensitive=True in Oracle Connector

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.6.0.Beta1
    • 1.1.2.Final
    • oracle-connector
    • None

      If `database.tablename.case.insensitive` is set to true in configuration, the source database name is also converted to lower case in method `getTableId`:

      https://github.com/debezium/debezium-incubator/blob/5771795222b1bb7cae73059d8f78a8499d20a4d0/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/LcrEventHandler.java#L125

      This will lead to an exception "No metadata registered for captured table" when processing streaming LCR, because the source database name stored in registered schema is NOT converted. 

            [DBZ-2203] Database name should not be converted to lower case if tablenameCaseInsensitive=True in Oracle Connector

            Released

            Debezium Builder added a comment - Released

            As discussed, we're going to remove that option via DBZ-3240, rendering this issue superfluous.

            Gunnar Morling added a comment - As discussed, we're going to remove that option via DBZ-3240 , rendering this issue superfluous.

            Chris Cranford added a comment - - edited

            Unfortunately it isn't out of date, the code still does what is described here.

            The entire basis for this setting on Oracle 11 makes no sense to me. Oracle always stores object names in upper-case. The only exception is when the object is created using a double-quoted name at which point the explicit case of the object name is preserved and will be returned as such by Oracle's metadata tables & driver. Essentially at no point should the connector manipulate the case of schema or table names, hence why I'd rather we remove this setting entirely. It doesn't work with LogMiner on Oracle 11 and this specific issue is why it doesn't work for most installations of XStream with Oracle 11.

            Chris Cranford added a comment - - edited Unfortunately it isn't out of date, the code still does what is described here. The entire basis for this setting on Oracle 11 makes no sense to me. Oracle always stores object names in upper-case. The only exception is when the object is created using a double-quoted name at which point the explicit case of the object name is preserved and will be returned as such by Oracle's metadata tables & driver. Essentially at no point should the connector manipulate the case of schema or table names, hence why I'd rather we remove this setting entirely. It doesn't work with LogMiner on Oracle 11 and this specific issue is why it doesn't work for most installations of XStream with Oracle 11.

            ccranfor@redhat.com, I remember changes in this area. Is this possibly out-of-date by now?

            Gunnar Morling added a comment - ccranfor@redhat.com , I remember changes in this area. Is this possibly out-of-date by now?

            gunnar.morling Sure I can work on it

            Qingsheng Ren (Inactive) added a comment - gunnar.morling Sure I can work on it

            Thanks for the report; would you be interested in providing a fix?

            Gunnar Morling added a comment - Thanks for the report; would you be interested in providing a fix?

              ccranfor@redhat.com Chris Cranford
              renqingsheng Qingsheng Ren (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: