[jOOQ/jOOQ#13411] Add jOOQ and jOOQ-meta API for hidden columns

This commit is contained in:
Lukas Eder 2024-01-19 15:42:28 +01:00
parent 04a4b3f408
commit 4179d2eb42
94 changed files with 420 additions and 111 deletions

View File

@ -110,7 +110,7 @@ public final class Constants {
/**
* The current jooq-meta XSD file name.
*/
public static final String XSD_META = "jooq-meta-3.19.0.xsd";
public static final String XSD_META = "jooq-meta-3.20.0.xsd";
/**
* The current jooq-meta XML namespace.

View File

@ -502,6 +502,7 @@ class GenerationUtil {
type.getPrecision(),
type.getScale(),
type.isNullable(),
type.isHidden(),
type.isReadonly(),
type.getGeneratedAlwaysAs(),
type.getDefaultValue(),

View File

@ -10476,6 +10476,7 @@ public class JavaGenerator extends AbstractGenerator {
type.getLength(),
type.isNullable(),
type.isIdentity(),
type.isHidden(),
type.isReadonly(),
type.getGeneratedAlwaysAs(),
type.getGenerationOption(),
@ -10804,6 +10805,7 @@ public class JavaGenerator extends AbstractGenerator {
int l,
boolean n,
boolean i,
boolean h,
boolean r,
String g,
GenerationOption go,
@ -10843,7 +10845,7 @@ public class JavaGenerator extends AbstractGenerator {
db,
schema,
DefaultDataType.getDataType(db.getDialect(), String.class).getTypeName(),
l, p, s, n, r, g, d, i, (Name) null, ge, null, null, null
l, p, s, n, h, r, g, d, i, (Name) null, ge, null, null, null
), out));
sb.append(".asEnumDataType(");
sb.append(classOf(out.ref(getStrategy().getFullJavaClassName(db.getEnum(schema, u), Mode.ENUM))));
@ -10877,6 +10879,7 @@ public class JavaGenerator extends AbstractGenerator {
if (d != null)
dataType = dataType.defaultValue((Field) DSL.field(d, dataType));
@ -10944,6 +10947,9 @@ public class JavaGenerator extends AbstractGenerator {

View File

@ -206,6 +206,7 @@ public class XMLGenerator extends AbstractGenerator {
column.setNumericPrecision(type.getPrecision());
column.setNumericScale(type.getScale());
column.setOrdinalPosition(co.getPosition());
column.setHidden(co.isHidden());
column.setReadonly(co.isReadonly());
if (type.isComputed()) {

View File

@ -243,6 +243,7 @@ public abstract class AbstractTypedElementDefinition<T extends Definition>
boolean n = result.isNullable();
String d = result.getDefaultValue();
boolean i = result.isIdentity();
boolean h = result.isHidden();
boolean r = result.isReadonly();
String g = result.getGeneratedAlwaysAs();
@ -272,7 +273,7 @@ public abstract class AbstractTypedElementDefinition<T extends Definition>
// [#677] SQLDataType matches are actual type-rewrites
if (forcedDataType != null)
result = new DefaultDataTypeDefinition(db, child.getSchema(), name, l, p, s, n, r, g, d, i, (Name) null, generator, converter, binding, null);
result = new DefaultDataTypeDefinition(db, child.getSchema(), name, l, p, s, n, h, r, g, d, i, (Name) null, generator, converter, binding, null);
}
catch (SQLDialectNotSupportedException e) {
@ -386,7 +387,7 @@ public abstract class AbstractTypedElementDefinition<T extends Definition>
s = result.getScale();
String t = result.getType();
Name u = result.getQualifiedUserType();
result = new DefaultDataTypeDefinition(db, definedType.getSchema(), t, l, p, s, n, r, g, d, i, u, generator, converter, binding, uType);
result = new DefaultDataTypeDefinition(db, definedType.getSchema(), t, l, p, s, n, h, r, g, d, i, u, generator, converter, binding, uType);
}
}

View File

@ -75,6 +75,11 @@ public interface ColumnDefinition extends TypedElementDefinition<TableDefinition
*/
boolean isIdentity();
/**
* Whether this column is hidden.
*/
boolean isHidden();
/**
* Whether this column is readonly.
*/

View File

@ -110,7 +110,7 @@ public final class Constants {
/**
* The current jooq-meta XSD file name.
*/
public static final String XSD_META = "jooq-meta-3.19.0.xsd";
public static final String XSD_META = "jooq-meta-3.20.0.xsd";
/**
* The current jooq-meta XML namespace.

View File

@ -123,6 +123,11 @@ public interface DataTypeDefinition {
*/
boolean isNullable();
/**
* Whether this data type is hidden.
*/
boolean isHidden();
/**
* Whether this data type is readonly.
*/

View File

@ -60,6 +60,7 @@ public class DefaultColumnDefinition
private static final JooqLogger log = JooqLogger.getLogger(DefaultColumnDefinition.class);
private final int position;
private final boolean identity;
private final boolean hidden;
private final boolean readonly;
private transient List<EmbeddableDefinition> replacedByEmbeddables;
private boolean synthetic;
@ -83,16 +84,31 @@ public class DefaultColumnDefinition
boolean identity,
boolean readonly,
String comment
) {
this(table, name, position, type, identity, false, readonly, comment);
}
public DefaultColumnDefinition(
TableDefinition table,
String name,
int position,
DataTypeDefinition type,
boolean identity,
boolean hidden,
boolean readonly,
String comment
) {
super(table, name, position, type, comment);
this.position = position;
this.identity = identity || isSyntheticIdentity(this);
this.hidden = hidden;
this.readonly = readonly || isSyntheticReadonlyColumn(this, this.identity);
// [#6222] Copy the column's identity flag to the data type definition
if (type instanceof DefaultDataTypeDefinition dd) {
dd.identity(this.identity);
dd.hidden(this.hidden);
dd.readonly(this.readonly);
@ -181,6 +197,11 @@ public class DefaultColumnDefinition
return identity;
}
@Override
public final boolean isHidden() {
return hidden;
}
@Override
public final boolean isReadonly() {
return readonly;

View File

@ -76,6 +76,7 @@ public class DefaultDataTypeDefinition implements DataTypeDefinition {
private final String converter;
private final String binding;
private final boolean nullable;
private boolean hidden;
private boolean readonly;
private String generatedAlwaysAs;
private GenerationOption generationOption;
@ -119,6 +120,10 @@ public class DefaultDataTypeDefinition implements DataTypeDefinition {
}
public DefaultDataTypeDefinition(Database database, SchemaDefinition schema, String typeName, Number length, Number precision, Number scale, Boolean nullable, boolean readonly, String generatedAlwaysAs, String defaultValue, boolean identity, Name userType, String generator, String converter, String binding, String javaType) {
this(database, schema, typeName, length, precision, scale, nullable, false, readonly, generatedAlwaysAs, defaultValue, identity, userType, generator, converter, binding, javaType);
}
public DefaultDataTypeDefinition(Database database, SchemaDefinition schema, String typeName, Number length, Number precision, Number scale, Boolean nullable, boolean hidden, boolean readonly, String generatedAlwaysAs, String defaultValue, boolean identity, Name userType, String generator, String converter, String binding, String javaType) {
this.database = database;
this.schema = schema;
@ -148,6 +153,7 @@ public class DefaultDataTypeDefinition implements DataTypeDefinition {
this.precision = precision == null ? 0 : precision.intValue();
this.scale = scale == null ? 0 : scale.intValue();
this.nullable = nullable == null ? true : nullable.booleanValue();
this.hidden = hidden;
this.readonly = readonly;
this.generatedAlwaysAs = generatedAlwaysAs;
this.defaultValue = defaultValue;
@ -176,6 +182,16 @@ public class DefaultDataTypeDefinition implements DataTypeDefinition {
return nullable;
}
public final DefaultDataTypeDefinition hidden(boolean h) {
this.hidden = h;
return this;
}
@Override
public final boolean isHidden() {
return hidden;
}
public final DefaultDataTypeDefinition readonly(boolean r) {
this.readonly = r;
return this;

View File

@ -76,6 +76,7 @@ public class DefaultEmbeddableColumnDefinition
original.getPrecision(),
original.getScale(),
original.isNullable() || other.isNullable(),
original.isHidden(),
original.isReadonly(),
original.getGeneratedAlwaysAs(),
original.getDefaultValue(),

View File

@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class CatalogMappingType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true, defaultValue = "")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String inputCatalog = "";

View File

@ -30,7 +30,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class CommentType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;

View File

@ -49,7 +49,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Configuration implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlSchemaType(name = "string")
protected Logging logging;
@XmlElement(defaultValue = "FAIL")

View File

@ -30,7 +30,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class CustomType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@ -38,6 +38,8 @@ public class CustomType implements Serializable, XMLAppendable
protected String type;
@XmlSchemaType(name = "string")
protected VisibilityModifier visibilityModifier;
@XmlElement(defaultValue = "false")
protected Boolean hidden = false;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String generator;
protected Boolean auditInsertTimestamp;
@ -110,6 +112,32 @@ public class CustomType implements Serializable, XMLAppendable
this.visibilityModifier = value;
}
/**
* @deprecated Use ForcedType only
*
* @return
* possible object is
* {@link Boolean }
*
*/
@Deprecated
public Boolean isHidden() {
return hidden;
}
/**
* @deprecated Use ForcedType only
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
@Deprecated
public void setHidden(Boolean value) {
this.hidden = value;
}
/**
* @deprecated Use ForcedType only
*
@ -472,6 +500,15 @@ public class CustomType implements Serializable, XMLAppendable
return this;
}
/**
* @deprecated Use ForcedType only
*
*/
public CustomType withHidden(Boolean value) {
setHidden(value);
return this;
}
/**
* @deprecated Use ForcedType only
*
@ -607,6 +644,7 @@ public class CustomType implements Serializable, XMLAppendable
builder.append("name", name);
builder.append("type", type);
builder.append("visibilityModifier", visibilityModifier);
builder.append("hidden", hidden);
builder.append("generator", generator);
builder.append("auditInsertTimestamp", auditInsertTimestamp);
builder.append("auditInsertUser", auditInsertUser);
@ -669,6 +707,15 @@ public class CustomType implements Serializable, XMLAppendable
return false;
}
}
if (hidden == null) {
if (other.hidden!= null) {
return false;
}
} else {
if (!hidden.equals(other.hidden)) {
return false;
}
}
if (generator == null) {
if (other.generator!= null) {
return false;
@ -805,6 +852,7 @@ public class CustomType implements Serializable, XMLAppendable
result = ((prime*result)+((name == null)? 0 :name.hashCode()));
result = ((prime*result)+((type == null)? 0 :type.hashCode()));
result = ((prime*result)+((visibilityModifier == null)? 0 :visibilityModifier.hashCode()));
result = ((prime*result)+((hidden == null)? 0 :hidden.hashCode()));
result = ((prime*result)+((generator == null)? 0 :generator.hashCode()));
result = ((prime*result)+((auditInsertTimestamp == null)? 0 :auditInsertTimestamp.hashCode()));
result = ((prime*result)+((auditInsertUser == null)? 0 :auditInsertUser.hashCode()));

View File

@ -33,7 +33,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Database implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class EmbeddableDefinitionType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String catalog;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class EmbeddableField implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlElement(required = true)

View File

@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class EnumType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;

View File

@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class ForcedType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(defaultValue = "0")
protected Integer priority = 0;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Generate implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(defaultValue = "true")
protected Boolean indexes = true;
@XmlElement(defaultValue = "true")

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Generator implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(defaultValue = "org.jooq.codegen.DefaultGenerator")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name = "org.jooq.codegen.DefaultGenerator";

View File

@ -32,7 +32,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Jdbc implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String driver;
@XmlElement(required = true)

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class LambdaConverter implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String from;

View File

@ -43,7 +43,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatcherRule implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlSchemaType(name = "string")
protected MatcherTransformType transform;
@XmlElement(required = true)

View File

@ -43,7 +43,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Matchers implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElementWrapper(name = "catalogs")
@XmlElement(name = "catalog")
protected List<MatchersCatalogType> catalogs;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersAttributeType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule attributeIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersCatalogType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule catalogClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersEmbeddableType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule recordClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersEnumType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule enumClass;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersFieldType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule fieldIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersForeignKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule keyIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersIndexType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule keyIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersPrimaryKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule keyIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersRoutineType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule routineClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersSchemaType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule schemaClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersSequenceType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule sequenceIdentifier;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersTableType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule tableClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersUDTType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule udtClass;

View File

@ -27,7 +27,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class MatchersUniqueKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String expression;
protected MatcherRule keyIdentifier;

View File

@ -29,7 +29,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Property implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String key;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SchemaMappingType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true, defaultValue = "")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String inputSchema = "";

View File

@ -30,7 +30,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Strategy implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(defaultValue = "org.jooq.codegen.DefaultGeneratorStrategy")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name = "org.jooq.codegen.DefaultGeneratorStrategy";

View File

@ -44,7 +44,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticColumnType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tables;
@XmlElement(required = true)

View File

@ -44,7 +44,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticDaoMethodType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;

View File

@ -49,7 +49,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticDaoType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String catalog;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -52,7 +52,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticEnumType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -50,7 +50,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticForeignKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticIdentityType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tables;
@XmlElement(required = true)

View File

@ -30,7 +30,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticObjectsType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElementWrapper(name = "readonlyColumns")
@XmlElement(name = "readonlyColumn")
protected List<SyntheticReadonlyColumnType> readonlyColumns;

View File

@ -48,7 +48,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticPrimaryKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticReadonlyColumnType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tables;
@XmlElement(required = true)

View File

@ -41,7 +41,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticReadonlyRowidType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -47,7 +47,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticUniqueKeyType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String name;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -45,7 +45,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class SyntheticViewType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String catalog;
@XmlJavaTypeAdapter(StringAdapter.class)

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Target implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31902L;
private final static long serialVersionUID = 32000L;
@XmlElement(defaultValue = "org.jooq.generated")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String packageName = "org.jooq.generated";

View File

@ -118,6 +118,7 @@ public class XMLTableDefinition extends AbstractTableDefinition {
unbox(column.getOrdinalPosition()),
type,
column.getIdentityGeneration() != null,
TRUE.equals(column.isHidden()),
TRUE.equals(column.isReadonly()),
column.getComment()
));

View File

@ -1933,6 +1933,18 @@ This feature is available in the commercial distribution only.]]></jxb:javadoc><
</annotation>
</element>
<element name="hidden" type="boolean" minOccurs="0" maxOccurs="1" default="false">
<annotation>
<appinfo>
<jxb:property>
<jxb:javadoc><![CDATA[@deprecated Use ForcedType only]]></jxb:javadoc>
</jxb:property>
<annox:annotate target="getter">@java.lang.Deprecated</annox:annotate>
<annox:annotate target="setter">@java.lang.Deprecated</annox:annotate>
</appinfo>
</annotation>
</element>
<element name="generator" type="string" minOccurs="0" maxOccurs="1">
<annotation>
<appinfo>

View File

@ -109,7 +109,7 @@ public final class Constants {
/**
* The current jooq-meta XSD file name.
*/
public static final String XSD_META = "jooq-meta-3.19.0.xsd";
public static final String XSD_META = "jooq-meta-3.20.0.xsd";
/**
* The current jooq-meta XML namespace.

View File

@ -486,6 +486,25 @@ public interface DataType<T> extends Named {
*/
boolean nullable();
/**
* Return a new data type like this, with a new hidden attribute.
* <p>
* This feature is implemented in commercial distributions only.
*
* @param readonly The new hidden attribute value.
* @return The new data type
*/
@NotNull
@Support
DataType<T> hidden(boolean hidden);
/**
* Get the hidden attribute of this data type.
* <p>
* This feature is implemented in commercial distributions only.
*/
boolean hidden();
/**
* Return a new data type like this, with a new readonly attribute.
* <p>

View File

@ -162,6 +162,12 @@ implements
return nullable(false);
}
@Override
public abstract boolean hidden();
@Override
public abstract DataType<T> hidden(boolean h);
@Override
public abstract boolean readonly();
@ -721,6 +727,7 @@ implements
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
(Generator<?, ?, E>) generatedAlwaysAsGenerator(),
generationOption(),

View File

@ -72,6 +72,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, T> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -89,6 +90,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
n,
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -100,6 +102,28 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
);
}
@Override
public final DataType<T> hidden(boolean h) {
if (h && !CONFIG.get().commercial())
logGeneratedAlwaysAs.info("Hidden columns", "Hidden columns are a commercial only jOOQ feature. If you wish to profit from this feature, please upgrade to the jOOQ Professional Edition");
return construct(
precision0(),
scale0(),
length0(),
nullability(),
h,
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
generationLocation(),
collation(),
characterSet(),
identity(),
defaultValue()
);
}
@Override
public final DataType<T> readonly(boolean r) {
if (r && !CONFIG.get().commercial())
@ -110,6 +134,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
r,
generatedAlwaysAsGenerator(),
generationOption(),
@ -133,6 +158,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
g != null ? true : readonly(),
g,
generationOption(),
@ -154,6 +180,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
g,
@ -175,6 +202,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -193,6 +221,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -211,6 +240,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -229,6 +259,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
i ? NOT_NULL : nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -247,6 +278,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
length0(),
nullability(),
hidden(),
readonly(),
d != null ? null : generatedAlwaysAsGenerator(),
generationOption(),
@ -265,6 +297,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
s,
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -283,6 +316,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
s,
length0(),
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),
@ -301,6 +335,7 @@ abstract class AbstractDataTypeX<T> extends AbstractDataType<T> {
scale0(),
l,
nullability(),
hidden(),
readonly(),
generatedAlwaysAsGenerator(),
generationOption(),

View File

@ -75,6 +75,7 @@ final class ArrayDataType<T> extends DefaultDataType<T[]> {
Integer scale,
Integer length,
Nullability nullability,
boolean hidden,
boolean readonly,
Generator<?, ?, T[]> generatedAlwaysAs,
GenerationOption generationOption,
@ -84,7 +85,7 @@ final class ArrayDataType<T> extends DefaultDataType<T[]> {
boolean identity,
Field<T[]> defaultValue
) {
super(t, precision, scale, length, nullability, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
super(t, precision, scale, length, nullability, hidden, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
this.elementType = elementType;
}
@ -96,6 +97,7 @@ final class ArrayDataType<T> extends DefaultDataType<T[]> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, T[]> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -112,6 +114,7 @@ final class ArrayDataType<T> extends DefaultDataType<T[]> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,

View File

@ -90,6 +90,7 @@ final class ConvertedDataType<T, U> extends AbstractDataTypeX<U> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, U> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -104,6 +105,7 @@ final class ConvertedDataType<T, U> extends AbstractDataTypeX<U> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
(Generator) newGeneratedAlwaysAs,
newGenerationOption,
@ -207,6 +209,11 @@ final class ConvertedDataType<T, U> extends AbstractDataTypeX<U> {
return delegate.nullability();
}
@Override
public final boolean hidden() {
return delegate.hidden();
}
@Override
public final boolean readonly() {
return delegate.readonly();

View File

@ -67,6 +67,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
private final Integer overrideScale;
private final Integer overrideLength;
private final Nullability overrideNullability;
private final Boolean overrideHidden;
private final Boolean overrideReadonly;
private final Generator<?, ?, T> overrideGeneratedAlwaysAs;
private final GenerationOption overrideGenerationOption;
@ -77,7 +78,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
private final Field<T> overrideDefaultValue;
DataTypeProxy(AbstractDataType<T> type) {
this(type, null, null, null, null, null, null, null, null, null, null, null, null);
this(type, null, null, null, null, null, null, null, null, null, null, null, null, null);
}
private DataTypeProxy(
@ -86,6 +87,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
Integer overrideScale,
Integer overrideLength,
Nullability overrideNullability,
Boolean overrideHidden,
Boolean overrideReadonly,
Generator<?, ?, T> overrideGeneratedAlwaysAs,
GenerationOption overrideGenerationOption,
@ -102,6 +104,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
this.overrideScale = overrideScale;
this.overrideLength = overrideLength;
this.overrideNullability = overrideNullability;
this.overrideHidden = overrideHidden;
this.overrideReadonly = overrideReadonly;
this.overrideGeneratedAlwaysAs = overrideGeneratedAlwaysAs;
this.overrideGenerationOption = overrideGenerationOption;
@ -178,6 +181,32 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
n,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
overrideGenerationLocation,
overrideCollation,
overrideCharacterSet,
overrideIdentity,
overrideDefaultValue
);
}
@Override
public final boolean hidden() {
return defaultIfNull(overrideHidden, type.hidden());
}
@Override
public final DataType<T> hidden(boolean h) {
return new DataTypeProxy<>(
this,
overridePrecision,
overrideScale,
overrideLength,
overrideNullability,
h,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -202,6 +231,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
r,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -226,6 +256,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
g,
overrideGenerationOption,
@ -250,6 +281,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
g,
@ -274,6 +306,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -298,6 +331,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -322,6 +356,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -346,6 +381,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -370,6 +406,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -424,6 +461,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
s,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -448,6 +486,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
s,
overrideLength,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,
@ -472,6 +511,7 @@ final class DataTypeProxy<T> extends AbstractDataType<T> {
overrideScale,
l,
overrideNullability,
overrideHidden,
overrideReadonly,
overrideGeneratedAlwaysAs,
overrideGenerationOption,

View File

@ -269,6 +269,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
private final String typeName;
private final Nullability nullability;
private final boolean hidden;
private final boolean readonly;
private final Generator<?, ?, T> generatedAlwaysAs;
private final GenerationOption generationOption;
@ -350,10 +351,10 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
}
DefaultDataType(SQLDialect dialect, DataType<T> sqlDataType, Class<T> type, Binding<?, T> binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, Field<T> defaultValue) {
this(dialect, sqlDataType, type, binding, qualifiedTypeName, typeName, castTypeName, precision, scale, length, nullability, false, null, GenerationOption.DEFAULT, GenerationLocation.SERVER, null, null, false, defaultValue);
this(dialect, sqlDataType, type, binding, qualifiedTypeName, typeName, castTypeName, precision, scale, length, nullability, false, false, null, GenerationOption.DEFAULT, GenerationLocation.SERVER, null, null, false, defaultValue);
}
DefaultDataType(SQLDialect dialect, DataType<T> sqlDataType, Class<T> type, Binding<?, T> binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, boolean readonly, Generator<?, ?, T> generatedAlwaysAs, GenerationOption generationOption, GenerationLocation generationLocation, Collation collation, CharacterSet characterSet, boolean identity, Field<T> defaultValue) {
DefaultDataType(SQLDialect dialect, DataType<T> sqlDataType, Class<T> type, Binding<?, T> binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, boolean hidden, boolean readonly, Generator<?, ?, T> generatedAlwaysAs, GenerationOption generationOption, GenerationLocation generationLocation, Collation collation, CharacterSet characterSet, boolean identity, Field<T> defaultValue) {
super(qualifiedTypeName, NO_COMMENT);
// [#13934] Patch parameters
@ -376,6 +377,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
this.castTypeSuffix = split.length > 1 ? split[1] : "";
this.nullability = nullability == null ? Nullability.DEFAULT : nullability;
this.hidden = hidden;
this.readonly = readonly;
this.generatedAlwaysAs = generatedAlwaysAs;
this.generationOption = generationOption == null ? GenerationOption.DEFAULT : generationOption;
@ -423,6 +425,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, T> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -438,6 +441,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,
@ -458,6 +462,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
Integer scale,
Integer length,
Nullability nullability,
boolean hidden,
boolean readonly,
Generator<?, ?, T> generatedAlwaysAs,
GenerationOption generationOption,
@ -479,6 +484,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
this.castTypeSuffix = t.castTypeSuffix0();
this.nullability = nullability;
this.hidden = hidden;
this.readonly = readonly;
this.generatedAlwaysAs = generatedAlwaysAs;
this.generationOption = generationOption;
@ -517,6 +523,11 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
return nullability;
}
@Override
public final boolean hidden() {
return hidden;
}
@Override
public final boolean readonly() {
return readonly;
@ -597,7 +608,7 @@ public class DefaultDataType<T> extends AbstractDataTypeX<T> {
// ... and then, set them back to the original value
// [#2710] TODO: Remove this logic along with cached data types
return dataType.construct(precision, scale, length, nullability, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
return dataType.construct(precision, scale, length, nullability, hidden, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
}
// If this is already the dialect's specific data type, return this

View File

@ -71,6 +71,7 @@ final class DomainDataType<T> extends DefaultDataType<T> {
baseType.scaleDefined() ? baseType.scale() : null,
baseType.lengthDefined() ? baseType.length() : null,
baseType.nullability(),
baseType.hidden(),
baseType.readonly(),
baseType.generatedAlwaysAsGenerator(),
baseType.generationOption(),
@ -91,6 +92,7 @@ final class DomainDataType<T> extends DefaultDataType<T> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, T> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -107,6 +109,7 @@ final class DomainDataType<T> extends DefaultDataType<T> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,

View File

@ -358,6 +358,7 @@ final class InformationSchemaExport {
ic.setColumnDefault(DSL.using(configuration).render(type.defaultValue()));
ic.setIsNullable(type.nullable());
ic.setOrdinalPosition(i + 1);
ic.setHidden(type.hidden());
ic.setReadonly(type.readonly());
if (type.computed()) {

View File

@ -232,7 +232,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
InformationSchemaDomain<?> id = new InformationSchemaDomain<Object>(
schema,
name(d.getDomainName()),
(DataType) type(d.getDataType(), length, precision, scale, nullable, false, null, null),
(DataType) type(d.getDataType(), length, precision, scale, nullable, false, false, null, null),
checks.toArray(EMPTY_CHECK)
);
domains.add(id);
@ -305,6 +305,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
int precision = xc.getNumericPrecision() == null ? 0 : xc.getNumericPrecision();
int scale = xc.getNumericScale() == null ? 0 : xc.getNumericScale();
boolean nullable = !FALSE.equals(xc.isIsNullable());
boolean hidden = TRUE.equals(xc.isHidden());
boolean readonly = TRUE.equals(xc.isReadonly());
Field<?> generatedAlwaysAs = TRUE.equals(xc.isIsGenerated())
? DSL.field(xc.getGenerationExpression())
@ -328,7 +329,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
AbstractTable.createField(
name(xc.getColumnName()),
type(typeName, length, precision, scale, nullable, readonly, generatedAlwaysAs, generationOption),
type(typeName, length, precision, scale, nullable, hidden, readonly, generatedAlwaysAs, generationOption),
table,
xc.getComment()
);
@ -547,7 +548,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
InformationSchemaSequence is = new InformationSchemaSequence(
xs.getSequenceName(),
schema,
type(typeName, length, precision, scale, nullable, false, null, null),
type(typeName, length, precision, scale, nullable, false, false, null, null),
startWith,
incrementBy,
minvalue,
@ -644,6 +645,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
int precision,
int scale,
boolean nullable,
boolean hidden,
boolean readonly,
Field<?> generatedAlwaysAs,
GenerationOption generationOption
@ -653,6 +655,7 @@ final class InformationSchemaMetaImpl extends AbstractMeta {
try {
type = DefaultDataType.getDataType(configuration.family(), typeName);
type = type.nullable(nullable);
type = type.hidden(hidden);
type = type.readonly(readonly);
if (length != 0)

View File

@ -89,6 +89,7 @@ final class LegacyConvertedDataType<T, U> extends DefaultDataType<U> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, U> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -104,6 +105,7 @@ final class LegacyConvertedDataType<T, U> extends DefaultDataType<U> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,

View File

@ -87,6 +87,7 @@ final class MultisetDataType<R extends Record> extends DefaultDataType<Result<R>
Integer scale,
Integer length,
Nullability nullability,
boolean hidden,
boolean readonly,
Generator<?, ?, Result<R>> generatedAlwaysAs,
GenerationOption generationOption,
@ -96,7 +97,7 @@ final class MultisetDataType<R extends Record> extends DefaultDataType<Result<R>
boolean identity,
Field<Result<R>> defaultValue
) {
super(t, precision, scale, length, nullability, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
super(t, precision, scale, length, nullability, hidden, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
this.row = row;
this.recordType = recordType;
@ -109,6 +110,7 @@ final class MultisetDataType<R extends Record> extends DefaultDataType<Result<R>
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, Result<R>> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -126,6 +128,7 @@ final class MultisetDataType<R extends Record> extends DefaultDataType<Result<R>
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,

View File

@ -4562,6 +4562,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
List<Index> indexes = new ArrayList<>();
boolean primary = false;
boolean identity = false;
boolean hidden = false;
boolean readonly = false;
boolean ctas = false;
@ -4641,6 +4642,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
constraints,
primary,
identity,
hidden,
readonly
);
@ -4864,7 +4866,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
return storageStep;
}
private static final record ParseInlineConstraints(DataType<?> type, Comment fieldComment, boolean primary, boolean identity, boolean readonly) {}
private static final record ParseInlineConstraints(DataType<?> type, Comment fieldComment, boolean primary, boolean identity, boolean hidden, boolean readonly) {}
private final ParseInlineConstraints parseInlineConstraints(
Name fieldName,
@ -4872,6 +4874,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
List<? super Constraint> constraints,
boolean primary,
boolean identity,
boolean hidden,
boolean readonly
) {
boolean nullable = false;
@ -4886,6 +4889,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
Comment fieldComment = null;
identity |= type.identity();
hidden |= type.hidden();
readonly |= type.readonly();
for (;;) {
@ -4918,6 +4922,13 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
identity = true;
continue;
}
else if (parseKeywordIf("VISIBLE")) {
continue;
}
else if (parseKeywordIf("HIDDEN", "INVISIBLE")) {
type = type.hidden(true);
continue;
}
else if (!ignoreProEdition() && parseKeywordIf("READONLY") && requireProEdition()) {
@ -5095,7 +5106,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
break;
}
return new ParseInlineConstraints(type, fieldComment, primary, identity, readonly);
return new ParseInlineConstraints(type, fieldComment, primary, identity, hidden, readonly);
}
@ -5702,7 +5713,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
int p = list == null ? -1 : list.size();
ParseInlineConstraints inline = parseInlineConstraints(fieldName, type, list, false, false, false);
ParseInlineConstraints inline = parseInlineConstraints(fieldName, type, list, false, false, false, false);
Field<?> result = field(fieldName, inline.type, inline.fieldComment);
if (list != null)

View File

@ -94,6 +94,7 @@ final class RecordDataType<R extends Record> extends DefaultDataType<R> {
Integer scale,
Integer length,
Nullability nullability,
boolean hidden,
boolean readonly,
Generator<?, ?, R> generatedAlwaysAs,
GenerationOption generationOption,
@ -103,7 +104,7 @@ final class RecordDataType<R extends Record> extends DefaultDataType<R> {
boolean identity,
Field<R> defaultValue
) {
super(t, precision, scale, length, nullability, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
super(t, precision, scale, length, nullability, hidden, readonly, generatedAlwaysAs, generationOption, generationLocation, collation, characterSet, identity, defaultValue);
this.row = row;
}
@ -115,6 +116,7 @@ final class RecordDataType<R extends Record> extends DefaultDataType<R> {
Integer newScale,
Integer newLength,
Nullability newNullability,
boolean newHidden,
boolean newReadonly,
Generator<?, ?, R> newGeneratedAlwaysAs,
GenerationOption newGenerationOption,
@ -131,6 +133,7 @@ final class RecordDataType<R extends Record> extends DefaultDataType<R> {
newScale,
newLength,
newNullability,
newHidden,
newReadonly,
newGeneratedAlwaysAs,
newGenerationOption,

View File

@ -42,7 +42,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Catalog implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "catalog_name")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String catalogName;

View File

@ -44,7 +44,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class CheckConstraint implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "constraint_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String constraintCatalog;

View File

@ -41,6 +41,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="is_nullable" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
* &lt;element name="column_default" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="hidden" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
* &lt;element name="readonly" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
* &lt;element name="is_generated" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
* &lt;element name="generation_expression" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
@ -63,7 +64,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Column implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "table_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tableCatalog;
@ -115,6 +116,7 @@ public class Column implements Serializable, XMLAppendable
protected String columnDefault;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String comment;
protected Boolean hidden;
protected Boolean readonly;
@XmlElement(name = "is_generated")
protected Boolean isGenerated;
@ -293,6 +295,30 @@ public class Column implements Serializable, XMLAppendable
this.comment = value;
}
/**
* Gets the value of the hidden property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isHidden() {
return hidden;
}
/**
* Sets the value of the hidden property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setHidden(Boolean value) {
this.hidden = value;
}
/**
* Gets the value of the readonly property.
*
@ -452,6 +478,11 @@ public class Column implements Serializable, XMLAppendable
return this;
}
public Column withHidden(Boolean value) {
setHidden(value);
return this;
}
public Column withReadonly(Boolean value) {
setReadonly(value);
return this;
@ -493,6 +524,7 @@ public class Column implements Serializable, XMLAppendable
builder.append("is_nullable", isNullable);
builder.append("column_default", columnDefault);
builder.append("comment", comment);
builder.append("hidden", hidden);
builder.append("readonly", readonly);
builder.append("is_generated", isGenerated);
builder.append("generation_expression", generationExpression);
@ -689,6 +721,15 @@ public class Column implements Serializable, XMLAppendable
return false;
}
}
if (hidden == null) {
if (other.hidden!= null) {
return false;
}
} else {
if (!hidden.equals(other.hidden)) {
return false;
}
}
if (readonly == null) {
if (other.readonly!= null) {
return false;
@ -751,6 +792,7 @@ public class Column implements Serializable, XMLAppendable
result = ((prime*result)+((isNullable == null)? 0 :isNullable.hashCode()));
result = ((prime*result)+((columnDefault == null)? 0 :columnDefault.hashCode()));
result = ((prime*result)+((comment == null)? 0 :comment.hashCode()));
result = ((prime*result)+((hidden == null)? 0 :hidden.hashCode()));
result = ((prime*result)+((readonly == null)? 0 :readonly.hashCode()));
result = ((prime*result)+((isGenerated == null)? 0 :isGenerated.hashCode()));
result = ((prime*result)+((generationExpression == null)? 0 :generationExpression.hashCode()));

View File

@ -48,7 +48,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Domain implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "domain_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String domainCatalog;

View File

@ -46,7 +46,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class DomainConstraint implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "constraint_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String constraintCatalog;

View File

@ -51,7 +51,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class ElementType implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "object_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String objectCatalog;

View File

@ -48,7 +48,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Index implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "index_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String indexCatalog;

View File

@ -49,7 +49,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class IndexColumnUsage implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "index_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String indexCatalog;

View File

@ -25,24 +25,24 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;complexContent&gt;
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
* &lt;all&gt;
* &lt;element name="catalogs" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Catalogs" minOccurs="0"/&gt;
* &lt;element name="schemata" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Schemata" minOccurs="0"/&gt;
* &lt;element name="sequences" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Sequences" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Tables" minOccurs="0"/&gt;
* &lt;element name="views" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Views" minOccurs="0"/&gt;
* &lt;element name="columns" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Columns" minOccurs="0"/&gt;
* &lt;element name="table_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TableConstraints" minOccurs="0"/&gt;
* &lt;element name="key_column_usages" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}KeyColumnUsages" minOccurs="0"/&gt;
* &lt;element name="referential_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}ReferentialConstraints" minOccurs="0"/&gt;
* &lt;element name="check_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}CheckConstraints" minOccurs="0"/&gt;
* &lt;element name="domains" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Domains" minOccurs="0"/&gt;
* &lt;element name="domain_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}DomainConstraints" minOccurs="0"/&gt;
* &lt;element name="indexes" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Indexes" minOccurs="0"/&gt;
* &lt;element name="index_column_usages" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}IndexColumnUsages" minOccurs="0"/&gt;
* &lt;element name="routines" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Routines" minOccurs="0"/&gt;
* &lt;element name="parameters" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Parameters" minOccurs="0"/&gt;
* &lt;element name="element_types" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}ElementTypes" minOccurs="0"/&gt;
* &lt;element name="triggers" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}Triggers" minOccurs="0"/&gt;
* &lt;element name="catalogs" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Catalogs" minOccurs="0"/&gt;
* &lt;element name="schemata" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Schemata" minOccurs="0"/&gt;
* &lt;element name="sequences" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Sequences" minOccurs="0"/&gt;
* &lt;element name="tables" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Tables" minOccurs="0"/&gt;
* &lt;element name="views" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Views" minOccurs="0"/&gt;
* &lt;element name="columns" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Columns" minOccurs="0"/&gt;
* &lt;element name="table_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TableConstraints" minOccurs="0"/&gt;
* &lt;element name="key_column_usages" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}KeyColumnUsages" minOccurs="0"/&gt;
* &lt;element name="referential_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}ReferentialConstraints" minOccurs="0"/&gt;
* &lt;element name="check_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}CheckConstraints" minOccurs="0"/&gt;
* &lt;element name="domains" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Domains" minOccurs="0"/&gt;
* &lt;element name="domain_constraints" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}DomainConstraints" minOccurs="0"/&gt;
* &lt;element name="indexes" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Indexes" minOccurs="0"/&gt;
* &lt;element name="index_column_usages" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}IndexColumnUsages" minOccurs="0"/&gt;
* &lt;element name="routines" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Routines" minOccurs="0"/&gt;
* &lt;element name="parameters" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Parameters" minOccurs="0"/&gt;
* &lt;element name="element_types" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}ElementTypes" minOccurs="0"/&gt;
* &lt;element name="triggers" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}Triggers" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;
* &lt;/complexContent&gt;
@ -62,7 +62,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class InformationSchema implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElementWrapper(name = "catalogs")
@XmlElement(name = "catalog")
protected List<Catalog> catalogs;

View File

@ -49,7 +49,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class KeyColumnUsage implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "column_name", required = true)
@XmlJavaTypeAdapter(StringAdapter.class)
protected String columnName;

View File

@ -28,7 +28,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="specific_package" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="specific_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="ordinal_position" type="{http://www.w3.org/2001/XMLSchema}int"/&gt;
* &lt;element name="parameter_mode" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}ParameterMode"/&gt;
* &lt;element name="parameter_mode" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}ParameterMode"/&gt;
* &lt;element name="parameter_name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="data_type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="character_maximum_length" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/&gt;
@ -57,7 +57,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Parameter implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "specific_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String specificCatalog;

View File

@ -46,7 +46,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class ReferentialConstraint implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "constraint_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String constraintCatalog;

View File

@ -31,7 +31,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="routine_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="routine_package" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="routine_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="routine_type" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}RoutineType"/&gt;
* &lt;element name="routine_type" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}RoutineType"/&gt;
* &lt;element name="data_type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="character_maximum_length" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/&gt;
* &lt;element name="numeric_precision" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/&gt;
@ -58,7 +58,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Routine implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "specific_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String specificCatalog;

View File

@ -43,7 +43,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Schema implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "catalog_name")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String catalogName;

View File

@ -55,7 +55,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Sequence implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "sequence_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String sequenceCatalog;

View File

@ -26,7 +26,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="table_catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="table_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="table_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="table_type" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TableType" minOccurs="0"/&gt;
* &lt;element name="table_type" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TableType" minOccurs="0"/&gt;
* &lt;element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;/all&gt;
* &lt;/restriction&gt;
@ -46,7 +46,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Table implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "table_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tableCatalog;

View File

@ -26,7 +26,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="constraint_catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="constraint_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="constraint_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="constraint_type" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TableConstraintType"/&gt;
* &lt;element name="constraint_type" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TableConstraintType"/&gt;
* &lt;element name="table_catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="table_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="table_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
@ -50,7 +50,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class TableConstraint implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "constraint_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String constraintCatalog;

View File

@ -26,15 +26,15 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* &lt;element name="trigger_catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="trigger_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="trigger_name" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="event_manipulation" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TriggerEventManipulation"/&gt;
* &lt;element name="event_manipulation" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TriggerEventManipulation"/&gt;
* &lt;element name="event_object_catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="event_object_schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="event_object_table" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="action_order" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/&gt;
* &lt;element name="action_condition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="action_statement" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
* &lt;element name="action_orientation" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TriggerActionOrientation"/&gt;
* &lt;element name="action_timing" type="{http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd}TriggerActionTiming"/&gt;
* &lt;element name="action_orientation" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TriggerActionOrientation"/&gt;
* &lt;element name="action_timing" type="{http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd}TriggerActionTiming"/&gt;
* &lt;element name="action_reference_old_table" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="action_reference_new_table" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
* &lt;element name="action_reference_old_row" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
@ -57,7 +57,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class Trigger implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "trigger_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String triggerCatalog;

View File

@ -44,7 +44,7 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
public class View implements Serializable, XMLAppendable
{
private final static long serialVersionUID = 31900L;
private final static long serialVersionUID = 32000L;
@XmlElement(name = "table_catalog")
@XmlJavaTypeAdapter(StringAdapter.class)
protected String tableCatalog;

View File

@ -1,2 +1,2 @@
@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.jooq.util.xml.jaxb;

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd"
targetNamespace="http://www.jooq.org/xsd/jooq-meta-3.19.0.xsd"
xmlns:tns="http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd"
targetNamespace="http://www.jooq.org/xsd/jooq-meta-3.20.0.xsd"
elementFormDefault="qualified">
<element name="information_schema">
@ -84,6 +84,7 @@
<element name="is_nullable" type="boolean" minOccurs="0" maxOccurs="1" />
<element name="column_default" type="string" minOccurs="0" maxOccurs="1" />
<element name="comment" type="string" minOccurs="0" maxOccurs="1" />
<element name="hidden" type="boolean" minOccurs="0" maxOccurs="1" />
<element name="readonly" type="boolean" minOccurs="0" maxOccurs="1" />
<element name="is_generated" type="boolean" minOccurs="0" maxOccurs="1" />
<element name="generation_expression" type="string" minOccurs="0" maxOccurs="1" />