Disabling the Mapping of Derived Objects

Use the DDLOPTIONS parameter with the NOMAPDERIVED option to prevent the conversion of the name of a derived object according to a TARGET clause of a MAP statement that includes it. NOMAPDERIVED overrides any explicit MAP statements that contain the name of the base or derived object. Source DDL that contains derived objects is replicated to the target with the same schema and object names as on the source.

The following table shows the results of MAPDERIVED compared to NOMAPDERIVED, based on whether there is a MAP statement just for the base object, just for the derived object, or for both.

Base Object Derived Object MAP/NOMAP DERIVED? Derived object converted per a MAP? Derived object gets schema of base object?

mappedFoot 1

mapped

MAPDERIVED

yes

no

mapped

not mapped

MAPDERIVED

no

yes

not mapped

mapped

MAPDERIVED

no

no

not mapped

not mapped

MAPDERIVED

no

no

mapped

mapped

NOMAPDERIVED

no

no

mapped

not mapped

NOMAPDERIVED

no

no

not mapped

mapped

NOMAPDERIVED

no

no

not mapped

not mapped

NOMAPDERIVED

no

no

Footnote 1

Mapped means included in a MAP statement.

The following examples illustrate the results of MAPDERIVED as compared to NOMAPDERIVED. In the following table, both trigger and table are owned by rpt on the target because both base and derived names are converted by means of MAPDERIVED.

MAP statement Source DDL statement captured by Extract Target DDL statement applied by Replicat

MAP fin.*, TARGET rpt.*;

CREATE TRIGGER fin.act_trig ON fin.acct;

CREATE TRIGGER rpt.act_trig ON rpt.acct;

In the following table, the trigger is owned by fin, because conversion is prevented by means of NOMAPDERIVED.

MAP statement Source DDL statement captured by Extract Target DDL statement applied by Replicat

MAP fin.*, TARGET rpt.*;

CREATE TRIGGER fin.act_trig ON fin.acct;

CREATE TRIGGER fin.act_trig ON rpt.acct;

Note:

In the case of a RENAME statement, the new table name is considered to be the base table name, and the old table name is considered to be the derived table name.