diff --git a/jOOQ/src/main/java/org/jooq/impl/LegacyConvertedDataType.java b/jOOQ/src/main/java/org/jooq/impl/LegacyConvertedDataType.java index 72d420d528..bb7f3ed6fc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/LegacyConvertedDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/LegacyConvertedDataType.java @@ -40,10 +40,16 @@ package org.jooq.impl; import static org.jooq.impl.Internal.converterContext; import org.jooq.Binding; +import org.jooq.CharacterSet; +import org.jooq.Collation; import org.jooq.Configuration; import org.jooq.Converter; import org.jooq.DataType; import org.jooq.Field; +import org.jooq.Generator; +import org.jooq.Nullability; +import org.jooq.impl.QOM.GenerationLocation; +import org.jooq.impl.QOM.GenerationOption; import org.jooq.ContextConverter; /** @@ -55,10 +61,10 @@ import org.jooq.ContextConverter; @Deprecated final class LegacyConvertedDataType extends DefaultDataType { - private final DataType delegate; + private final AbstractDataTypeX delegate; @SuppressWarnings("unchecked") - LegacyConvertedDataType(AbstractDataType delegate, Binding binding) { + LegacyConvertedDataType(AbstractDataTypeX delegate, Binding binding) { super( null, binding.converter().toType(), @@ -76,6 +82,41 @@ final class LegacyConvertedDataType extends DefaultDataType { this.delegate = delegate; } + @SuppressWarnings("unchecked") + @Override + DefaultDataType construct( + Integer newPrecision, + Integer newScale, + Integer newLength, + Nullability newNullability, + boolean newReadonly, + Generator newGeneratedAlwaysAs, + GenerationOption newGenerationOption, + GenerationLocation newGenerationLocation, + Collation newCollation, + CharacterSet newCharacterSet, + boolean newIdentity, + Field newDefaultValue + ) { + return new LegacyConvertedDataType<>( + ((AbstractDataTypeX) delegate).construct( + newPrecision, + newScale, + newLength, + newNullability, + newReadonly, + newGeneratedAlwaysAs, + newGenerationOption, + newGenerationLocation, + newCollation, + newCharacterSet, + newIdentity, + newDefaultValue + ), + (Binding) getBinding() + ); + } + @Override public int getSQLType() { return delegate.getSQLType();