Module org.jooq
Package org.jooq.conf

Class Settings

java.lang.Object
org.jooq.conf.Settings
All Implemented Interfaces:
Serializable, Cloneable, XMLAppendable

public class Settings extends Object implements Serializable, Cloneable, XMLAppendable
Settings that influence the way jOOQ renders SQL code.
See Also:
  • Field Details

    • forceIntegerTypesOnZeroScaleDecimals

      protected Boolean forceIntegerTypesOnZeroScaleDecimals
    • renderCatalog

      protected Boolean renderCatalog
    • renderSchema

      protected Boolean renderSchema
    • renderMapping

      protected RenderMapping renderMapping
    • renderQuotedNames

      protected RenderQuotedNames renderQuotedNames
    • renderNameCase

      protected RenderNameCase renderNameCase
    • renderNameStyle

      protected RenderNameStyle renderNameStyle
    • renderNamedParamPrefix

      protected String renderNamedParamPrefix
    • renderKeywordCase

      protected RenderKeywordCase renderKeywordCase
    • renderKeywordStyle

      protected RenderKeywordStyle renderKeywordStyle
    • renderLocale

      protected Locale renderLocale
    • renderFormatted

      protected Boolean renderFormatted
    • renderFormatting

      protected RenderFormatting renderFormatting
    • renderOptionalAssociativityParentheses

      protected RenderOptionalKeyword renderOptionalAssociativityParentheses
    • renderOptionalAsKeywordForTableAliases

      protected RenderOptionalKeyword renderOptionalAsKeywordForTableAliases
    • renderOptionalAsKeywordForFieldAliases

      protected RenderOptionalKeyword renderOptionalAsKeywordForFieldAliases
    • renderOptionalInnerKeyword

      protected RenderOptionalKeyword renderOptionalInnerKeyword
    • renderOptionalOuterKeyword

      protected RenderOptionalKeyword renderOptionalOuterKeyword
    • renderImplicitWindowRange

      protected RenderImplicitWindowRange renderImplicitWindowRange
    • renderScalarSubqueriesForStoredFunctions

      protected Boolean renderScalarSubqueriesForStoredFunctions
    • renderImplicitJoinType

      protected RenderImplicitJoinType renderImplicitJoinType
    • renderDefaultNullability

      protected RenderDefaultNullability renderDefaultNullability
    • renderCoalesceToEmptyStringInConcat

      protected Boolean renderCoalesceToEmptyStringInConcat
    • renderOrderByRownumberForEmulatedPagination

      protected Boolean renderOrderByRownumberForEmulatedPagination
    • renderOutputForSQLServerReturningClause

      protected Boolean renderOutputForSQLServerReturningClause
    • renderGroupConcatMaxLenSessionVariable

      protected Boolean renderGroupConcatMaxLenSessionVariable
    • renderParenthesisAroundSetOperationQueries

      protected Boolean renderParenthesisAroundSetOperationQueries
    • namePathSeparator

      protected String namePathSeparator
    • bindOffsetDateTimeType

      protected Boolean bindOffsetDateTimeType
    • bindOffsetTimeType

      protected Boolean bindOffsetTimeType
    • fetchTriggerValuesAfterSQLServerOutput

      protected Boolean fetchTriggerValuesAfterSQLServerOutput
    • fetchIntermediateResult

      protected FetchIntermediateResult fetchIntermediateResult
    • transformPatterns

      protected Boolean transformPatterns
    • transformPatternsLogging

      protected Boolean transformPatternsLogging
    • transformPatternsTrim

      protected Boolean transformPatternsTrim
    • transformPatternsNotNot

      protected Boolean transformPatternsNotNot
    • transformPatternsNotComparison

      protected Boolean transformPatternsNotComparison
    • transformPatternsNotNotDistinct

      protected Boolean transformPatternsNotNotDistinct
    • transformPatternsNormaliseAssociativeOps

      protected Boolean transformPatternsNormaliseAssociativeOps
    • transformPatternsNormaliseInListSingleElementToComparison

      protected Boolean transformPatternsNormaliseInListSingleElementToComparison
    • transformPatternsNormaliseFieldCompareValue

      protected Boolean transformPatternsNormaliseFieldCompareValue
    • transformPatternsOrEqToIn

      protected Boolean transformPatternsOrEqToIn
    • transformPatternsAndNeToNotIn

      protected Boolean transformPatternsAndNeToNotIn
    • transformPatternsMergeOrComparison

      protected Boolean transformPatternsMergeOrComparison
    • transformPatternsMergeAndComparison

      protected Boolean transformPatternsMergeAndComparison
    • transformPatternsMergeInLists

      protected Boolean transformPatternsMergeInLists
    • transformPatternsMergeRangePredicates

      protected Boolean transformPatternsMergeRangePredicates
    • transformPatternsMergeBetweenSymmetricPredicates

      protected Boolean transformPatternsMergeBetweenSymmetricPredicates
    • transformPatternsTrivialCaseAbbreviation

      protected Boolean transformPatternsTrivialCaseAbbreviation
    • transformPatternsTrivialPredicates

      protected Boolean transformPatternsTrivialPredicates
    • transformPatternsScalarSubqueryCountAsteriskGtZero

      protected Boolean transformPatternsScalarSubqueryCountAsteriskGtZero
    • transformPatternsScalarSubqueryCountExpressionGtZero

      protected Boolean transformPatternsScalarSubqueryCountExpressionGtZero
    • transformPatternsEmptyScalarSubquery

      protected Boolean transformPatternsEmptyScalarSubquery
    • transformPatternsNegNeg

      protected Boolean transformPatternsNegNeg
    • transformPatternsBitNotBitNot

      protected Boolean transformPatternsBitNotBitNot
    • transformPatternsBitNotBitNand

      protected Boolean transformPatternsBitNotBitNand
    • transformPatternsBitNotBitNor

      protected Boolean transformPatternsBitNotBitNor
    • transformPatternsBitNotBitXNor

      protected Boolean transformPatternsBitNotBitXNor
    • transformPatternsIdempotentFunctionRepetition

      protected Boolean transformPatternsIdempotentFunctionRepetition
    • transformPatternsArithmeticExpressions

      protected Boolean transformPatternsArithmeticExpressions
    • transformPatternsTrigonometricFunctions

      protected Boolean transformPatternsTrigonometricFunctions
    • transformPatternsLogarithmicFunctions

      protected Boolean transformPatternsLogarithmicFunctions
    • transformPatternsHyperbolicFunctions

      protected Boolean transformPatternsHyperbolicFunctions
    • transformPatternsInverseHyperbolicFunctions

      protected Boolean transformPatternsInverseHyperbolicFunctions
    • transformInlineBindValuesForFieldComparisons

      protected Boolean transformInlineBindValuesForFieldComparisons
    • transformAnsiJoinToTableLists

      protected Boolean transformAnsiJoinToTableLists
    • transformInConditionSubqueryWithLimitToDerivedTable

      protected Transformation transformInConditionSubqueryWithLimitToDerivedTable
    • transformQualify

      protected Transformation transformQualify
    • transformTableListsToAnsiJoin

      protected Boolean transformTableListsToAnsiJoin
    • transformRownum

      protected Transformation transformRownum
    • transformUnneededArithmeticExpressions

      protected TransformUnneededArithmeticExpressions transformUnneededArithmeticExpressions
    • backslashEscaping

      protected BackslashEscaping backslashEscaping
    • paramType

      protected ParamType paramType
    • paramCastMode

      protected ParamCastMode paramCastMode
    • statementType

      protected StatementType statementType
    • inlineThreshold

      protected Integer inlineThreshold
    • transactionListenerStartInvocationOrder

      protected InvocationOrder transactionListenerStartInvocationOrder
    • transactionListenerEndInvocationOrder

      protected InvocationOrder transactionListenerEndInvocationOrder
    • migrationListenerStartInvocationOrder

      protected InvocationOrder migrationListenerStartInvocationOrder
    • migrationListenerEndInvocationOrder

      protected InvocationOrder migrationListenerEndInvocationOrder
    • visitListenerStartInvocationOrder

      protected InvocationOrder visitListenerStartInvocationOrder
    • visitListenerEndInvocationOrder

      protected InvocationOrder visitListenerEndInvocationOrder
    • recordListenerStartInvocationOrder

      protected InvocationOrder recordListenerStartInvocationOrder
    • recordListenerEndInvocationOrder

      protected InvocationOrder recordListenerEndInvocationOrder
    • executeListenerStartInvocationOrder

      protected InvocationOrder executeListenerStartInvocationOrder
    • executeListenerEndInvocationOrder

      protected InvocationOrder executeListenerEndInvocationOrder
    • executeLogging

      protected Boolean executeLogging
    • updateRecordVersion

      protected Boolean updateRecordVersion
    • updateRecordTimestamp

      protected Boolean updateRecordTimestamp
    • executeWithOptimisticLocking

      protected Boolean executeWithOptimisticLocking
    • executeWithOptimisticLockingExcludeUnversioned

      protected Boolean executeWithOptimisticLockingExcludeUnversioned
    • attachRecords

      protected Boolean attachRecords
    • insertUnchangedRecords

      protected Boolean insertUnchangedRecords
    • updateUnchangedRecords

      protected UpdateUnchangedRecords updateUnchangedRecords
    • updatablePrimaryKeys

      protected Boolean updatablePrimaryKeys
    • reflectionCaching

      protected Boolean reflectionCaching
    • cacheRecordMappers

      protected Boolean cacheRecordMappers
    • cacheParsingConnection

      protected Boolean cacheParsingConnection
    • cacheParsingConnectionLRUCacheSize

      protected Integer cacheParsingConnectionLRUCacheSize
    • cachePreparedStatementInLoader

      protected Boolean cachePreparedStatementInLoader
    • throwExceptions

      protected ThrowExceptions throwExceptions
    • fetchWarnings

      protected Boolean fetchWarnings
    • fetchServerOutputSize

      protected Integer fetchServerOutputSize
    • returnIdentityOnUpdatableRecord

      protected Boolean returnIdentityOnUpdatableRecord
    • returnAllOnUpdatableRecord

      protected Boolean returnAllOnUpdatableRecord
    • returnRecordToPojo

      protected Boolean returnRecordToPojo
    • mapJPAAnnotations

      protected Boolean mapJPAAnnotations
    • mapRecordComponentParameterNames

      protected Boolean mapRecordComponentParameterNames
    • mapConstructorPropertiesParameterNames

      protected Boolean mapConstructorPropertiesParameterNames
    • mapConstructorParameterNames

      protected Boolean mapConstructorParameterNames
    • mapConstructorParameterNamesInKotlin

      protected Boolean mapConstructorParameterNamesInKotlin
    • queryPoolable

      protected QueryPoolable queryPoolable
    • queryTimeout

      protected Integer queryTimeout
    • maxRows

      protected Integer maxRows
    • fetchSize

      protected Integer fetchSize
    • batchSize

      protected Integer batchSize
    • debugInfoOnStackTrace

      protected Boolean debugInfoOnStackTrace
    • inListPadding

      protected Boolean inListPadding
    • inListPadBase

      protected Integer inListPadBase
    • delimiter

      protected String delimiter
    • emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly

      protected Boolean emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly
    • emulateMultiset

      protected NestedCollectionEmulation emulateMultiset
    • executeUpdateWithoutWhere

      protected ExecuteWithoutWhere executeUpdateWithoutWhere
    • executeDeleteWithoutWhere

      protected ExecuteWithoutWhere executeDeleteWithoutWhere
    • interpreterDialect

      protected SQLDialect interpreterDialect
    • interpreterNameLookupCaseSensitivity

      protected InterpreterNameLookupCaseSensitivity interpreterNameLookupCaseSensitivity
    • interpreterLocale

      protected Locale interpreterLocale
    • interpreterDelayForeignKeyDeclarations

      protected Boolean interpreterDelayForeignKeyDeclarations
    • metaIncludeSystemIndexes

      protected Boolean metaIncludeSystemIndexes
    • metaIncludeSystemSequences

      protected Boolean metaIncludeSystemSequences
    • migrationAllowsUndo

      protected Boolean migrationAllowsUndo
    • migrationRevertUntracked

      protected Boolean migrationRevertUntracked
    • migrationAutoBaseline

      protected Boolean migrationAutoBaseline
    • migrationAutoValidation

      protected Boolean migrationAutoValidation
    • migrationIgnoreDefaultTimestampPrecisionDiffs

      protected Boolean migrationIgnoreDefaultTimestampPrecisionDiffs
    • locale

      protected Locale locale
    • parseDialect

      protected SQLDialect parseDialect
    • parseLocale

      protected Locale parseLocale
    • parseDateFormat

      protected String parseDateFormat
    • parseTimestampFormat

      protected String parseTimestampFormat
    • parseNamedParamPrefix

      protected String parseNamedParamPrefix
    • parseNameCase

      protected ParseNameCase parseNameCase
    • parseWithMetaLookups

      protected ParseWithMetaLookups parseWithMetaLookups
    • parseAppendMissingTableReferences

      protected Transformation parseAppendMissingTableReferences
    • parseSetCommands

      protected Boolean parseSetCommands
    • parseUnsupportedSyntax

      protected ParseUnsupportedSyntax parseUnsupportedSyntax
    • parseUnknownFunctions

      protected ParseUnknownFunctions parseUnknownFunctions
    • parseIgnoreCommercialOnlyFeatures

      protected Boolean parseIgnoreCommercialOnlyFeatures
    • parseIgnoreComments

      protected Boolean parseIgnoreComments
    • parseIgnoreCommentStart

      protected String parseIgnoreCommentStart
    • parseIgnoreCommentStop

      protected String parseIgnoreCommentStop
    • parseRetainCommentsBetweenQueries

      protected Boolean parseRetainCommentsBetweenQueries
    • parseMetaDefaultExpressions

      protected Boolean parseMetaDefaultExpressions
    • readonlyTableRecordInsert

      protected WriteIfReadonly readonlyTableRecordInsert
    • readonlyUpdatableRecordUpdate

      protected WriteIfReadonly readonlyUpdatableRecordUpdate
    • readonlyInsert

      protected WriteIfReadonly readonlyInsert
    • readonlyUpdate

      protected WriteIfReadonly readonlyUpdate
    • applyWorkaroundFor7962

      protected Boolean applyWorkaroundFor7962
    • interpreterSearchPath

      protected List<InterpreterSearchSchema> interpreterSearchPath
    • migrationSchemata

      protected List<MigrationSchema> migrationSchemata
    • parseSearchPath

      protected List<ParseSearchSchema> parseSearchPath
  • Constructor Details

    • Settings

      public Settings()
  • Method Details

    • isForceIntegerTypesOnZeroScaleDecimals

      public Boolean isForceIntegerTypesOnZeroScaleDecimals()
      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 Meta API. This flag allows for turning off this feature.
      Returns:
      possible object is Boolean
    • setForceIntegerTypesOnZeroScaleDecimals

      public void setForceIntegerTypesOnZeroScaleDecimals(Boolean value)
      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 Meta API. This flag allows for turning off this feature.
      Parameters:
      value - allowed object is Boolean
    • isRenderCatalog

      public Boolean isRenderCatalog()
      Whether any catalog name should be rendered at all.

      Use this for single-catalog environments, or when all objects are made available using synonyms

      Returns:
      possible object is Boolean
    • setRenderCatalog

      public void setRenderCatalog(Boolean value)
      Whether any catalog name should be rendered at all.

      Use this for single-catalog environments, or when all objects are made available using synonyms

      Parameters:
      value - allowed object is Boolean
    • isRenderSchema

      public Boolean isRenderSchema()
      Whether any schema name should be rendered at all.

      Setting this to false also implicitly sets "renderCatalog" to false.

      Use this for single-schema environments, or when all objects are made available using synonyms

      Returns:
      possible object is Boolean
    • setRenderSchema

      public void setRenderSchema(Boolean value)
      Whether any schema name should be rendered at all.

      Setting this to false also implicitly sets "renderCatalog" to false.

      Use this for single-schema environments, or when all objects are made available using synonyms

      Parameters:
      value - allowed object is Boolean
    • getRenderMapping

      public RenderMapping getRenderMapping()
      Configure render mapping for runtime schema / table rewriting in generated SQL.
    • setRenderMapping

      public void setRenderMapping(RenderMapping value)
      Configure render mapping for runtime schema / table rewriting in generated SQL.
    • getRenderQuotedNames

      public RenderQuotedNames getRenderQuotedNames()
      Whether rendered schema, table, column names, etc should be quoted.

      This only affects names created through DSL.name(String) methods (including those that are implicitly created through this method), not DSL.quotedName(String) or DSL.unquotedName(String), whose behaviour cannot be overridden.

      This setting does not affect any plain SQL usage.

    • setRenderQuotedNames

      public void setRenderQuotedNames(RenderQuotedNames value)
      Whether rendered schema, table, column names, etc should be quoted.

      This only affects names created through DSL.name(String) methods (including those that are implicitly created through this method), not DSL.quotedName(String) or DSL.unquotedName(String), whose behaviour cannot be overridden.

      This setting does not affect any plain SQL usage.

    • getRenderNameCase

      public RenderNameCase getRenderNameCase()
      Whether the case of Name references should be modified in any way.

      Names are modified irrespective of the getRenderQuotedNames() setting.

      This setting does not affect any plain SQL usage.

    • setRenderNameCase

      public void setRenderNameCase(RenderNameCase value)
      Whether the case of Name references should be modified in any way.

      Names are modified irrespective of the getRenderQuotedNames() setting.

      This setting does not affect any plain SQL usage.

    • getRenderNameStyle

      @Deprecated public RenderNameStyle getRenderNameStyle()
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderQuotedNames and RenderNameCase instead.
      Whether rendered schema, table, column names, etc should be quoted in rendered SQL, or transformed in any other way.

      This is set to "QUOTED" by default for backwards-compatibility.

    • setRenderNameStyle

      @Deprecated public void setRenderNameStyle(RenderNameStyle value)
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderQuotedNames and RenderNameCase instead.
      Whether rendered schema, table, column names, etc should be quoted in rendered SQL, or transformed in any other way.

      This is set to "QUOTED" by default for backwards-compatibility.

    • getRenderNamedParamPrefix

      public String getRenderNamedParamPrefix()
      The prefix to use for named parameters in generated SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • setRenderNamedParamPrefix

      public void setRenderNamedParamPrefix(String value)
      The prefix to use for named parameters in generated SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • getRenderKeywordCase

      public RenderKeywordCase getRenderKeywordCase()
      Whether the case of Keyword references should be modified in any way.
    • setRenderKeywordCase

      public void setRenderKeywordCase(RenderKeywordCase value)
      Whether the case of Keyword references should be modified in any way.
    • getRenderKeywordStyle

      @Deprecated public RenderKeywordStyle getRenderKeywordStyle()
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderKeywordCase instead.
      Whether the case of Keyword references should be modified in any way.

    • setRenderKeywordStyle

      @Deprecated public void setRenderKeywordStyle(RenderKeywordStyle value)
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderKeywordCase instead.
      Whether the case of Keyword references should be modified in any way.

    • getRenderLocale

      public Locale getRenderLocale()
      The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to getLocale().
    • setRenderLocale

      public void setRenderLocale(Locale value)
      The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to getLocale().
    • isRenderFormatted

      public Boolean isRenderFormatted()
      Whether rendered SQL should be pretty-printed.
      Returns:
      possible object is Boolean
    • setRenderFormatted

      public void setRenderFormatted(Boolean value)
      Whether rendered SQL should be pretty-printed.
      Parameters:
      value - allowed object is Boolean
    • getRenderFormatting

      public RenderFormatting getRenderFormatting()
      All sorts of formatting flags / settings.
    • setRenderFormatting

      public void setRenderFormatting(RenderFormatting value)
      All sorts of formatting flags / settings.
    • getRenderOptionalAssociativityParentheses

      public RenderOptionalKeyword getRenderOptionalAssociativityParentheses()
      Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c).
    • setRenderOptionalAssociativityParentheses

      public void setRenderOptionalAssociativityParentheses(RenderOptionalKeyword value)
      Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c).
    • getRenderOptionalAsKeywordForTableAliases

      public RenderOptionalKeyword getRenderOptionalAsKeywordForTableAliases()
      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)
    • setRenderOptionalAsKeywordForTableAliases

      public void setRenderOptionalAsKeywordForTableAliases(RenderOptionalKeyword value)
      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)
    • getRenderOptionalAsKeywordForFieldAliases

      public RenderOptionalKeyword getRenderOptionalAsKeywordForFieldAliases()
      Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect.
    • setRenderOptionalAsKeywordForFieldAliases

      public void setRenderOptionalAsKeywordForFieldAliases(RenderOptionalKeyword value)
      Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect.
    • getRenderOptionalInnerKeyword

      public RenderOptionalKeyword getRenderOptionalInnerKeyword()
      Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect.
    • setRenderOptionalInnerKeyword

      public void setRenderOptionalInnerKeyword(RenderOptionalKeyword value)
      Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect.
    • getRenderOptionalOuterKeyword

      public RenderOptionalKeyword getRenderOptionalOuterKeyword()
      Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect.
    • setRenderOptionalOuterKeyword

      public void setRenderOptionalOuterKeyword(RenderOptionalKeyword value)
      Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect.
    • getRenderImplicitWindowRange

      public RenderImplicitWindowRange getRenderImplicitWindowRange()
      Whether to render an explicit window RANGE clause when an implicit clause is applied.
    • setRenderImplicitWindowRange

      public void setRenderImplicitWindowRange(RenderImplicitWindowRange value)
      Whether to render an explicit window RANGE clause when an implicit clause is applied.
    • isRenderScalarSubqueriesForStoredFunctions

      public Boolean isRenderScalarSubqueriesForStoredFunctions()
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

      Returns:
      possible object is Boolean
    • setRenderScalarSubqueriesForStoredFunctions

      public void setRenderScalarSubqueriesForStoredFunctions(Boolean value)
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

      Parameters:
      value - allowed object is Boolean
    • getRenderImplicitJoinType

      public RenderImplicitJoinType getRenderImplicitJoinType()
      The join type to be generated by implicit joins.
    • setRenderImplicitJoinType

      public void setRenderImplicitJoinType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins.
    • getRenderDefaultNullability

      public RenderDefaultNullability getRenderDefaultNullability()
      Whether the Nullability.DEFAULT nullablity should be rendered in generated DDL, and how it should be rendered.
    • setRenderDefaultNullability

      public void setRenderDefaultNullability(RenderDefaultNullability value)
      Whether the Nullability.DEFAULT nullablity should be rendered in generated DDL, and how it should be rendered.
    • isRenderCoalesceToEmptyStringInConcat

      public Boolean isRenderCoalesceToEmptyStringInConcat()
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setRenderCoalesceToEmptyStringInConcat

      public void setRenderCoalesceToEmptyStringInConcat(Boolean value)
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isRenderOrderByRownumberForEmulatedPagination

      public Boolean isRenderOrderByRownumberForEmulatedPagination()
      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 jOOQ to not generate the additional ORDER BY clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/7609.

      Returns:
      possible object is Boolean
    • setRenderOrderByRownumberForEmulatedPagination

      public void setRenderOrderByRownumberForEmulatedPagination(Boolean value)
      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 jOOQ to not generate the additional ORDER BY clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/7609.

      Parameters:
      value - allowed object is Boolean
    • isRenderOutputForSQLServerReturningClause

      public Boolean isRenderOutputForSQLServerReturningClause()
      Whether the jOOQ RETURNING clause should map to SQL Server's OUTPUT clause.

      SQL Server supports an OUTPUT clause in most DML statements, whose behaviour is almost identical to RETURNING in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering this OUTPUT clause can deactivate this flag to revert to jOOQ calling java.sql.Statement#getGeneratedKeys() instead, which is only supported for single row inserts.

      This OUTPUT clause does not support fetching trigger generated values. In order to fetch trigger generated values, fetchTriggerValuesAfterSQLServerOutput needs to be enabled as well.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

      Returns:
      possible object is Boolean
    • setRenderOutputForSQLServerReturningClause

      public void setRenderOutputForSQLServerReturningClause(Boolean value)
      Whether the jOOQ RETURNING clause should map to SQL Server's OUTPUT clause.

      SQL Server supports an OUTPUT clause in most DML statements, whose behaviour is almost identical to RETURNING in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering this OUTPUT clause can deactivate this flag to revert to jOOQ calling java.sql.Statement#getGeneratedKeys() instead, which is only supported for single row inserts.

      This OUTPUT clause does not support fetching trigger generated values. In order to fetch trigger generated values, fetchTriggerValuesAfterSQLServerOutput needs to be enabled as well.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

      Parameters:
      value - allowed object is Boolean
    • isRenderGroupConcatMaxLenSessionVariable

      public Boolean isRenderGroupConcatMaxLenSessionVariable()
      Whether the jOOQ GROUP_CONCAT function should be overflow-protected by setting the @@group_concat_max_len session variable in MySQL style database systems.

      MySQL truncates GROUP_CONCAT results after a certain length, which may be way too small for jOOQ's usage, especially when using the MULTISET emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containing GROUP_CONCAT. This flag can be used to opt out of this.

      For details, see https://github.com/jOOQ/jOOQ/issues/12092.

      Returns:
      possible object is Boolean
    • setRenderGroupConcatMaxLenSessionVariable

      public void setRenderGroupConcatMaxLenSessionVariable(Boolean value)
      Whether the jOOQ GROUP_CONCAT function should be overflow-protected by setting the @@group_concat_max_len session variable in MySQL style database systems.

      MySQL truncates GROUP_CONCAT results after a certain length, which may be way too small for jOOQ's usage, especially when using the MULTISET emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containing GROUP_CONCAT. This flag can be used to opt out of this.

      For details, see https://github.com/jOOQ/jOOQ/issues/12092.

      Parameters:
      value - allowed object is Boolean
    • isRenderParenthesisAroundSetOperationQueries

      public Boolean isRenderParenthesisAroundSetOperationQueries()
      Whether queries combined with set operators (e.g. UNION and UNION ALL) should always be surrounded by a parenthesis pair.

      By default (i.e. when this setting is set to false jOOQ will only render parenthesis pairs around queries combined with set operators when required. This is for example the case when set operators are nested, when non-associative operators like EXCEPT are used, or when the queries are rendered as derived tables.

      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.

      Returns:
      possible object is Boolean
    • setRenderParenthesisAroundSetOperationQueries

      public void setRenderParenthesisAroundSetOperationQueries(Boolean value)
      Whether queries combined with set operators (e.g. UNION and UNION ALL) should always be surrounded by a parenthesis pair.

      By default (i.e. when this setting is set to false jOOQ will only render parenthesis pairs around queries combined with set operators when required. This is for example the case when set operators are nested, when non-associative operators like EXCEPT are used, or when the queries are rendered as derived tables.

      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.

      Parameters:
      value - allowed object is Boolean
    • getNamePathSeparator

      public String getNamePathSeparator()
      The character(s) to be used as a separator in paths encoded in a Name

      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 
         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. "__".

    • setNamePathSeparator

      public void setNamePathSeparator(String value)
      The character(s) to be used as a separator in paths encoded in a Name

      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 
         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. "__".

    • isBindOffsetDateTimeType

      public Boolean isBindOffsetDateTimeType()
      Whether the java.time (JSR 310) type OffsetDateTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

      Returns:
      possible object is Boolean
    • setBindOffsetDateTimeType

      public void setBindOffsetDateTimeType(Boolean value)
      Whether the java.time (JSR 310) type OffsetDateTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

      Parameters:
      value - allowed object is Boolean
    • isBindOffsetTimeType

      public Boolean isBindOffsetTimeType()
      Whether the java.time (JSR 310) type OffsetTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

      Returns:
      possible object is Boolean
    • setBindOffsetTimeType

      public void setBindOffsetTimeType(Boolean value)
      Whether the java.time (JSR 310) type OffsetTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

      Parameters:
      value - allowed object is Boolean
    • isFetchTriggerValuesAfterSQLServerOutput

      public Boolean isFetchTriggerValuesAfterSQLServerOutput()
      Fetch trigger values after SQL Server OUTPUT clause.

      SQL Server OUTPUT statements do not support fetching trigger generated values. This is a limitation of the renderOutputForSQLServerReturningClause. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

      Returns:
      possible object is Boolean
    • setFetchTriggerValuesAfterSQLServerOutput

      public void setFetchTriggerValuesAfterSQLServerOutput(Boolean value)
      Fetch trigger values after SQL Server OUTPUT clause.

      SQL Server OUTPUT statements do not support fetching trigger generated values. This is a limitation of the renderOutputForSQLServerReturningClause. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

      Parameters:
      value - allowed object is Boolean
    • getFetchIntermediateResult

      public FetchIntermediateResult getFetchIntermediateResult()
      Whether to fetch data into intermediate Result instances.

      By default, a ResultQuery produces no intermediate Result instances if they are not explicitly requested by the caller, e.g. by calling ResultQuery.fetch(), or in the presence of ExecuteListener instances, which may require access to ExecuteContext.result(). This default behaviour helps avoid unnecessary allocations of possibly large data structures.

      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.

    • setFetchIntermediateResult

      public void setFetchIntermediateResult(FetchIntermediateResult value)
      Whether to fetch data into intermediate Result instances.

      By default, a ResultQuery produces no intermediate Result instances if they are not explicitly requested by the caller, e.g. by calling ResultQuery.fetch(), or in the presence of ExecuteListener instances, which may require access to ExecuteContext.result(). This default behaviour helps avoid unnecessary allocations of possibly large data structures.

      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.

    • isTransformPatterns

      public Boolean isTransformPatterns()
      Transform various syntax patterns to better versions, if possible.

      This flag enables the pattern transformation feature, which consists of several sub-flags that are all prefixed with "transformPatterns", e.g. transformPatternsTrim. While the sub-flags default to being enabled, and can be disabled on an individual basis, the global feature itself is disabled by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatterns

      public void setTransformPatterns(Boolean value)
      Transform various syntax patterns to better versions, if possible.

      This flag enables the pattern transformation feature, which consists of several sub-flags that are all prefixed with "transformPatterns", e.g. transformPatternsTrim. While the sub-flags default to being enabled, and can be disabled on an individual basis, the global feature itself is disabled by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsLogging

      public Boolean isTransformPatternsLogging()
      Activate debug logging of the transformPatterns feature.
      Returns:
      possible object is Boolean
    • setTransformPatternsLogging

      public void setTransformPatternsLogging(Boolean value)
      Activate debug logging of the transformPatterns feature.
      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsTrim

      public Boolean isTransformPatternsTrim()
      Transform LTRIM(RTRIM(x)) or RTRIM(LTRIM(x)) to TRIM(x).

      Historically, a few dialects did not implement TRIM(x) or TRIM(BOTH FROM x), so users worked around this by wrapping LTRIM() and RTRIM() with each other. Maintaining this is usually undesirable, so this transformation helps remove the unwanted wrapping.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsTrim

      public void setTransformPatternsTrim(Boolean value)
      Transform LTRIM(RTRIM(x)) or RTRIM(LTRIM(x)) to TRIM(x).

      Historically, a few dialects did not implement TRIM(x) or TRIM(BOTH FROM x), so users worked around this by wrapping LTRIM() and RTRIM() with each other. Maintaining this is usually undesirable, so this transformation helps remove the unwanted wrapping.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNotNot

      public Boolean isTransformPatternsNotNot()
      Transform NOT(NOT(x)) to x.

      This transformation removes a redundant logic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNotNot

      public void setTransformPatternsNotNot(Boolean value)
      Transform NOT(NOT(x)) to x.

      This transformation removes a redundant logic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNotComparison

      public Boolean isTransformPatternsNotComparison()
      Transform NOT (a != b) to a = b, and similar comparisons.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNotComparison

      public void setTransformPatternsNotComparison(Boolean value)
      Transform NOT (a != b) to a = b, and similar comparisons.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNotNotDistinct

      public Boolean isTransformPatternsNotNotDistinct()
      Transform NOT (a IS NOT DISTINCT FROM b) to a IS DISTINCT FROM b.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNotNotDistinct

      public void setTransformPatternsNotNotDistinct(Boolean value)
      Transform NOT (a IS NOT DISTINCT FROM b) to a IS DISTINCT FROM b.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNormaliseAssociativeOps

      public Boolean isTransformPatternsNormaliseAssociativeOps()
      Transform (a + b) + (c + d) to ((a + b) + c) + d.

      This transformation turns trees into lists, which greatly simplifies other tree traversal transformations. Some of those other transformations currently rely on this flag to be active.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNormaliseAssociativeOps

      public void setTransformPatternsNormaliseAssociativeOps(Boolean value)
      Transform (a + b) + (c + d) to ((a + b) + c) + d.

      This transformation turns trees into lists, which greatly simplifies other tree traversal transformations. Some of those other transformations currently rely on this flag to be active.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNormaliseInListSingleElementToComparison

      public Boolean isTransformPatternsNormaliseInListSingleElementToComparison()
      Transform x IN (a) to x = a and x NOT IN (a) to x != a.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNormaliseInListSingleElementToComparison

      public void setTransformPatternsNormaliseInListSingleElementToComparison(Boolean value)
      Transform x IN (a) to x = a and x NOT IN (a) to x != a.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNormaliseFieldCompareValue

      public Boolean isTransformPatternsNormaliseFieldCompareValue()
      Transform 1 = a to a = 1.

      This transformation inverses TableField [op] org.jooq.impl.QOM.Val comparisons, if they're not in that order.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNormaliseFieldCompareValue

      public void setTransformPatternsNormaliseFieldCompareValue(Boolean value)
      Transform 1 = a to a = 1.

      This transformation inverses TableField [op] org.jooq.impl.QOM.Val comparisons, if they're not in that order.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsOrEqToIn

      public Boolean isTransformPatternsOrEqToIn()
      Transform x = c1 OR x = c2 to x IN (c1, c2).

      This transformation simplifies verbose OR predicates into simpler IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsOrEqToIn

      public void setTransformPatternsOrEqToIn(Boolean value)
      Transform x = c1 OR x = c2 to x IN (c1, c2).

      This transformation simplifies verbose OR predicates into simpler IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsAndNeToNotIn

      public Boolean isTransformPatternsAndNeToNotIn()
      Transform x != c1 AND x != c2 to x NOT IN (c1, c2).

      This transformation simplifies verbose AND predicates into simpler NOT IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsAndNeToNotIn

      public void setTransformPatternsAndNeToNotIn(Boolean value)
      Transform x != c1 AND x != c2 to x NOT IN (c1, c2).

      This transformation simplifies verbose AND predicates into simpler NOT IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsMergeOrComparison

      public Boolean isTransformPatternsMergeOrComparison()
      Transform x = a OR x > a to x >= a.

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsMergeOrComparison

      public void setTransformPatternsMergeOrComparison(Boolean value)
      Transform x = a OR x > a to x >= a.

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsMergeAndComparison

      public Boolean isTransformPatternsMergeAndComparison()
      Transform x >= a AND x <= a to x = a.

      This transformation merges multiple AND connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsMergeAndComparison

      public void setTransformPatternsMergeAndComparison(Boolean value)
      Transform x >= a AND x <= a to x = a.

      This transformation merges multiple AND connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsMergeInLists

      public Boolean isTransformPatternsMergeInLists()
      Transform x IN (a, b, c) AND x IN (b, c, d) to x IN (b, c).

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsMergeInLists

      public void setTransformPatternsMergeInLists(Boolean value)
      Transform x IN (a, b, c) AND x IN (b, c, d) to x IN (b, c).

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsMergeRangePredicates

      public Boolean isTransformPatternsMergeRangePredicates()
      Transform x >= a AND x <= b to x BETWEEN a AND b.

      This transformation merges multiple AND connected range predicates to a single comparison using BETWEEN.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsMergeRangePredicates

      public void setTransformPatternsMergeRangePredicates(Boolean value)
      Transform x >= a AND x <= b to x BETWEEN a AND b.

      This transformation merges multiple AND connected range predicates to a single comparison using BETWEEN.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsMergeBetweenSymmetricPredicates

      public Boolean isTransformPatternsMergeBetweenSymmetricPredicates()
      Transform x BETWEEN a AND b OR x BETWEEN b AND a to x BETWEEN SYMMETRIC a AND b.

      This transformation merges multiple OR connected BETWEEN predicates to a single comparison using BETWEEN SYMMETRIC.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsMergeBetweenSymmetricPredicates

      public void setTransformPatternsMergeBetweenSymmetricPredicates(Boolean value)
      Transform x BETWEEN a AND b OR x BETWEEN b AND a to x BETWEEN SYMMETRIC a AND b.

      This transformation merges multiple OR connected BETWEEN predicates to a single comparison using BETWEEN SYMMETRIC.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsTrivialCaseAbbreviation

      public Boolean isTransformPatternsTrivialCaseAbbreviation()
      Transform trivial case abbreviations like NVL(NULL, a) to a.

      This transformation removes any trivial case abbreviations, such as NVL(), COALESCE(), NULLIF(), etc.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsTrivialCaseAbbreviation

      public void setTransformPatternsTrivialCaseAbbreviation(Boolean value)
      Transform trivial case abbreviations like NVL(NULL, a) to a.

      This transformation removes any trivial case abbreviations, such as NVL(), COALESCE(), NULLIF(), etc.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsTrivialPredicates

      public Boolean isTransformPatternsTrivialPredicates()
      Transform trivial predicates like 1 = 1 to TRUE.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsTrivialPredicates

      public void setTransformPatternsTrivialPredicates(Boolean value)
      Transform trivial predicates like 1 = 1 to TRUE.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsScalarSubqueryCountAsteriskGtZero

      public Boolean isTransformPatternsScalarSubqueryCountAsteriskGtZero()
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(*) …) > 0 to equivalent EXISTS (SELECT 1 …).

      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.

      Returns:
      possible object is Boolean
    • setTransformPatternsScalarSubqueryCountAsteriskGtZero

      public void setTransformPatternsScalarSubqueryCountAsteriskGtZero(Boolean value)
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(*) …) > 0 to equivalent EXISTS (SELECT 1 …).

      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.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsScalarSubqueryCountExpressionGtZero

      public Boolean isTransformPatternsScalarSubqueryCountExpressionGtZero()
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(expr) …) > 0 to equivalent EXISTS (SELECT 1 … WHERE expr IS NOT NULL).

      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.

      Returns:
      possible object is Boolean
    • setTransformPatternsScalarSubqueryCountExpressionGtZero

      public void setTransformPatternsScalarSubqueryCountExpressionGtZero(Boolean value)
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(expr) …) > 0 to equivalent EXISTS (SELECT 1 … WHERE expr IS NOT NULL).

      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.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsEmptyScalarSubquery

      public Boolean isTransformPatternsEmptyScalarSubquery()
      Transform empty scalar subqueries like (SELECT 1 WHERE FALSE) to NULL.

      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.

      Returns:
      possible object is Boolean
    • setTransformPatternsEmptyScalarSubquery

      public void setTransformPatternsEmptyScalarSubquery(Boolean value)
      Transform empty scalar subqueries like (SELECT 1 WHERE FALSE) to NULL.

      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.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsNegNeg

      public Boolean isTransformPatternsNegNeg()
      Transform -(-(x)) to x

      This transformation removes a redundant arithmetic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNegNeg

      public void setTransformPatternsNegNeg(Boolean value)
      Transform -(-(x)) to x

      This transformation removes a redundant arithmetic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitNotBitNot

      public Boolean isTransformPatternsBitNotBitNot()
      Transform ~(~(x)) to x.

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitNotBitNot

      public void setTransformPatternsBitNotBitNot(Boolean value)
      Transform ~(~(x)) to x.

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitNotBitNand

      public Boolean isTransformPatternsBitNotBitNand()
      Transform ~(bitnand(x, y)) to bitand(x, y) and ~(bitand(x, y) to bitnand(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitNotBitNand

      public void setTransformPatternsBitNotBitNand(Boolean value)
      Transform ~(bitnand(x, y)) to bitand(x, y) and ~(bitand(x, y) to bitnand(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitNotBitNor

      public Boolean isTransformPatternsBitNotBitNor()
      Transform ~(bitnor(x, y)) to bitor(x, y) and ~(bitor(x, y) to bitnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitNotBitNor

      public void setTransformPatternsBitNotBitNor(Boolean value)
      Transform ~(bitnor(x, y)) to bitor(x, y) and ~(bitor(x, y) to bitnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitNotBitXNor

      public Boolean isTransformPatternsBitNotBitXNor()
      Transform ~(bitxnor(x, y)) to bitxor(x, y) and ~(bitxor(x, y) to bitxnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitNotBitXNor

      public void setTransformPatternsBitNotBitXNor(Boolean value)
      Transform ~(bitxnor(x, y)) to bitxor(x, y) and ~(bitxor(x, y) to bitxnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsIdempotentFunctionRepetition

      public Boolean isTransformPatternsIdempotentFunctionRepetition()
      Transform all repetitions of idempotent functions, such as UPPER(UPPER(s)) to UPPER(s).

      Idempotent functions that are covered so far, include:

      • LTRIM(LTRIM(s)) to LTRIM(s)
      • LTRIM(TRIM(s)) to TRIM(s)
      • RTRIM(RTRIM(s)) to RTRIM(s)
      • RTRIM(TRIM(s)) to TRIM(s)
      • TRIM(LTRIM(s)) to TRIM(s)
      • TRIM(RTRIM(s)) to TRIM(s)
      • UPPER(UPPER(s)) to UPPER(s)
      • LOWER(LOWER(s)) to LOWER(s)

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsIdempotentFunctionRepetition

      public void setTransformPatternsIdempotentFunctionRepetition(Boolean value)
      Transform all repetitions of idempotent functions, such as UPPER(UPPER(s)) to UPPER(s).

      Idempotent functions that are covered so far, include:

      • LTRIM(LTRIM(s)) to LTRIM(s)
      • LTRIM(TRIM(s)) to TRIM(s)
      • RTRIM(RTRIM(s)) to RTRIM(s)
      • RTRIM(TRIM(s)) to TRIM(s)
      • TRIM(LTRIM(s)) to TRIM(s)
      • TRIM(RTRIM(s)) to TRIM(s)
      • UPPER(UPPER(s)) to UPPER(s)
      • LOWER(LOWER(s)) to LOWER(s)

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsArithmeticExpressions

      public Boolean isTransformPatternsArithmeticExpressions()
      Transform 1 / y * x to x / y, and other transformations.

      This transformation simplifies arithmetic expressions.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsArithmeticExpressions

      public void setTransformPatternsArithmeticExpressions(Boolean value)
      Transform 1 / y * x to x / y, and other transformations.

      This transformation simplifies arithmetic expressions.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsTrigonometricFunctions

      public Boolean isTransformPatternsTrigonometricFunctions()
      Transform SIN(x) / COS(x) to TAN(x), and other transformations.

      This transformation turns expanded trignonometric function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsTrigonometricFunctions

      public void setTransformPatternsTrigonometricFunctions(Boolean value)
      Transform SIN(x) / COS(x) to TAN(x), and other transformations.

      This transformation turns expanded trignonometric function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsLogarithmicFunctions

      public Boolean isTransformPatternsLogarithmicFunctions()
      Transform LN(value) / LN(base) to LOG(base, value), and other transformations.

      This transformation turns expanded logarithmic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsLogarithmicFunctions

      public void setTransformPatternsLogarithmicFunctions(Boolean value)
      Transform LN(value) / LN(base) to LOG(base, value), and other transformations.

      This transformation turns expanded logarithmic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsHyperbolicFunctions

      public Boolean isTransformPatternsHyperbolicFunctions()
      Transform (EXP(x) - EXP(-x)) / 2 to SINH(x), and other transformations.

      This transformation turns expanded hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsHyperbolicFunctions

      public void setTransformPatternsHyperbolicFunctions(Boolean value)
      Transform (EXP(x) - EXP(-x)) / 2 to SINH(x), and other transformations.

      This transformation turns expanded hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsInverseHyperbolicFunctions

      public Boolean isTransformPatternsInverseHyperbolicFunctions()
      Transform LN(x + SQRT(SQUARE(x) + 1)) to ASINH(x), and other transformations.

      This transformation turns expanded inverse hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsInverseHyperbolicFunctions

      public void setTransformPatternsInverseHyperbolicFunctions(Boolean value)
      Transform LN(x + SQRT(SQUARE(x) + 1)) to ASINH(x), and other transformations.

      This transformation turns expanded inverse hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformInlineBindValuesForFieldComparisons

      public Boolean isTransformInlineBindValuesForFieldComparisons()
      Transform 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 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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformInlineBindValuesForFieldComparisons

      public void setTransformInlineBindValuesForFieldComparisons(Boolean value)
      Transform 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 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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformAnsiJoinToTableLists

      public Boolean isTransformAnsiJoinToTableLists()
      Transform ANSI join to table lists if possible.

      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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformAnsiJoinToTableLists

      public void setTransformAnsiJoinToTableLists(Boolean value)
      Transform ANSI join to table lists if possible.

      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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • getTransformInConditionSubqueryWithLimitToDerivedTable

      public Transformation getTransformInConditionSubqueryWithLimitToDerivedTable()
      Transform a subquery from an IN condition with LIMIT to an equivalent derived table.

      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.

    • setTransformInConditionSubqueryWithLimitToDerivedTable

      public void setTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value)
      Transform a subquery from an IN condition with LIMIT to an equivalent derived table.

      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.

    • getTransformQualify

      public Transformation getTransformQualify()
      Transform the QUALIFY clause to an equivalent derived table to filter on window functions.

      This feature is available in the commercial distribution only.

    • setTransformQualify

      public void setTransformQualify(Transformation value)
      Transform the QUALIFY clause to an equivalent derived table to filter on window functions.

      This feature is available in the commercial distribution only.

    • isTransformTableListsToAnsiJoin

      public Boolean isTransformTableListsToAnsiJoin()
      Transform table lists to ANSI join if possible.

      (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.

      Returns:
      possible object is Boolean
    • setTransformTableListsToAnsiJoin

      public void setTransformTableListsToAnsiJoin(Boolean value)
      Transform table lists to ANSI join if possible.

      (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.

      Parameters:
      value - allowed object is Boolean
    • getTransformRownum

      public Transformation getTransformRownum()
      Transform ROWNUM expressions to corresponding LIMIT clauses or ROW_NUMBER() expressions.

      In Oracle 11g and less, ROWNUM filtering was the most popular way to paginate. This pseudo column is not supported in other RDBMS, and should be replaced in Oracle 12c by the FETCH clause or ROW_NUMBER() OVER () filtering. This transformation allows for replacing such a filter by equivalent SQL, if possible.

      This feature is available in the commercial distribution only.

    • setTransformRownum

      public void setTransformRownum(Transformation value)
      Transform ROWNUM expressions to corresponding LIMIT clauses or ROW_NUMBER() expressions.

      In Oracle 11g and less, ROWNUM filtering was the most popular way to paginate. This pseudo column is not supported in other RDBMS, and should be replaced in Oracle 12c by the FETCH clause or ROW_NUMBER() OVER () filtering. This transformation allows for replacing such a filter by equivalent SQL, if possible.

      This feature is available in the commercial distribution only.

    • getTransformUnneededArithmeticExpressions

      public TransformUnneededArithmeticExpressions getTransformUnneededArithmeticExpressions()
      Transform arithmetic expressions on literals and bind variables.

      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.

    • setTransformUnneededArithmeticExpressions

      public void setTransformUnneededArithmeticExpressions(TransformUnneededArithmeticExpressions value)
      Transform arithmetic expressions on literals and bind variables.

      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.

    • getBackslashEscaping

      public BackslashEscaping getBackslashEscaping()
      Whether string literals should be escaped with backslash.
    • setBackslashEscaping

      public void setBackslashEscaping(BackslashEscaping value)
      Whether string literals should be escaped with backslash.
    • getParamType

      public ParamType getParamType()
      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

    • setParamType

      public void setParamType(ParamType value)
      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

    • getParamCastMode

      public ParamCastMode getParamCastMode()
      Whether rendered bind values should be cast to their respective type.
    • setParamCastMode

      public void setParamCastMode(ParamCastMode value)
      Whether rendered bind values should be cast to their respective type.
    • getStatementType

      public StatementType getStatementType()
      The type of statement that is to be executed.
    • setStatementType

      public void setStatementType(StatementType value)
      The type of statement that is to be executed.
    • getInlineThreshold

      public Integer getInlineThreshold()
      The maximum number of allowed bind variables before inlining all values where 0 uses the dialect defaults:
    • setInlineThreshold

      public void setInlineThreshold(Integer value)
      The maximum number of allowed bind variables before inlining all values where 0 uses the dialect defaults:
    • getTransactionListenerStartInvocationOrder

      public InvocationOrder getTransactionListenerStartInvocationOrder()
      The order of invocation for [action]start() methods registered TransactionListeners.
    • setTransactionListenerStartInvocationOrder

      public void setTransactionListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered TransactionListeners.
    • getTransactionListenerEndInvocationOrder

      public InvocationOrder getTransactionListenerEndInvocationOrder()
      The order of invocation for [action]end() methods registered TransactionListeners.
    • setTransactionListenerEndInvocationOrder

      public void setTransactionListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered TransactionListeners.
    • getMigrationListenerStartInvocationOrder

      public InvocationOrder getMigrationListenerStartInvocationOrder()
      The order of invocation for [action]start() methods registered MigrationListeners.
    • setMigrationListenerStartInvocationOrder

      public void setMigrationListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered MigrationListeners.
    • getMigrationListenerEndInvocationOrder

      public InvocationOrder getMigrationListenerEndInvocationOrder()
      The order of invocation for [action]end() methods registered MigrationListeners.
    • setMigrationListenerEndInvocationOrder

      public void setMigrationListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered MigrationListeners.
    • getVisitListenerStartInvocationOrder

      public InvocationOrder getVisitListenerStartInvocationOrder()
      The order of invocation for [action]start() methods registered VisitListeners.
    • setVisitListenerStartInvocationOrder

      public void setVisitListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered VisitListeners.
    • getVisitListenerEndInvocationOrder

      public InvocationOrder getVisitListenerEndInvocationOrder()
      The order of invocation for [action]end() methods registered VisitListeners.
    • setVisitListenerEndInvocationOrder

      public void setVisitListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered VisitListeners.
    • getRecordListenerStartInvocationOrder

      public InvocationOrder getRecordListenerStartInvocationOrder()
      The order of invocation for [action]start() methods registered RecordListeners.
    • setRecordListenerStartInvocationOrder

      public void setRecordListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered RecordListeners.
    • getRecordListenerEndInvocationOrder

      public InvocationOrder getRecordListenerEndInvocationOrder()
      The order of invocation for [action]end() methods registered RecordListeners.
    • setRecordListenerEndInvocationOrder

      public void setRecordListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered RecordListeners.
    • getExecuteListenerStartInvocationOrder

      public InvocationOrder getExecuteListenerStartInvocationOrder()
      The order of invocation for [action]start() methods registered ExecuteListeners.
    • setExecuteListenerStartInvocationOrder

      public void setExecuteListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered ExecuteListeners.
    • getExecuteListenerEndInvocationOrder

      public InvocationOrder getExecuteListenerEndInvocationOrder()
      The order of invocation for [action]end() methods registered ExecuteListeners.
    • setExecuteListenerEndInvocationOrder

      public void setExecuteListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered ExecuteListeners.
    • isExecuteLogging

      public Boolean isExecuteLogging()
      When set to true, this will add jOOQ's default logging ExecuteListeners.
      Returns:
      possible object is Boolean
    • setExecuteLogging

      public void setExecuteLogging(Boolean value)
      When set to true, this will add jOOQ's default logging ExecuteListeners.
      Parameters:
      value - allowed object is Boolean
    • isUpdateRecordVersion

      public Boolean isUpdateRecordVersion()
      Whether store(), insert(), and update() methods should update the record version prior to the operation, for use with executeWithOptimisticLocking.
      Returns:
      possible object is Boolean
    • setUpdateRecordVersion

      public void setUpdateRecordVersion(Boolean value)
      Whether store(), insert(), and update() methods should update the record version prior to the operation, for use with executeWithOptimisticLocking.
      Parameters:
      value - allowed object is Boolean
    • isUpdateRecordTimestamp

      public Boolean isUpdateRecordTimestamp()
      Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use with executeWithOptimisticLocking.
      Returns:
      possible object is Boolean
    • setUpdateRecordTimestamp

      public void setUpdateRecordTimestamp(Boolean value)
      Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use with executeWithOptimisticLocking.
      Parameters:
      value - allowed object is Boolean
    • isExecuteWithOptimisticLocking

      public Boolean isExecuteWithOptimisticLocking()
      Whether store() and delete() methods should be executed with optimistic locking.
      Returns:
      possible object is Boolean
    • setExecuteWithOptimisticLocking

      public void setExecuteWithOptimisticLocking(Boolean value)
      Whether store() and delete() methods should be executed with optimistic locking.
      Parameters:
      value - allowed object is Boolean
    • isExecuteWithOptimisticLockingExcludeUnversioned

      public Boolean isExecuteWithOptimisticLockingExcludeUnversioned()
      Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e. on tables that do not have a version and/or timestamp column.

      This flag has no effect when "executeWithOptimisticLocking" is turned off.

      Returns:
      possible object is Boolean
    • setExecuteWithOptimisticLockingExcludeUnversioned

      public void setExecuteWithOptimisticLockingExcludeUnversioned(Boolean value)
      Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e. on tables that do not have a version and/or timestamp column.

      This flag has no effect when "executeWithOptimisticLocking" is turned off.

      Parameters:
      value - allowed object is Boolean
    • isAttachRecords

      public Boolean isAttachRecords()
      Whether fetched records should be attached to the fetching configuration.
      Returns:
      possible object is Boolean
    • setAttachRecords

      public void setAttachRecords(Boolean value)
      Whether fetched records should be attached to the fetching configuration.
      Parameters:
      value - allowed object is Boolean
    • isInsertUnchangedRecords

      public Boolean isInsertUnchangedRecords()
      Whether TableRecord.insert() calls should be executed if the record is unchanged. This also affects the INSERT part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
      Returns:
      possible object is Boolean
    • setInsertUnchangedRecords

      public void setInsertUnchangedRecords(Boolean value)
      Whether TableRecord.insert() calls should be executed if the record is unchanged. This also affects the INSERT part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
      Parameters:
      value - allowed object is Boolean
    • getUpdateUnchangedRecords

      public UpdateUnchangedRecords getUpdateUnchangedRecords()
      Whether UpdatableRecord.update() calls should be executed if the record is unchanged. This also affects the UPDATE part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
    • setUpdateUnchangedRecords

      public void setUpdateUnchangedRecords(UpdateUnchangedRecords value)
      Whether UpdatableRecord.update() calls should be executed if the record is unchanged. This also affects the UPDATE part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
    • isUpdatablePrimaryKeys

      public Boolean isUpdatablePrimaryKeys()
      Whether primary key values are deemed to be "updatable" in jOOQ.

      Setting this to "true" will allow for updating primary key values through UpdatableRecord.store() and UpdatableRecord.update().

      Returns:
      possible object is Boolean
    • setUpdatablePrimaryKeys

      public void setUpdatablePrimaryKeys(Boolean value)
      Whether primary key values are deemed to be "updatable" in jOOQ.

      Setting this to "true" will allow for updating primary key values through UpdatableRecord.store() and UpdatableRecord.update().

      Parameters:
      value - allowed object is Boolean
    • isReflectionCaching

      public Boolean isReflectionCaching()
      Whether reflection information should be cached in the configuration.
      Returns:
      possible object is Boolean
    • setReflectionCaching

      public void setReflectionCaching(Boolean value)
      Whether reflection information should be cached in the configuration.
      Parameters:
      value - allowed object is Boolean
    • isCacheRecordMappers

      public Boolean isCacheRecordMappers()
      Whether record mappers should be cached in the configuration.
      Returns:
      possible object is Boolean
    • setCacheRecordMappers

      public void setCacheRecordMappers(Boolean value)
      Whether record mappers should be cached in the configuration.
      Parameters:
      value - allowed object is Boolean
    • isCacheParsingConnection

      public Boolean isCacheParsingConnection()
      Whether parsing connection translations should be cached in the configuration.
      Returns:
      possible object is Boolean
    • setCacheParsingConnection

      public void setCacheParsingConnection(Boolean value)
      Whether parsing connection translations should be cached in the configuration.
      Parameters:
      value - allowed object is Boolean
    • getCacheParsingConnectionLRUCacheSize

      public Integer getCacheParsingConnectionLRUCacheSize()
      The default implementation of the ParsingConnection cache's LRU cache size.
    • setCacheParsingConnectionLRUCacheSize

      public void setCacheParsingConnectionLRUCacheSize(Integer value)
      The default implementation of the ParsingConnection cache's LRU cache size.
    • isCachePreparedStatementInLoader

      public Boolean isCachePreparedStatementInLoader()
      Whether JDBC PreparedStatement instances should be cached in loader API.
      Returns:
      possible object is Boolean
    • setCachePreparedStatementInLoader

      public void setCachePreparedStatementInLoader(Boolean value)
      Whether JDBC PreparedStatement instances should be cached in loader API.
      Parameters:
      value - allowed object is Boolean
    • getThrowExceptions

      public ThrowExceptions getThrowExceptions()
      A strategy defining how exceptions from the database / JDBC driver should be propagated
    • setThrowExceptions

      public void setThrowExceptions(ThrowExceptions value)
      A strategy defining how exceptions from the database / JDBC driver should be propagated
    • isFetchWarnings

      public Boolean isFetchWarnings()
      Whether warnings should be fetched after each query execution.
      Returns:
      possible object is Boolean
    • setFetchWarnings

      public void setFetchWarnings(Boolean value)
      Whether warnings should be fetched after each query execution.
      Parameters:
      value - allowed object is Boolean
    • getFetchServerOutputSize

      public Integer getFetchServerOutputSize()
      Whether server output should be fetched after each query execution.
    • setFetchServerOutputSize

      public void setFetchServerOutputSize(Integer value)
      Whether server output should be fetched after each query execution.
    • isReturnIdentityOnUpdatableRecord

      public Boolean isReturnIdentityOnUpdatableRecord()
      Whether calls to store(), insert() and update() should return the identity column.
      Returns:
      possible object is Boolean
    • setReturnIdentityOnUpdatableRecord

      public void setReturnIdentityOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return the identity column.
      Parameters:
      value - allowed object is Boolean
    • isReturnAllOnUpdatableRecord

      public Boolean isReturnAllOnUpdatableRecord()
      Whether calls to store(), insert() and update() should return all columns, not just identity columns.

      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.

      Returns:
      possible object is Boolean
    • setReturnAllOnUpdatableRecord

      public void setReturnAllOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return all columns, not just identity columns.

      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.

      Parameters:
      value - allowed object is Boolean
    • isReturnRecordToPojo

      public Boolean isReturnRecordToPojo()
      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 returnAllOnUpdatableRecord is active, also other values.
      Returns:
      possible object is Boolean
    • setReturnRecordToPojo

      public void setReturnRecordToPojo(Boolean value)
      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 returnAllOnUpdatableRecord is active, also other values.
      Parameters:
      value - allowed object is Boolean
    • isMapJPAAnnotations

      public Boolean isMapJPAAnnotations()
      Whether JPA annotations should be considered by the DefaultRecordMapper.
      Returns:
      possible object is Boolean
    • setMapJPAAnnotations

      public void setMapJPAAnnotations(Boolean value)
      Whether JPA annotations should be considered by the DefaultRecordMapper.
      Parameters:
      value - allowed object is Boolean
    • isMapRecordComponentParameterNames

      public Boolean isMapRecordComponentParameterNames()
      Whether constructor parameter names obtained from the Record component names should be considered by the DefaultRecordMapper.
      Returns:
      possible object is Boolean
    • setMapRecordComponentParameterNames

      public void setMapRecordComponentParameterNames(Boolean value)
      Whether constructor parameter names obtained from the Record component names should be considered by the DefaultRecordMapper.
      Parameters:
      value - allowed object is Boolean
    • isMapConstructorPropertiesParameterNames

      public Boolean isMapConstructorPropertiesParameterNames()
      Whether constructor parameter names obtained from the ConstructorProperties annotation should be considered by the DefaultRecordMapper.
      Returns:
      possible object is Boolean
    • setMapConstructorPropertiesParameterNames

      public void setMapConstructorPropertiesParameterNames(Boolean value)
      Whether constructor parameter names obtained from the ConstructorProperties annotation should be considered by the DefaultRecordMapper.
      Parameters:
      value - allowed object is Boolean
    • isMapConstructorParameterNames

      public Boolean isMapConstructorParameterNames()
      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.
      Returns:
      possible object is Boolean
    • setMapConstructorParameterNames

      public void setMapConstructorParameterNames(Boolean value)
      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.
      Parameters:
      value - allowed object is Boolean
    • isMapConstructorParameterNamesInKotlin

      public Boolean isMapConstructorParameterNamesInKotlin()
      Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper. This flag has no effect in Java.
      Returns:
      possible object is Boolean
    • setMapConstructorParameterNamesInKotlin

      public void setMapConstructorParameterNamesInKotlin(Boolean value)
      Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper. This flag has no effect in Java.
      Parameters:
      value - allowed object is Boolean
    • getQueryPoolable

      public QueryPoolable getQueryPoolable()
      The default JDBC poolable property that should be applied to all jOOQ queries, for which no specific poolable flag was specified.
    • setQueryPoolable

      public void setQueryPoolable(QueryPoolable value)
      The default JDBC poolable property that should be applied to all jOOQ queries, for which no specific poolable flag was specified.
    • getQueryTimeout

      public Integer getQueryTimeout()
      The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.
    • setQueryTimeout

      public void setQueryTimeout(Integer value)
      The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.
    • getMaxRows

      public Integer getMaxRows()
      The default JDBC maxRows property that should be applied to all jOOQ queries, for which no specific maxRows value was specified.
    • setMaxRows

      public void setMaxRows(Integer value)
      The default JDBC maxRows property that should be applied to all jOOQ queries, for which no specific maxRows value was specified.
    • getFetchSize

      public Integer getFetchSize()
      The default JDBC fetchSize property that should be applied to all jOOQ queries, for which no specific fetchSize value was specified.
    • setFetchSize

      public void setFetchSize(Integer value)
      The default JDBC fetchSize property that should be applied to all jOOQ queries, for which no specific fetchSize value was specified.
    • getBatchSize

      public Integer getBatchSize()
      A property specifying a batch size that should be applied to all automatically created BatchedConnection instances.
    • setBatchSize

      public void setBatchSize(Integer value)
      A property specifying a batch size that should be applied to all automatically created BatchedConnection instances.
    • isDebugInfoOnStackTrace

      public Boolean isDebugInfoOnStackTrace()
      [#5570] Whether exception stack traces should be enhanced with additional debug information.
      Returns:
      possible object is Boolean
    • setDebugInfoOnStackTrace

      public void setDebugInfoOnStackTrace(Boolean value)
      [#5570] Whether exception stack traces should be enhanced with additional debug information.
      Parameters:
      value - allowed object is Boolean
    • isInListPadding

      public Boolean isInListPadding()
      [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
      Returns:
      possible object is Boolean
    • setInListPadding

      public void setInListPadding(Boolean value)
      [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
      Parameters:
      value - allowed object is Boolean
    • getInListPadBase

      public Integer getInListPadBase()
      [#7095] The base to use to calculate the powers of when applying in list padding.
    • setInListPadBase

      public void setInListPadBase(Integer value)
      [#7095] The base to use to calculate the powers of when applying in list padding.
    • getDelimiter

      public String getDelimiter()
      [#5826] The delimiter character to be used to delimit statements in batches.
    • setDelimiter

      public void setDelimiter(String value)
      [#5826] The delimiter character to be used to delimit statements in batches.
    • isEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly

      public Boolean isEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly()
      [#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.
      Returns:
      possible object is Boolean
    • setEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly

      public void setEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly(Boolean value)
      [#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.
      Parameters:
      value - allowed object is Boolean
    • getEmulateMultiset

      public NestedCollectionEmulation getEmulateMultiset()
      [#3884] How MULTISET support should be emulated.
    • setEmulateMultiset

      public void setEmulateMultiset(NestedCollectionEmulation value)
      [#3884] How MULTISET support should be emulated.
    • getExecuteUpdateWithoutWhere

      public ExecuteWithoutWhere getExecuteUpdateWithoutWhere()
      [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • setExecuteUpdateWithoutWhere

      public void setExecuteUpdateWithoutWhere(ExecuteWithoutWhere value)
      [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • getExecuteDeleteWithoutWhere

      public ExecuteWithoutWhere getExecuteDeleteWithoutWhere()
      [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • setExecuteDeleteWithoutWhere

      public void setExecuteDeleteWithoutWhere(ExecuteWithoutWhere value)
      [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • getInterpreterDialect

      public SQLDialect getInterpreterDialect()
      [#7337] The dialect that should be used to interpret SQL DDL statements. SQLDialect.DEFAULT means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection.
    • setInterpreterDialect

      public void setInterpreterDialect(SQLDialect value)
      [#7337] The dialect that should be used to interpret SQL DDL statements. SQLDialect.DEFAULT means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection.
    • getInterpreterNameLookupCaseSensitivity

      public InterpreterNameLookupCaseSensitivity getInterpreterNameLookupCaseSensitivity()
      [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
    • setInterpreterNameLookupCaseSensitivity

      public void setInterpreterNameLookupCaseSensitivity(InterpreterNameLookupCaseSensitivity value)
      [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
    • getInterpreterLocale

      public Locale getInterpreterLocale()
      The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale().
    • setInterpreterLocale

      public void setInterpreterLocale(Locale value)
      The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale().
    • isInterpreterDelayForeignKeyDeclarations

      public Boolean isInterpreterDelayForeignKeyDeclarations()
      Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.
      Returns:
      possible object is Boolean
    • setInterpreterDelayForeignKeyDeclarations

      public void setInterpreterDelayForeignKeyDeclarations(Boolean value)
      Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.
      Parameters:
      value - allowed object is Boolean
    • isMetaIncludeSystemIndexes

      public Boolean isMetaIncludeSystemIndexes()
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated indexes on constraints, by default.
      Returns:
      possible object is Boolean
    • setMetaIncludeSystemIndexes

      public void setMetaIncludeSystemIndexes(Boolean value)
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated indexes on constraints, by default.
      Parameters:
      value - allowed object is Boolean
    • isMetaIncludeSystemSequences

      public Boolean isMetaIncludeSystemSequences()
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated sequences, by default.
      Returns:
      possible object is Boolean
    • setMetaIncludeSystemSequences

      public void setMetaIncludeSystemSequences(Boolean value)
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated sequences, by default.
      Parameters:
      value - allowed object is Boolean
    • isMigrationAllowsUndo

      public Boolean isMigrationAllowsUndo()
      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.

      Returns:
      possible object is Boolean
    • setMigrationAllowsUndo

      public void setMigrationAllowsUndo(Boolean value)
      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.

      Parameters:
      value - allowed object is Boolean
    • isMigrationRevertUntracked

      public Boolean isMigrationRevertUntracked()
      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.

      Returns:
      possible object is Boolean
    • setMigrationRevertUntracked

      public void setMigrationRevertUntracked(Boolean value)
      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.

      Parameters:
      value - allowed object is Boolean
    • isMigrationAutoBaseline

      public Boolean isMigrationAutoBaseline()
      Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
      Returns:
      possible object is Boolean
    • setMigrationAutoBaseline

      public void setMigrationAutoBaseline(Boolean value)
      Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
      Parameters:
      value - allowed object is Boolean
    • isMigrationAutoValidation

      public Boolean isMigrationAutoValidation()
      Whether a migration automatically runs a validation first.
      Returns:
      possible object is Boolean
    • setMigrationAutoValidation

      public void setMigrationAutoValidation(Boolean value)
      Whether a migration automatically runs a validation first.
      Parameters:
      value - allowed object is Boolean
    • isMigrationIgnoreDefaultTimestampPrecisionDiffs

      public Boolean isMigrationIgnoreDefaultTimestampPrecisionDiffs()
      Various migrateTo() methods (e.g. 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.
      Returns:
      possible object is Boolean
    • setMigrationIgnoreDefaultTimestampPrecisionDiffs

      public void setMigrationIgnoreDefaultTimestampPrecisionDiffs(Boolean value)
      Various migrateTo() methods (e.g. 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.
      Parameters:
      value - allowed object is Boolean
    • getLocale

      public Locale getLocale()
      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. getRenderLocale(), getParseLocale(), or getInterpreterLocale().
    • setLocale

      public void setLocale(Locale value)
      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. getRenderLocale(), getParseLocale(), or getInterpreterLocale().
    • getParseDialect

      public SQLDialect getParseDialect()
      [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
    • setParseDialect

      public void setParseDialect(SQLDialect value)
      [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
    • getParseLocale

      public Locale getParseLocale()
      The Locale to be used with any parser locale dependent logic, defaulting to getLocale().
    • setParseLocale

      public void setParseLocale(Locale value)
      The Locale to be used with any parser locale dependent logic, defaulting to getLocale().
    • getParseDateFormat

      public String getParseDateFormat()
      The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle
    • setParseDateFormat

      public void setParseDateFormat(String value)
      The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle
    • getParseTimestampFormat

      public String getParseTimestampFormat()
      The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle
    • setParseTimestampFormat

      public void setParseTimestampFormat(String value)
      The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle
    • getParseNamedParamPrefix

      public String getParseNamedParamPrefix()
      The prefix to use for named parameters in parsed SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • setParseNamedParamPrefix

      public void setParseNamedParamPrefix(String value)
      The prefix to use for named parameters in parsed SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • getParseNameCase

      public ParseNameCase getParseNameCase()
      [#7337] The default name case for parsed identifiers.
    • setParseNameCase

      public void setParseNameCase(ParseNameCase value)
      [#7337] The default name case for parsed identifiers.
    • getParseWithMetaLookups

      public ParseWithMetaLookups getParseWithMetaLookups()
      [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
    • setParseWithMetaLookups

      public void setParseWithMetaLookups(ParseWithMetaLookups value)
      [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
    • getParseAppendMissingTableReferences

      public Transformation getParseAppendMissingTableReferences()
      Transform the parsed SQL to append missing table references to the query's FROM or USING clause, if applicable.

      Teradata (and possibly others) allow for referencing tables that are not listed in the FROM clause, such as SELECT t.* FROM t WHERE t.i = u.i. This transformation is executed in the parser, to produce SELECT t.* FROM t, u WHERE t.i = u.i, instead. By default, it is active when the input dialect supports this syntax.

      This feature is available in the commercial distribution only.

    • setParseAppendMissingTableReferences

      public void setParseAppendMissingTableReferences(Transformation value)
      Transform the parsed SQL to append missing table references to the query's FROM or USING clause, if applicable.

      Teradata (and possibly others) allow for referencing tables that are not listed in the FROM clause, such as SELECT t.* FROM t WHERE t.i = u.i. This transformation is executed in the parser, to produce SELECT t.* FROM t, u WHERE t.i = u.i, instead. By default, it is active when the input dialect supports this syntax.

      This feature is available in the commercial distribution only.

    • isParseSetCommands

      public Boolean isParseSetCommands()
      [#9780] Whether commands of the type SET key = value should be parsed rather than ignored.
      Returns:
      possible object is Boolean
    • setParseSetCommands

      public void setParseSetCommands(Boolean value)
      [#9780] Whether commands of the type SET key = value should be parsed rather than ignored.
      Parameters:
      value - allowed object is Boolean
    • getParseUnsupportedSyntax

      public ParseUnsupportedSyntax getParseUnsupportedSyntax()
      [#5917] Whether the parser should accept unsupported (but known) syntax.
    • setParseUnsupportedSyntax

      public void setParseUnsupportedSyntax(ParseUnsupportedSyntax value)
      [#5917] Whether the parser should accept unsupported (but known) syntax.
    • getParseUnknownFunctions

      public ParseUnknownFunctions getParseUnknownFunctions()
      [#7344] Whether the parser should accept unknown functions.
    • setParseUnknownFunctions

      public void setParseUnknownFunctions(ParseUnknownFunctions value)
      [#7344] Whether the parser should accept unknown functions.
    • isParseIgnoreCommercialOnlyFeatures

      public Boolean isParseIgnoreCommercialOnlyFeatures()
      [#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.
      Returns:
      possible object is Boolean
    • setParseIgnoreCommercialOnlyFeatures

      public void setParseIgnoreCommercialOnlyFeatures(Boolean value)
      [#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.
      Parameters:
      value - allowed object is Boolean
    • isParseIgnoreComments

      public Boolean isParseIgnoreComments()
      [#8325] Whether the parser should ignore content between ignore comment tokens.
      Returns:
      possible object is Boolean
    • setParseIgnoreComments

      public void setParseIgnoreComments(Boolean value)
      [#8325] Whether the parser should ignore content between ignore comment tokens.
      Parameters:
      value - allowed object is Boolean
    • getParseIgnoreCommentStart

      public String getParseIgnoreCommentStart()
      [#8325] The ignore comment start token
    • setParseIgnoreCommentStart

      public void setParseIgnoreCommentStart(String value)
      [#8325] The ignore comment start token
    • getParseIgnoreCommentStop

      public String getParseIgnoreCommentStop()
      [#8325] The ignore comment stop token
    • setParseIgnoreCommentStop

      public void setParseIgnoreCommentStop(String value)
      [#8325] The ignore comment stop token
    • isParseRetainCommentsBetweenQueries

      public Boolean isParseRetainCommentsBetweenQueries()
      [#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries through Parser.parse(String).

      jOOQ's query object model doesn't have a way to represent comments or other whitespace, and as such, the parser simply skips them by default. 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.

      Returns:
      possible object is Boolean
    • setParseRetainCommentsBetweenQueries

      public void setParseRetainCommentsBetweenQueries(Boolean value)
      [#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries through Parser.parse(String).

      jOOQ's query object model doesn't have a way to represent comments or other whitespace, and as such, the parser simply skips them by default. 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.

      Parameters:
      value - allowed object is Boolean
    • isParseMetaDefaultExpressions

      public Boolean isParseMetaDefaultExpressions()
      [#8469] Whether to parse default expressions retrieved from DatabaseMetaData.
      Returns:
      possible object is Boolean
    • setParseMetaDefaultExpressions

      public void setParseMetaDefaultExpressions(Boolean value)
      [#8469] Whether to parse default expressions retrieved from DatabaseMetaData.
      Parameters:
      value - allowed object is Boolean
    • getReadonlyTableRecordInsert

      public WriteIfReadonly getReadonlyTableRecordInsert()
      [#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert().
    • setReadonlyTableRecordInsert

      public void setReadonlyTableRecordInsert(WriteIfReadonly value)
      [#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert().
    • getReadonlyUpdatableRecordUpdate

      public WriteIfReadonly getReadonlyUpdatableRecordUpdate()
      [#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update().
    • setReadonlyUpdatableRecordUpdate

      public void setReadonlyUpdatableRecordUpdate(WriteIfReadonly value)
      [#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update().
    • getReadonlyInsert

      public WriteIfReadonly getReadonlyInsert()
      [#9864] The behaviour when trying to insert into readonly columns using Insert statements, or the insert clause of a Merge statement.
    • setReadonlyInsert

      public void setReadonlyInsert(WriteIfReadonly value)
      [#9864] The behaviour when trying to insert into readonly columns using Insert statements, or the insert clause of a Merge statement.
    • getReadonlyUpdate

      public WriteIfReadonly getReadonlyUpdate()
      [#9864] The behaviour when trying to update a readonly column using Update statements, or the update clause of a Merge statement.
    • setReadonlyUpdate

      public void setReadonlyUpdate(WriteIfReadonly value)
      [#9864] The behaviour when trying to update a readonly column using Update statements, or the update clause of a Merge statement.
    • isApplyWorkaroundFor7962

      public Boolean isApplyWorkaroundFor7962()
      [#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys
      Returns:
      possible object is Boolean
    • setApplyWorkaroundFor7962

      public void setApplyWorkaroundFor7962(Boolean value)
      [#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys
      Parameters:
      value - allowed object is Boolean
    • getInterpreterSearchPath

      public List<InterpreterSearchSchema> getInterpreterSearchPath()
    • setInterpreterSearchPath

      public void setInterpreterSearchPath(List<InterpreterSearchSchema> interpreterSearchPath)
    • getMigrationSchemata

      public List<MigrationSchema> getMigrationSchemata()
    • setMigrationSchemata

      public void setMigrationSchemata(List<MigrationSchema> migrationSchemata)
    • getParseSearchPath

      public List<ParseSearchSchema> getParseSearchPath()
    • setParseSearchPath

      public void setParseSearchPath(List<ParseSearchSchema> parseSearchPath)
    • withForceIntegerTypesOnZeroScaleDecimals

      public Settings withForceIntegerTypesOnZeroScaleDecimals(Boolean value)
      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 Meta API. This flag allows for turning off this feature.
    • withRenderCatalog

      public Settings withRenderCatalog(Boolean value)
      Whether any catalog name should be rendered at all.

      Use this for single-catalog environments, or when all objects are made available using synonyms

    • withRenderSchema

      public Settings withRenderSchema(Boolean value)
      Whether any schema name should be rendered at all.

      Setting this to false also implicitly sets "renderCatalog" to false.

      Use this for single-schema environments, or when all objects are made available using synonyms

    • withRenderMapping

      public Settings withRenderMapping(RenderMapping value)
      Configure render mapping for runtime schema / table rewriting in generated SQL.
    • withRenderQuotedNames

      public Settings withRenderQuotedNames(RenderQuotedNames value)
      Whether rendered schema, table, column names, etc should be quoted.

      This only affects names created through DSL.name(String) methods (including those that are implicitly created through this method), not DSL.quotedName(String) or DSL.unquotedName(String), whose behaviour cannot be overridden.

      This setting does not affect any plain SQL usage.

    • withRenderNameCase

      public Settings withRenderNameCase(RenderNameCase value)
      Whether the case of Name references should be modified in any way.

      Names are modified irrespective of the getRenderQuotedNames() setting.

      This setting does not affect any plain SQL usage.

    • withRenderNameStyle

      @Deprecated public Settings withRenderNameStyle(RenderNameStyle value)
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderQuotedNames and RenderNameCase instead.
      Whether rendered schema, table, column names, etc should be quoted in rendered SQL, or transformed in any other way.

      This is set to "QUOTED" by default for backwards-compatibility.

    • withRenderNamedParamPrefix

      public Settings withRenderNamedParamPrefix(String value)
      The prefix to use for named parameters in generated SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • withRenderKeywordCase

      public Settings withRenderKeywordCase(RenderKeywordCase value)
      Whether the case of Keyword references should be modified in any way.
    • withRenderKeywordStyle

      @Deprecated public Settings withRenderKeywordStyle(RenderKeywordStyle value)
      Deprecated.
      - 3.12.0 - [#5909] - Use RenderKeywordCase instead.
      Whether the case of Keyword references should be modified in any way.

    • withRenderLocale

      public Settings withRenderLocale(Locale value)
      The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to getLocale().
    • withRenderFormatted

      public Settings withRenderFormatted(Boolean value)
      Whether rendered SQL should be pretty-printed.
    • withRenderFormatting

      public Settings withRenderFormatting(RenderFormatting value)
      All sorts of formatting flags / settings.
    • withRenderOptionalAssociativityParentheses

      public Settings withRenderOptionalAssociativityParentheses(RenderOptionalKeyword value)
      Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c) instead of (a + b + c).
    • withRenderOptionalAsKeywordForTableAliases

      public Settings withRenderOptionalAsKeywordForTableAliases(RenderOptionalKeyword value)
      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)
    • withRenderOptionalAsKeywordForFieldAliases

      public Settings withRenderOptionalAsKeywordForFieldAliases(RenderOptionalKeyword value)
      Whether to render the optional AS keyword in table aliases, if it is optional in the output dialect.
    • withRenderOptionalInnerKeyword

      public Settings withRenderOptionalInnerKeyword(RenderOptionalKeyword value)
      Whether to render the optional INNER keyword in INNER JOIN, if it is optional in the output dialect.
    • withRenderOptionalOuterKeyword

      public Settings withRenderOptionalOuterKeyword(RenderOptionalKeyword value)
      Whether to render the optional OUTER keyword in OUTER JOIN, if it is optional in the output dialect.
    • withRenderImplicitWindowRange

      public Settings withRenderImplicitWindowRange(RenderImplicitWindowRange value)
      Whether to render an explicit window RANGE clause when an implicit clause is applied.
    • withRenderScalarSubqueriesForStoredFunctions

      public Settings withRenderScalarSubqueriesForStoredFunctions(Boolean value)
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

    • withRenderImplicitJoinType

      public Settings withRenderImplicitJoinType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins.
    • withRenderDefaultNullability

      public Settings withRenderDefaultNullability(RenderDefaultNullability value)
      Whether the Nullability.DEFAULT nullablity should be rendered in generated DDL, and how it should be rendered.
    • withRenderCoalesceToEmptyStringInConcat

      public Settings withRenderCoalesceToEmptyStringInConcat(Boolean value)
      Whether stored function calls should be wrapped in scalar subqueries.

      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.

      This feature is available in the commercial distribution only.

    • withRenderOrderByRownumberForEmulatedPagination

      public Settings withRenderOrderByRownumberForEmulatedPagination(Boolean value)
      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 jOOQ to not generate the additional ORDER BY clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/7609.

    • withRenderOutputForSQLServerReturningClause

      public Settings withRenderOutputForSQLServerReturningClause(Boolean value)
      Whether the jOOQ RETURNING clause should map to SQL Server's OUTPUT clause.

      SQL Server supports an OUTPUT clause in most DML statements, whose behaviour is almost identical to RETURNING in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering this OUTPUT clause can deactivate this flag to revert to jOOQ calling java.sql.Statement#getGeneratedKeys() instead, which is only supported for single row inserts.

      This OUTPUT clause does not support fetching trigger generated values. In order to fetch trigger generated values, fetchTriggerValuesAfterSQLServerOutput needs to be enabled as well.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

    • withRenderGroupConcatMaxLenSessionVariable

      public Settings withRenderGroupConcatMaxLenSessionVariable(Boolean value)
      Whether the jOOQ GROUP_CONCAT function should be overflow-protected by setting the @@group_concat_max_len session variable in MySQL style database systems.

      MySQL truncates GROUP_CONCAT results after a certain length, which may be way too small for jOOQ's usage, especially when using the MULTISET emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containing GROUP_CONCAT. This flag can be used to opt out of this.

      For details, see https://github.com/jOOQ/jOOQ/issues/12092.

    • withRenderParenthesisAroundSetOperationQueries

      public Settings withRenderParenthesisAroundSetOperationQueries(Boolean value)
      Whether queries combined with set operators (e.g. UNION and UNION ALL) should always be surrounded by a parenthesis pair.

      By default (i.e. when this setting is set to false jOOQ will only render parenthesis pairs around queries combined with set operators when required. This is for example the case when set operators are nested, when non-associative operators like EXCEPT are used, or when the queries are rendered as derived tables.

      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.

    • withNamePathSeparator

      public Settings withNamePathSeparator(String value)
      The character(s) to be used as a separator in paths encoded in a Name

      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 
         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. "__".

    • withBindOffsetDateTimeType

      public Settings withBindOffsetDateTimeType(Boolean value)
      Whether the java.time (JSR 310) type OffsetDateTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

    • withBindOffsetTimeType

      public Settings withBindOffsetTimeType(Boolean value)
      Whether the java.time (JSR 310) type OffsetTime should be bound natively to JDBC.

      Historically, jOOQ encoded the java.time types as strings to offer better compatibility with older JDBC drivers. By now, most drivers should support the java.time types. Using them may produce better performance both on the server and on the client side.

      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.

    • withFetchTriggerValuesAfterSQLServerOutput

      public Settings withFetchTriggerValuesAfterSQLServerOutput(Boolean value)
      Fetch trigger values after SQL Server OUTPUT clause.

      SQL Server OUTPUT statements do not support fetching trigger generated values. This is a limitation of the renderOutputForSQLServerReturningClause. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      For details, see https://github.com/jOOQ/jOOQ/issues/4498.

    • withFetchIntermediateResult

      public Settings withFetchIntermediateResult(FetchIntermediateResult value)
      Whether to fetch data into intermediate Result instances.

      By default, a ResultQuery produces no intermediate Result instances if they are not explicitly requested by the caller, e.g. by calling ResultQuery.fetch(), or in the presence of ExecuteListener instances, which may require access to ExecuteContext.result(). This default behaviour helps avoid unnecessary allocations of possibly large data structures.

      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.

    • withTransformPatterns

      public Settings withTransformPatterns(Boolean value)
      Transform various syntax patterns to better versions, if possible.

      This flag enables the pattern transformation feature, which consists of several sub-flags that are all prefixed with "transformPatterns", e.g. transformPatternsTrim. While the sub-flags default to being enabled, and can be disabled on an individual basis, the global feature itself is disabled by default.

      This feature is available in the commercial distribution only.

    • withTransformPatternsLogging

      public Settings withTransformPatternsLogging(Boolean value)
      Activate debug logging of the transformPatterns feature.
    • withTransformPatternsTrim

      public Settings withTransformPatternsTrim(Boolean value)
      Transform LTRIM(RTRIM(x)) or RTRIM(LTRIM(x)) to TRIM(x).

      Historically, a few dialects did not implement TRIM(x) or TRIM(BOTH FROM x), so users worked around this by wrapping LTRIM() and RTRIM() with each other. Maintaining this is usually undesirable, so this transformation helps remove the unwanted wrapping.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNotNot

      public Settings withTransformPatternsNotNot(Boolean value)
      Transform NOT(NOT(x)) to x.

      This transformation removes a redundant logic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNotComparison

      public Settings withTransformPatternsNotComparison(Boolean value)
      Transform NOT (a != b) to a = b, and similar comparisons.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNotNotDistinct

      public Settings withTransformPatternsNotNotDistinct(Boolean value)
      Transform NOT (a IS NOT DISTINCT FROM b) to a IS DISTINCT FROM b.

      This transformation removes a redundant logical negation from the DISTINCT predicate.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNormaliseAssociativeOps

      public Settings withTransformPatternsNormaliseAssociativeOps(Boolean value)
      Transform (a + b) + (c + d) to ((a + b) + c) + d.

      This transformation turns trees into lists, which greatly simplifies other tree traversal transformations. Some of those other transformations currently rely on this flag to be active.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNormaliseInListSingleElementToComparison

      public Settings withTransformPatternsNormaliseInListSingleElementToComparison(Boolean value)
      Transform x IN (a) to x = a and x NOT IN (a) to x != a.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsNormaliseFieldCompareValue

      public Settings withTransformPatternsNormaliseFieldCompareValue(Boolean value)
      Transform 1 = a to a = 1.

      This transformation inverses TableField [op] org.jooq.impl.QOM.Val comparisons, if they're not in that order.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsOrEqToIn

      public Settings withTransformPatternsOrEqToIn(Boolean value)
      Transform x = c1 OR x = c2 to x IN (c1, c2).

      This transformation simplifies verbose OR predicates into simpler IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsAndNeToNotIn

      public Settings withTransformPatternsAndNeToNotIn(Boolean value)
      Transform x != c1 AND x != c2 to x NOT IN (c1, c2).

      This transformation simplifies verbose AND predicates into simpler NOT IN predicates.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsMergeOrComparison

      public Settings withTransformPatternsMergeOrComparison(Boolean value)
      Transform x = a OR x > a to x >= a.

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsMergeAndComparison

      public Settings withTransformPatternsMergeAndComparison(Boolean value)
      Transform x >= a AND x <= a to x = a.

      This transformation merges multiple AND connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsMergeInLists

      public Settings withTransformPatternsMergeInLists(Boolean value)
      Transform x IN (a, b, c) AND x IN (b, c, d) to x IN (b, c).

      This transformation merges multiple OR connected comparisons to a single comparison using a simpler operator.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsMergeRangePredicates

      public Settings withTransformPatternsMergeRangePredicates(Boolean value)
      Transform x >= a AND x <= b to x BETWEEN a AND b.

      This transformation merges multiple AND connected range predicates to a single comparison using BETWEEN.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsMergeBetweenSymmetricPredicates

      public Settings withTransformPatternsMergeBetweenSymmetricPredicates(Boolean value)
      Transform x BETWEEN a AND b OR x BETWEEN b AND a to x BETWEEN SYMMETRIC a AND b.

      This transformation merges multiple OR connected BETWEEN predicates to a single comparison using BETWEEN SYMMETRIC.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsTrivialCaseAbbreviation

      public Settings withTransformPatternsTrivialCaseAbbreviation(Boolean value)
      Transform trivial case abbreviations like NVL(NULL, a) to a.

      This transformation removes any trivial case abbreviations, such as NVL(), COALESCE(), NULLIF(), etc.

      This feature is available in the commercial distribution only.

    • withTransformPatternsTrivialPredicates

      public Settings withTransformPatternsTrivialPredicates(Boolean value)
      Transform trivial predicates like 1 = 1 to TRUE.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

    • withTransformPatternsScalarSubqueryCountAsteriskGtZero

      public Settings withTransformPatternsScalarSubqueryCountAsteriskGtZero(Boolean value)
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(*) …) > 0 to equivalent EXISTS (SELECT 1 …).

      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.

    • withTransformPatternsScalarSubqueryCountExpressionGtZero

      public Settings withTransformPatternsScalarSubqueryCountExpressionGtZero(Boolean value)
      Transform predicates comparing scalar subqueries with a count (SELECT COUNT(expr) …) > 0 to equivalent EXISTS (SELECT 1 … WHERE expr IS NOT NULL).

      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.

    • withTransformPatternsEmptyScalarSubquery

      public Settings withTransformPatternsEmptyScalarSubquery(Boolean value)
      Transform empty scalar subqueries like (SELECT 1 WHERE FALSE) to NULL.

      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.

    • withTransformPatternsNegNeg

      public Settings withTransformPatternsNegNeg(Boolean value)
      Transform -(-(x)) to x

      This transformation removes a redundant arithmetic negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitNotBitNot

      public Settings withTransformPatternsBitNotBitNot(Boolean value)
      Transform ~(~(x)) to x.

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitNotBitNand

      public Settings withTransformPatternsBitNotBitNand(Boolean value)
      Transform ~(bitnand(x, y)) to bitand(x, y) and ~(bitand(x, y) to bitnand(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitNotBitNor

      public Settings withTransformPatternsBitNotBitNor(Boolean value)
      Transform ~(bitnor(x, y)) to bitor(x, y) and ~(bitor(x, y) to bitnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitNotBitXNor

      public Settings withTransformPatternsBitNotBitXNor(Boolean value)
      Transform ~(bitxnor(x, y)) to bitxor(x, y) and ~(bitxor(x, y) to bitxnor(x, y).

      This transformation removes a redundant bitwise negation.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsIdempotentFunctionRepetition

      public Settings withTransformPatternsIdempotentFunctionRepetition(Boolean value)
      Transform all repetitions of idempotent functions, such as UPPER(UPPER(s)) to UPPER(s).

      Idempotent functions that are covered so far, include:

      • LTRIM(LTRIM(s)) to LTRIM(s)
      • LTRIM(TRIM(s)) to TRIM(s)
      • RTRIM(RTRIM(s)) to RTRIM(s)
      • RTRIM(TRIM(s)) to TRIM(s)
      • TRIM(LTRIM(s)) to TRIM(s)
      • TRIM(RTRIM(s)) to TRIM(s)
      • UPPER(UPPER(s)) to UPPER(s)
      • LOWER(LOWER(s)) to LOWER(s)

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsArithmeticExpressions

      public Settings withTransformPatternsArithmeticExpressions(Boolean value)
      Transform 1 / y * x to x / y, and other transformations.

      This transformation simplifies arithmetic expressions.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsTrigonometricFunctions

      public Settings withTransformPatternsTrigonometricFunctions(Boolean value)
      Transform SIN(x) / COS(x) to TAN(x), and other transformations.

      This transformation turns expanded trignonometric function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsLogarithmicFunctions

      public Settings withTransformPatternsLogarithmicFunctions(Boolean value)
      Transform LN(value) / LN(base) to LOG(base, value), and other transformations.

      This transformation turns expanded logarithmic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsHyperbolicFunctions

      public Settings withTransformPatternsHyperbolicFunctions(Boolean value)
      Transform (EXP(x) - EXP(-x)) / 2 to SINH(x), and other transformations.

      This transformation turns expanded hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformPatternsInverseHyperbolicFunctions

      public Settings withTransformPatternsInverseHyperbolicFunctions(Boolean value)
      Transform LN(x + SQRT(SQUARE(x) + 1)) to ASINH(x), and other transformations.

      This transformation turns expanded inverse hyperbolic function definitions into their shorter equivalents.

      To enable this feature, transformPatterns must be enabled as well.

      This feature is available in the commercial distribution only.

    • withTransformInlineBindValuesForFieldComparisons

      public Settings withTransformInlineBindValuesForFieldComparisons(Boolean value)
      Transform 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 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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

    • withTransformAnsiJoinToTableLists

      public Settings withTransformAnsiJoinToTableLists(Boolean value)
      Transform ANSI join to table lists if possible.

      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 converted to equivalent table lists in generated SQL using this flag.

      This flag has a limited implementation that supports inner joins (in most cases) and outer joins (only for simple comparison predicates).

      This feature is available in the commercial distribution only.

    • withTransformInConditionSubqueryWithLimitToDerivedTable

      public Settings withTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value)
      Transform a subquery from an IN condition with LIMIT to an equivalent derived table.

      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.

    • withTransformQualify

      public Settings withTransformQualify(Transformation value)
      Transform the QUALIFY clause to an equivalent derived table to filter on window functions.

      This feature is available in the commercial distribution only.

    • withTransformTableListsToAnsiJoin

      public Settings withTransformTableListsToAnsiJoin(Boolean value)
      Transform table lists to ANSI join if possible.

      (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.

    • withTransformRownum

      public Settings withTransformRownum(Transformation value)
      Transform ROWNUM expressions to corresponding LIMIT clauses or ROW_NUMBER() expressions.

      In Oracle 11g and less, ROWNUM filtering was the most popular way to paginate. This pseudo column is not supported in other RDBMS, and should be replaced in Oracle 12c by the FETCH clause or ROW_NUMBER() OVER () filtering. This transformation allows for replacing such a filter by equivalent SQL, if possible.

      This feature is available in the commercial distribution only.

    • withTransformUnneededArithmeticExpressions

      public Settings withTransformUnneededArithmeticExpressions(TransformUnneededArithmeticExpressions value)
      Transform arithmetic expressions on literals and bind variables.

      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.

    • withBackslashEscaping

      public Settings withBackslashEscaping(BackslashEscaping value)
      Whether string literals should be escaped with backslash.
    • withParamType

      public Settings withParamType(ParamType value)
      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

    • withParamCastMode

      public Settings withParamCastMode(ParamCastMode value)
      Whether rendered bind values should be cast to their respective type.
    • withStatementType

      public Settings withStatementType(StatementType value)
      The type of statement that is to be executed.
    • withInlineThreshold

      public Settings withInlineThreshold(Integer value)
      The maximum number of allowed bind variables before inlining all values where 0 uses the dialect defaults:
    • withTransactionListenerStartInvocationOrder

      public Settings withTransactionListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered TransactionListeners.
    • withTransactionListenerEndInvocationOrder

      public Settings withTransactionListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered TransactionListeners.
    • withMigrationListenerStartInvocationOrder

      public Settings withMigrationListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered MigrationListeners.
    • withMigrationListenerEndInvocationOrder

      public Settings withMigrationListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered MigrationListeners.
    • withVisitListenerStartInvocationOrder

      public Settings withVisitListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered VisitListeners.
    • withVisitListenerEndInvocationOrder

      public Settings withVisitListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered VisitListeners.
    • withRecordListenerStartInvocationOrder

      public Settings withRecordListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered RecordListeners.
    • withRecordListenerEndInvocationOrder

      public Settings withRecordListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered RecordListeners.
    • withExecuteListenerStartInvocationOrder

      public Settings withExecuteListenerStartInvocationOrder(InvocationOrder value)
      The order of invocation for [action]start() methods registered ExecuteListeners.
    • withExecuteListenerEndInvocationOrder

      public Settings withExecuteListenerEndInvocationOrder(InvocationOrder value)
      The order of invocation for [action]end() methods registered ExecuteListeners.
    • withExecuteLogging

      public Settings withExecuteLogging(Boolean value)
      When set to true, this will add jOOQ's default logging ExecuteListeners.
    • withUpdateRecordVersion

      public Settings withUpdateRecordVersion(Boolean value)
      Whether store(), insert(), and update() methods should update the record version prior to the operation, for use with executeWithOptimisticLocking.
    • withUpdateRecordTimestamp

      public Settings withUpdateRecordTimestamp(Boolean value)
      Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use with executeWithOptimisticLocking.
    • withExecuteWithOptimisticLocking

      public Settings withExecuteWithOptimisticLocking(Boolean value)
      Whether store() and delete() methods should be executed with optimistic locking.
    • withExecuteWithOptimisticLockingExcludeUnversioned

      public Settings withExecuteWithOptimisticLockingExcludeUnversioned(Boolean value)
      Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e. on tables that do not have a version and/or timestamp column.

      This flag has no effect when "executeWithOptimisticLocking" is turned off.

    • withAttachRecords

      public Settings withAttachRecords(Boolean value)
      Whether fetched records should be attached to the fetching configuration.
    • withInsertUnchangedRecords

      public Settings withInsertUnchangedRecords(Boolean value)
      Whether TableRecord.insert() calls should be executed if the record is unchanged. This also affects the INSERT part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
    • withUpdateUnchangedRecords

      public Settings withUpdateUnchangedRecords(UpdateUnchangedRecords value)
      Whether UpdatableRecord.update() calls should be executed if the record is unchanged. This also affects the UPDATE part of UpdatableRecord.store() and UpdatableRecord.merge() calls.
    • withUpdatablePrimaryKeys

      public Settings withUpdatablePrimaryKeys(Boolean value)
      Whether primary key values are deemed to be "updatable" in jOOQ.

      Setting this to "true" will allow for updating primary key values through UpdatableRecord.store() and UpdatableRecord.update().

    • withReflectionCaching

      public Settings withReflectionCaching(Boolean value)
      Whether reflection information should be cached in the configuration.
    • withCacheRecordMappers

      public Settings withCacheRecordMappers(Boolean value)
      Whether record mappers should be cached in the configuration.
    • withCacheParsingConnection

      public Settings withCacheParsingConnection(Boolean value)
      Whether parsing connection translations should be cached in the configuration.
    • withCacheParsingConnectionLRUCacheSize

      public Settings withCacheParsingConnectionLRUCacheSize(Integer value)
      The default implementation of the ParsingConnection cache's LRU cache size.
    • withCachePreparedStatementInLoader

      public Settings withCachePreparedStatementInLoader(Boolean value)
      Whether JDBC PreparedStatement instances should be cached in loader API.
    • withThrowExceptions

      public Settings withThrowExceptions(ThrowExceptions value)
      A strategy defining how exceptions from the database / JDBC driver should be propagated
    • withFetchWarnings

      public Settings withFetchWarnings(Boolean value)
      Whether warnings should be fetched after each query execution.
    • withFetchServerOutputSize

      public Settings withFetchServerOutputSize(Integer value)
      Whether server output should be fetched after each query execution.
    • withReturnIdentityOnUpdatableRecord

      public Settings withReturnIdentityOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return the identity column.
    • withReturnAllOnUpdatableRecord

      public Settings withReturnAllOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return all columns, not just identity columns.

      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.

    • withReturnRecordToPojo

      public Settings withReturnRecordToPojo(Boolean value)
      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 returnAllOnUpdatableRecord is active, also other values.
    • withMapJPAAnnotations

      public Settings withMapJPAAnnotations(Boolean value)
      Whether JPA annotations should be considered by the DefaultRecordMapper.
    • withMapRecordComponentParameterNames

      public Settings withMapRecordComponentParameterNames(Boolean value)
      Whether constructor parameter names obtained from the Record component names should be considered by the DefaultRecordMapper.
    • withMapConstructorPropertiesParameterNames

      public Settings withMapConstructorPropertiesParameterNames(Boolean value)
      Whether constructor parameter names obtained from the ConstructorProperties annotation should be considered by the DefaultRecordMapper.
    • withMapConstructorParameterNames

      public Settings withMapConstructorParameterNames(Boolean value)
      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.
    • withMapConstructorParameterNamesInKotlin

      public Settings withMapConstructorParameterNamesInKotlin(Boolean value)
      Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper. This flag has no effect in Java.
    • withQueryPoolable

      public Settings withQueryPoolable(QueryPoolable value)
      The default JDBC poolable property that should be applied to all jOOQ queries, for which no specific poolable flag was specified.
    • withQueryTimeout

      public Settings withQueryTimeout(Integer value)
      The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.
    • withMaxRows

      public Settings withMaxRows(Integer value)
      The default JDBC maxRows property that should be applied to all jOOQ queries, for which no specific maxRows value was specified.
    • withFetchSize

      public Settings withFetchSize(Integer value)
      The default JDBC fetchSize property that should be applied to all jOOQ queries, for which no specific fetchSize value was specified.
    • withBatchSize

      public Settings withBatchSize(Integer value)
      A property specifying a batch size that should be applied to all automatically created BatchedConnection instances.
    • withDebugInfoOnStackTrace

      public Settings withDebugInfoOnStackTrace(Boolean value)
      [#5570] Whether exception stack traces should be enhanced with additional debug information.
    • withInListPadding

      public Settings withInListPadding(Boolean value)
      [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
    • withInListPadBase

      public Settings withInListPadBase(Integer value)
      [#7095] The base to use to calculate the powers of when applying in list padding.
    • withDelimiter

      public Settings withDelimiter(String value)
      [#5826] The delimiter character to be used to delimit statements in batches.
    • withEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly

      public Settings withEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly(Boolean value)
      [#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.
    • withEmulateMultiset

      public Settings withEmulateMultiset(NestedCollectionEmulation value)
      [#3884] How MULTISET support should be emulated.
    • withExecuteUpdateWithoutWhere

      public Settings withExecuteUpdateWithoutWhere(ExecuteWithoutWhere value)
      [#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • withExecuteDeleteWithoutWhere

      public Settings withExecuteDeleteWithoutWhere(ExecuteWithoutWhere value)
      [#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause. This has no effect on rendering the statements SQL string.
    • withInterpreterDialect

      public Settings withInterpreterDialect(SQLDialect value)
      [#7337] The dialect that should be used to interpret SQL DDL statements. SQLDialect.DEFAULT means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection.
    • withInterpreterNameLookupCaseSensitivity

      public Settings withInterpreterNameLookupCaseSensitivity(InterpreterNameLookupCaseSensitivity value)
      [#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
    • withInterpreterLocale

      public Settings withInterpreterLocale(Locale value)
      The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale().
    • withInterpreterDelayForeignKeyDeclarations

      public Settings withInterpreterDelayForeignKeyDeclarations(Boolean value)
      Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.
    • withMetaIncludeSystemIndexes

      public Settings withMetaIncludeSystemIndexes(Boolean value)
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated indexes on constraints, by default.
    • withMetaIncludeSystemSequences

      public Settings withMetaIncludeSystemSequences(Boolean value)
      The Meta implementation that is backed by DatabaseMetaData does not produce system generated sequences, by default.
    • withMigrationAllowsUndo

      public Settings withMigrationAllowsUndo(Boolean value)
      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.

    • withMigrationRevertUntracked

      public Settings withMigrationRevertUntracked(Boolean value)
      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.

    • withMigrationAutoBaseline

      public Settings withMigrationAutoBaseline(Boolean value)
      Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
    • withMigrationAutoValidation

      public Settings withMigrationAutoValidation(Boolean value)
      Whether a migration automatically runs a validation first.
    • withMigrationIgnoreDefaultTimestampPrecisionDiffs

      public Settings withMigrationIgnoreDefaultTimestampPrecisionDiffs(Boolean value)
      Various migrateTo() methods (e.g. 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.
    • withLocale

      public Settings withLocale(Locale value)
      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. getRenderLocale(), getParseLocale(), or getInterpreterLocale().
    • withParseDialect

      public Settings withParseDialect(SQLDialect value)
      [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
    • withParseLocale

      public Settings withParseLocale(Locale value)
      The Locale to be used with any parser locale dependent logic, defaulting to getLocale().
    • withParseDateFormat

      public Settings withParseDateFormat(String value)
      The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle
    • withParseTimestampFormat

      public Settings withParseTimestampFormat(String value)
      The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle
    • withParseNamedParamPrefix

      public Settings withParseNamedParamPrefix(String value)
      The prefix to use for named parameters in parsed SQL.

      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 ParamType#NAMED and not providing a name to parameters, resulting in :1 or @1 or $1, etc.

    • withParseNameCase

      public Settings withParseNameCase(ParseNameCase value)
      [#7337] The default name case for parsed identifiers.
    • withParseWithMetaLookups

      public Settings withParseWithMetaLookups(ParseWithMetaLookups value)
      [#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
    • withParseAppendMissingTableReferences

      public Settings withParseAppendMissingTableReferences(Transformation value)
      Transform the parsed SQL to append missing table references to the query's FROM or USING clause, if applicable.

      Teradata (and possibly others) allow for referencing tables that are not listed in the FROM clause, such as SELECT t.* FROM t WHERE t.i = u.i. This transformation is executed in the parser, to produce SELECT t.* FROM t, u WHERE t.i = u.i, instead. By default, it is active when the input dialect supports this syntax.

      This feature is available in the commercial distribution only.

    • withParseSetCommands

      public Settings withParseSetCommands(Boolean value)
      [#9780] Whether commands of the type SET key = value should be parsed rather than ignored.
    • withParseUnsupportedSyntax

      public Settings withParseUnsupportedSyntax(ParseUnsupportedSyntax value)
      [#5917] Whether the parser should accept unsupported (but known) syntax.
    • withParseUnknownFunctions

      public Settings withParseUnknownFunctions(ParseUnknownFunctions value)
      [#7344] Whether the parser should accept unknown functions.
    • withParseIgnoreCommercialOnlyFeatures

      public Settings withParseIgnoreCommercialOnlyFeatures(Boolean value)
      [#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.
    • withParseIgnoreComments

      public Settings withParseIgnoreComments(Boolean value)
      [#8325] Whether the parser should ignore content between ignore comment tokens.
    • withParseIgnoreCommentStart

      public Settings withParseIgnoreCommentStart(String value)
      [#8325] The ignore comment start token
    • withParseIgnoreCommentStop

      public Settings withParseIgnoreCommentStop(String value)
      [#8325] The ignore comment stop token
    • withParseRetainCommentsBetweenQueries

      public Settings withParseRetainCommentsBetweenQueries(Boolean value)
      [#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries through Parser.parse(String).

      jOOQ's query object model doesn't have a way to represent comments or other whitespace, and as such, the parser simply skips them by default. 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.

    • withParseMetaDefaultExpressions

      public Settings withParseMetaDefaultExpressions(Boolean value)
      [#8469] Whether to parse default expressions retrieved from DatabaseMetaData.
    • withReadonlyTableRecordInsert

      public Settings withReadonlyTableRecordInsert(WriteIfReadonly value)
      [#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert().
    • withReadonlyUpdatableRecordUpdate

      public Settings withReadonlyUpdatableRecordUpdate(WriteIfReadonly value)
      [#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update().
    • withReadonlyInsert

      public Settings withReadonlyInsert(WriteIfReadonly value)
      [#9864] The behaviour when trying to insert into readonly columns using Insert statements, or the insert clause of a Merge statement.
    • withReadonlyUpdate

      public Settings withReadonlyUpdate(WriteIfReadonly value)
      [#9864] The behaviour when trying to update a readonly column using Update statements, or the update clause of a Merge statement.
    • withApplyWorkaroundFor7962

      public Settings withApplyWorkaroundFor7962(Boolean value)
      [#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys
    • withInterpreterSearchPath

      public Settings withInterpreterSearchPath(InterpreterSearchSchema... values)
    • withInterpreterSearchPath

      public Settings withInterpreterSearchPath(Collection<InterpreterSearchSchema> values)
    • withInterpreterSearchPath

      public Settings withInterpreterSearchPath(List<InterpreterSearchSchema> interpreterSearchPath)
    • withMigrationSchemata

      public Settings withMigrationSchemata(MigrationSchema... values)
    • withMigrationSchemata

      public Settings withMigrationSchemata(Collection<MigrationSchema> values)
    • withMigrationSchemata

      public Settings withMigrationSchemata(List<MigrationSchema> migrationSchemata)
    • withParseSearchPath

      public Settings withParseSearchPath(ParseSearchSchema... values)
    • withParseSearchPath

      public Settings withParseSearchPath(Collection<ParseSearchSchema> values)
    • withParseSearchPath

      public Settings withParseSearchPath(List<ParseSearchSchema> parseSearchPath)
    • appendTo

      public final void appendTo(XMLBuilder builder)
      Specified by:
      appendTo in interface XMLAppendable
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object that)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class Object