diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java index 7d239a8179..4f3dc9210d 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java @@ -74,7 +74,7 @@ public final class Constants { /** * The current jooq-runtime XSD file name. */ - public static final String XSD_RUNTIME = "jooq-runtime-3.17.0.xsd"; + public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd"; /** * The current jooq-runtime XML namespace. diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java b/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java index 98f31fd49c..97cac46f1a 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java @@ -74,7 +74,7 @@ public final class Constants { /** * The current jooq-runtime XSD file name. */ - public static final String XSD_RUNTIME = "jooq-runtime-3.17.0.xsd"; + public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd"; /** * The current jooq-runtime XML namespace. diff --git a/jOOQ/src/main/java/org/jooq/Constants.java b/jOOQ/src/main/java/org/jooq/Constants.java index 9b13483e81..e693c00e95 100644 --- a/jOOQ/src/main/java/org/jooq/Constants.java +++ b/jOOQ/src/main/java/org/jooq/Constants.java @@ -74,7 +74,7 @@ public final class Constants { /** * The current jooq-runtime XSD file name. */ - public static final String XSD_RUNTIME = "jooq-runtime-3.17.0.xsd"; + public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd"; /** * The current jooq-runtime XML namespace. diff --git a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java index bd827affbe..5dd24cf48e 100644 --- a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java @@ -28,7 +28,7 @@ public class InterpreterSearchSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java index 935fa7c546..c5dc131855 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java @@ -34,7 +34,7 @@ public class MappedCatalog implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java index 9259c5a211..06c1e01a58 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java @@ -34,7 +34,7 @@ public class MappedSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java index 69f0937747..78052e4fba 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java +++ b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java @@ -30,7 +30,7 @@ public class MappedTable implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String input; @XmlElement(type = String.class) @XmlJavaTypeAdapter(RegexAdapter.class) diff --git a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java index 1cbb518f2e..0eba528738 100644 --- a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java @@ -28,7 +28,7 @@ public class MigrationSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java b/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java index 4c31a14992..e6ec6b8753 100644 --- a/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java +++ b/jOOQ/src/main/java/org/jooq/conf/ObjectFactory.java @@ -24,7 +24,7 @@ import javax.xml.namespace.QName; @XmlRegistry public class ObjectFactory { - private final static QName _Settings_QNAME = new QName("http://www.jooq.org/xsd/jooq-runtime-3.17.0.xsd", "settings"); + private final static QName _Settings_QNAME = new QName("http://www.jooq.org/xsd/jooq-runtime-3.18.0.xsd", "settings"); /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.jooq.conf @@ -113,7 +113,7 @@ public class ObjectFactory { * @return * the new instance of {@link JAXBElement }{@code <}{@link Settings }{@code >} */ - @XmlElementDecl(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.17.0.xsd", name = "settings") + @XmlElementDecl(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.18.0.xsd", name = "settings") public JAXBElement createSettings(Settings value) { return new JAXBElement(_Settings_QNAME, Settings.class, null, value); } diff --git a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java index 1948b8e602..5d3fabfe3a 100644 --- a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java +++ b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java @@ -28,7 +28,7 @@ public class ParseSearchSchema implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String catalog; @XmlElement(required = true) protected String schema; diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java index 2df64ef696..cd9f9d0121 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java @@ -28,7 +28,7 @@ public class RenderFormatting implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; @XmlElement(defaultValue = "\n") protected String newline = "\n"; @XmlElement(defaultValue = " ") diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java index 5bc65ab29c..66806c2fa6 100644 --- a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java +++ b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java @@ -32,7 +32,7 @@ public class RenderMapping implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; protected String defaultCatalog; protected String defaultSchema; @XmlElementWrapper(name = "catalogs") diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index 3b5793c96f..91dbd596bc 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -20,9 +20,9 @@ import org.jooq.util.jaxb.tools.XMLBuilder; /** * Settings that influence the way jOOQ renders SQL code. - * - * - * + * + * + * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Settings", propOrder = { @@ -36,7 +36,7 @@ public class Settings implements Serializable, Cloneable, XMLAppendable { - private final static long serialVersionUID = 31700L; + private final static long serialVersionUID = 31800L; @XmlElement(defaultValue = "true") protected Boolean forceIntegerTypesOnZeroScaleDecimals = true; @XmlElement(defaultValue = "true") @@ -196,6 +196,9 @@ public class Settings @XmlElement(defaultValue = "NEVER") @XmlSchemaType(name = "string") protected TransformUnneededArithmeticExpressions transformUnneededArithmeticExpressions = TransformUnneededArithmeticExpressions.NEVER; + @XmlElement(defaultValue = "WHEN_NEEDED") + @XmlSchemaType(name = "string") + protected Transformation transformGroupByColumnIndex = Transformation.WHEN_NEEDED; @XmlElement(defaultValue = "DEFAULT") @XmlSchemaType(name = "string") protected BackslashEscaping backslashEscaping = BackslashEscaping.DEFAULT; @@ -417,11 +420,11 @@ public class Settings /** * Historically, zero-scale decimal types are generated as their most appropriate, corresponding integer type (e.g. NUMBER(2, 0) and less: Byte). The same behaviour is replicated in the {@link org.jooq.Meta} API. This flag allows for turning off this feature. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isForceIntegerTypesOnZeroScaleDecimals() { return forceIntegerTypesOnZeroScaleDecimals; @@ -429,11 +432,11 @@ public class Settings /** * Sets the value of the forceIntegerTypesOnZeroScaleDecimals property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setForceIntegerTypesOnZeroScaleDecimals(Boolean value) { this.forceIntegerTypesOnZeroScaleDecimals = value; @@ -444,11 +447,11 @@ public class Settings *

* Use this for single-catalog environments, or when all objects are made * available using synonyms - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderCatalog() { return renderCatalog; @@ -456,11 +459,11 @@ public class Settings /** * Sets the value of the renderCatalog property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderCatalog(Boolean value) { this.renderCatalog = value; @@ -473,11 +476,11 @@ public class Settings *

* Use this for single-schema environments, or when all objects are made * available using synonyms - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderSchema() { return renderSchema; @@ -485,11 +488,11 @@ public class Settings /** * Sets the value of the renderSchema property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderSchema(Boolean value) { this.renderSchema = value; @@ -498,7 +501,7 @@ public class Settings /** * Configure render mapping for runtime schema / table rewriting in * generated SQL. - * + * */ public RenderMapping getRenderMapping() { return renderMapping; @@ -507,7 +510,7 @@ public class Settings /** * Configure render mapping for runtime schema / table rewriting in * generated SQL. - * + * */ public void setRenderMapping(RenderMapping value) { this.renderMapping = value; @@ -519,7 +522,7 @@ public class Settings * This only affects names created through {@link org.jooq.impl.DSL#name(String)} methods (including those that are implicitly created through this method), not {@link org.jooq.impl.DSL#quotedName(String)} or {@link org.jooq.impl.DSL#unquotedName(String)}, whose behaviour cannot be overridden. *

* This setting does not affect any plain SQL usage. - * + * */ public RenderQuotedNames getRenderQuotedNames() { return renderQuotedNames; @@ -531,7 +534,7 @@ public class Settings * This only affects names created through {@link org.jooq.impl.DSL#name(String)} methods (including those that are implicitly created through this method), not {@link org.jooq.impl.DSL#quotedName(String)} or {@link org.jooq.impl.DSL#unquotedName(String)}, whose behaviour cannot be overridden. *

* This setting does not affect any plain SQL usage. - * + * */ public void setRenderQuotedNames(RenderQuotedNames value) { this.renderQuotedNames = value; @@ -543,7 +546,7 @@ public class Settings * Names are modified irrespective of the {@link #getRenderQuotedNames()} setting. *

* This setting does not affect any plain SQL usage. - * + * */ public RenderNameCase getRenderNameCase() { return renderNameCase; @@ -555,7 +558,7 @@ public class Settings * Names are modified irrespective of the {@link #getRenderQuotedNames()} setting. *

* This setting does not affect any plain SQL usage. - * + * */ public void setRenderNameCase(RenderNameCase value) { this.renderNameCase = value; @@ -568,7 +571,7 @@ public class Settings * This is set to "QUOTED" by default for backwards-compatibility. *

* @deprecated - 3.12.0 - [#5909] - Use {@link RenderQuotedNames} and {@link RenderNameCase} instead. - * + * */ @Deprecated public RenderNameStyle getRenderNameStyle() { @@ -582,7 +585,7 @@ public class Settings * This is set to "QUOTED" by default for backwards-compatibility. *

* @deprecated - 3.12.0 - [#5909] - Use {@link RenderQuotedNames} and {@link RenderNameCase} instead. - * + * */ @Deprecated public void setRenderNameStyle(RenderNameStyle value) { @@ -592,14 +595,14 @@ public class Settings /** * The prefix to use for named parameters in generated SQL. *

- * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name, when generating SQL. *

* "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public String getRenderNamedParamPrefix() { return renderNamedParamPrefix; @@ -608,14 +611,14 @@ public class Settings /** * The prefix to use for named parameters in generated SQL. *

- * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name, when generating SQL. *

* "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public void setRenderNamedParamPrefix(String value) { this.renderNamedParamPrefix = value; @@ -623,7 +626,7 @@ public class Settings /** * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. - * + * */ public RenderKeywordCase getRenderKeywordCase() { return renderKeywordCase; @@ -631,7 +634,7 @@ public class Settings /** * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. - * + * */ public void setRenderKeywordCase(RenderKeywordCase value) { this.renderKeywordCase = value; @@ -641,7 +644,7 @@ public class Settings * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. *

* @deprecated - 3.12.0 - [#5909] - Use {@link RenderKeywordCase} instead. - * + * */ @Deprecated public RenderKeywordStyle getRenderKeywordStyle() { @@ -652,7 +655,7 @@ public class Settings * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. *

* @deprecated - 3.12.0 - [#5909] - Use {@link RenderKeywordCase} instead. - * + * */ @Deprecated public void setRenderKeywordStyle(RenderKeywordStyle value) { @@ -661,7 +664,7 @@ public class Settings /** * The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to {@link #getLocale()}. - * + * */ public Locale getRenderLocale() { return renderLocale; @@ -669,7 +672,7 @@ public class Settings /** * The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to {@link #getLocale()}. - * + * */ public void setRenderLocale(Locale value) { this.renderLocale = value; @@ -677,11 +680,11 @@ public class Settings /** * Whether rendered SQL should be pretty-printed. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderFormatted() { return renderFormatted; @@ -689,11 +692,11 @@ public class Settings /** * Sets the value of the renderFormatted property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderFormatted(Boolean value) { this.renderFormatted = value; @@ -701,7 +704,7 @@ public class Settings /** * All sorts of formatting flags / settings. - * + * */ public RenderFormatting getRenderFormatting() { return renderFormatting; @@ -709,7 +712,7 @@ public class Settings /** * All sorts of formatting flags / settings. - * + * */ public void setRenderFormatting(RenderFormatting value) { this.renderFormatting = value; @@ -717,7 +720,7 @@ public class Settings /** * Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c). - * + * */ public RenderOptionalKeyword getRenderOptionalAssociativityParentheses() { return renderOptionalAssociativityParentheses; @@ -725,7 +728,7 @@ public class Settings /** * Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c). - * + * */ public void setRenderOptionalAssociativityParentheses(RenderOptionalKeyword value) { this.renderOptionalAssociativityParentheses = value; @@ -733,7 +736,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. This is ignored if the keyword is not supported (e.g. in Oracle) - * + * */ public RenderOptionalKeyword getRenderOptionalAsKeywordForTableAliases() { return renderOptionalAsKeywordForTableAliases; @@ -741,7 +744,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. This is ignored if the keyword is not supported (e.g. in Oracle) - * + * */ public void setRenderOptionalAsKeywordForTableAliases(RenderOptionalKeyword value) { this.renderOptionalAsKeywordForTableAliases = value; @@ -749,7 +752,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. - * + * */ public RenderOptionalKeyword getRenderOptionalAsKeywordForFieldAliases() { return renderOptionalAsKeywordForFieldAliases; @@ -757,7 +760,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. - * + * */ public void setRenderOptionalAsKeywordForFieldAliases(RenderOptionalKeyword value) { this.renderOptionalAsKeywordForFieldAliases = value; @@ -765,7 +768,7 @@ public class Settings /** * Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect. - * + * */ public RenderOptionalKeyword getRenderOptionalInnerKeyword() { return renderOptionalInnerKeyword; @@ -773,7 +776,7 @@ public class Settings /** * Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect. - * + * */ public void setRenderOptionalInnerKeyword(RenderOptionalKeyword value) { this.renderOptionalInnerKeyword = value; @@ -781,7 +784,7 @@ public class Settings /** * Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect. - * + * */ public RenderOptionalKeyword getRenderOptionalOuterKeyword() { return renderOptionalOuterKeyword; @@ -789,7 +792,7 @@ public class Settings /** * Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect. - * + * */ public void setRenderOptionalOuterKeyword(RenderOptionalKeyword value) { this.renderOptionalOuterKeyword = value; @@ -797,7 +800,7 @@ public class Settings /** * Whether to render an explicit window RANGE clause when an implicit clause is applied. - * + * */ public RenderImplicitWindowRange getRenderImplicitWindowRange() { return renderImplicitWindowRange; @@ -805,7 +808,7 @@ public class Settings /** * Whether to render an explicit window RANGE clause when an implicit clause is applied. - * + * */ public void setRenderImplicitWindowRange(RenderImplicitWindowRange value) { this.renderImplicitWindowRange = value; @@ -816,11 +819,11 @@ public class Settings *

* Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag * set to true, users can automatically profit from this feature in all SQL statements. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderScalarSubqueriesForStoredFunctions() { return renderScalarSubqueriesForStoredFunctions; @@ -828,11 +831,11 @@ public class Settings /** * Sets the value of the renderScalarSubqueriesForStoredFunctions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderScalarSubqueriesForStoredFunctions(Boolean value) { this.renderScalarSubqueriesForStoredFunctions = value; @@ -840,7 +843,7 @@ public class Settings /** * The join type to be generated by implicit joins. - * + * */ public RenderImplicitJoinType getRenderImplicitJoinType() { return renderImplicitJoinType; @@ -848,7 +851,7 @@ public class Settings /** * The join type to be generated by implicit joins. - * + * */ public void setRenderImplicitJoinType(RenderImplicitJoinType value) { this.renderImplicitJoinType = value; @@ -856,7 +859,7 @@ public class Settings /** * Whether the {@link org.jooq.Nullability#DEFAULT} nullablity should be rendered in generated DDL, and how it should be rendered. - * + * */ public RenderDefaultNullability getRenderDefaultNullability() { return renderDefaultNullability; @@ -864,7 +867,7 @@ public class Settings /** * Whether the {@link org.jooq.Nullability#DEFAULT} nullablity should be rendered in generated DDL, and how it should be rendered. - * + * */ public void setRenderDefaultNullability(RenderDefaultNullability value) { this.renderDefaultNullability = value; @@ -877,11 +880,11 @@ public class Settings * set to true, users can automatically profit from this feature in all SQL statements. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderCoalesceToEmptyStringInConcat() { return renderCoalesceToEmptyStringInConcat; @@ -889,11 +892,11 @@ public class Settings /** * Sets the value of the renderCoalesceToEmptyStringInConcat property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderCoalesceToEmptyStringInConcat(Boolean value) { this.renderCoalesceToEmptyStringInConcat = value; @@ -903,19 +906,19 @@ public class Settings * Whether an additional ORDER BY rn clause should be rendered on emulated paginated queries. *

* Older databases did not support OFFSET .. FETCH pagination, so jOOQ emulates it using derived - * tables and ROWNUM (Oracle 11g and older) or ROW_NUMBER() (e.g. DB2, - * SQL Server, etc.) filtering. While these subqueries are ordered, the ordering is not - * guaranteed to be stable in the outer most queries. It may be stable (and e.g. in Oracle, - * it mostly is, if queries are not parallel, or joined to other queries, etc.), so the excess - * ORDER BY clause may add some additional performance overhead. This setting forces + * tables and ROWNUM (Oracle 11g and older) or ROW_NUMBER() (e.g. DB2, + * SQL Server, etc.) filtering. While these subqueries are ordered, the ordering is not + * guaranteed to be stable in the outer most queries. It may be stable (and e.g. in Oracle, + * it mostly is, if queries are not parallel, or joined to other queries, etc.), so the excess + * ORDER BY clause may add some additional performance overhead. This setting forces * jOOQ to not generate the additional ORDER BY clause. *

* For details, see https://github.com/jOOQ/jOOQ/issues/7609. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderOrderByRownumberForEmulatedPagination() { return renderOrderByRownumberForEmulatedPagination; @@ -923,11 +926,11 @@ public class Settings /** * Sets the value of the renderOrderByRownumberForEmulatedPagination property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderOrderByRownumberForEmulatedPagination(Boolean value) { this.renderOrderByRownumberForEmulatedPagination = value; @@ -947,11 +950,11 @@ public class Settings * be enabled as well. *

* For details, see https://github.com/jOOQ/jOOQ/issues/4498. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderOutputForSQLServerReturningClause() { return renderOutputForSQLServerReturningClause; @@ -959,11 +962,11 @@ public class Settings /** * Sets the value of the renderOutputForSQLServerReturningClause property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderOutputForSQLServerReturningClause(Boolean value) { this.renderOutputForSQLServerReturningClause = value; @@ -978,11 +981,11 @@ public class Settings * query containing GROUP_CONCAT. This flag can be used to opt out of this. *

* For details, see https://github.com/jOOQ/jOOQ/issues/12092. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderGroupConcatMaxLenSessionVariable() { return renderGroupConcatMaxLenSessionVariable; @@ -990,11 +993,11 @@ public class Settings /** * Sets the value of the renderGroupConcatMaxLenSessionVariable property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderGroupConcatMaxLenSessionVariable(Boolean value) { this.renderGroupConcatMaxLenSessionVariable = value; @@ -1009,11 +1012,11 @@ public class Settings * When this setting is set to true the queries combined with set operators will always be surrounded by a parenthesis pair. *

* For details, see https://github.com/jOOQ/jOOQ/issues/3676 and https://github.com/jOOQ/jOOQ/issues/9751. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isRenderParenthesisAroundSetOperationQueries() { return renderParenthesisAroundSetOperationQueries; @@ -1021,11 +1024,11 @@ public class Settings /** * Sets the value of the renderParenthesisAroundSetOperationQueries property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setRenderParenthesisAroundSetOperationQueries(Boolean value) { this.renderParenthesisAroundSetOperationQueries = value; @@ -1037,14 +1040,14 @@ public class Settings * A few hierarchical mapping features work with paths encoded in names (specifically field aliases), such as the reflective mapping of nested values when aliasing fields as: *

*


-     * SELECT
+     * SELECT 
      *   a.first_name AS "book.author.firstName"
      *   a.last_name AS "book.author.lastName"
      * FROM ...
      * 
*

* Not all dialects support "." in identifiers. This setting allows for specifying an alternative String to use as separator, e.g. "__". - * + * */ public String getNamePathSeparator() { return namePathSeparator; @@ -1056,14 +1059,14 @@ public class Settings * A few hierarchical mapping features work with paths encoded in names (specifically field aliases), such as the reflective mapping of nested values when aliasing fields as: *

*


-     * SELECT
+     * SELECT 
      *   a.first_name AS "book.author.firstName"
      *   a.last_name AS "book.author.lastName"
      * FROM ...
      * 
*

* Not all dialects support "." in identifiers. This setting allows for specifying an alternative String to use as separator, e.g. "__". - * + * */ public void setNamePathSeparator(String value) { this.namePathSeparator = value; @@ -1077,11 +1080,11 @@ public class Settings * This flag allows for reverting to pre-jOOQ 3.14 behaviour, where the default is to bind these types natively. *

* For details, see https://github.com/jOOQ/jOOQ/issues/9902. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isBindOffsetDateTimeType() { return bindOffsetDateTimeType; @@ -1089,11 +1092,11 @@ public class Settings /** * Sets the value of the bindOffsetDateTimeType property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setBindOffsetDateTimeType(Boolean value) { this.bindOffsetDateTimeType = value; @@ -1107,11 +1110,11 @@ public class Settings * This flag allows for reverting to pre-jOOQ 3.14 behaviour, where the default is to bind these types natively. *

* For details, see https://github.com/jOOQ/jOOQ/issues/9902. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isBindOffsetTimeType() { return bindOffsetTimeType; @@ -1119,11 +1122,11 @@ public class Settings /** * Sets the value of the bindOffsetTimeType property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setBindOffsetTimeType(Boolean value) { this.bindOffsetTimeType = value; @@ -1138,11 +1141,11 @@ public class Settings * included in the OUTPUT clause. *

* For details, see https://github.com/jOOQ/jOOQ/issues/4498. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isFetchTriggerValuesAfterSQLServerOutput() { return fetchTriggerValuesAfterSQLServerOutput; @@ -1150,11 +1153,11 @@ public class Settings /** * Sets the value of the fetchTriggerValuesAfterSQLServerOutput property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setFetchTriggerValuesAfterSQLServerOutput(Boolean value) { this.fetchTriggerValuesAfterSQLServerOutput = value; @@ -1163,7 +1166,7 @@ public class Settings /** * Whether to fetch data into intermediate {@link org.jooq.Result} instances. *

- * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} + * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} * instances if they are not explicitly requested by the caller, e.g. by calling * {@link org.jooq.ResultQuery#fetch()}, or in the presence of {@link org.jooq.ExecuteListener} * instances, which may require access to {@link org.jooq.ExecuteContext#result()}. @@ -1171,7 +1174,7 @@ public class Settings *

* Using this flag, fetching of intermediate results can be turned off even when execute listeners * are present, or turned on even if they're absent. - * + * */ public FetchIntermediateResult getFetchIntermediateResult() { return fetchIntermediateResult; @@ -1180,7 +1183,7 @@ public class Settings /** * Whether to fetch data into intermediate {@link org.jooq.Result} instances. *

- * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} + * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} * instances if they are not explicitly requested by the caller, e.g. by calling * {@link org.jooq.ResultQuery#fetch()}, or in the presence of {@link org.jooq.ExecuteListener} * instances, which may require access to {@link org.jooq.ExecuteContext#result()}. @@ -1188,7 +1191,7 @@ public class Settings *

* Using this flag, fetching of intermediate results can be turned off even when execute listeners * are present, or turned on even if they're absent. - * + * */ public void setFetchIntermediateResult(FetchIntermediateResult value) { this.fetchIntermediateResult = value; @@ -1203,11 +1206,11 @@ public class Settings * default. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatterns() { return transformPatterns; @@ -1215,11 +1218,11 @@ public class Settings /** * Sets the value of the transformPatterns property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatterns(Boolean value) { this.transformPatterns = value; @@ -1227,11 +1230,11 @@ public class Settings /** * Activate debug logging of the {@link #transformPatterns} feature. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsLogging() { return transformPatternsLogging; @@ -1239,11 +1242,11 @@ public class Settings /** * Sets the value of the transformPatternsLogging property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsLogging(Boolean value) { this.transformPatternsLogging = value; @@ -1259,11 +1262,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsTrim() { return transformPatternsTrim; @@ -1271,11 +1274,11 @@ public class Settings /** * Sets the value of the transformPatternsTrim property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsTrim(Boolean value) { this.transformPatternsTrim = value; @@ -1289,11 +1292,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNotNot() { return transformPatternsNotNot; @@ -1301,11 +1304,11 @@ public class Settings /** * Sets the value of the transformPatternsNotNot property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNotNot(Boolean value) { this.transformPatternsNotNot = value; @@ -1319,11 +1322,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNotComparison() { return transformPatternsNotComparison; @@ -1331,11 +1334,11 @@ public class Settings /** * Sets the value of the transformPatternsNotComparison property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNotComparison(Boolean value) { this.transformPatternsNotComparison = value; @@ -1349,11 +1352,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNotNotDistinct() { return transformPatternsNotNotDistinct; @@ -1361,11 +1364,11 @@ public class Settings /** * Sets the value of the transformPatternsNotNotDistinct property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNotNotDistinct(Boolean value) { this.transformPatternsNotNotDistinct = value; @@ -1380,11 +1383,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNormaliseAssociativeOps() { return transformPatternsNormaliseAssociativeOps; @@ -1392,11 +1395,11 @@ public class Settings /** * Sets the value of the transformPatternsNormaliseAssociativeOps property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNormaliseAssociativeOps(Boolean value) { this.transformPatternsNormaliseAssociativeOps = value; @@ -1408,11 +1411,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNormaliseInListSingleElementToComparison() { return transformPatternsNormaliseInListSingleElementToComparison; @@ -1420,11 +1423,11 @@ public class Settings /** * Sets the value of the transformPatternsNormaliseInListSingleElementToComparison property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNormaliseInListSingleElementToComparison(Boolean value) { this.transformPatternsNormaliseInListSingleElementToComparison = value; @@ -1438,11 +1441,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNormaliseFieldCompareValue() { return transformPatternsNormaliseFieldCompareValue; @@ -1450,11 +1453,11 @@ public class Settings /** * Sets the value of the transformPatternsNormaliseFieldCompareValue property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNormaliseFieldCompareValue(Boolean value) { this.transformPatternsNormaliseFieldCompareValue = value; @@ -1468,11 +1471,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsOrEqToIn() { return transformPatternsOrEqToIn; @@ -1480,11 +1483,11 @@ public class Settings /** * Sets the value of the transformPatternsOrEqToIn property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsOrEqToIn(Boolean value) { this.transformPatternsOrEqToIn = value; @@ -1498,11 +1501,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsAndNeToNotIn() { return transformPatternsAndNeToNotIn; @@ -1510,11 +1513,11 @@ public class Settings /** * Sets the value of the transformPatternsAndNeToNotIn property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsAndNeToNotIn(Boolean value) { this.transformPatternsAndNeToNotIn = value; @@ -1528,11 +1531,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsMergeOrComparison() { return transformPatternsMergeOrComparison; @@ -1540,11 +1543,11 @@ public class Settings /** * Sets the value of the transformPatternsMergeOrComparison property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsMergeOrComparison(Boolean value) { this.transformPatternsMergeOrComparison = value; @@ -1558,11 +1561,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsMergeAndComparison() { return transformPatternsMergeAndComparison; @@ -1570,11 +1573,11 @@ public class Settings /** * Sets the value of the transformPatternsMergeAndComparison property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsMergeAndComparison(Boolean value) { this.transformPatternsMergeAndComparison = value; @@ -1588,11 +1591,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsMergeInLists() { return transformPatternsMergeInLists; @@ -1600,11 +1603,11 @@ public class Settings /** * Sets the value of the transformPatternsMergeInLists property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsMergeInLists(Boolean value) { this.transformPatternsMergeInLists = value; @@ -1618,11 +1621,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsMergeRangePredicates() { return transformPatternsMergeRangePredicates; @@ -1630,11 +1633,11 @@ public class Settings /** * Sets the value of the transformPatternsMergeRangePredicates property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsMergeRangePredicates(Boolean value) { this.transformPatternsMergeRangePredicates = value; @@ -1648,11 +1651,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsMergeBetweenSymmetricPredicates() { return transformPatternsMergeBetweenSymmetricPredicates; @@ -1660,11 +1663,11 @@ public class Settings /** * Sets the value of the transformPatternsMergeBetweenSymmetricPredicates property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsMergeBetweenSymmetricPredicates(Boolean value) { this.transformPatternsMergeBetweenSymmetricPredicates = value; @@ -1677,11 +1680,11 @@ public class Settings * COALESCE(), NULLIF(), etc. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsTrivialCaseAbbreviation() { return transformPatternsTrivialCaseAbbreviation; @@ -1689,11 +1692,11 @@ public class Settings /** * Sets the value of the transformPatternsTrivialCaseAbbreviation property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsTrivialCaseAbbreviation(Boolean value) { this.transformPatternsTrivialCaseAbbreviation = value; @@ -1705,11 +1708,11 @@ public class Settings * This transformation removes any trivial predicates. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsTrivialPredicates() { return transformPatternsTrivialPredicates; @@ -1717,11 +1720,11 @@ public class Settings /** * Sets the value of the transformPatternsTrivialPredicates property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsTrivialPredicates(Boolean value) { this.transformPatternsTrivialPredicates = value; @@ -1733,11 +1736,11 @@ public class Settings * Scalar subqueries that count rows and whose count is compared to 0 can be transformed into equivalent, but likely cheaper to execute EXISTS queries. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsScalarSubqueryCountAsteriskGtZero() { return transformPatternsScalarSubqueryCountAsteriskGtZero; @@ -1745,11 +1748,11 @@ public class Settings /** * Sets the value of the transformPatternsScalarSubqueryCountAsteriskGtZero property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsScalarSubqueryCountAsteriskGtZero(Boolean value) { this.transformPatternsScalarSubqueryCountAsteriskGtZero = value; @@ -1761,11 +1764,11 @@ public class Settings * Scalar subqueries that count non-null expressions and whose count is compared to 0 can be transformed into equivalent, but likely cheaper to execute EXISTS queries. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsScalarSubqueryCountExpressionGtZero() { return transformPatternsScalarSubqueryCountExpressionGtZero; @@ -1773,11 +1776,11 @@ public class Settings /** * Sets the value of the transformPatternsScalarSubqueryCountExpressionGtZero property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsScalarSubqueryCountExpressionGtZero(Boolean value) { this.transformPatternsScalarSubqueryCountExpressionGtZero = value; @@ -1789,11 +1792,11 @@ public class Settings * Scalar subqueries that are guaranteed to produce no results can be replaced by a NULL value. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsEmptyScalarSubquery() { return transformPatternsEmptyScalarSubquery; @@ -1801,11 +1804,11 @@ public class Settings /** * Sets the value of the transformPatternsEmptyScalarSubquery property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsEmptyScalarSubquery(Boolean value) { this.transformPatternsEmptyScalarSubquery = value; @@ -1819,11 +1822,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsNegNeg() { return transformPatternsNegNeg; @@ -1831,11 +1834,11 @@ public class Settings /** * Sets the value of the transformPatternsNegNeg property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsNegNeg(Boolean value) { this.transformPatternsNegNeg = value; @@ -1849,11 +1852,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsBitNotBitNot() { return transformPatternsBitNotBitNot; @@ -1861,11 +1864,11 @@ public class Settings /** * Sets the value of the transformPatternsBitNotBitNot property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsBitNotBitNot(Boolean value) { this.transformPatternsBitNotBitNot = value; @@ -1879,11 +1882,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsBitNotBitNand() { return transformPatternsBitNotBitNand; @@ -1891,11 +1894,11 @@ public class Settings /** * Sets the value of the transformPatternsBitNotBitNand property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsBitNotBitNand(Boolean value) { this.transformPatternsBitNotBitNand = value; @@ -1909,11 +1912,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsBitNotBitNor() { return transformPatternsBitNotBitNor; @@ -1921,11 +1924,11 @@ public class Settings /** * Sets the value of the transformPatternsBitNotBitNor property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsBitNotBitNor(Boolean value) { this.transformPatternsBitNotBitNor = value; @@ -1939,11 +1942,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsBitNotBitXNor() { return transformPatternsBitNotBitXNor; @@ -1951,11 +1954,11 @@ public class Settings /** * Sets the value of the transformPatternsBitNotBitXNor property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsBitNotBitXNor(Boolean value) { this.transformPatternsBitNotBitXNor = value; @@ -1979,11 +1982,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsIdempotentFunctionRepetition() { return transformPatternsIdempotentFunctionRepetition; @@ -1991,11 +1994,11 @@ public class Settings /** * Sets the value of the transformPatternsIdempotentFunctionRepetition property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsIdempotentFunctionRepetition(Boolean value) { this.transformPatternsIdempotentFunctionRepetition = value; @@ -2009,11 +2012,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsArithmeticExpressions() { return transformPatternsArithmeticExpressions; @@ -2021,11 +2024,11 @@ public class Settings /** * Sets the value of the transformPatternsArithmeticExpressions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsArithmeticExpressions(Boolean value) { this.transformPatternsArithmeticExpressions = value; @@ -2039,11 +2042,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsTrigonometricFunctions() { return transformPatternsTrigonometricFunctions; @@ -2051,11 +2054,11 @@ public class Settings /** * Sets the value of the transformPatternsTrigonometricFunctions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsTrigonometricFunctions(Boolean value) { this.transformPatternsTrigonometricFunctions = value; @@ -2069,11 +2072,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsLogarithmicFunctions() { return transformPatternsLogarithmicFunctions; @@ -2081,11 +2084,11 @@ public class Settings /** * Sets the value of the transformPatternsLogarithmicFunctions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsLogarithmicFunctions(Boolean value) { this.transformPatternsLogarithmicFunctions = value; @@ -2099,11 +2102,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsHyperbolicFunctions() { return transformPatternsHyperbolicFunctions; @@ -2111,11 +2114,11 @@ public class Settings /** * Sets the value of the transformPatternsHyperbolicFunctions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsHyperbolicFunctions(Boolean value) { this.transformPatternsHyperbolicFunctions = value; @@ -2129,11 +2132,11 @@ public class Settings * To enable this feature, {@link #transformPatterns} must be enabled as well. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformPatternsInverseHyperbolicFunctions() { return transformPatternsInverseHyperbolicFunctions; @@ -2141,11 +2144,11 @@ public class Settings /** * Sets the value of the transformPatternsInverseHyperbolicFunctions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformPatternsInverseHyperbolicFunctions(Boolean value) { this.transformPatternsInverseHyperbolicFunctions = value; @@ -2153,9 +2156,9 @@ public class Settings /** * Transform {@link org.jooq.impl.QOM.CompareCondition} and a few other types of condition to inline their bind values, in case they match - * + * *

- * Historically, prior to ANSI join syntax, joins were implemented by listing tables in + * Historically, prior to ANSI join syntax, joins were implemented by listing tables in * the FROM clause and providing join predicates in the WHERE clause, possibly using vendor specific * operators like (+) (Oracle, DB2) or *= (SQL Server) for outer join * support. For backwards compatibility with older RDBMS versions, ANSI joins in jOOQ code may be @@ -2165,11 +2168,11 @@ public class Settings * (only for simple comparison predicates). *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformInlineBindValuesForFieldComparisons() { return transformInlineBindValuesForFieldComparisons; @@ -2177,11 +2180,11 @@ public class Settings /** * Sets the value of the transformInlineBindValuesForFieldComparisons property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformInlineBindValuesForFieldComparisons(Boolean value) { this.transformInlineBindValuesForFieldComparisons = value; @@ -2190,7 +2193,7 @@ public class Settings /** * Transform ANSI join to table lists if possible. *

- * Historically, prior to ANSI join syntax, joins were implemented by listing tables in + * Historically, prior to ANSI join syntax, joins were implemented by listing tables in * the FROM clause and providing join predicates in the WHERE clause, possibly using vendor specific * operators like (+) (Oracle, DB2) or *= (SQL Server) for outer join * support. For backwards compatibility with older RDBMS versions, ANSI joins in jOOQ code may be @@ -2200,11 +2203,11 @@ public class Settings * (only for simple comparison predicates). *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformAnsiJoinToTableLists() { return transformAnsiJoinToTableLists; @@ -2212,11 +2215,11 @@ public class Settings /** * Sets the value of the transformAnsiJoinToTableLists property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformAnsiJoinToTableLists(Boolean value) { this.transformAnsiJoinToTableLists = value; @@ -2228,7 +2231,7 @@ public class Settings * This transformation works around a known MySQL limitation "ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" *

* This feature is available in the commercial distribution only. - * + * */ public Transformation getTransformInConditionSubqueryWithLimitToDerivedTable() { return transformInConditionSubqueryWithLimitToDerivedTable; @@ -2240,7 +2243,7 @@ public class Settings * This transformation works around a known MySQL limitation "ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" *

* This feature is available in the commercial distribution only. - * + * */ public void setTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value) { this.transformInConditionSubqueryWithLimitToDerivedTable = value; @@ -2250,7 +2253,7 @@ public class Settings * Transform the QUALIFY clause to an equivalent derived table to filter on window functions. *

* This feature is available in the commercial distribution only. - * + * */ public Transformation getTransformQualify() { return transformQualify; @@ -2260,7 +2263,7 @@ public class Settings * Transform the QUALIFY clause to an equivalent derived table to filter on window functions. *

* This feature is available in the commercial distribution only. - * + * */ public void setTransformQualify(Transformation value) { this.transformQualify = value; @@ -2269,18 +2272,18 @@ public class Settings /** * Transform table lists to ANSI join if possible. *

- * (Very) historically, prior to ANSI join syntax, joins were implemented by listing tables in + * (Very) historically, prior to ANSI join syntax, joins were implemented by listing tables in * the FROM clause and providing join predicates in the WHERE clause, possibly using vendor specific * operators like (+) (Oracle, DB2) or *= (SQL Server) for outer join * support. Migrating such join syntax is tedious. The jOOQ parser can parse the old syntax and * this flag enables the transformation to ANSI join syntax. *

* This feature is available in the commercial distribution only. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isTransformTableListsToAnsiJoin() { return transformTableListsToAnsiJoin; @@ -2288,11 +2291,11 @@ public class Settings /** * Sets the value of the transformTableListsToAnsiJoin property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setTransformTableListsToAnsiJoin(Boolean value) { this.transformTableListsToAnsiJoin = value; @@ -2307,7 +2310,7 @@ public class Settings * equivalent SQL, if possible. *

* This feature is available in the commercial distribution only. - * + * */ public Transformation getTransformRownum() { return transformRownum; @@ -2322,7 +2325,7 @@ public class Settings * equivalent SQL, if possible. *

* This feature is available in the commercial distribution only. - * + * */ public void setTransformRownum(Transformation value) { this.transformRownum = value; @@ -2335,7 +2338,7 @@ public class Settings * Expressions on literals and bind variables could be evaluated in the client prior to generating SQL. *

* This feature is available in the commercial distribution only. - * + * */ public TransformUnneededArithmeticExpressions getTransformUnneededArithmeticExpressions() { return transformUnneededArithmeticExpressions; @@ -2348,15 +2351,43 @@ public class Settings * Expressions on literals and bind variables could be evaluated in the client prior to generating SQL. *

* This feature is available in the commercial distribution only. - * + * */ public void setTransformUnneededArithmeticExpressions(TransformUnneededArithmeticExpressions value) { this.transformUnneededArithmeticExpressions = value; } + /** + * Transform GROUP BY [column index] clauses by substituting the column index. + *

+ * Not all dialects support grouping by column index, which is a convenient but also a bit confusing feature of + * some dialects. jOOQ can transform the syntax into an equivalent syntax where the referenced SELECT + * expression is duplicated into the GROUP BY clause. + *

+ * This feature is available in the commercial distribution only. + * + */ + public Transformation getTransformGroupByColumnIndex() { + return transformGroupByColumnIndex; + } + + /** + * Transform GROUP BY [column index] clauses by substituting the column index. + *

+ * Not all dialects support grouping by column index, which is a convenient but also a bit confusing feature of + * some dialects. jOOQ can transform the syntax into an equivalent syntax where the referenced SELECT + * expression is duplicated into the GROUP BY clause. + *

+ * This feature is available in the commercial distribution only. + * + */ + public void setTransformGroupByColumnIndex(Transformation value) { + this.transformGroupByColumnIndex = value; + } + /** * Whether string literals should be escaped with backslash. - * + * */ public BackslashEscaping getBackslashEscaping() { return backslashEscaping; @@ -2364,7 +2395,7 @@ public class Settings /** * Whether string literals should be escaped with backslash. - * + * */ public void setBackslashEscaping(BackslashEscaping value) { this.backslashEscaping = value; @@ -2374,15 +2405,15 @@ public class Settings * Specify how bind variables are to be rendered. *

* Possibilities include: - * + * * - question marks * - named parameters * - named or inlined parameters * - inlined parameters - * + * * This value is overridden by statementType == STATIC_STATEMENT, in * case of which, this defaults to INLINED - * + * */ public ParamType getParamType() { return paramType; @@ -2392,15 +2423,15 @@ public class Settings * Specify how bind variables are to be rendered. *

* Possibilities include: - * + * * - question marks * - named parameters * - named or inlined parameters * - inlined parameters - * + * * This value is overridden by statementType == STATIC_STATEMENT, in * case of which, this defaults to INLINED - * + * */ public void setParamType(ParamType value) { this.paramType = value; @@ -2408,7 +2439,7 @@ public class Settings /** * Whether rendered bind values should be cast to their respective type. - * + * */ public ParamCastMode getParamCastMode() { return paramCastMode; @@ -2416,7 +2447,7 @@ public class Settings /** * Whether rendered bind values should be cast to their respective type. - * + * */ public void setParamCastMode(ParamCastMode value) { this.paramCastMode = value; @@ -2424,7 +2455,7 @@ public class Settings /** * The type of statement that is to be executed. - * + * */ public StatementType getStatementType() { return statementType; @@ -2432,7 +2463,7 @@ public class Settings /** * The type of statement that is to be executed. - * + * */ public void setStatementType(StatementType value) { this.statementType = value; @@ -2448,7 +2479,7 @@ public class Settings *

  • {@link org.jooq.SQLDialect#SQLITE} : 999
  • *
  • {@link org.jooq.SQLDialect#SQLSERVER} : 2100
  • * - * + * */ public Integer getInlineThreshold() { return inlineThreshold; @@ -2464,7 +2495,7 @@ public class Settings *
  • {@link org.jooq.SQLDialect#SQLITE} : 999
  • *
  • {@link org.jooq.SQLDialect#SQLSERVER} : 2100
  • * - * + * */ public void setInlineThreshold(Integer value) { this.inlineThreshold = value; @@ -2472,7 +2503,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public InvocationOrder getTransactionListenerStartInvocationOrder() { return transactionListenerStartInvocationOrder; @@ -2480,7 +2511,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public void setTransactionListenerStartInvocationOrder(InvocationOrder value) { this.transactionListenerStartInvocationOrder = value; @@ -2488,7 +2519,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public InvocationOrder getTransactionListenerEndInvocationOrder() { return transactionListenerEndInvocationOrder; @@ -2496,7 +2527,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public void setTransactionListenerEndInvocationOrder(InvocationOrder value) { this.transactionListenerEndInvocationOrder = value; @@ -2504,7 +2535,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public InvocationOrder getMigrationListenerStartInvocationOrder() { return migrationListenerStartInvocationOrder; @@ -2512,7 +2543,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public void setMigrationListenerStartInvocationOrder(InvocationOrder value) { this.migrationListenerStartInvocationOrder = value; @@ -2520,7 +2551,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public InvocationOrder getMigrationListenerEndInvocationOrder() { return migrationListenerEndInvocationOrder; @@ -2528,7 +2559,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public void setMigrationListenerEndInvocationOrder(InvocationOrder value) { this.migrationListenerEndInvocationOrder = value; @@ -2536,7 +2567,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.VisitListener}s. - * + * */ public InvocationOrder getVisitListenerStartInvocationOrder() { return visitListenerStartInvocationOrder; @@ -2544,7 +2575,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.VisitListener}s. - * + * */ public void setVisitListenerStartInvocationOrder(InvocationOrder value) { this.visitListenerStartInvocationOrder = value; @@ -2552,7 +2583,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.VisitListener}s. - * + * */ public InvocationOrder getVisitListenerEndInvocationOrder() { return visitListenerEndInvocationOrder; @@ -2560,7 +2591,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.VisitListener}s. - * + * */ public void setVisitListenerEndInvocationOrder(InvocationOrder value) { this.visitListenerEndInvocationOrder = value; @@ -2568,7 +2599,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.RecordListener}s. - * + * */ public InvocationOrder getRecordListenerStartInvocationOrder() { return recordListenerStartInvocationOrder; @@ -2576,7 +2607,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.RecordListener}s. - * + * */ public void setRecordListenerStartInvocationOrder(InvocationOrder value) { this.recordListenerStartInvocationOrder = value; @@ -2584,7 +2615,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.RecordListener}s. - * + * */ public InvocationOrder getRecordListenerEndInvocationOrder() { return recordListenerEndInvocationOrder; @@ -2592,7 +2623,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.RecordListener}s. - * + * */ public void setRecordListenerEndInvocationOrder(InvocationOrder value) { this.recordListenerEndInvocationOrder = value; @@ -2600,7 +2631,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public InvocationOrder getExecuteListenerStartInvocationOrder() { return executeListenerStartInvocationOrder; @@ -2608,7 +2639,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public void setExecuteListenerStartInvocationOrder(InvocationOrder value) { this.executeListenerStartInvocationOrder = value; @@ -2616,7 +2647,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public InvocationOrder getExecuteListenerEndInvocationOrder() { return executeListenerEndInvocationOrder; @@ -2624,7 +2655,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public void setExecuteListenerEndInvocationOrder(InvocationOrder value) { this.executeListenerEndInvocationOrder = value; @@ -2632,11 +2663,11 @@ public class Settings /** * When set to true, this will add jOOQ's default logging ExecuteListeners. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isExecuteLogging() { return executeLogging; @@ -2644,11 +2675,11 @@ public class Settings /** * Sets the value of the executeLogging property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setExecuteLogging(Boolean value) { this.executeLogging = value; @@ -2656,11 +2687,11 @@ public class Settings /** * Whether store(), insert(), and update() methods should update the record version prior to the operation, for use with {@link #executeWithOptimisticLocking}. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isUpdateRecordVersion() { return updateRecordVersion; @@ -2668,11 +2699,11 @@ public class Settings /** * Sets the value of the updateRecordVersion property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setUpdateRecordVersion(Boolean value) { this.updateRecordVersion = value; @@ -2680,11 +2711,11 @@ public class Settings /** * Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use with {@link #executeWithOptimisticLocking}. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isUpdateRecordTimestamp() { return updateRecordTimestamp; @@ -2692,11 +2723,11 @@ public class Settings /** * Sets the value of the updateRecordTimestamp property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setUpdateRecordTimestamp(Boolean value) { this.updateRecordTimestamp = value; @@ -2704,11 +2735,11 @@ public class Settings /** * Whether store() and delete() methods should be executed with optimistic locking. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isExecuteWithOptimisticLocking() { return executeWithOptimisticLocking; @@ -2716,11 +2747,11 @@ public class Settings /** * Sets the value of the executeWithOptimisticLocking property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setExecuteWithOptimisticLocking(Boolean value) { this.executeWithOptimisticLocking = value; @@ -2731,11 +2762,11 @@ public class Settings * i.e. on tables that do not have a version and/or timestamp column. *

    * This flag has no effect when "executeWithOptimisticLocking" is turned off. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isExecuteWithOptimisticLockingExcludeUnversioned() { return executeWithOptimisticLockingExcludeUnversioned; @@ -2743,11 +2774,11 @@ public class Settings /** * Sets the value of the executeWithOptimisticLockingExcludeUnversioned property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setExecuteWithOptimisticLockingExcludeUnversioned(Boolean value) { this.executeWithOptimisticLockingExcludeUnversioned = value; @@ -2755,11 +2786,11 @@ public class Settings /** * Whether fetched records should be attached to the fetching configuration. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isAttachRecords() { return attachRecords; @@ -2767,11 +2798,11 @@ public class Settings /** * Sets the value of the attachRecords property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setAttachRecords(Boolean value) { this.attachRecords = value; @@ -2779,11 +2810,11 @@ public class Settings /** * Whether {@link org.jooq.TableRecord#insert()} calls should be executed if the record is unchanged. This also affects the INSERT part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isInsertUnchangedRecords() { return insertUnchangedRecords; @@ -2791,11 +2822,11 @@ public class Settings /** * Sets the value of the insertUnchangedRecords property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setInsertUnchangedRecords(Boolean value) { this.insertUnchangedRecords = value; @@ -2803,7 +2834,7 @@ public class Settings /** * Whether {@link org.jooq.UpdatableRecord#update()} calls should be executed if the record is unchanged. This also affects the UPDATE part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls. - * + * */ public UpdateUnchangedRecords getUpdateUnchangedRecords() { return updateUnchangedRecords; @@ -2811,7 +2842,7 @@ public class Settings /** * Whether {@link org.jooq.UpdatableRecord#update()} calls should be executed if the record is unchanged. This also affects the UPDATE part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls. - * + * */ public void setUpdateUnchangedRecords(UpdateUnchangedRecords value) { this.updateUnchangedRecords = value; @@ -2822,11 +2853,11 @@ public class Settings *

    * Setting this to "true" will allow for updating primary key values through * UpdatableRecord.store() and UpdatableRecord.update(). - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isUpdatablePrimaryKeys() { return updatablePrimaryKeys; @@ -2834,11 +2865,11 @@ public class Settings /** * Sets the value of the updatablePrimaryKeys property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setUpdatablePrimaryKeys(Boolean value) { this.updatablePrimaryKeys = value; @@ -2846,11 +2877,11 @@ public class Settings /** * Whether reflection information should be cached in the configuration. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isReflectionCaching() { return reflectionCaching; @@ -2858,11 +2889,11 @@ public class Settings /** * Sets the value of the reflectionCaching property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setReflectionCaching(Boolean value) { this.reflectionCaching = value; @@ -2870,11 +2901,11 @@ public class Settings /** * Whether record mappers should be cached in the configuration. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isCacheRecordMappers() { return cacheRecordMappers; @@ -2882,11 +2913,11 @@ public class Settings /** * Sets the value of the cacheRecordMappers property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setCacheRecordMappers(Boolean value) { this.cacheRecordMappers = value; @@ -2894,11 +2925,11 @@ public class Settings /** * Whether parsing connection translations should be cached in the configuration. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isCacheParsingConnection() { return cacheParsingConnection; @@ -2906,11 +2937,11 @@ public class Settings /** * Sets the value of the cacheParsingConnection property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setCacheParsingConnection(Boolean value) { this.cacheParsingConnection = value; @@ -2918,7 +2949,7 @@ public class Settings /** * The default implementation of the ParsingConnection cache's LRU cache size. - * + * */ public Integer getCacheParsingConnectionLRUCacheSize() { return cacheParsingConnectionLRUCacheSize; @@ -2926,7 +2957,7 @@ public class Settings /** * The default implementation of the ParsingConnection cache's LRU cache size. - * + * */ public void setCacheParsingConnectionLRUCacheSize(Integer value) { this.cacheParsingConnectionLRUCacheSize = value; @@ -2934,11 +2965,11 @@ public class Settings /** * Whether JDBC {@link java.sql.PreparedStatement} instances should be cached in loader API. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isCachePreparedStatementInLoader() { return cachePreparedStatementInLoader; @@ -2946,11 +2977,11 @@ public class Settings /** * Sets the value of the cachePreparedStatementInLoader property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setCachePreparedStatementInLoader(Boolean value) { this.cachePreparedStatementInLoader = value; @@ -2958,7 +2989,7 @@ public class Settings /** * A strategy defining how exceptions from the database / JDBC driver should be propagated - * + * */ public ThrowExceptions getThrowExceptions() { return throwExceptions; @@ -2966,7 +2997,7 @@ public class Settings /** * A strategy defining how exceptions from the database / JDBC driver should be propagated - * + * */ public void setThrowExceptions(ThrowExceptions value) { this.throwExceptions = value; @@ -2974,11 +3005,11 @@ public class Settings /** * Whether warnings should be fetched after each query execution. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isFetchWarnings() { return fetchWarnings; @@ -2986,11 +3017,11 @@ public class Settings /** * Sets the value of the fetchWarnings property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setFetchWarnings(Boolean value) { this.fetchWarnings = value; @@ -2998,7 +3029,7 @@ public class Settings /** * Whether server output should be fetched after each query execution. - * + * */ public Integer getFetchServerOutputSize() { return fetchServerOutputSize; @@ -3006,7 +3037,7 @@ public class Settings /** * Whether server output should be fetched after each query execution. - * + * */ public void setFetchServerOutputSize(Integer value) { this.fetchServerOutputSize = value; @@ -3014,11 +3045,11 @@ public class Settings /** * Whether calls to store(), insert() and update() should return the identity column. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isReturnIdentityOnUpdatableRecord() { return returnIdentityOnUpdatableRecord; @@ -3026,11 +3057,11 @@ public class Settings /** * Sets the value of the returnIdentityOnUpdatableRecord property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setReturnIdentityOnUpdatableRecord(Boolean value) { this.returnIdentityOnUpdatableRecord = value; @@ -3041,11 +3072,11 @@ public class Settings *

    * Do note that only few databases support this feature. It is supported only in case the INSERT's or UPDATE's * RETURNING clause is fully supported, also for non-IDENTITY columns. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isReturnAllOnUpdatableRecord() { return returnAllOnUpdatableRecord; @@ -3053,11 +3084,11 @@ public class Settings /** * Sets the value of the returnAllOnUpdatableRecord property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setReturnAllOnUpdatableRecord(Boolean value) { this.returnAllOnUpdatableRecord = value; @@ -3067,11 +3098,11 @@ public class Settings * Whether calls to store(), insert(), update(), and delete() that are called on an UpdatableRecord * that is created from a POJO (e.g. in a DAO) should return all Record values to the POJO, including * IDENTITY values, and if {@link #returnAllOnUpdatableRecord} is active, also other values. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isReturnRecordToPojo() { return returnRecordToPojo; @@ -3079,11 +3110,11 @@ public class Settings /** * Sets the value of the returnRecordToPojo property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setReturnRecordToPojo(Boolean value) { this.returnRecordToPojo = value; @@ -3091,11 +3122,11 @@ public class Settings /** * Whether JPA annotations should be considered by the DefaultRecordMapper. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMapJPAAnnotations() { return mapJPAAnnotations; @@ -3103,11 +3134,11 @@ public class Settings /** * Sets the value of the mapJPAAnnotations property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMapJPAAnnotations(Boolean value) { this.mapJPAAnnotations = value; @@ -3115,11 +3146,11 @@ public class Settings /** * Whether constructor parameter names obtained from the {@link java.lang.Record} component names should be considered by the DefaultRecordMapper. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMapRecordComponentParameterNames() { return mapRecordComponentParameterNames; @@ -3127,11 +3158,11 @@ public class Settings /** * Sets the value of the mapRecordComponentParameterNames property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMapRecordComponentParameterNames(Boolean value) { this.mapRecordComponentParameterNames = value; @@ -3139,11 +3170,11 @@ public class Settings /** * Whether constructor parameter names obtained from the {@link java.beans.ConstructorProperties} annotation should be considered by the DefaultRecordMapper. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMapConstructorPropertiesParameterNames() { return mapConstructorPropertiesParameterNames; @@ -3151,11 +3182,11 @@ public class Settings /** * Sets the value of the mapConstructorPropertiesParameterNames property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMapConstructorPropertiesParameterNames(Boolean value) { this.mapConstructorPropertiesParameterNames = value; @@ -3163,11 +3194,11 @@ public class Settings /** * Whether constructor parameter names obtained via reflection in Java 8+ should be considered by the DefaultRecordMapper. This flag has no effect in Java 6 or 7. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMapConstructorParameterNames() { return mapConstructorParameterNames; @@ -3175,11 +3206,11 @@ public class Settings /** * Sets the value of the mapConstructorParameterNames property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMapConstructorParameterNames(Boolean value) { this.mapConstructorParameterNames = value; @@ -3187,11 +3218,11 @@ public class Settings /** * Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper. This flag has no effect in Java. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMapConstructorParameterNamesInKotlin() { return mapConstructorParameterNamesInKotlin; @@ -3199,11 +3230,11 @@ public class Settings /** * Sets the value of the mapConstructorParameterNamesInKotlin property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMapConstructorParameterNamesInKotlin(Boolean value) { this.mapConstructorParameterNamesInKotlin = value; @@ -3212,7 +3243,7 @@ public class Settings /** * The default JDBC poolable property that should be applied to all * jOOQ queries, for which no specific poolable flag was specified. - * + * */ public QueryPoolable getQueryPoolable() { return queryPoolable; @@ -3221,7 +3252,7 @@ public class Settings /** * The default JDBC poolable property that should be applied to all * jOOQ queries, for which no specific poolable flag was specified. - * + * */ public void setQueryPoolable(QueryPoolable value) { this.queryPoolable = value; @@ -3230,7 +3261,7 @@ public class Settings /** * The default JDBC queryTimeout property that should be applied to all * jOOQ queries, for which no specific queryTimeout was specified. - * + * */ public Integer getQueryTimeout() { return queryTimeout; @@ -3239,7 +3270,7 @@ public class Settings /** * The default JDBC queryTimeout property that should be applied to all * jOOQ queries, for which no specific queryTimeout was specified. - * + * */ public void setQueryTimeout(Integer value) { this.queryTimeout = value; @@ -3248,7 +3279,7 @@ public class Settings /** * The default JDBC maxRows property that should be applied to all * jOOQ queries, for which no specific maxRows value was specified. - * + * */ public Integer getMaxRows() { return maxRows; @@ -3257,7 +3288,7 @@ public class Settings /** * The default JDBC maxRows property that should be applied to all * jOOQ queries, for which no specific maxRows value was specified. - * + * */ public void setMaxRows(Integer value) { this.maxRows = value; @@ -3266,7 +3297,7 @@ public class Settings /** * The default JDBC fetchSize property that should be applied to all * jOOQ queries, for which no specific fetchSize value was specified. - * + * */ public Integer getFetchSize() { return fetchSize; @@ -3275,7 +3306,7 @@ public class Settings /** * The default JDBC fetchSize property that should be applied to all * jOOQ queries, for which no specific fetchSize value was specified. - * + * */ public void setFetchSize(Integer value) { this.fetchSize = value; @@ -3283,7 +3314,7 @@ public class Settings /** * A property specifying a batch size that should be applied to all automatically created {@link org.jooq.tools.jdbc.BatchedConnection} instances. - * + * */ public Integer getBatchSize() { return batchSize; @@ -3291,7 +3322,7 @@ public class Settings /** * A property specifying a batch size that should be applied to all automatically created {@link org.jooq.tools.jdbc.BatchedConnection} instances. - * + * */ public void setBatchSize(Integer value) { this.batchSize = value; @@ -3299,11 +3330,11 @@ public class Settings /** * [#5570] Whether exception stack traces should be enhanced with additional debug information. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isDebugInfoOnStackTrace() { return debugInfoOnStackTrace; @@ -3311,11 +3342,11 @@ public class Settings /** * Sets the value of the debugInfoOnStackTrace property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setDebugInfoOnStackTrace(Boolean value) { this.debugInfoOnStackTrace = value; @@ -3323,11 +3354,11 @@ public class Settings /** * [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2). - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isInListPadding() { return inListPadding; @@ -3335,11 +3366,11 @@ public class Settings /** * Sets the value of the inListPadding property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setInListPadding(Boolean value) { this.inListPadding = value; @@ -3347,7 +3378,7 @@ public class Settings /** * [#7095] The base to use to calculate the powers of when applying in list padding. - * + * */ public Integer getInListPadBase() { return inListPadBase; @@ -3355,7 +3386,7 @@ public class Settings /** * [#7095] The base to use to calculate the powers of when applying in list padding. - * + * */ public void setInListPadBase(Integer value) { this.inListPadBase = value; @@ -3363,7 +3394,7 @@ public class Settings /** * [#5826] The delimiter character to be used to delimit statements in batches. - * + * */ public String getDelimiter() { return delimiter; @@ -3371,7 +3402,7 @@ public class Settings /** * [#5826] The delimiter character to be used to delimit statements in batches. - * + * */ public void setDelimiter(String value) { this.delimiter = value; @@ -3379,11 +3410,11 @@ public class Settings /** * [#6462] Use only the primary key to emulate MySQL's INSERT .. ON DUPLICATE KEY UPDATE statement. In MySQL, the statement considers all unique keys for duplicates to apply an update rather than an insert. Earlier versions of jOOQ considered only the PRIMARY KEY. This flag can be turned on to maintain backwards compatibility. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly() { return emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly; @@ -3391,11 +3422,11 @@ public class Settings /** * Sets the value of the emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly(Boolean value) { this.emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly = value; @@ -3403,7 +3434,7 @@ public class Settings /** * [#3884] How MULTISET support should be emulated. - * + * */ public NestedCollectionEmulation getEmulateMultiset() { return emulateMultiset; @@ -3411,7 +3442,7 @@ public class Settings /** * [#3884] How MULTISET support should be emulated. - * + * */ public void setEmulateMultiset(NestedCollectionEmulation value) { this.emulateMultiset = value; @@ -3419,7 +3450,7 @@ public class Settings /** * [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public ExecuteWithoutWhere getExecuteUpdateWithoutWhere() { return executeUpdateWithoutWhere; @@ -3427,7 +3458,7 @@ public class Settings /** * [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public void setExecuteUpdateWithoutWhere(ExecuteWithoutWhere value) { this.executeUpdateWithoutWhere = value; @@ -3435,7 +3466,7 @@ public class Settings /** * [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public ExecuteWithoutWhere getExecuteDeleteWithoutWhere() { return executeDeleteWithoutWhere; @@ -3443,7 +3474,7 @@ public class Settings /** * [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public void setExecuteDeleteWithoutWhere(ExecuteWithoutWhere value) { this.executeDeleteWithoutWhere = value; @@ -3451,7 +3482,7 @@ public class Settings /** * [#7337] The dialect that should be used to interpret SQL DDL statements. {@link SQLDialect#DEFAULT} means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection. - * + * */ public SQLDialect getInterpreterDialect() { return interpreterDialect; @@ -3459,7 +3490,7 @@ public class Settings /** * [#7337] The dialect that should be used to interpret SQL DDL statements. {@link SQLDialect#DEFAULT} means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection. - * + * */ public void setInterpreterDialect(SQLDialect value) { this.interpreterDialect = value; @@ -3467,7 +3498,7 @@ public class Settings /** * [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements. - * + * */ public InterpreterNameLookupCaseSensitivity getInterpreterNameLookupCaseSensitivity() { return interpreterNameLookupCaseSensitivity; @@ -3475,7 +3506,7 @@ public class Settings /** * [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements. - * + * */ public void setInterpreterNameLookupCaseSensitivity(InterpreterNameLookupCaseSensitivity value) { this.interpreterNameLookupCaseSensitivity = value; @@ -3483,7 +3514,7 @@ public class Settings /** * The Locale to be used with any interpreter locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public Locale getInterpreterLocale() { return interpreterLocale; @@ -3491,7 +3522,7 @@ public class Settings /** * The Locale to be used with any interpreter locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public void setInterpreterLocale(Locale value) { this.interpreterLocale = value; @@ -3499,11 +3530,11 @@ public class Settings /** * Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isInterpreterDelayForeignKeyDeclarations() { return interpreterDelayForeignKeyDeclarations; @@ -3511,11 +3542,11 @@ public class Settings /** * Sets the value of the interpreterDelayForeignKeyDeclarations property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setInterpreterDelayForeignKeyDeclarations(Boolean value) { this.interpreterDelayForeignKeyDeclarations = value; @@ -3523,11 +3554,11 @@ public class Settings /** * The {@link org.jooq.Meta} implementation that is backed by {@link java.sql.DatabaseMetaData} does not produce system generated indexes on constraints, by default. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMetaIncludeSystemIndexes() { return metaIncludeSystemIndexes; @@ -3535,11 +3566,11 @@ public class Settings /** * Sets the value of the metaIncludeSystemIndexes property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMetaIncludeSystemIndexes(Boolean value) { this.metaIncludeSystemIndexes = value; @@ -3547,11 +3578,11 @@ public class Settings /** * The {@link org.jooq.Meta} implementation that is backed by {@link java.sql.DatabaseMetaData} does not produce system generated sequences, by default. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMetaIncludeSystemSequences() { return metaIncludeSystemSequences; @@ -3559,11 +3590,11 @@ public class Settings /** * Sets the value of the metaIncludeSystemSequences property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMetaIncludeSystemSequences(Boolean value) { this.metaIncludeSystemSequences = value; @@ -3571,11 +3602,11 @@ public class Settings /** * Whether migrations are allowed to be executed in inverse order.

    This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly switch between branches in a development environment. This feature is available only in commercial distributions. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMigrationAllowsUndo() { return migrationAllowsUndo; @@ -3583,11 +3614,11 @@ public class Settings /** * Sets the value of the migrationAllowsUndo property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMigrationAllowsUndo(Boolean value) { this.migrationAllowsUndo = value; @@ -3595,11 +3626,11 @@ public class Settings /** * Whether migrations revert any untracked changes in the schemas that are being migrated.

    This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly revert any elements created in a development environment. This feature is available only in commercial distributions. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMigrationRevertUntracked() { return migrationRevertUntracked; @@ -3607,11 +3638,11 @@ public class Settings /** * Sets the value of the migrationRevertUntracked property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMigrationRevertUntracked(Boolean value) { this.migrationRevertUntracked = value; @@ -3619,11 +3650,11 @@ public class Settings /** * Whether to automatically existing schemas that are not yet managed by jOOQ Migrations. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMigrationAutoBaseline() { return migrationAutoBaseline; @@ -3631,11 +3662,11 @@ public class Settings /** * Sets the value of the migrationAutoBaseline property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMigrationAutoBaseline(Boolean value) { this.migrationAutoBaseline = value; @@ -3643,11 +3674,11 @@ public class Settings /** * Whether a migration automatically runs a validation first. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMigrationAutoValidation() { return migrationAutoValidation; @@ -3655,11 +3686,11 @@ public class Settings /** * Sets the value of the migrationAutoValidation property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMigrationAutoValidation(Boolean value) { this.migrationAutoValidation = value; @@ -3667,11 +3698,11 @@ public class Settings /** * Various migrateTo() methods (e.g. {@link org.jooq.Meta#migrateTo(org.jooq.Meta)}) ignore the difference between TIMESTAMP and TIMESTAMP(6), if 6 is the default precision for timestamps on the configured dialect. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isMigrationIgnoreDefaultTimestampPrecisionDiffs() { return migrationIgnoreDefaultTimestampPrecisionDiffs; @@ -3679,11 +3710,11 @@ public class Settings /** * Sets the value of the migrationIgnoreDefaultTimestampPrecisionDiffs property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setMigrationIgnoreDefaultTimestampPrecisionDiffs(Boolean value) { this.migrationIgnoreDefaultTimestampPrecisionDiffs = value; @@ -3691,7 +3722,7 @@ public class Settings /** * The Locale to be used with any locale dependent logic if there is not a more specific locale available. More specific locales include e.g. {@link #getRenderLocale()}, {@link #getParseLocale()}, or {@link #getInterpreterLocale()}. - * + * */ public Locale getLocale() { return locale; @@ -3699,7 +3730,7 @@ public class Settings /** * The Locale to be used with any locale dependent logic if there is not a more specific locale available. More specific locales include e.g. {@link #getRenderLocale()}, {@link #getParseLocale()}, or {@link #getInterpreterLocale()}. - * + * */ public void setLocale(Locale value) { this.locale = value; @@ -3707,7 +3738,7 @@ public class Settings /** * [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax. - * + * */ public SQLDialect getParseDialect() { return parseDialect; @@ -3715,7 +3746,7 @@ public class Settings /** * [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax. - * + * */ public void setParseDialect(SQLDialect value) { this.parseDialect = value; @@ -3723,7 +3754,7 @@ public class Settings /** * The Locale to be used with any parser locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public Locale getParseLocale() { return parseLocale; @@ -3731,7 +3762,7 @@ public class Settings /** * The Locale to be used with any parser locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public void setParseLocale(Locale value) { this.parseLocale = value; @@ -3739,7 +3770,7 @@ public class Settings /** * The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle - * + * */ public String getParseDateFormat() { return parseDateFormat; @@ -3747,7 +3778,7 @@ public class Settings /** * The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle - * + * */ public void setParseDateFormat(String value) { this.parseDateFormat = value; @@ -3755,7 +3786,7 @@ public class Settings /** * The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle - * + * */ public String getParseTimestampFormat() { return parseTimestampFormat; @@ -3763,7 +3794,7 @@ public class Settings /** * The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle - * + * */ public void setParseTimestampFormat(String value) { this.parseTimestampFormat = value; @@ -3772,14 +3803,14 @@ public class Settings /** * The prefix to use for named parameters in parsed SQL. *

    - * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name when parsing SQL. *

    * "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public String getParseNamedParamPrefix() { return parseNamedParamPrefix; @@ -3788,14 +3819,14 @@ public class Settings /** * The prefix to use for named parameters in parsed SQL. *

    - * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name when parsing SQL. *

    * "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public void setParseNamedParamPrefix(String value) { this.parseNamedParamPrefix = value; @@ -3803,7 +3834,7 @@ public class Settings /** * [#7337] The default name case for parsed identifiers. - * + * */ public ParseNameCase getParseNameCase() { return parseNameCase; @@ -3811,7 +3842,7 @@ public class Settings /** * [#7337] The default name case for parsed identifiers. - * + * */ public void setParseNameCase(ParseNameCase value) { this.parseNameCase = value; @@ -3819,7 +3850,7 @@ public class Settings /** * [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider. - * + * */ public ParseWithMetaLookups getParseWithMetaLookups() { return parseWithMetaLookups; @@ -3827,7 +3858,7 @@ public class Settings /** * [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider. - * + * */ public void setParseWithMetaLookups(ParseWithMetaLookups value) { this.parseWithMetaLookups = value; @@ -3842,7 +3873,7 @@ public class Settings * when the input dialect supports this syntax. *

    * This feature is available in the commercial distribution only. - * + * */ public Transformation getParseAppendMissingTableReferences() { return parseAppendMissingTableReferences; @@ -3857,7 +3888,7 @@ public class Settings * when the input dialect supports this syntax. *

    * This feature is available in the commercial distribution only. - * + * */ public void setParseAppendMissingTableReferences(Transformation value) { this.parseAppendMissingTableReferences = value; @@ -3865,11 +3896,11 @@ public class Settings /** * [#9780] Whether commands of the type SET key = value should be parsed rather than ignored. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isParseSetCommands() { return parseSetCommands; @@ -3877,11 +3908,11 @@ public class Settings /** * Sets the value of the parseSetCommands property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setParseSetCommands(Boolean value) { this.parseSetCommands = value; @@ -3889,7 +3920,7 @@ public class Settings /** * [#5917] Whether the parser should accept unsupported (but known) syntax. - * + * */ public ParseUnsupportedSyntax getParseUnsupportedSyntax() { return parseUnsupportedSyntax; @@ -3897,7 +3928,7 @@ public class Settings /** * [#5917] Whether the parser should accept unsupported (but known) syntax. - * + * */ public void setParseUnsupportedSyntax(ParseUnsupportedSyntax value) { this.parseUnsupportedSyntax = value; @@ -3905,7 +3936,7 @@ public class Settings /** * [#7344] Whether the parser should accept unknown functions. - * + * */ public ParseUnknownFunctions getParseUnknownFunctions() { return parseUnknownFunctions; @@ -3913,7 +3944,7 @@ public class Settings /** * [#7344] Whether the parser should accept unknown functions. - * + * */ public void setParseUnknownFunctions(ParseUnknownFunctions value) { this.parseUnknownFunctions = value; @@ -3921,11 +3952,11 @@ public class Settings /** * [#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isParseIgnoreCommercialOnlyFeatures() { return parseIgnoreCommercialOnlyFeatures; @@ -3933,11 +3964,11 @@ public class Settings /** * Sets the value of the parseIgnoreCommercialOnlyFeatures property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setParseIgnoreCommercialOnlyFeatures(Boolean value) { this.parseIgnoreCommercialOnlyFeatures = value; @@ -3945,11 +3976,11 @@ public class Settings /** * [#8325] Whether the parser should ignore content between ignore comment tokens. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isParseIgnoreComments() { return parseIgnoreComments; @@ -3957,11 +3988,11 @@ public class Settings /** * Sets the value of the parseIgnoreComments property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setParseIgnoreComments(Boolean value) { this.parseIgnoreComments = value; @@ -3969,7 +4000,7 @@ public class Settings /** * [#8325] The ignore comment start token - * + * */ public String getParseIgnoreCommentStart() { return parseIgnoreCommentStart; @@ -3977,7 +4008,7 @@ public class Settings /** * [#8325] The ignore comment start token - * + * */ public void setParseIgnoreCommentStart(String value) { this.parseIgnoreCommentStart = value; @@ -3985,7 +4016,7 @@ public class Settings /** * [#8325] The ignore comment stop token - * + * */ public String getParseIgnoreCommentStop() { return parseIgnoreCommentStop; @@ -3993,7 +4024,7 @@ public class Settings /** * [#8325] The ignore comment stop token - * + * */ public void setParseIgnoreCommentStop(String value) { this.parseIgnoreCommentStop = value; @@ -4007,11 +4038,11 @@ public class Settings * However, it may be desirable to retain comments before or in between top * level queries, when parsing multiple such queries in a script. Comments * inside of queries (including procedural statements) are still not supported. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isParseRetainCommentsBetweenQueries() { return parseRetainCommentsBetweenQueries; @@ -4019,11 +4050,11 @@ public class Settings /** * Sets the value of the parseRetainCommentsBetweenQueries property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setParseRetainCommentsBetweenQueries(Boolean value) { this.parseRetainCommentsBetweenQueries = value; @@ -4031,11 +4062,11 @@ public class Settings /** * [#8469] Whether to parse default expressions retrieved from {@link java.sql.DatabaseMetaData}. - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isParseMetaDefaultExpressions() { return parseMetaDefaultExpressions; @@ -4043,11 +4074,11 @@ public class Settings /** * Sets the value of the parseMetaDefaultExpressions property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setParseMetaDefaultExpressions(Boolean value) { this.parseMetaDefaultExpressions = value; @@ -4055,7 +4086,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.TableRecord#insert()}. - * + * */ public WriteIfReadonly getReadonlyTableRecordInsert() { return readonlyTableRecordInsert; @@ -4063,7 +4094,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.TableRecord#insert()}. - * + * */ public void setReadonlyTableRecordInsert(WriteIfReadonly value) { this.readonlyTableRecordInsert = value; @@ -4071,7 +4102,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.UpdatableRecord#update()}. - * + * */ public WriteIfReadonly getReadonlyUpdatableRecordUpdate() { return readonlyUpdatableRecordUpdate; @@ -4079,7 +4110,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.UpdatableRecord#update()}. - * + * */ public void setReadonlyUpdatableRecordUpdate(WriteIfReadonly value) { this.readonlyUpdatableRecordUpdate = value; @@ -4087,7 +4118,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.Insert} statements, or the insert clause of a {@link org.jooq.Merge} statement. - * + * */ public WriteIfReadonly getReadonlyInsert() { return readonlyInsert; @@ -4095,7 +4126,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.Insert} statements, or the insert clause of a {@link org.jooq.Merge} statement. - * + * */ public void setReadonlyInsert(WriteIfReadonly value) { this.readonlyInsert = value; @@ -4103,7 +4134,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.Update} statements, or the update clause of a {@link org.jooq.Merge} statement. - * + * */ public WriteIfReadonly getReadonlyUpdate() { return readonlyUpdate; @@ -4111,7 +4142,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.Update} statements, or the update clause of a {@link org.jooq.Merge} statement. - * + * */ public void setReadonlyUpdate(WriteIfReadonly value) { this.readonlyUpdate = value; @@ -4119,11 +4150,11 @@ public class Settings /** * [#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys - * + * * @return * possible object is * {@link Boolean } - * + * */ public Boolean isApplyWorkaroundFor7962() { return applyWorkaroundFor7962; @@ -4131,11 +4162,11 @@ public class Settings /** * Sets the value of the applyWorkaroundFor7962 property. - * + * * @param value * allowed object is * {@link Boolean } - * + * */ public void setApplyWorkaroundFor7962(Boolean value) { this.applyWorkaroundFor7962 = value; @@ -4192,7 +4223,7 @@ public class Settings /** * Configure render mapping for runtime schema / table rewriting in * generated SQL. - * + * */ public Settings withRenderMapping(RenderMapping value) { setRenderMapping(value); @@ -4205,7 +4236,7 @@ public class Settings * This only affects names created through {@link org.jooq.impl.DSL#name(String)} methods (including those that are implicitly created through this method), not {@link org.jooq.impl.DSL#quotedName(String)} or {@link org.jooq.impl.DSL#unquotedName(String)}, whose behaviour cannot be overridden. *

    * This setting does not affect any plain SQL usage. - * + * */ public Settings withRenderQuotedNames(RenderQuotedNames value) { setRenderQuotedNames(value); @@ -4218,7 +4249,7 @@ public class Settings * Names are modified irrespective of the {@link #getRenderQuotedNames()} setting. *

    * This setting does not affect any plain SQL usage. - * + * */ public Settings withRenderNameCase(RenderNameCase value) { setRenderNameCase(value); @@ -4232,7 +4263,7 @@ public class Settings * This is set to "QUOTED" by default for backwards-compatibility. *

    * @deprecated - 3.12.0 - [#5909] - Use {@link RenderQuotedNames} and {@link RenderNameCase} instead. - * + * */ @Deprecated public Settings withRenderNameStyle(RenderNameStyle value) { @@ -4243,14 +4274,14 @@ public class Settings /** * The prefix to use for named parameters in generated SQL. *

    - * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name, when generating SQL. *

    * "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public Settings withRenderNamedParamPrefix(String value) { setRenderNamedParamPrefix(value); @@ -4259,7 +4290,7 @@ public class Settings /** * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. - * + * */ public Settings withRenderKeywordCase(RenderKeywordCase value) { setRenderKeywordCase(value); @@ -4270,7 +4301,7 @@ public class Settings * Whether the case of {@link org.jooq.Keyword} references should be modified in any way. *

    * @deprecated - 3.12.0 - [#5909] - Use {@link RenderKeywordCase} instead. - * + * */ @Deprecated public Settings withRenderKeywordStyle(RenderKeywordStyle value) { @@ -4280,7 +4311,7 @@ public class Settings /** * The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to {@link #getLocale()}. - * + * */ public Settings withRenderLocale(Locale value) { setRenderLocale(value); @@ -4294,7 +4325,7 @@ public class Settings /** * All sorts of formatting flags / settings. - * + * */ public Settings withRenderFormatting(RenderFormatting value) { setRenderFormatting(value); @@ -4303,7 +4334,7 @@ public class Settings /** * Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c). - * + * */ public Settings withRenderOptionalAssociativityParentheses(RenderOptionalKeyword value) { setRenderOptionalAssociativityParentheses(value); @@ -4312,7 +4343,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. This is ignored if the keyword is not supported (e.g. in Oracle) - * + * */ public Settings withRenderOptionalAsKeywordForTableAliases(RenderOptionalKeyword value) { setRenderOptionalAsKeywordForTableAliases(value); @@ -4321,7 +4352,7 @@ public class Settings /** * Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect. - * + * */ public Settings withRenderOptionalAsKeywordForFieldAliases(RenderOptionalKeyword value) { setRenderOptionalAsKeywordForFieldAliases(value); @@ -4330,7 +4361,7 @@ public class Settings /** * Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect. - * + * */ public Settings withRenderOptionalInnerKeyword(RenderOptionalKeyword value) { setRenderOptionalInnerKeyword(value); @@ -4339,7 +4370,7 @@ public class Settings /** * Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect. - * + * */ public Settings withRenderOptionalOuterKeyword(RenderOptionalKeyword value) { setRenderOptionalOuterKeyword(value); @@ -4348,7 +4379,7 @@ public class Settings /** * Whether to render an explicit window RANGE clause when an implicit clause is applied. - * + * */ public Settings withRenderImplicitWindowRange(RenderImplicitWindowRange value) { setRenderImplicitWindowRange(value); @@ -4362,7 +4393,7 @@ public class Settings /** * The join type to be generated by implicit joins. - * + * */ public Settings withRenderImplicitJoinType(RenderImplicitJoinType value) { setRenderImplicitJoinType(value); @@ -4371,7 +4402,7 @@ public class Settings /** * Whether the {@link org.jooq.Nullability#DEFAULT} nullablity should be rendered in generated DDL, and how it should be rendered. - * + * */ public Settings withRenderDefaultNullability(RenderDefaultNullability value) { setRenderDefaultNullability(value); @@ -4409,14 +4440,14 @@ public class Settings * A few hierarchical mapping features work with paths encoded in names (specifically field aliases), such as the reflective mapping of nested values when aliasing fields as: *

    *

    
    -     * SELECT
    +     * SELECT 
          *   a.first_name AS "book.author.firstName"
          *   a.last_name AS "book.author.lastName"
          * FROM ...
          * 
    *

    * Not all dialects support "." in identifiers. This setting allows for specifying an alternative String to use as separator, e.g. "__". - * + * */ public Settings withNamePathSeparator(String value) { setNamePathSeparator(value); @@ -4441,7 +4472,7 @@ public class Settings /** * Whether to fetch data into intermediate {@link org.jooq.Result} instances. *

    - * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} + * By default, a {@link org.jooq.ResultQuery} produces no intermediate {@link org.jooq.Result} * instances if they are not explicitly requested by the caller, e.g. by calling * {@link org.jooq.ResultQuery#fetch()}, or in the presence of {@link org.jooq.ExecuteListener} * instances, which may require access to {@link org.jooq.ExecuteContext#result()}. @@ -4449,7 +4480,7 @@ public class Settings *

    * Using this flag, fetching of intermediate results can be turned off even when execute listeners * are present, or turned on even if they're absent. - * + * */ public Settings withFetchIntermediateResult(FetchIntermediateResult value) { setFetchIntermediateResult(value); @@ -4632,7 +4663,7 @@ public class Settings * This transformation works around a known MySQL limitation "ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" *

    * This feature is available in the commercial distribution only. - * + * */ public Settings withTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value) { setTransformInConditionSubqueryWithLimitToDerivedTable(value); @@ -4643,7 +4674,7 @@ public class Settings * Transform the QUALIFY clause to an equivalent derived table to filter on window functions. *

    * This feature is available in the commercial distribution only. - * + * */ public Settings withTransformQualify(Transformation value) { setTransformQualify(value); @@ -4664,7 +4695,7 @@ public class Settings * equivalent SQL, if possible. *

    * This feature is available in the commercial distribution only. - * + * */ public Settings withTransformRownum(Transformation value) { setTransformRownum(value); @@ -4678,16 +4709,31 @@ public class Settings * Expressions on literals and bind variables could be evaluated in the client prior to generating SQL. *

    * This feature is available in the commercial distribution only. - * + * */ public Settings withTransformUnneededArithmeticExpressions(TransformUnneededArithmeticExpressions value) { setTransformUnneededArithmeticExpressions(value); return this; } + /** + * Transform GROUP BY [column index] clauses by substituting the column index. + *

    + * Not all dialects support grouping by column index, which is a convenient but also a bit confusing feature of + * some dialects. jOOQ can transform the syntax into an equivalent syntax where the referenced SELECT + * expression is duplicated into the GROUP BY clause. + *

    + * This feature is available in the commercial distribution only. + * + */ + public Settings withTransformGroupByColumnIndex(Transformation value) { + setTransformGroupByColumnIndex(value); + return this; + } + /** * Whether string literals should be escaped with backslash. - * + * */ public Settings withBackslashEscaping(BackslashEscaping value) { setBackslashEscaping(value); @@ -4698,15 +4744,15 @@ public class Settings * Specify how bind variables are to be rendered. *

    * Possibilities include: - * + * * - question marks * - named parameters * - named or inlined parameters * - inlined parameters - * + * * This value is overridden by statementType == STATIC_STATEMENT, in * case of which, this defaults to INLINED - * + * */ public Settings withParamType(ParamType value) { setParamType(value); @@ -4715,7 +4761,7 @@ public class Settings /** * Whether rendered bind values should be cast to their respective type. - * + * */ public Settings withParamCastMode(ParamCastMode value) { setParamCastMode(value); @@ -4724,7 +4770,7 @@ public class Settings /** * The type of statement that is to be executed. - * + * */ public Settings withStatementType(StatementType value) { setStatementType(value); @@ -4741,7 +4787,7 @@ public class Settings *

  • {@link org.jooq.SQLDialect#SQLITE} : 999
  • *
  • {@link org.jooq.SQLDialect#SQLSERVER} : 2100
  • * - * + * */ public Settings withInlineThreshold(Integer value) { setInlineThreshold(value); @@ -4750,7 +4796,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public Settings withTransactionListenerStartInvocationOrder(InvocationOrder value) { setTransactionListenerStartInvocationOrder(value); @@ -4759,7 +4805,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.TransactionListener}s. - * + * */ public Settings withTransactionListenerEndInvocationOrder(InvocationOrder value) { setTransactionListenerEndInvocationOrder(value); @@ -4768,7 +4814,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public Settings withMigrationListenerStartInvocationOrder(InvocationOrder value) { setMigrationListenerStartInvocationOrder(value); @@ -4777,7 +4823,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.MigrationListener}s. - * + * */ public Settings withMigrationListenerEndInvocationOrder(InvocationOrder value) { setMigrationListenerEndInvocationOrder(value); @@ -4786,7 +4832,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.VisitListener}s. - * + * */ public Settings withVisitListenerStartInvocationOrder(InvocationOrder value) { setVisitListenerStartInvocationOrder(value); @@ -4795,7 +4841,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.VisitListener}s. - * + * */ public Settings withVisitListenerEndInvocationOrder(InvocationOrder value) { setVisitListenerEndInvocationOrder(value); @@ -4804,7 +4850,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.RecordListener}s. - * + * */ public Settings withRecordListenerStartInvocationOrder(InvocationOrder value) { setRecordListenerStartInvocationOrder(value); @@ -4813,7 +4859,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.RecordListener}s. - * + * */ public Settings withRecordListenerEndInvocationOrder(InvocationOrder value) { setRecordListenerEndInvocationOrder(value); @@ -4822,7 +4868,7 @@ public class Settings /** * The order of invocation for [action]start() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public Settings withExecuteListenerStartInvocationOrder(InvocationOrder value) { setExecuteListenerStartInvocationOrder(value); @@ -4831,7 +4877,7 @@ public class Settings /** * The order of invocation for [action]end() methods registered {@link org.jooq.ExecuteListener}s. - * + * */ public Settings withExecuteListenerEndInvocationOrder(InvocationOrder value) { setExecuteListenerEndInvocationOrder(value); @@ -4875,7 +4921,7 @@ public class Settings /** * Whether {@link org.jooq.UpdatableRecord#update()} calls should be executed if the record is unchanged. This also affects the UPDATE part of {@link org.jooq.UpdatableRecord#store()} and {@link org.jooq.UpdatableRecord#merge()} calls. - * + * */ public Settings withUpdateUnchangedRecords(UpdateUnchangedRecords value) { setUpdateUnchangedRecords(value); @@ -4904,7 +4950,7 @@ public class Settings /** * The default implementation of the ParsingConnection cache's LRU cache size. - * + * */ public Settings withCacheParsingConnectionLRUCacheSize(Integer value) { setCacheParsingConnectionLRUCacheSize(value); @@ -4918,7 +4964,7 @@ public class Settings /** * A strategy defining how exceptions from the database / JDBC driver should be propagated - * + * */ public Settings withThrowExceptions(ThrowExceptions value) { setThrowExceptions(value); @@ -4932,7 +4978,7 @@ public class Settings /** * Whether server output should be fetched after each query execution. - * + * */ public Settings withFetchServerOutputSize(Integer value) { setFetchServerOutputSize(value); @@ -4982,7 +5028,7 @@ public class Settings /** * The default JDBC poolable property that should be applied to all * jOOQ queries, for which no specific poolable flag was specified. - * + * */ public Settings withQueryPoolable(QueryPoolable value) { setQueryPoolable(value); @@ -4992,7 +5038,7 @@ public class Settings /** * The default JDBC queryTimeout property that should be applied to all * jOOQ queries, for which no specific queryTimeout was specified. - * + * */ public Settings withQueryTimeout(Integer value) { setQueryTimeout(value); @@ -5002,7 +5048,7 @@ public class Settings /** * The default JDBC maxRows property that should be applied to all * jOOQ queries, for which no specific maxRows value was specified. - * + * */ public Settings withMaxRows(Integer value) { setMaxRows(value); @@ -5012,7 +5058,7 @@ public class Settings /** * The default JDBC fetchSize property that should be applied to all * jOOQ queries, for which no specific fetchSize value was specified. - * + * */ public Settings withFetchSize(Integer value) { setFetchSize(value); @@ -5021,7 +5067,7 @@ public class Settings /** * A property specifying a batch size that should be applied to all automatically created {@link org.jooq.tools.jdbc.BatchedConnection} instances. - * + * */ public Settings withBatchSize(Integer value) { setBatchSize(value); @@ -5040,7 +5086,7 @@ public class Settings /** * [#7095] The base to use to calculate the powers of when applying in list padding. - * + * */ public Settings withInListPadBase(Integer value) { setInListPadBase(value); @@ -5049,7 +5095,7 @@ public class Settings /** * [#5826] The delimiter character to be used to delimit statements in batches. - * + * */ public Settings withDelimiter(String value) { setDelimiter(value); @@ -5063,7 +5109,7 @@ public class Settings /** * [#3884] How MULTISET support should be emulated. - * + * */ public Settings withEmulateMultiset(NestedCollectionEmulation value) { setEmulateMultiset(value); @@ -5072,7 +5118,7 @@ public class Settings /** * [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public Settings withExecuteUpdateWithoutWhere(ExecuteWithoutWhere value) { setExecuteUpdateWithoutWhere(value); @@ -5081,7 +5127,7 @@ public class Settings /** * [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string. - * + * */ public Settings withExecuteDeleteWithoutWhere(ExecuteWithoutWhere value) { setExecuteDeleteWithoutWhere(value); @@ -5090,7 +5136,7 @@ public class Settings /** * [#7337] The dialect that should be used to interpret SQL DDL statements. {@link SQLDialect#DEFAULT} means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection. - * + * */ public Settings withInterpreterDialect(SQLDialect value) { setInterpreterDialect(value); @@ -5099,7 +5145,7 @@ public class Settings /** * [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements. - * + * */ public Settings withInterpreterNameLookupCaseSensitivity(InterpreterNameLookupCaseSensitivity value) { setInterpreterNameLookupCaseSensitivity(value); @@ -5108,7 +5154,7 @@ public class Settings /** * The Locale to be used with any interpreter locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public Settings withInterpreterLocale(Locale value) { setInterpreterLocale(value); @@ -5157,7 +5203,7 @@ public class Settings /** * The Locale to be used with any locale dependent logic if there is not a more specific locale available. More specific locales include e.g. {@link #getRenderLocale()}, {@link #getParseLocale()}, or {@link #getInterpreterLocale()}. - * + * */ public Settings withLocale(Locale value) { setLocale(value); @@ -5166,7 +5212,7 @@ public class Settings /** * [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax. - * + * */ public Settings withParseDialect(SQLDialect value) { setParseDialect(value); @@ -5175,7 +5221,7 @@ public class Settings /** * The Locale to be used with any parser locale dependent logic, defaulting to {@link #getLocale()}. - * + * */ public Settings withParseLocale(Locale value) { setParseLocale(value); @@ -5184,7 +5230,7 @@ public class Settings /** * The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle - * + * */ public Settings withParseDateFormat(String value) { setParseDateFormat(value); @@ -5193,7 +5239,7 @@ public class Settings /** * The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle - * + * */ public Settings withParseTimestampFormat(String value) { setParseTimestampFormat(value); @@ -5203,14 +5249,14 @@ public class Settings /** * The prefix to use for named parameters in parsed SQL. *

    - * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but + * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but * vendor specific parameters may look differently. This flag can be used to determine the prefix to be * used by named parameters, such as @ for SQL Server's @name or $ * for PostgreSQL's $name when parsing SQL. *

    * "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not * providing a name to parameters, resulting in :1 or @1 or $1, etc. - * + * */ public Settings withParseNamedParamPrefix(String value) { setParseNamedParamPrefix(value); @@ -5219,7 +5265,7 @@ public class Settings /** * [#7337] The default name case for parsed identifiers. - * + * */ public Settings withParseNameCase(ParseNameCase value) { setParseNameCase(value); @@ -5228,7 +5274,7 @@ public class Settings /** * [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider. - * + * */ public Settings withParseWithMetaLookups(ParseWithMetaLookups value) { setParseWithMetaLookups(value); @@ -5244,7 +5290,7 @@ public class Settings * when the input dialect supports this syntax. *

    * This feature is available in the commercial distribution only. - * + * */ public Settings withParseAppendMissingTableReferences(Transformation value) { setParseAppendMissingTableReferences(value); @@ -5258,7 +5304,7 @@ public class Settings /** * [#5917] Whether the parser should accept unsupported (but known) syntax. - * + * */ public Settings withParseUnsupportedSyntax(ParseUnsupportedSyntax value) { setParseUnsupportedSyntax(value); @@ -5267,7 +5313,7 @@ public class Settings /** * [#7344] Whether the parser should accept unknown functions. - * + * */ public Settings withParseUnknownFunctions(ParseUnknownFunctions value) { setParseUnknownFunctions(value); @@ -5286,7 +5332,7 @@ public class Settings /** * [#8325] The ignore comment start token - * + * */ public Settings withParseIgnoreCommentStart(String value) { setParseIgnoreCommentStart(value); @@ -5295,7 +5341,7 @@ public class Settings /** * [#8325] The ignore comment stop token - * + * */ public Settings withParseIgnoreCommentStop(String value) { setParseIgnoreCommentStop(value); @@ -5314,7 +5360,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.TableRecord#insert()}. - * + * */ public Settings withReadonlyTableRecordInsert(WriteIfReadonly value) { setReadonlyTableRecordInsert(value); @@ -5323,7 +5369,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.UpdatableRecord#update()}. - * + * */ public Settings withReadonlyUpdatableRecordUpdate(WriteIfReadonly value) { setReadonlyUpdatableRecordUpdate(value); @@ -5332,7 +5378,7 @@ public class Settings /** * [#9864] The behaviour when trying to insert into readonly columns using {@link org.jooq.Insert} statements, or the insert clause of a {@link org.jooq.Merge} statement. - * + * */ public Settings withReadonlyInsert(WriteIfReadonly value) { setReadonlyInsert(value); @@ -5341,7 +5387,7 @@ public class Settings /** * [#9864] The behaviour when trying to update a readonly column using {@link org.jooq.Update} statements, or the update clause of a {@link org.jooq.Merge} statement. - * + * */ public Settings withReadonlyUpdate(WriteIfReadonly value) { setReadonlyUpdate(value); @@ -5489,6 +5535,7 @@ public class Settings builder.append("transformTableListsToAnsiJoin", transformTableListsToAnsiJoin); builder.append("transformRownum", transformRownum); builder.append("transformUnneededArithmeticExpressions", transformUnneededArithmeticExpressions); + builder.append("transformGroupByColumnIndex", transformGroupByColumnIndex); builder.append("backslashEscaping", backslashEscaping); builder.append("paramType", paramType); builder.append("paramCastMode", paramCastMode); @@ -6239,6 +6286,15 @@ public class Settings return false; } } + if (transformGroupByColumnIndex == null) { + if (other.transformGroupByColumnIndex!= null) { + return false; + } + } else { + if (!transformGroupByColumnIndex.equals(other.transformGroupByColumnIndex)) { + return false; + } + } if (backslashEscaping == null) { if (other.backslashEscaping!= null) { return false; @@ -7127,6 +7183,7 @@ public class Settings result = ((prime*result)+((transformTableListsToAnsiJoin == null)? 0 :transformTableListsToAnsiJoin.hashCode())); result = ((prime*result)+((transformRownum == null)? 0 :transformRownum.hashCode())); result = ((prime*result)+((transformUnneededArithmeticExpressions == null)? 0 :transformUnneededArithmeticExpressions.hashCode())); + result = ((prime*result)+((transformGroupByColumnIndex == null)? 0 :transformGroupByColumnIndex.hashCode())); result = ((prime*result)+((backslashEscaping == null)? 0 :backslashEscaping.hashCode())); result = ((prime*result)+((paramType == null)? 0 :paramType.hashCode())); result = ((prime*result)+((paramCastMode == null)? 0 :paramCastMode.hashCode())); diff --git a/jOOQ/src/main/java/org/jooq/conf/package-info.java b/jOOQ/src/main/java/org/jooq/conf/package-info.java index a4ce885aef..1f2206f1a5 100644 --- a/jOOQ/src/main/java/org/jooq/conf/package-info.java +++ b/jOOQ/src/main/java/org/jooq/conf/package-info.java @@ -1,2 +1,2 @@ -@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.17.0.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.jooq.org/xsd/jooq-runtime-3.18.0.xsd", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) package org.jooq.conf; diff --git a/jOOQ/src/main/java/org/jooq/impl/Patterns.java b/jOOQ/src/main/java/org/jooq/impl/Patterns.java index 815028465e..160c97c958 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Patterns.java +++ b/jOOQ/src/main/java/org/jooq/impl/Patterns.java @@ -1668,6 +1668,15 @@ package org.jooq.impl; + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index e12b450a5c..ef1d933444 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -223,6 +223,7 @@ import static org.jooq.impl.Tools.SimpleDataKey.DATA_SELECT_ALIASES; import static org.jooq.impl.Tools.SimpleDataKey.DATA_SELECT_INTO_TABLE; import static org.jooq.impl.Tools.SimpleDataKey.DATA_TOP_LEVEL_CTE; import static org.jooq.impl.Tools.SimpleDataKey.DATA_WINDOW_DEFINITIONS; +import static org.jooq.impl.Transformations.transformGroupByColumnIndex; import static org.jooq.impl.Transformations.transformQualify; import static org.jooq.impl.Transformations.transformRownum; @@ -2426,8 +2427,26 @@ final class SelectQueryImpl extends AbstractResultQuery imp if (groupByDistinct) context.sql(' ').visit(K_DISTINCT); - context.separatorRequired(true); - context.visit(groupBy); + GroupFieldList g = groupBy; + + + + + + + + + + + + + + + + + + + context.separatorRequired(true).visit(g); } context.end(SELECT_GROUP_BY); diff --git a/jOOQ/src/main/java/org/jooq/impl/Transformations.java b/jOOQ/src/main/java/org/jooq/impl/Transformations.java index ef00237d17..4ac81dd929 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Transformations.java +++ b/jOOQ/src/main/java/org/jooq/impl/Transformations.java @@ -91,6 +91,7 @@ final class Transformations { private static final Set SUPPORT_MISSING_TABLE_REFERENCES = SQLDialect.supportedBy(); private static final Set EMULATE_QUALIFY = SQLDialect.supportedBy(CUBRID, FIREBIRD, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB); private static final Set EMULATE_ROWNUM = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, HSQLDB, IGNITE, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB); + private static final Set EMULATE_GROUP_BY_COLUMN_INDEX = SQLDialect.supportedBy(CUBRID, DERBY, FIREBIRD, H2, HSQLDB, IGNITE, SQLITE); static final SelectQueryImpl subqueryWithLimit(QueryPart source) { SelectQueryImpl s; @@ -133,6 +134,15 @@ final class Transformations { ); } + static final boolean transformGroupByColumnIndex(Configuration configuration) { + return transform( + configuration, + "Settings.transformGroupByColumnIndex", + configuration.settings().getTransformGroupByColumnIndex(), + c -> EMULATE_GROUP_BY_COLUMN_INDEX.contains(c.dialect()) + ); + } + /** * Check whether a given SQL transformation needs to be applied. */ diff --git a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.17.0.xsd b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd similarity index 99% rename from jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.17.0.xsd rename to jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd index 10161f3352..dafdd5840c 100644 --- a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.17.0.xsd +++ b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd @@ -1,10 +1,10 @@ @@ -664,6 +664,16 @@ This feature is available in the commercial distribution only.]]>< Arithmetic expressions may be implemented by the user, or arise from emulations from within jOOQ. Expressions on literals and bind variables could be evaluated in the client prior to generating SQL.

    +This feature is available in the commercial distribution only.]]> + + + + GROUP BY [column index] clauses by substituting the column index. +

    +Not all dialects support grouping by column index, which is a convenient but also a bit confusing feature of +some dialects. jOOQ can transform the syntax into an equivalent syntax where the referenced SELECT +expression is duplicated into the GROUP BY clause. +

    This feature is available in the commercial distribution only.]]>