Skip to content

%ROWTYPE UDT types generate invalid system columns when underlying table references object types #16180

@lukaseder

Description

@lukaseder

We have an OBJECT type in our integration test tables, e.g.

CREATE TYPE u_address_type AS OBJECT (...);
CREATE TABLE t_author (
  ..
  address u_address_type
);

Oracle implements this usnig computed columns named SYS_NC00007$, for example. These columns are removed by default in OracleTableDefinition via a JOIN between ALL_TAB_COLS (which contains them) and ALL_COL_COMMENTS (which doesn't contain them).

But this filtering join isn't being done in OracleDatabase::initRecordTypeDefinition18 for %ROWTYPE UDTs. The columns can be removed with <includeInvisibleColumns>false</includeInvisibleColumns>, but the default is true, so users will get weird objects in these cases. It probably doesn't happen often, as OBJECT types in tables are rare, but still, it's annoying.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions