diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
index b18522b53f..cf4f50a57d 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
@@ -52,10 +52,12 @@ import static org.jooq.SQLDialect.SQLITE;
// ...
import static org.jooq.impl.DSL.count;
import static org.jooq.impl.DSL.falseCondition;
+import static org.jooq.impl.DSL.field;
import static org.jooq.impl.DSL.noCondition;
import static org.jooq.impl.DSL.one;
import static org.jooq.impl.DSL.partitionBy;
import static org.jooq.impl.DSL.rowNumber;
+import static org.jooq.impl.DSL.table;
import static org.jooq.impl.DSL.when;
import static org.jooq.meta.AbstractTypedElementDefinition.customType;
import static org.jooq.tools.StringUtils.defaultIfBlank;
@@ -2149,6 +2151,14 @@ public abstract class AbstractDatabase implements Database {
+
+
+
+
+
+
+
+
diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/SyntheticEnumType.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/SyntheticEnumType.java
index 54a5998eaa..ead273a395 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/SyntheticEnumType.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/SyntheticEnumType.java
@@ -31,6 +31,8 @@ import org.jooq.util.jaxb.tools.XMLBuilder;
* <element name="fields" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="literals" type="{http://www.jooq.org/xsd/jooq-codegen-3.19.0.xsd}SyntheticEnumLiteralsType" minOccurs="0"/>
* <element name="literalSql" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="literalsFromColumnContent" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="literalsFromCheckConstraints" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
* <element name="comment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* </all>
* </restriction>
@@ -59,6 +61,8 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
protected String fields;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String literalSql;
+ protected Boolean literalsFromColumnContent;
+ protected Boolean literalsFromCheckConstraints;
@XmlJavaTypeAdapter(StringAdapter.class)
protected String comment;
@XmlElementWrapper(name = "literals")
@@ -129,6 +133,54 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
this.literalSql = value;
}
+ /**
+ * The matched column's content defines the literals (this is convenience for {@link #literalSql} being SELECT DISTINCT matched_column FROM matched_table).
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isLiteralsFromColumnContent() {
+ return literalsFromColumnContent;
+ }
+
+ /**
+ * Sets the value of the literalsFromColumnContent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setLiteralsFromColumnContent(Boolean value) {
+ this.literalsFromColumnContent = value;
+ }
+
+ /**
+ * The list of literals is parsed from the applicable CHECK constraints for the matched column, if possible.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isLiteralsFromCheckConstraints() {
+ return literalsFromCheckConstraints;
+ }
+
+ /**
+ * Sets the value of the literalsFromCheckConstraints property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setLiteralsFromCheckConstraints(Boolean value) {
+ this.literalsFromCheckConstraints = value;
+ }
+
/**
* The enum comment.
*
@@ -192,6 +244,16 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
return this;
}
+ public SyntheticEnumType withLiteralsFromColumnContent(Boolean value) {
+ setLiteralsFromColumnContent(value);
+ return this;
+ }
+
+ public SyntheticEnumType withLiteralsFromCheckConstraints(Boolean value) {
+ setLiteralsFromCheckConstraints(value);
+ return this;
+ }
+
/**
* The enum comment.
*
@@ -228,6 +290,8 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
builder.append("tables", tables);
builder.append("fields", fields);
builder.append("literalSql", literalSql);
+ builder.append("literalsFromColumnContent", literalsFromColumnContent);
+ builder.append("literalsFromCheckConstraints", literalsFromCheckConstraints);
builder.append("comment", comment);
builder.append("literals", "literal", literals);
}
@@ -287,6 +351,24 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
return false;
}
}
+ if (literalsFromColumnContent == null) {
+ if (other.literalsFromColumnContent!= null) {
+ return false;
+ }
+ } else {
+ if (!literalsFromColumnContent.equals(other.literalsFromColumnContent)) {
+ return false;
+ }
+ }
+ if (literalsFromCheckConstraints == null) {
+ if (other.literalsFromCheckConstraints!= null) {
+ return false;
+ }
+ } else {
+ if (!literalsFromCheckConstraints.equals(other.literalsFromCheckConstraints)) {
+ return false;
+ }
+ }
if (comment == null) {
if (other.comment!= null) {
return false;
@@ -316,6 +398,8 @@ public class SyntheticEnumType implements Serializable, XMLAppendable
result = ((prime*result)+((tables == null)? 0 :tables.hashCode()));
result = ((prime*result)+((fields == null)? 0 :fields.hashCode()));
result = ((prime*result)+((literalSql == null)? 0 :literalSql.hashCode()));
+ result = ((prime*result)+((literalsFromColumnContent == null)? 0 :literalsFromColumnContent.hashCode()));
+ result = ((prime*result)+((literalsFromCheckConstraints == null)? 0 :literalsFromCheckConstraints.hashCode()));
result = ((prime*result)+((comment == null)? 0 :comment.hashCode()));
result = ((prime*result)+((literals == null)? 0 :literals.hashCode()));
return result;
diff --git a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.19.0.xsd b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.19.0.xsd
index bbb727ea03..5adc46c3d5 100644
--- a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.19.0.xsd
+++ b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.19.0.xsd
@@ -1309,6 +1309,14 @@ Use this along with the synthetic primary key feature to replace existing primar
+
+
+ SELECT DISTINCT matched_column FROM matched_table).]]>
+
+
+
+ CHECK constraints for the matched column, if possible.]]>
+