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 Link icon

    • forceIntegerTypesOnZeroScaleDecimals Link icon

      protected Boolean forceIntegerTypesOnZeroScaleDecimals
    • renderCatalog Link icon

      protected Boolean renderCatalog
    • renderSchema Link icon

      protected Boolean renderSchema
    • renderTable Link icon

      protected RenderTable renderTable
    • renderMapping Link icon

      protected RenderMapping renderMapping
    • renderQuotedNames Link icon

      protected RenderQuotedNames renderQuotedNames
    • renderNameCase Link icon

      protected RenderNameCase renderNameCase
    • renderNameStyle Link icon

      protected RenderNameStyle renderNameStyle
    • renderNamedParamPrefix Link icon

      protected String renderNamedParamPrefix
    • renderKeywordCase Link icon

      protected RenderKeywordCase renderKeywordCase
    • renderKeywordStyle Link icon

      protected RenderKeywordStyle renderKeywordStyle
    • renderLocale Link icon

      protected Locale renderLocale
    • renderFormatted Link icon

      protected Boolean renderFormatted
    • renderFormatting Link icon

      protected RenderFormatting renderFormatting
    • renderNullifEmptyStringForBindValues Link icon

      protected Boolean renderNullifEmptyStringForBindValues
    • renderAutoAliasedDerivedTableExpressions Link icon

      protected AutoAliasExpressions renderAutoAliasedDerivedTableExpressions
    • renderOptionalAssociativityParentheses Link icon

      protected RenderOptionalKeyword renderOptionalAssociativityParentheses
    • renderOptionalAsKeywordForTableAliases Link icon

      protected RenderOptionalKeyword renderOptionalAsKeywordForTableAliases
    • renderOptionalAsKeywordForFieldAliases Link icon

      protected RenderOptionalKeyword renderOptionalAsKeywordForFieldAliases
    • renderOptionalInnerKeyword Link icon

      protected RenderOptionalKeyword renderOptionalInnerKeyword
    • renderOptionalOuterKeyword Link icon

      protected RenderOptionalKeyword renderOptionalOuterKeyword
    • renderImplicitWindowRange Link icon

      protected RenderImplicitWindowRange renderImplicitWindowRange
    • renderScalarSubqueriesForStoredFunctions Link icon

      protected Boolean renderScalarSubqueriesForStoredFunctions
    • renderImplicitJoinType Link icon

      protected RenderImplicitJoinType renderImplicitJoinType
    • renderImplicitJoinToManyType Link icon

      protected RenderImplicitJoinType renderImplicitJoinToManyType
    • renderDefaultNullability Link icon

      protected RenderDefaultNullability renderDefaultNullability
    • renderCoalesceToEmptyStringInConcat Link icon

      protected Boolean renderCoalesceToEmptyStringInConcat
    • renderOrderByRownumberForEmulatedPagination Link icon

      protected Boolean renderOrderByRownumberForEmulatedPagination
    • renderOutputForSQLServerReturningClause Link icon

      protected Boolean renderOutputForSQLServerReturningClause
    • renderGroupConcatMaxLenSessionVariable Link icon

      protected Boolean renderGroupConcatMaxLenSessionVariable
    • renderParenthesisAroundSetOperationQueries Link icon

      protected Boolean renderParenthesisAroundSetOperationQueries
    • renderVariablesInDerivedTablesForEmulations Link icon

      protected Boolean renderVariablesInDerivedTablesForEmulations
    • renderRowConditionForSeekClause Link icon

      protected Boolean renderRowConditionForSeekClause
    • renderRedundantConditionForSeekClause Link icon

      protected Boolean renderRedundantConditionForSeekClause
    • renderPlainSQLTemplatesAsRaw Link icon

      protected Boolean renderPlainSQLTemplatesAsRaw
    • renderDollarQuotedStringToken Link icon

      protected String renderDollarQuotedStringToken
    • namePathSeparator Link icon

      protected String namePathSeparator
    • bindOffsetDateTimeType Link icon

      protected Boolean bindOffsetDateTimeType
    • bindOffsetTimeType Link icon

      protected Boolean bindOffsetTimeType
    • fetchTrimmedCharValues Link icon

      protected Boolean fetchTrimmedCharValues
    • fetchTriggerValuesAfterSQLServerOutput Link icon

      protected Boolean fetchTriggerValuesAfterSQLServerOutput
    • fetchTriggerValuesAfterReturning Link icon

      protected FetchTriggerValuesAfterReturning fetchTriggerValuesAfterReturning
    • fetchIntermediateResult Link icon

      protected FetchIntermediateResult fetchIntermediateResult
    • diagnosticsDuplicateStatements Link icon

      protected Boolean diagnosticsDuplicateStatements
    • diagnosticsDuplicateStatementsUsingTransformPatterns Link icon

      protected Boolean diagnosticsDuplicateStatementsUsingTransformPatterns
    • diagnosticsMissingWasNullCall Link icon

      protected Boolean diagnosticsMissingWasNullCall
    • diagnosticsRepeatedStatements Link icon

      protected Boolean diagnosticsRepeatedStatements
    • diagnosticsConsecutiveAggregation Link icon

      protected Boolean diagnosticsConsecutiveAggregation
    • diagnosticsConcatenationInPredicate Link icon

      protected Boolean diagnosticsConcatenationInPredicate
    • diagnosticsPossiblyWrongExpression Link icon

      protected Boolean diagnosticsPossiblyWrongExpression
    • diagnosticsTooManyColumnsFetched Link icon

      protected Boolean diagnosticsTooManyColumnsFetched
    • diagnosticsTooManyRowsFetched Link icon

      protected Boolean diagnosticsTooManyRowsFetched
    • diagnosticsUnnecessaryWasNullCall Link icon

      protected Boolean diagnosticsUnnecessaryWasNullCall
    • diagnosticsPatterns Link icon

      protected Boolean diagnosticsPatterns
    • diagnosticsTrivialCondition Link icon

      protected Boolean diagnosticsTrivialCondition
    • diagnosticsNullCondition Link icon

      protected Boolean diagnosticsNullCondition
    • transformPatterns Link icon

      protected Boolean transformPatterns
    • transformPatternsLogging Link icon

      protected Boolean transformPatternsLogging
    • transformPatternsUnnecessaryDistinct Link icon

      protected Boolean transformPatternsUnnecessaryDistinct
    • transformPatternsUnnecessaryScalarSubquery Link icon

      protected Boolean transformPatternsUnnecessaryScalarSubquery
    • transformPatternsUnnecessaryInnerJoin Link icon

      protected Boolean transformPatternsUnnecessaryInnerJoin
    • transformPatternsUnnecessaryGroupByExpressions Link icon

      protected Boolean transformPatternsUnnecessaryGroupByExpressions
    • transformPatternsUnnecessaryOrderByExpressions Link icon

      protected Boolean transformPatternsUnnecessaryOrderByExpressions
    • transformPatternsUnnecessaryExistsSubqueryClauses Link icon

      protected Boolean transformPatternsUnnecessaryExistsSubqueryClauses
    • transformPatternsCountConstant Link icon

      protected Boolean transformPatternsCountConstant
    • transformPatternsTrim Link icon

      protected Boolean transformPatternsTrim
    • transformPatternsNotAnd Link icon

      protected Boolean transformPatternsNotAnd
    • transformPatternsNotOr Link icon

      protected Boolean transformPatternsNotOr
    • transformPatternsNotNot Link icon

      protected Boolean transformPatternsNotNot
    • transformPatternsNotComparison Link icon

      protected Boolean transformPatternsNotComparison
    • transformPatternsNotNotDistinct Link icon

      protected Boolean transformPatternsNotNotDistinct
    • transformPatternsDistinctFromNull Link icon

      protected Boolean transformPatternsDistinctFromNull
    • transformPatternsNormaliseAssociativeOps Link icon

      protected Boolean transformPatternsNormaliseAssociativeOps
    • transformPatternsNormaliseInListSingleElementToComparison Link icon

      protected Boolean transformPatternsNormaliseInListSingleElementToComparison
    • transformPatternsNormaliseFieldCompareValue Link icon

      protected Boolean transformPatternsNormaliseFieldCompareValue
    • transformPatternsNormaliseCoalesceToNvl Link icon

      protected Boolean transformPatternsNormaliseCoalesceToNvl
    • transformPatternsOrEqToIn Link icon

      protected Boolean transformPatternsOrEqToIn
    • transformPatternsAndNeToNotIn Link icon

      protected Boolean transformPatternsAndNeToNotIn
    • transformPatternsMergeOrComparison Link icon

      protected Boolean transformPatternsMergeOrComparison
    • transformPatternsMergeAndComparison Link icon

      protected Boolean transformPatternsMergeAndComparison
    • transformPatternsMergeInLists Link icon

      protected Boolean transformPatternsMergeInLists
    • transformPatternsMergeRangePredicates Link icon

      protected Boolean transformPatternsMergeRangePredicates
    • transformPatternsMergeBetweenSymmetricPredicates Link icon

      protected Boolean transformPatternsMergeBetweenSymmetricPredicates
    • transformPatternsCaseSearchedToCaseSimple Link icon

      protected Boolean transformPatternsCaseSearchedToCaseSimple
    • transformPatternsCaseElseNull Link icon

      protected Boolean transformPatternsCaseElseNull
    • transformPatternsUnreachableCaseClauses Link icon

      protected Boolean transformPatternsUnreachableCaseClauses
    • transformPatternsUnreachableDecodeClauses Link icon

      protected Boolean transformPatternsUnreachableDecodeClauses
    • transformPatternsCaseDistinctToDecode Link icon

      protected Boolean transformPatternsCaseDistinctToDecode
    • transformPatternsCaseMergeWhenWhen Link icon

      protected Boolean transformPatternsCaseMergeWhenWhen
    • transformPatternsCaseMergeWhenElse Link icon

      protected Boolean transformPatternsCaseMergeWhenElse
    • transformPatternsCaseToCaseAbbreviation Link icon

      protected Boolean transformPatternsCaseToCaseAbbreviation
    • transformPatternsSimplifyCaseAbbreviation Link icon

      protected Boolean transformPatternsSimplifyCaseAbbreviation
    • transformPatternsFlattenCaseAbbreviation Link icon

      protected Boolean transformPatternsFlattenCaseAbbreviation
    • transformPatternsFlattenDecode Link icon

      protected Boolean transformPatternsFlattenDecode
    • transformPatternsFlattenCase Link icon

      protected Boolean transformPatternsFlattenCase
    • transformPatternsTrivialCaseAbbreviation Link icon

      protected Boolean transformPatternsTrivialCaseAbbreviation
    • transformPatternsTrivialPredicates Link icon

      protected Boolean transformPatternsTrivialPredicates
    • transformPatternsTrivialBitwiseOperations Link icon

      protected Boolean transformPatternsTrivialBitwiseOperations
    • transformPatternsBitSet Link icon

      protected Boolean transformPatternsBitSet
    • transformPatternsBitGet Link icon

      protected Boolean transformPatternsBitGet
    • transformPatternsScalarSubqueryCountAsteriskGtZero Link icon

      protected Boolean transformPatternsScalarSubqueryCountAsteriskGtZero
    • transformPatternsScalarSubqueryCountExpressionGtZero Link icon

      protected Boolean transformPatternsScalarSubqueryCountExpressionGtZero
    • transformPatternsEmptyScalarSubquery Link icon

      protected Boolean transformPatternsEmptyScalarSubquery
    • transformPatternsNegNeg Link icon

      protected Boolean transformPatternsNegNeg
    • transformPatternsBitNotBitNot Link icon

      protected Boolean transformPatternsBitNotBitNot
    • transformPatternsBitNotBitNand Link icon

      protected Boolean transformPatternsBitNotBitNand
    • transformPatternsBitNotBitNor Link icon

      protected Boolean transformPatternsBitNotBitNor
    • transformPatternsBitNotBitXNor Link icon

      protected Boolean transformPatternsBitNotBitXNor
    • transformPatternsNullOnNullInput Link icon

      protected Boolean transformPatternsNullOnNullInput
    • transformPatternsIdempotentFunctionRepetition Link icon

      protected Boolean transformPatternsIdempotentFunctionRepetition
    • transformPatternsArithmeticComparisons Link icon

      protected Boolean transformPatternsArithmeticComparisons
    • transformPatternsArithmeticExpressions Link icon

      protected Boolean transformPatternsArithmeticExpressions
    • transformPatternsTrigonometricFunctions Link icon

      protected Boolean transformPatternsTrigonometricFunctions
    • transformPatternsLogarithmicFunctions Link icon

      protected Boolean transformPatternsLogarithmicFunctions
    • transformPatternsHyperbolicFunctions Link icon

      protected Boolean transformPatternsHyperbolicFunctions
    • transformPatternsInverseHyperbolicFunctions Link icon

      protected Boolean transformPatternsInverseHyperbolicFunctions
    • transformInlineBindValuesForFieldComparisons Link icon

      protected Boolean transformInlineBindValuesForFieldComparisons
    • transformAnsiJoinToTableLists Link icon

      protected Boolean transformAnsiJoinToTableLists
    • transformInConditionSubqueryWithLimitToDerivedTable Link icon

      protected Transformation transformInConditionSubqueryWithLimitToDerivedTable
    • transformQualify Link icon

      protected Transformation transformQualify
    • transformTableListsToAnsiJoin Link icon

      protected Boolean transformTableListsToAnsiJoin
    • transformRownum Link icon

      protected Transformation transformRownum
    • transformUnneededArithmeticExpressions Link icon

      protected TransformUnneededArithmeticExpressions transformUnneededArithmeticExpressions
    • transformGroupByColumnIndex Link icon

      protected Transformation transformGroupByColumnIndex
    • transformInlineCTE Link icon

      protected Transformation transformInlineCTE
    • backslashEscaping Link icon

      protected BackslashEscaping backslashEscaping
    • paramType Link icon

      protected ParamType paramType
    • paramCastMode Link icon

      protected ParamCastMode paramCastMode
    • statementType Link icon

      protected StatementType statementType
    • inlineThreshold Link icon

      protected Integer inlineThreshold
    • transactionListenerStartInvocationOrder Link icon

      protected InvocationOrder transactionListenerStartInvocationOrder
    • transactionListenerEndInvocationOrder Link icon

      protected InvocationOrder transactionListenerEndInvocationOrder
    • migrationListenerStartInvocationOrder Link icon

      protected InvocationOrder migrationListenerStartInvocationOrder
    • migrationListenerEndInvocationOrder Link icon

      protected InvocationOrder migrationListenerEndInvocationOrder
    • visitListenerStartInvocationOrder Link icon

      protected InvocationOrder visitListenerStartInvocationOrder
    • visitListenerEndInvocationOrder Link icon

      protected InvocationOrder visitListenerEndInvocationOrder
    • recordListenerStartInvocationOrder Link icon

      protected InvocationOrder recordListenerStartInvocationOrder
    • recordListenerEndInvocationOrder Link icon

      protected InvocationOrder recordListenerEndInvocationOrder
    • executeListenerStartInvocationOrder Link icon

      protected InvocationOrder executeListenerStartInvocationOrder
    • executeListenerEndInvocationOrder Link icon

      protected InvocationOrder executeListenerEndInvocationOrder
    • executeLogging Link icon

      protected Boolean executeLogging
    • executeLoggingSQLExceptions Link icon

      protected Boolean executeLoggingSQLExceptions
    • diagnosticsLogging Link icon

      protected Boolean diagnosticsLogging
    • diagnosticsConnection Link icon

      protected DiagnosticsConnection diagnosticsConnection
    • updateRecordVersion Link icon

      protected Boolean updateRecordVersion
    • updateRecordTimestamp Link icon

      protected Boolean updateRecordTimestamp
    • executeWithOptimisticLocking Link icon

      protected Boolean executeWithOptimisticLocking
    • executeWithOptimisticLockingExcludeUnversioned Link icon

      protected Boolean executeWithOptimisticLockingExcludeUnversioned
    • attachRecords Link icon

      protected Boolean attachRecords
    • insertUnchangedRecords Link icon

      protected Boolean insertUnchangedRecords
    • updateUnchangedRecords Link icon

      protected UpdateUnchangedRecords updateUnchangedRecords
    • recordDirtyTracking Link icon

      protected RecordDirtyTracking recordDirtyTracking
    • updatablePrimaryKeys Link icon

      protected Boolean updatablePrimaryKeys
    • reflectionCaching Link icon

      protected Boolean reflectionCaching
    • cacheRecordMappers Link icon

      protected Boolean cacheRecordMappers
    • cacheParsingConnection Link icon

      protected Boolean cacheParsingConnection
    • cacheParsingConnectionLRUCacheSize Link icon

      protected Integer cacheParsingConnectionLRUCacheSize
    • cacheRecordMappersLRUCacheSize Link icon

      protected Integer cacheRecordMappersLRUCacheSize
    • reflectionCacheLRUCacheSize Link icon

      protected Integer reflectionCacheLRUCacheSize
    • cachePreparedStatementInLoader Link icon

      protected Boolean cachePreparedStatementInLoader
    • throwExceptions Link icon

      protected ThrowExceptions throwExceptions
    • fetchWarnings Link icon

      protected Boolean fetchWarnings
    • fetchServerOutputSize Link icon

      protected Integer fetchServerOutputSize
    • returnIdentityOnUpdatableRecord Link icon

      protected Boolean returnIdentityOnUpdatableRecord
    • returnDefaultOnUpdatableRecord Link icon

      protected Boolean returnDefaultOnUpdatableRecord
    • returnComputedOnUpdatableRecord Link icon

      protected Boolean returnComputedOnUpdatableRecord
    • returnAllOnUpdatableRecord Link icon

      protected Boolean returnAllOnUpdatableRecord
    • returnRecordToPojo Link icon

      protected Boolean returnRecordToPojo
    • mapJPAAnnotations Link icon

      protected Boolean mapJPAAnnotations
    • mapRecordComponentParameterNames Link icon

      protected Boolean mapRecordComponentParameterNames
    • mapConstructorPropertiesParameterNames Link icon

      protected Boolean mapConstructorPropertiesParameterNames
    • mapConstructorParameterNames Link icon

      protected Boolean mapConstructorParameterNames
    • mapConstructorParameterNamesInKotlin Link icon

      protected Boolean mapConstructorParameterNamesInKotlin
    • queryPoolable Link icon

      protected QueryPoolable queryPoolable
    • queryTimeout Link icon

      protected Integer queryTimeout
    • maxRows Link icon

      protected Integer maxRows
    • fetchSize Link icon

      protected Integer fetchSize
    • batchSize Link icon

      protected Integer batchSize
    • debugInfoOnStackTrace Link icon

      protected Boolean debugInfoOnStackTrace
    • inListPadding Link icon

      protected Boolean inListPadding
    • inListPadBase Link icon

      protected Integer inListPadBase
    • delimiter Link icon

      protected String delimiter
    • emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly Link icon

      protected Boolean emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly
    • emulateMultiset Link icon

      protected NestedCollectionEmulation emulateMultiset
    • emulateNestedRecordProjectionsUsingMultisetEmulation Link icon

      protected Boolean emulateNestedRecordProjectionsUsingMultisetEmulation
    • emulateComputedColumns Link icon

      protected Boolean emulateComputedColumns
    • computedOnClientVirtual Link icon

      protected Boolean computedOnClientVirtual
    • computedOnClientStored Link icon

      protected Boolean computedOnClientStored
    • executeUpdateWithoutWhere Link icon

      protected ExecuteWithoutWhere executeUpdateWithoutWhere
    • executeDeleteWithoutWhere Link icon

      protected ExecuteWithoutWhere executeDeleteWithoutWhere
    • interpreterDialect Link icon

      protected SQLDialect interpreterDialect
    • interpreterNameLookupCaseSensitivity Link icon

      protected InterpreterNameLookupCaseSensitivity interpreterNameLookupCaseSensitivity
    • interpreterLocale Link icon

      protected Locale interpreterLocale
    • interpreterDelayForeignKeyDeclarations Link icon

      protected Boolean interpreterDelayForeignKeyDeclarations
    • metaIncludeSystemIndexes Link icon

      protected Boolean metaIncludeSystemIndexes
    • metaIncludeSystemSequences Link icon

      protected Boolean metaIncludeSystemSequences
    • migrationHistorySchema Link icon

      protected MigrationSchema migrationHistorySchema
    • migrationHistorySchemaCreateSchemaIfNotExists Link icon

      protected Boolean migrationHistorySchemaCreateSchemaIfNotExists
    • migrationDefaultSchema Link icon

      protected MigrationSchema migrationDefaultSchema
    • migrationSchemataCreateSchemaIfNotExists Link icon

      protected Boolean migrationSchemataCreateSchemaIfNotExists
    • migrationDefaultContentType Link icon

      protected MigrationDefaultContentType migrationDefaultContentType
    • migrationAllowUndo Link icon

      protected Boolean migrationAllowUndo
    • migrationAllowInvalidCommits Link icon

      protected Boolean migrationAllowInvalidCommits
    • migrationRevertUntracked Link icon

      protected Boolean migrationRevertUntracked
    • migrationAutoBaseline Link icon

      protected Boolean migrationAutoBaseline
    • migrationAutoVerification Link icon

      protected Boolean migrationAutoVerification
    • migrationIgnoreDefaultTimestampPrecisionDiffs Link icon

      protected Boolean migrationIgnoreDefaultTimestampPrecisionDiffs
    • migrationIgnoreUnnamedConstraintDiffs Link icon

      protected Boolean migrationIgnoreUnnamedConstraintDiffs
    • migrationIgnoreImplicitPrimaryKeyNotNullConstraints Link icon

      protected Boolean migrationIgnoreImplicitPrimaryKeyNotNullConstraints
    • locale Link icon

      protected Locale locale
    • parseDialect Link icon

      protected SQLDialect parseDialect
    • parseLocale Link icon

      protected Locale parseLocale
    • parseDateFormat Link icon

      protected String parseDateFormat
    • parseTimestampFormat Link icon

      protected String parseTimestampFormat
    • parseNamedParamPrefix Link icon

      protected String parseNamedParamPrefix
    • parseNameCase Link icon

      protected ParseNameCase parseNameCase
    • parseWithMetaLookups Link icon

      protected ParseWithMetaLookups parseWithMetaLookups
    • parseAppendMissingTableReferences Link icon

      protected Transformation parseAppendMissingTableReferences
    • parseSetCommands Link icon

      protected Boolean parseSetCommands
    • parseUnsupportedSyntax Link icon

      protected ParseUnsupportedSyntax parseUnsupportedSyntax
    • parseUnknownFunctions Link icon

      protected ParseUnknownFunctions parseUnknownFunctions
    • parseIgnoreCommercialOnlyFeatures Link icon

      protected Boolean parseIgnoreCommercialOnlyFeatures
    • parseIgnoreComments Link icon

      protected Boolean parseIgnoreComments
    • parseIgnoreCommentStart Link icon

      protected String parseIgnoreCommentStart
    • parseIgnoreCommentStop Link icon

      protected String parseIgnoreCommentStop
    • parseRetainCommentsBetweenQueries Link icon

      protected Boolean parseRetainCommentsBetweenQueries
    • parseMetaDefaultExpressions Link icon

      protected Boolean parseMetaDefaultExpressions
    • parseMetaViewSources Link icon

      protected Boolean parseMetaViewSources
    • readonlyTableRecordInsert Link icon

      protected WriteIfReadonly readonlyTableRecordInsert
    • readonlyUpdatableRecordUpdate Link icon

      protected WriteIfReadonly readonlyUpdatableRecordUpdate
    • readonlyInsert Link icon

      protected WriteIfReadonly readonlyInsert
    • readonlyUpdate Link icon

      protected WriteIfReadonly readonlyUpdate
    • applyWorkaroundFor7962 Link icon

      protected Boolean applyWorkaroundFor7962
    • warnOnStaticTypeRegistryAccess Link icon

      protected Warning warnOnStaticTypeRegistryAccess
    • interpreterSearchPath Link icon

      protected List<InterpreterSearchSchema> interpreterSearchPath
    • migrationSchemata Link icon

      protected List<MigrationSchema> migrationSchemata
    • parseSearchPath Link icon

      protected List<ParseSearchSchema> parseSearchPath
  • Constructor Details Link icon

    • Settings Link icon

      public Settings()
  • Method Details Link icon

    • isForceIntegerTypesOnZeroScaleDecimals Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • getRenderTable Link icon

      public RenderTable getRenderTable()
      Whether any table name qualification should be rendered at all on columns.

      Setting when tables aren't rendered, then implicitly, schemas and catalogs aren't rendered either.

      The following values are available:

      • RenderTable.ALWAYS: The default, which should always be preferred. Columns are always qualified with their tables, where possible.
      • RenderTable.WHEN_MULTIPLE_TABLES: The simplest option to reduce generated query verbosity, avoiding table qualification only in queries with a single table in the FROM clause.
      • RenderTable.WHEN_AMBIGUOUS_COLUMNS: A much more expensive to compute option that checks the FROM clause for ambiguous column names, in case of which columns are qualified.
      • RenderTable.NEVER: Always turn off table qualification.

      Use this when verbosity of rendered SQL is a problem.

    • setRenderTable Link icon

      public void setRenderTable(RenderTable value)
      Whether any table name qualification should be rendered at all on columns.

      Setting when tables aren't rendered, then implicitly, schemas and catalogs aren't rendered either.

      The following values are available:

      • RenderTable.ALWAYS: The default, which should always be preferred. Columns are always qualified with their tables, where possible.
      • RenderTable.WHEN_MULTIPLE_TABLES: The simplest option to reduce generated query verbosity, avoiding table qualification only in queries with a single table in the FROM clause.
      • RenderTable.WHEN_AMBIGUOUS_COLUMNS: A much more expensive to compute option that checks the FROM clause for ambiguous column names, in case of which columns are qualified.
      • RenderTable.NEVER: Always turn off table qualification.

      Use this when verbosity of rendered SQL is a problem.

    • getRenderMapping Link icon

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      @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 Link icon

      @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 Link icon

      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 Link icon

      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 Link icon

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

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

      @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 Link icon

      @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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      public Boolean isRenderNullifEmptyStringForBindValues()
      Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setRenderNullifEmptyStringForBindValues Link icon

      public void setRenderNullifEmptyStringForBindValues(Boolean value)
      Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • getRenderAutoAliasedDerivedTableExpressions Link icon

      public AutoAliasExpressions getRenderAutoAliasedDerivedTableExpressions()
      Whether to auto-alias expressions in derived tables.

      This feature is available in the commercial distribution only.

    • setRenderAutoAliasedDerivedTableExpressions Link icon

      public void setRenderAutoAliasedDerivedTableExpressions(AutoAliasExpressions value)
      Whether to auto-alias expressions in derived tables.

      This feature is available in the commercial distribution only.

    • getRenderOptionalAssociativityParentheses Link icon

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

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

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

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

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

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

      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 Link icon

      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 Link icon

      public RenderImplicitJoinType getRenderImplicitJoinType()
      The join type to be generated by implicit joins for to-one paths in Select queries.

      The DEFAULT is dependent on the nullability of the foreign key (LEFT_JOIN for nullable foreign keys and INNER_JOIN for non-nullable foreign keys). In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • setRenderImplicitJoinType Link icon

      public void setRenderImplicitJoinType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins for to-one paths in Select queries.

      The DEFAULT is dependent on the nullability of the foreign key (LEFT_JOIN for nullable foreign keys and INNER_JOIN for non-nullable foreign keys). In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • getRenderImplicitJoinToManyType Link icon

      public RenderImplicitJoinType getRenderImplicitJoinToManyType()
      The join type to be generated by implicit joins for to-many paths in Select queries.

      The DEFAULT is SCALAR_SUBQUERY if the join path is implicit only, i.e. absent from the FROM clause, to prevent accidental cartesian products, or LEFT_JOIN if declared explicitly in the FROM clause. In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • setRenderImplicitJoinToManyType Link icon

      public void setRenderImplicitJoinToManyType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins for to-many paths in Select queries.

      The DEFAULT is SCALAR_SUBQUERY if the join path is implicit only, i.e. absent from the FROM clause, to prevent accidental cartesian products, or LEFT_JOIN if declared explicitly in the FROM clause. In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • getRenderDefaultNullability Link icon

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

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

      public Boolean isRenderCoalesceToEmptyStringInConcat()
      Whether string concatenation operands should be coalesced to empty strings.

      Some dialects treat NULL values as empty strings when concatenating strings (e.g. Oracle). For compatibility reasons, this flag allows for replicating this behaviour also elsewhere.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setRenderCoalesceToEmptyStringInConcat Link icon

      public void setRenderCoalesceToEmptyStringInConcat(Boolean value)
      Whether string concatenation operands should be coalesced to empty strings.

      Some dialects treat NULL values as empty strings when concatenating strings (e.g. Oracle). For compatibility reasons, this flag allows for replicating this behaviour also elsewhere.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isRenderOrderByRownumberForEmulatedPagination Link icon

      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 Link icon

      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 Link icon

      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, fetchTriggerValuesAfterReturning needs to be enabled as well.

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

      Returns:
      possible object is Boolean
    • setRenderOutputForSQLServerReturningClause Link icon

      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, fetchTriggerValuesAfterReturning needs to be enabled as well.

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

      Parameters:
      value - allowed object is Boolean
    • isRenderGroupConcatMaxLenSessionVariable Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • isRenderVariablesInDerivedTablesForEmulations Link icon

      public Boolean isRenderVariablesInDerivedTablesForEmulations()
      Whether emulations that require repeating expressions should render variables for those expressions in derived tables.

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

      Returns:
      possible object is Boolean
    • setRenderVariablesInDerivedTablesForEmulations Link icon

      public void setRenderVariablesInDerivedTablesForEmulations(Boolean value)
      Whether emulations that require repeating expressions should render variables for those expressions in derived tables.

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

      Parameters:
      value - allowed object is Boolean
    • isRenderRowConditionForSeekClause Link icon

      public Boolean isRenderRowConditionForSeekClause()
      Whether a (a, b) invalid input: '<' (:a, :b) row predicate should be rendered for the SEEK clause.

      Some RDBMS may support (a, b) invalid input: '<' (:a, :b) row predicate syntax, which is very convenient for SEEK clause implementations, but fail to optimise this predicate as could be expected. This flag allows for expanding the predicate to the much more verbose, but equivalent (a invalid input: '<' :a) OR (a = :a AND b invalid input: '<' :b). Dialects without native support for row predicates aren't affected by this flag.

      Returns:
      possible object is Boolean
    • setRenderRowConditionForSeekClause Link icon

      public void setRenderRowConditionForSeekClause(Boolean value)
      Whether a (a, b) invalid input: '<' (:a, :b) row predicate should be rendered for the SEEK clause.

      Some RDBMS may support (a, b) invalid input: '<' (:a, :b) row predicate syntax, which is very convenient for SEEK clause implementations, but fail to optimise this predicate as could be expected. This flag allows for expanding the predicate to the much more verbose, but equivalent (a invalid input: '<' :a) OR (a = :a AND b invalid input: '<' :b). Dialects without native support for row predicates aren't affected by this flag.

      Parameters:
      value - allowed object is Boolean
    • isRenderRedundantConditionForSeekClause Link icon

      public Boolean isRenderRedundantConditionForSeekClause()
      Whether a redundant (a invalid input: '<'= :a) predicate should be rendered for a (a, b) invalid input: '<' (:a, :b) predicate for the SEEK clause.

      Some RDBMS may not be able to properly optimise (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'), and choose an appropriate index. By adding an additional redundant predicate, jOOQ may help the optimiser, e.g. (a invalid input: '<'= :a) AND (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<'= :a) AND ((a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'))

      Returns:
      possible object is Boolean
    • setRenderRedundantConditionForSeekClause Link icon

      public void setRenderRedundantConditionForSeekClause(Boolean value)
      Whether a redundant (a invalid input: '<'= :a) predicate should be rendered for a (a, b) invalid input: '<' (:a, :b) predicate for the SEEK clause.

      Some RDBMS may not be able to properly optimise (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'), and choose an appropriate index. By adding an additional redundant predicate, jOOQ may help the optimiser, e.g. (a invalid input: '<'= :a) AND (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<'= :a) AND ((a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'))

      Parameters:
      value - allowed object is Boolean
    • isRenderPlainSQLTemplatesAsRaw Link icon

      public Boolean isRenderPlainSQLTemplatesAsRaw()
      Whether plain SQL templates (SQL) are rendered as raw string content.
      Returns:
      possible object is Boolean
    • setRenderPlainSQLTemplatesAsRaw Link icon

      public void setRenderPlainSQLTemplatesAsRaw(Boolean value)
      Whether plain SQL templates (SQL) are rendered as raw string content.
      Parameters:
      value - allowed object is Boolean
    • getRenderDollarQuotedStringToken Link icon

      public String getRenderDollarQuotedStringToken()
      The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
    • setRenderDollarQuotedStringToken Link icon

      public void setRenderDollarQuotedStringToken(String value)
      The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
    • getNamePathSeparator Link icon

      public String getNamePathSeparator()
      The character(s) to be used as a separator in paths encoded in a
      invalid reference
      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 Link icon

      public void setNamePathSeparator(String value)
      The character(s) to be used as a separator in paths encoded in a
      invalid reference
      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • isFetchTrimmedCharValues Link icon

      public Boolean isFetchTrimmedCharValues()
      Whether right trim fetched CHAR typed strings from JDBC ResultSet.

      By default, jOOQ's internal String data type Binding fetched strings as returned by JDBC. With this flag enabled, jOOQ will always right-trim CHAR typed strings, which can be useful in database products that will often use this historic fixed length string type, especially in dictionary views.

      Returns:
      possible object is Boolean
    • setFetchTrimmedCharValues Link icon

      public void setFetchTrimmedCharValues(Boolean value)
      Whether right trim fetched CHAR typed strings from JDBC ResultSet.

      By default, jOOQ's internal String data type Binding fetched strings as returned by JDBC. With this flag enabled, jOOQ will always right-trim CHAR typed strings, which can be useful in database products that will often use this historic fixed length string type, especially in dictionary views.

      Parameters:
      value - allowed object is Boolean
    • isFetchTriggerValuesAfterSQLServerOutput Link icon

      @Deprecated public Boolean isFetchTriggerValuesAfterSQLServerOutput()
      Deprecated.
      - 3.18.0 - [#13912] [#15316] - Use fetchTriggerValuesAfterReturning instead.
      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 Link icon

      @Deprecated public void setFetchTriggerValuesAfterSQLServerOutput(Boolean value)
      Deprecated.
      - 3.18.0 - [#13912] [#15316] - Use fetchTriggerValuesAfterReturning instead.
      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
    • getFetchTriggerValuesAfterReturning Link icon

      public FetchTriggerValuesAfterReturning getFetchTriggerValuesAfterReturning()
      Fetch trigger values after a RETURNING clause in dialects that don't have native support for this.

      SQL Server OUTPUT clauses do not support fetching trigger generated values. Neither do SQLite RETURNING clauses. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      Trigger meta data is only available in jOOQ's commercial editions. If setting this flag to WHEN_NEEDED in the jOOQ Open Source Edition, jOOQ will assume triggers are present.

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

    • setFetchTriggerValuesAfterReturning Link icon

      public void setFetchTriggerValuesAfterReturning(FetchTriggerValuesAfterReturning value)
      Fetch trigger values after a RETURNING clause in dialects that don't have native support for this.

      SQL Server OUTPUT clauses do not support fetching trigger generated values. Neither do SQLite RETURNING clauses. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      Trigger meta data is only available in jOOQ's commercial editions. If setting this flag to WHEN_NEEDED in the jOOQ Open Source Edition, jOOQ will assume triggers are present.

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

    • getFetchIntermediateResult Link icon

      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 Link icon

      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.

    • isDiagnosticsDuplicateStatements Link icon

      public Boolean isDiagnosticsDuplicateStatements()
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsDuplicateStatements Link icon

      public void setDiagnosticsDuplicateStatements(Boolean value)
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsDuplicateStatementsUsingTransformPatterns Link icon

      public Boolean isDiagnosticsDuplicateStatementsUsingTransformPatterns()
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic with the transformPatterns feature activated.

      When transforming patterns, many more complex, duplicate SQL statements can be recognised than if simply parsing and re-rendering the statement. This flag turns on all transformation patterns, independently of their individual settings.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsDuplicateStatementsUsingTransformPatterns Link icon

      public void setDiagnosticsDuplicateStatementsUsingTransformPatterns(Boolean value)
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic with the transformPatterns feature activated.

      When transforming patterns, many more complex, duplicate SQL statements can be recognised than if simply parsing and re-rendering the statement. This flag turns on all transformation patterns, independently of their individual settings.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsMissingWasNullCall Link icon

      public Boolean isDiagnosticsMissingWasNullCall()
      Whether to run the DiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsMissingWasNullCall Link icon

      public void setDiagnosticsMissingWasNullCall(Boolean value)
      Whether to run the DiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsRepeatedStatements Link icon

      public Boolean isDiagnosticsRepeatedStatements()
      Whether to run the DiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsRepeatedStatements Link icon

      public void setDiagnosticsRepeatedStatements(Boolean value)
      Whether to run the DiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsConsecutiveAggregation Link icon

      public Boolean isDiagnosticsConsecutiveAggregation()
      Whether to run the DiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsConsecutiveAggregation Link icon

      public void setDiagnosticsConsecutiveAggregation(Boolean value)
      Whether to run the DiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsConcatenationInPredicate Link icon

      public Boolean isDiagnosticsConcatenationInPredicate()
      Whether to run the DiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsConcatenationInPredicate Link icon

      public void setDiagnosticsConcatenationInPredicate(Boolean value)
      Whether to run the DiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsPossiblyWrongExpression Link icon

      public Boolean isDiagnosticsPossiblyWrongExpression()
      Whether to run the DiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsPossiblyWrongExpression Link icon

      public void setDiagnosticsPossiblyWrongExpression(Boolean value)
      Whether to run the DiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsTooManyColumnsFetched Link icon

      public Boolean isDiagnosticsTooManyColumnsFetched()
      Whether to run the DiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsTooManyColumnsFetched Link icon

      public void setDiagnosticsTooManyColumnsFetched(Boolean value)
      Whether to run the DiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsTooManyRowsFetched Link icon

      public Boolean isDiagnosticsTooManyRowsFetched()
      Whether to run the DiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsTooManyRowsFetched Link icon

      public void setDiagnosticsTooManyRowsFetched(Boolean value)
      Whether to run the DiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsUnnecessaryWasNullCall Link icon

      public Boolean isDiagnosticsUnnecessaryWasNullCall()
      Whether to run the DiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Returns:
      possible object is Boolean
    • setDiagnosticsUnnecessaryWasNullCall Link icon

      public void setDiagnosticsUnnecessaryWasNullCall(Boolean value)
      Whether to run the DiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsPatterns Link icon

      public Boolean isDiagnosticsPatterns()
      Whether to run the various pattern transformation diagnostics.

      transformPatterns allows for applying numerous pattern transformations, which can be turned on separately when running diagnostics. This flag overrides the transformPatterns flag in the diagnostics context. Individual pattern flags still allow to enable / disable the pattern for diagnostics.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsPatterns Link icon

      public void setDiagnosticsPatterns(Boolean value)
      Whether to run the various pattern transformation diagnostics.

      transformPatterns allows for applying numerous pattern transformations, which can be turned on separately when running diagnostics. This flag overrides the transformPatterns flag in the diagnostics context. Individual pattern flags still allow to enable / disable the pattern for diagnostics.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsTrivialCondition Link icon

      public Boolean isDiagnosticsTrivialCondition()
      Whether to run the DiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsTrivialCondition Link icon

      public void setDiagnosticsTrivialCondition(Boolean value)
      Whether to run the DiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsNullCondition Link icon

      public Boolean isDiagnosticsNullCondition()
      Whether to run the
      invalid reference
      org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
      diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setDiagnosticsNullCondition Link icon

      public void setDiagnosticsNullCondition(Boolean value)
      Whether to run the
      invalid reference
      org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
      diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatterns Link icon

      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 Link icon

      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 Link icon

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

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

      public Boolean isTransformPatternsUnnecessaryDistinct()
      Transform SELECT DISTINCT a, b FROM t GROUP BY a, b to SELECT a, b FROM t GROUP BY a, b.

      The GROUP BY clause already removes duplicates, so if the DISTINCT clause contains at least all the columns from GROUP BY then it can be removed.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryDistinct Link icon

      public void setTransformPatternsUnnecessaryDistinct(Boolean value)
      Transform SELECT DISTINCT a, b FROM t GROUP BY a, b to SELECT a, b FROM t GROUP BY a, b.

      The GROUP BY clause already removes duplicates, so if the DISTINCT clause contains at least all the columns from GROUP BY then it can be removed.

      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
    • isTransformPatternsUnnecessaryScalarSubquery Link icon

      public Boolean isTransformPatternsUnnecessaryScalarSubquery()
      Transform SELECT (SELECT 1) to SELECT 1.

      Scalar subqueries that don't have any content other than a SELECT clause are unnecessary and can be removed.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryScalarSubquery Link icon

      public void setTransformPatternsUnnecessaryScalarSubquery(Boolean value)
      Transform SELECT (SELECT 1) to SELECT 1.

      Scalar subqueries that don't have any content other than a SELECT clause are unnecessary and can be removed.

      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
    • isTransformPatternsUnnecessaryInnerJoin Link icon

      public Boolean isTransformPatternsUnnecessaryInnerJoin()
      Transform SELECT * FROM t INNER JOIN u ON TRUE to SELECT * FROM t CROSS JOIN u.

      Some INNER JOIN expressions can be proven to be unnecessary.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryInnerJoin Link icon

      public void setTransformPatternsUnnecessaryInnerJoin(Boolean value)
      Transform SELECT * FROM t INNER JOIN u ON TRUE to SELECT * FROM t CROSS JOIN u.

      Some INNER JOIN expressions can be proven to be unnecessary.

      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
    • isTransformPatternsUnnecessaryGroupByExpressions Link icon

      public Boolean isTransformPatternsUnnecessaryGroupByExpressions()
      Transform SELECT a, b FROM t GROUP BY a, a, b to SELECT a, b FROM t GROUP BY a, b.

      Duplicate GROUP BY expressions can be removed.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryGroupByExpressions Link icon

      public void setTransformPatternsUnnecessaryGroupByExpressions(Boolean value)
      Transform SELECT a, b FROM t GROUP BY a, a, b to SELECT a, b FROM t GROUP BY a, b.

      Duplicate GROUP BY expressions can be removed.

      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
    • isTransformPatternsUnnecessaryOrderByExpressions Link icon

      public Boolean isTransformPatternsUnnecessaryOrderByExpressions()
      Transform SELECT a, b FROM t ORDER BY a, a, b to SELECT a, b FROM t ORDER BY a, b.

      Duplicate ORDER BY expressions can be removed.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryOrderByExpressions Link icon

      public void setTransformPatternsUnnecessaryOrderByExpressions(Boolean value)
      Transform SELECT a, b FROM t ORDER BY a, a, b to SELECT a, b FROM t ORDER BY a, b.

      Duplicate ORDER BY expressions can be removed.

      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
    • isTransformPatternsUnnecessaryExistsSubqueryClauses Link icon

      public Boolean isTransformPatternsUnnecessaryExistsSubqueryClauses()
      Transform [ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d) to [ NOT ] EXISTS (SELECT 1 FROM t).

      In EXISTS subqueries, quite a few SELECT clauses are meaningless, and can thus be removed. These include:

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnnecessaryExistsSubqueryClauses Link icon

      public void setTransformPatternsUnnecessaryExistsSubqueryClauses(Boolean value)
      Transform [ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d) to [ NOT ] EXISTS (SELECT 1 FROM t).

      In EXISTS subqueries, quite a few SELECT clauses are meaningless, and can thus be removed. These include:

      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
    • isTransformPatternsCountConstant Link icon

      public Boolean isTransformPatternsCountConstant()
      Transform COUNT(1) or any other COUNT(const) to COUNT(*).

      There is no benefit to counting a constant expression. In fact, in some RDBMS, it might even be slightly slower, at least in benchmarks.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCountConstant Link icon

      public void setTransformPatternsCountConstant(Boolean value)
      Transform COUNT(1) or any other COUNT(const) to COUNT(*).

      There is no benefit to counting a constant expression. In fact, in some RDBMS, it might even be slightly slower, at least in benchmarks.

      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
    • isTransformPatternsTrim Link icon

      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 Link icon

      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
    • isTransformPatternsNotAnd Link icon

      public Boolean isTransformPatternsNotAnd()
      Transform NOT(p AND q) to NOT(p) OR NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNotAnd Link icon

      public void setTransformPatternsNotAnd(Boolean value)
      Transform NOT(p AND q) to NOT(p) OR NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

      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
    • isTransformPatternsNotOr Link icon

      public Boolean isTransformPatternsNotOr()
      Transform NOT(p OR q) to NOT(p) AND NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNotOr Link icon

      public void setTransformPatternsNotOr(Boolean value)
      Transform NOT(p OR q) to NOT(p) AND NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • isTransformPatternsDistinctFromNull Link icon

      public Boolean isTransformPatternsDistinctFromNull()
      Transform a IS [ NOT ] DISTINCT FROM NULL to a IS [ NOT ] NULL.

      This simplifies the much more verbose 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
    • setTransformPatternsDistinctFromNull Link icon

      public void setTransformPatternsDistinctFromNull(Boolean value)
      Transform a IS [ NOT ] DISTINCT FROM NULL to a IS [ NOT ] NULL.

      This simplifies the much more verbose 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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

      This transformation inverses

      invalid reference
      TableField
      [op]
      invalid reference
      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 Link icon

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

      This transformation inverses

      invalid reference
      TableField
      [op]
      invalid reference
      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
    • isTransformPatternsNormaliseCoalesceToNvl Link icon

      public Boolean isTransformPatternsNormaliseCoalesceToNvl()
      Transform 2 argument COALESCE(a, b) to NVL(a, b).

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNormaliseCoalesceToNvl Link icon

      public void setTransformPatternsNormaliseCoalesceToNvl(Boolean value)
      Transform 2 argument COALESCE(a, b) to NVL(a, b).

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      public Boolean isTransformPatternsMergeAndComparison()
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      public void setTransformPatternsMergeAndComparison(Boolean value)
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      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 Link icon

      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 Link icon

      public Boolean isTransformPatternsMergeRangePredicates()
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      public void setTransformPatternsMergeRangePredicates(Boolean value)
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      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 Link icon

      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
    • isTransformPatternsCaseSearchedToCaseSimple Link icon

      public Boolean isTransformPatternsCaseSearchedToCaseSimple()
      Transform a searched CASE WHEN x = .. WHEN x = .. to a simple CASE x WHEN … WHEN … expression.

      When a searched CASE expression always compares the same column to a value, then it can be simplified, possibly unlocking further transformations that are available only to the simple CASE expression.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseSearchedToCaseSimple Link icon

      public void setTransformPatternsCaseSearchedToCaseSimple(Boolean value)
      Transform a searched CASE WHEN x = .. WHEN x = .. to a simple CASE x WHEN … WHEN … expression.

      When a searched CASE expression always compares the same column to a value, then it can be simplified, possibly unlocking further transformations that are available only to the simple CASE expression.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsCaseElseNull Link icon

      public Boolean isTransformPatternsCaseElseNull()
      Transform CASE … ELSE NULL removing the ELSE clause.

      CASE WHEN x THEN y ELSE NULL END is equivalent to CASE WHEN x THEN y END.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseElseNull Link icon

      public void setTransformPatternsCaseElseNull(Boolean value)
      Transform CASE … ELSE NULL removing the ELSE clause.

      CASE WHEN x THEN y ELSE NULL END is equivalent to CASE WHEN x THEN y END.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsUnreachableCaseClauses Link icon

      public Boolean isTransformPatternsUnreachableCaseClauses()
      Transform CASE by removing unreachable clauses.

      Case clauses can be proven to be unreachable, and thus removed:

      • CASE WHEN p THEN 1 WHEN TRUE THEN 2 WHEN q … ELSE … END is equivalent to CASE WHEN p THEN 1 ELSE 2 END
      • CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END is equivalent to CASE WHEN p THEN 1 WHEN q … ELSE … END

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnreachableCaseClauses Link icon

      public void setTransformPatternsUnreachableCaseClauses(Boolean value)
      Transform CASE by removing unreachable clauses.

      Case clauses can be proven to be unreachable, and thus removed:

      • CASE WHEN p THEN 1 WHEN TRUE THEN 2 WHEN q … ELSE … END is equivalent to CASE WHEN p THEN 1 ELSE 2 END
      • CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END is equivalent to CASE WHEN p THEN 1 WHEN q … ELSE … END

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsUnreachableDecodeClauses Link icon

      public Boolean isTransformPatternsUnreachableDecodeClauses()
      Transform DECODE by removing unreachable clauses.

      DECODE clauses can be proven to be unreachable, and thus removed:

      • DECODE(a, b, 1, c, 2, b, 3) is equivalent to DECODE(a, b, 1, c, 2)
      • DECODE(a, b, 1, c, 2, b, 3, 4) is equivalent to DECODE(a, b, 1, c, 2, 4)

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsUnreachableDecodeClauses Link icon

      public void setTransformPatternsUnreachableDecodeClauses(Boolean value)
      Transform DECODE by removing unreachable clauses.

      DECODE clauses can be proven to be unreachable, and thus removed:

      • DECODE(a, b, 1, c, 2, b, 3) is equivalent to DECODE(a, b, 1, c, 2)
      • DECODE(a, b, 1, c, 2, b, 3, 4) is equivalent to DECODE(a, b, 1, c, 2, 4)

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsCaseDistinctToDecode Link icon

      public Boolean isTransformPatternsCaseDistinctToDecode()
      Transform CASE WHEN a IS NOT DISTINCT FROM b … to an equivalent DECODE function.

      When all WHEN clauses of a CASE expression use the DISTINCT predicate, then the CASE expression can be transformed into a DECODE function call:

      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END is equivalent to DECODE(a, b, 1)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END is equivalent to DECODE(a, b, 1, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 END is equivalent to DECODE(a, b, 1, c, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 ELSE 3 END is equivalent to DECODE(a, b, 1, c, 2, 3)

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseDistinctToDecode Link icon

      public void setTransformPatternsCaseDistinctToDecode(Boolean value)
      Transform CASE WHEN a IS NOT DISTINCT FROM b … to an equivalent DECODE function.

      When all WHEN clauses of a CASE expression use the DISTINCT predicate, then the CASE expression can be transformed into a DECODE function call:

      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END is equivalent to DECODE(a, b, 1)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END is equivalent to DECODE(a, b, 1, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 END is equivalent to DECODE(a, b, 1, c, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 ELSE 3 END is equivalent to DECODE(a, b, 1, c, 2, 3)

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsCaseMergeWhenWhen Link icon

      public Boolean isTransformPatternsCaseMergeWhenWhen()
      Transform CASE WHEN a THEN x WHEN b THEN x END to CASE WHEN a OR b THEN x END.

      Two consecutive WHEN clauses can be merged, if their respective THEN clause is identical.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseMergeWhenWhen Link icon

      public void setTransformPatternsCaseMergeWhenWhen(Boolean value)
      Transform CASE WHEN a THEN x WHEN b THEN x END to CASE WHEN a OR b THEN x END.

      Two consecutive WHEN clauses can be merged, if their respective THEN clause is identical.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsCaseMergeWhenElse Link icon

      public Boolean isTransformPatternsCaseMergeWhenElse()
      Transform CASE WHEN a THEN x WHEN b THEN y ELSE y END to CASE WHEN a THEN x ELSE y END.

      The ultimate WHEN clause can be merged with the ELSE, if their respective result is identical. If the WHEN clause is the only WHEN clause, then the entire CASE expression can be replaced by the ELSE clause content.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseMergeWhenElse Link icon

      public void setTransformPatternsCaseMergeWhenElse(Boolean value)
      Transform CASE WHEN a THEN x WHEN b THEN y ELSE y END to CASE WHEN a THEN x ELSE y END.

      The ultimate WHEN clause can be merged with the ELSE, if their respective result is identical. If the WHEN clause is the only WHEN clause, then the entire CASE expression can be replaced by the ELSE clause content.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsCaseToCaseAbbreviation Link icon

      public Boolean isTransformPatternsCaseToCaseAbbreviation()
      Transform CASE expressions to their respective abbreviations.

      Some CASE expressions have a shorter abbreviated form, such as COALESCE() or NULLIF().

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsCaseToCaseAbbreviation Link icon

      public void setTransformPatternsCaseToCaseAbbreviation(Boolean value)
      Transform CASE expressions to their respective abbreviations.

      Some CASE expressions have a shorter abbreviated form, such as COALESCE() or NULLIF().

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsSimplifyCaseAbbreviation Link icon

      public Boolean isTransformPatternsSimplifyCaseAbbreviation()
      Transform complex predicates into simpler CASE abbreviations.

      Some predicates can be simplified into case abbreviations, such as, for example

      • a IS NULL OR COALESCE(a = b, FALSE) to NULLIF(a, b) IS NULL
      • a IS NOT NULL AND COALESCE(a != b, TRUE) to NULLIF(a, b) IS NOT NULL

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsSimplifyCaseAbbreviation Link icon

      public void setTransformPatternsSimplifyCaseAbbreviation(Boolean value)
      Transform complex predicates into simpler CASE abbreviations.

      Some predicates can be simplified into case abbreviations, such as, for example

      • a IS NULL OR COALESCE(a = b, FALSE) to NULLIF(a, b) IS NULL
      • a IS NOT NULL AND COALESCE(a != b, TRUE) to NULLIF(a, b) IS NOT NULL

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsFlattenCaseAbbreviation Link icon

      public Boolean isTransformPatternsFlattenCaseAbbreviation()
      Flatten nested CASE abbreviations such as NVL or CASE.

      Nested CASE abbreviations can be flattened, as such:

      • NVL(NVL(a, b), c) to COALESCE(a, b, c)
      • COALESCE(a, ..., COALESCE(b, ..., c), ..., d) to COALESCE(a, …, b, …, c, ..., d)

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsFlattenCaseAbbreviation Link icon

      public void setTransformPatternsFlattenCaseAbbreviation(Boolean value)
      Flatten nested CASE abbreviations such as NVL or CASE.

      Nested CASE abbreviations can be flattened, as such:

      • NVL(NVL(a, b), c) to COALESCE(a, b, c)
      • COALESCE(a, ..., COALESCE(b, ..., c), ..., d) to COALESCE(a, …, b, …, c, ..., d)

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsFlattenDecode Link icon

      public Boolean isTransformPatternsFlattenDecode()
      Flatten nested DECODE functions.

      Nested DECODE functions can be flattened, as such:

      • DECODE(a, b, c, DECODE(a, d, e)) to DECODE(a, b, c, d, e)

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsFlattenDecode Link icon

      public void setTransformPatternsFlattenDecode(Boolean value)
      Flatten nested DECODE functions.

      Nested DECODE functions can be flattened, as such:

      • DECODE(a, b, c, DECODE(a, d, e)) to DECODE(a, b, c, d, e)

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsFlattenCase Link icon

      public Boolean isTransformPatternsFlattenCase()
      Transform CASE … ELSE CASE … by flattening the nested CASE.

      CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END is equivalent to CASE WHEN a THEN b WHEN c THEN d END.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsFlattenCase Link icon

      public void setTransformPatternsFlattenCase(Boolean value)
      Transform CASE … ELSE CASE … by flattening the nested CASE.

      CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END is equivalent to CASE WHEN a THEN b WHEN c THEN d END.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsTrivialCaseAbbreviation Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • isTransformPatternsTrivialBitwiseOperations Link icon

      public Boolean isTransformPatternsTrivialBitwiseOperations()
      Transform trivial bitwise comparisons like BIT_OR(a, 0) to a.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsTrivialBitwiseOperations Link icon

      public void setTransformPatternsTrivialBitwiseOperations(Boolean value)
      Transform trivial bitwise comparisons like BIT_OR(a, 0) to a.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitSet Link icon

      public Boolean isTransformPatternsBitSet()
      Transform bitwise operations to an equivalent BIT_SET(a, b) or BIT_SET(a, b, c) expression.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitSet Link icon

      public void setTransformPatternsBitSet(Boolean value)
      Transform bitwise operations to an equivalent BIT_SET(a, b) or BIT_SET(a, b, c) expression.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsBitGet Link icon

      public Boolean isTransformPatternsBitGet()
      Transform bitwise operations to an equivalent BIT_GET(a, b) expression.

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsBitGet Link icon

      public void setTransformPatternsBitGet(Boolean value)
      Transform bitwise operations to an equivalent BIT_GET(a, b) expression.

      This feature is available in the commercial distribution only.

      Parameters:
      value - allowed object is Boolean
    • isTransformPatternsScalarSubqueryCountAsteriskGtZero Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • isTransformPatternsNullOnNullInput Link icon

      public Boolean isTransformPatternsNullOnNullInput()
      Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression with NULL arguments can be replaced by NULL.

      There are many built-in SQL functions and operators with a RETURNS NULL ON NULL INPUT property, e.g.

      • ABS(NULL)
      • MOD(NULL, 1)
      • NULL + 1

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsNullOnNullInput Link icon

      public void setTransformPatternsNullOnNullInput(Boolean value)
      Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression with NULL arguments can be replaced by NULL.

      There are many built-in SQL functions and operators with a RETURNS NULL ON NULL INPUT property, e.g.

      • ABS(NULL)
      • MOD(NULL, 1)
      • NULL + 1

      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 Link icon

      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 Link icon

      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
    • isTransformPatternsArithmeticComparisons Link icon

      public Boolean isTransformPatternsArithmeticComparisons()
      Transform a + 1 = 2 to a = 2 - 1, and other transformations.

      It is usually best to compare single columns with constants or expressions to encourage index usage. While function based indexes are possible in some RDBMS, ordinary indexes are more reusable and should be preferred.

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

      This feature is available in the commercial distribution only.

      Returns:
      possible object is Boolean
    • setTransformPatternsArithmeticComparisons Link icon

      public void setTransformPatternsArithmeticComparisons(Boolean value)
      Transform a + 1 = 2 to a = 2 - 1, and other transformations.

      It is usually best to compare single columns with constants or expressions to encourage index usage. While function based indexes are possible in some RDBMS, ordinary indexes are more reusable and should be preferred.

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      @Deprecated public Transformation getTransformInConditionSubqueryWithLimitToDerivedTable()
      Deprecated.
      - 3.18.0 - [#14634] - The configuration of this transformation is deprecated. It will no longer be commercially available only, but apply also to the jOOQ Open Source Edition, when required.
      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 invalid input: '&' IN/ALL/ANY/SOME subquery'"

      This feature is available in the commercial distribution only.

    • setTransformInConditionSubqueryWithLimitToDerivedTable Link icon

      @Deprecated public void setTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value)
      Deprecated.
      - 3.18.0 - [#14634] - The configuration of this transformation is deprecated. It will no longer be commercially available only, but apply also to the jOOQ Open Source Edition, when required.
      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 invalid input: '&' IN/ALL/ANY/SOME subquery'"

      This feature is available in the commercial distribution only.

    • getTransformQualify Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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.

    • getTransformGroupByColumnIndex Link icon

      public Transformation getTransformGroupByColumnIndex()
      Transform GROUP BY [column index] clauses by substituting the column index.

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

      This feature is available in the commercial distribution only.

    • setTransformGroupByColumnIndex Link icon

      public void setTransformGroupByColumnIndex(Transformation value)
      Transform GROUP BY [column index] clauses by substituting the column index.

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

      This feature is available in the commercial distribution only.

    • getTransformInlineCTE Link icon

      public Transformation getTransformInlineCTE()
      Transform Common Table Expressions (CTE) by inlining their WITH clause definition to wherever they're referenced.

      Non-recursive CTE are just syntax sugar for inline views (derived tables). When they're not supported natively, jOOQ can simply inline their definition to wherever they're referenced.

      This feature is available in the commercial distribution only.

    • setTransformInlineCTE Link icon

      public void setTransformInlineCTE(Transformation value)
      Transform Common Table Expressions (CTE) by inlining their WITH clause definition to wherever they're referenced.

      Non-recursive CTE are just syntax sugar for inline views (derived tables). When they're not supported natively, jOOQ can simply inline their definition to wherever they're referenced.

      This feature is available in the commercial distribution only.

    • getBackslashEscaping Link icon

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

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

      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 Link icon

      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 Link icon

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public Boolean isExecuteLogging()
      When set to true, this will add jOOQ's default LoggerListener for debug logging. This is meant for use in development only.
      Returns:
      possible object is Boolean
    • setExecuteLogging Link icon

      public void setExecuteLogging(Boolean value)
      When set to true, this will add jOOQ's default LoggerListener for debug logging. This is meant for use in development only.
      Parameters:
      value - allowed object is Boolean
    • isExecuteLoggingSQLExceptions Link icon

      public Boolean isExecuteLoggingSQLExceptions()
      [#14420] Whether constraint violations and other SQLException should produce additional log information about the column name and data causing the problem. Unlike executeLogging, this is meant for use in production as well as development. This feature is available only in commercial distributions.
      Returns:
      possible object is Boolean
    • setExecuteLoggingSQLExceptions Link icon

      public void setExecuteLoggingSQLExceptions(Boolean value)
      [#14420] Whether constraint violations and other SQLException should produce additional log information about the column name and data causing the problem. Unlike executeLogging, this is meant for use in production as well as development. This feature is available only in commercial distributions.
      Parameters:
      value - allowed object is Boolean
    • isDiagnosticsLogging Link icon

      public Boolean isDiagnosticsLogging()
      When set to true, this will add jOOQ's default logging DiagnosticsListeners.
      Returns:
      possible object is Boolean
    • setDiagnosticsLogging Link icon

      public void setDiagnosticsLogging(Boolean value)
      When set to true, this will add jOOQ's default logging DiagnosticsListeners.
      Parameters:
      value - allowed object is Boolean
    • getDiagnosticsConnection Link icon

      public DiagnosticsConnection getDiagnosticsConnection()
      Whether to activate the DiagnosticsConnection, explicit by DEFAULT, implicit if ON, or turned OFF entirely.
    • setDiagnosticsConnection Link icon

      public void setDiagnosticsConnection(DiagnosticsConnection value)
      Whether to activate the DiagnosticsConnection, explicit by DEFAULT, implicit if ON, or turned OFF entirely.
    • isUpdateRecordVersion Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

      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 Link icon

      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 Link icon

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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.
    • getRecordDirtyTracking Link icon

      public RecordDirtyTracking getRecordDirtyTracking()
      Whether UpdatableRecord.store() and related calls should be based on Record.touched() or Record.modified() semantics. This also affects copying records into explicit statements.
    • setRecordDirtyTracking Link icon

      public void setRecordDirtyTracking(RecordDirtyTracking value)
      Whether UpdatableRecord.store() and related calls should be based on Record.touched() or Record.modified() semantics. This also affects copying records into explicit statements.
    • isUpdatablePrimaryKeys Link icon

      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 Link icon

      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 Link icon

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

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

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

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

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

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

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

      public void setCacheParsingConnectionLRUCacheSize(Integer value)
      The default value of the ParsingConnection cache's LRU cache size.
    • getCacheRecordMappersLRUCacheSize Link icon

      public Integer getCacheRecordMappersLRUCacheSize()
      The default value of the RecordMapper cache's LRU cache size.
    • setCacheRecordMappersLRUCacheSize Link icon

      public void setCacheRecordMappersLRUCacheSize(Integer value)
      The default value of the RecordMapper cache's LRU cache size.
    • getReflectionCacheLRUCacheSize Link icon

      public Integer getReflectionCacheLRUCacheSize()
      The default value of the reflection cache's LRU cache size.
    • setReflectionCacheLRUCacheSize Link icon

      public void setReflectionCacheLRUCacheSize(Integer value)
      The default value of the reflection cache's LRU cache size.
    • isCachePreparedStatementInLoader Link icon

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

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

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

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

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

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

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

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

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

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

      public Boolean isReturnDefaultOnUpdatableRecord()
      Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted().
      Returns:
      possible object is Boolean
    • setReturnDefaultOnUpdatableRecord Link icon

      public void setReturnDefaultOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted().
      Parameters:
      value - allowed object is Boolean
    • isReturnComputedOnUpdatableRecord Link icon

      public Boolean isReturnComputedOnUpdatableRecord()
      Whether calls to store(), insert() and update() should return values for columns that are DataType.computed().
      Returns:
      possible object is Boolean
    • setReturnComputedOnUpdatableRecord Link icon

      public void setReturnComputedOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return values for columns that are DataType.computed().
      Parameters:
      value - allowed object is Boolean
    • isReturnAllOnUpdatableRecord Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      public Boolean isMapJPAAnnotations()
      Whether JPA annotations should be considered by the DefaultRecordMapper, assuming the jOOQ-jpa-extensions is on the classpath.
      Returns:
      possible object is Boolean
    • setMapJPAAnnotations Link icon

      public void setMapJPAAnnotations(Boolean value)
      Whether JPA annotations should be considered by the DefaultRecordMapper, assuming the jOOQ-jpa-extensions is on the classpath.
      Parameters:
      value - allowed object is Boolean
    • isMapRecordComponentParameterNames Link icon

      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 Link icon

      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 Link icon

      public Boolean isMapConstructorPropertiesParameterNames()
      Whether constructor parameter names obtained from the ConstructorPropertiesProvider SPI (default implementation in the jOOQ-beans-extensions module) should be considered by the DefaultRecordMapper.
      Returns:
      possible object is Boolean
    • setMapConstructorPropertiesParameterNames Link icon

      public void setMapConstructorPropertiesParameterNames(Boolean value)
      Whether constructor parameter names obtained from the ConstructorPropertiesProvider SPI (default implementation in the jOOQ-beans-extensions module) should be considered by the DefaultRecordMapper.
      Parameters:
      value - allowed object is Boolean
    • isMapConstructorParameterNames Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

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

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

      public Boolean isEmulateNestedRecordProjectionsUsingMultisetEmulation()
      [#13598] Whether nested record projections at the top level should be emulated using the MULTISET emulation rather than the flattening emulation, if supported by the dialect.
      Returns:
      possible object is Boolean
    • setEmulateNestedRecordProjectionsUsingMultisetEmulation Link icon

      public void setEmulateNestedRecordProjectionsUsingMultisetEmulation(Boolean value)
      [#13598] Whether nested record projections at the top level should be emulated using the MULTISET emulation rather than the flattening emulation, if supported by the dialect.
      Parameters:
      value - allowed object is Boolean
    • isEmulateComputedColumns Link icon

      public Boolean isEmulateComputedColumns()
      [#13418] Whether computed columns should be emulated in the client.

      This can be useful if a schema was generated using a dialect that supports computed columns, but it is deployed on an RDBMS that does not.

      Returns:
      possible object is Boolean
    • setEmulateComputedColumns Link icon

      public void setEmulateComputedColumns(Boolean value)
      [#13418] Whether computed columns should be emulated in the client.

      This can be useful if a schema was generated using a dialect that supports computed columns, but it is deployed on an RDBMS that does not.

      Parameters:
      value - allowed object is Boolean
    • isComputedOnClientVirtual Link icon

      public Boolean isComputedOnClientVirtual()
      Whether VIRTUAL client side computed columns should be applied to queries. This feature is available only in commercial distributions.
      Returns:
      possible object is Boolean
    • setComputedOnClientVirtual Link icon

      public void setComputedOnClientVirtual(Boolean value)
      Whether VIRTUAL client side computed columns should be applied to queries. This feature is available only in commercial distributions.
      Parameters:
      value - allowed object is Boolean
    • isComputedOnClientStored Link icon

      public Boolean isComputedOnClientStored()
      Whether STORED client side computed columns should be applied to queries (including audit columns). This feature is available only in commercial distributions.
      Returns:
      possible object is Boolean
    • setComputedOnClientStored Link icon

      public void setComputedOnClientStored(Boolean value)
      Whether STORED client side computed columns should be applied to queries (including audit columns). This feature is available only in commercial distributions.
      Parameters:
      value - allowed object is Boolean
    • getExecuteUpdateWithoutWhere Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • getMigrationHistorySchema Link icon

      public MigrationSchema getMigrationHistorySchema()
      The database schema where the migration history is located.
    • setMigrationHistorySchema Link icon

      public void setMigrationHistorySchema(MigrationSchema value)
      The database schema where the migration history is located.
    • isMigrationHistorySchemaCreateSchemaIfNotExists Link icon

      public Boolean isMigrationHistorySchemaCreateSchemaIfNotExists()
      Whether getMigrationHistorySchema() should be created if it doesn't exist.
      Returns:
      possible object is Boolean
    • setMigrationHistorySchemaCreateSchemaIfNotExists Link icon

      public void setMigrationHistorySchemaCreateSchemaIfNotExists(Boolean value)
      Whether getMigrationHistorySchema() should be created if it doesn't exist.
      Parameters:
      value - allowed object is Boolean
    • getMigrationDefaultSchema Link icon

      public MigrationSchema getMigrationDefaultSchema()
      The default schema whose unqualified objects that are included in the migration.
    • setMigrationDefaultSchema Link icon

      public void setMigrationDefaultSchema(MigrationSchema value)
      The default schema whose unqualified objects that are included in the migration.
    • isMigrationSchemataCreateSchemaIfNotExists Link icon

      public Boolean isMigrationSchemataCreateSchemaIfNotExists()
      Whether getMigrationSchemata() should be created if they don't exist.
      Returns:
      possible object is Boolean
    • setMigrationSchemataCreateSchemaIfNotExists Link icon

      public void setMigrationSchemataCreateSchemaIfNotExists(Boolean value)
      Whether getMigrationSchemata() should be created if they don't exist.
      Parameters:
      value - allowed object is Boolean
    • getMigrationDefaultContentType Link icon

      public MigrationDefaultContentType getMigrationDefaultContentType()
      The default ContentType that is used when loading migrations.
    • setMigrationDefaultContentType Link icon

      public void setMigrationDefaultContentType(MigrationDefaultContentType value)
      The default ContentType that is used when loading migrations.
    • isMigrationAllowUndo Link icon

      public Boolean isMigrationAllowUndo()
      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
    • setMigrationAllowUndo Link icon

      public void setMigrationAllowUndo(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
    • isMigrationAllowInvalidCommits Link icon

      public Boolean isMigrationAllowInvalidCommits()
      Whether migrations to invalid commits (Commit.valid()) are allowed.

      This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly test uncommited or inconsistent changes in development.

      Returns:
      possible object is Boolean
    • setMigrationAllowInvalidCommits Link icon

      public void setMigrationAllowInvalidCommits(Boolean value)
      Whether migrations to invalid commits (Commit.valid()) are allowed.

      This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly test uncommited or inconsistent changes in development.

      Parameters:
      value - allowed object is Boolean
    • isMigrationRevertUntracked Link icon

      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 Link icon

      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 Link icon

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

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

      public Boolean isMigrationAutoVerification()
      Whether a migration automatically runs a verification first.
      Returns:
      possible object is Boolean
    • setMigrationAutoVerification Link icon

      public void setMigrationAutoVerification(Boolean value)
      Whether a migration automatically runs a verification first.
      Parameters:
      value - allowed object is Boolean
    • isMigrationIgnoreDefaultTimestampPrecisionDiffs Link icon

      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 Link icon

      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
    • isMigrationIgnoreUnnamedConstraintDiffs Link icon

      public Boolean isMigrationIgnoreUnnamedConstraintDiffs()
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the difference between (possibly synthetically) name constraints and unnamed constraints, if the structure of the constraint is the same.
      Returns:
      possible object is Boolean
    • setMigrationIgnoreUnnamedConstraintDiffs Link icon

      public void setMigrationIgnoreUnnamedConstraintDiffs(Boolean value)
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the difference between (possibly synthetically) name constraints and unnamed constraints, if the structure of the constraint is the same.
      Parameters:
      value - allowed object is Boolean
    • isMigrationIgnoreImplicitPrimaryKeyNotNullConstraints Link icon

      public Boolean isMigrationIgnoreImplicitPrimaryKeyNotNullConstraints()
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the presence or absence of implicit NOT NULL constraints on PRIMARY KEY columns if the constraint is really implicit for a given dialect. This flag allows for overriding this behaviour.
      Returns:
      possible object is Boolean
    • setMigrationIgnoreImplicitPrimaryKeyNotNullConstraints Link icon

      public void setMigrationIgnoreImplicitPrimaryKeyNotNullConstraints(Boolean value)
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the presence or absence of implicit NOT NULL constraints on PRIMARY KEY columns if the constraint is really implicit for a given dialect. This flag allows for overriding this behaviour.
      Parameters:
      value - allowed object is Boolean
    • getLocale Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

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

      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 Link icon

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

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

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

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

      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 Link icon

      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 Link icon

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

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

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

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

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

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

      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 Link icon

      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 Link icon

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

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

      public Boolean isParseMetaViewSources()
      [#8469] Whether to parse view sources retrieved from DatabaseMetaData.
      Returns:
      possible object is Boolean
    • setParseMetaViewSources Link icon

      public void setParseMetaViewSources(Boolean value)
      [#8469] Whether to parse view sources retrieved from DatabaseMetaData.
      Parameters:
      value - allowed object is Boolean
    • getReadonlyTableRecordInsert Link icon

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

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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
    • getWarnOnStaticTypeRegistryAccess Link icon

      public Warning getWarnOnStaticTypeRegistryAccess()
      [#15286] The warning level when the deprecated static type registry was accessed by legacy code.
    • setWarnOnStaticTypeRegistryAccess Link icon

      public void setWarnOnStaticTypeRegistryAccess(Warning value)
      [#15286] The warning level when the deprecated static type registry was accessed by legacy code.
    • getInterpreterSearchPath Link icon

      public List<InterpreterSearchSchema> getInterpreterSearchPath()
    • setInterpreterSearchPath Link icon

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

      public List<MigrationSchema> getMigrationSchemata()
    • setMigrationSchemata Link icon

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

      public List<ParseSearchSchema> getParseSearchPath()
    • setParseSearchPath Link icon

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

      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 Link icon

      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 Link icon

      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

    • withRenderTable Link icon

      public Settings withRenderTable(RenderTable value)
      Whether any table name qualification should be rendered at all on columns.

      Setting when tables aren't rendered, then implicitly, schemas and catalogs aren't rendered either.

      The following values are available:

      • RenderTable.ALWAYS: The default, which should always be preferred. Columns are always qualified with their tables, where possible.
      • RenderTable.WHEN_MULTIPLE_TABLES: The simplest option to reduce generated query verbosity, avoiding table qualification only in queries with a single table in the FROM clause.
      • RenderTable.WHEN_AMBIGUOUS_COLUMNS: A much more expensive to compute option that checks the FROM clause for ambiguous column names, in case of which columns are qualified.
      • RenderTable.NEVER: Always turn off table qualification.

      Use this when verbosity of rendered SQL is a problem.

    • withRenderMapping Link icon

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

      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 Link icon

      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 Link icon

      @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 Link icon

      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 Link icon

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

      @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 Link icon

      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 Link icon

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

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

      public Settings withRenderNullifEmptyStringForBindValues(Boolean value)
      Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.

      This feature is available in the commercial distribution only.

    • withRenderAutoAliasedDerivedTableExpressions Link icon

      public Settings withRenderAutoAliasedDerivedTableExpressions(AutoAliasExpressions value)
      Whether to auto-alias expressions in derived tables.

      This feature is available in the commercial distribution only.

    • withRenderOptionalAssociativityParentheses Link icon

      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 Link icon

      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 Link icon

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

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

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

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

      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 Link icon

      public Settings withRenderImplicitJoinType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins for to-one paths in Select queries.

      The DEFAULT is dependent on the nullability of the foreign key (LEFT_JOIN for nullable foreign keys and INNER_JOIN for non-nullable foreign keys). In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • withRenderImplicitJoinToManyType Link icon

      public Settings withRenderImplicitJoinToManyType(RenderImplicitJoinType value)
      The join type to be generated by implicit joins for to-many paths in Select queries.

      The DEFAULT is SCALAR_SUBQUERY if the join path is implicit only, i.e. absent from the FROM clause, to prevent accidental cartesian products, or LEFT_JOIN if declared explicitly in the FROM clause. In DML statements, it is always SCALAR_SUBQUERY, unless DML joins are supported.

    • withRenderDefaultNullability Link icon

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

      public Settings withRenderCoalesceToEmptyStringInConcat(Boolean value)
      Whether string concatenation operands should be coalesced to empty strings.

      Some dialects treat NULL values as empty strings when concatenating strings (e.g. Oracle). For compatibility reasons, this flag allows for replicating this behaviour also elsewhere.

      This feature is available in the commercial distribution only.

    • withRenderOrderByRownumberForEmulatedPagination Link icon

      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 Link icon

      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, fetchTriggerValuesAfterReturning needs to be enabled as well.

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

    • withRenderGroupConcatMaxLenSessionVariable Link icon

      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 Link icon

      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.

    • withRenderVariablesInDerivedTablesForEmulations Link icon

      public Settings withRenderVariablesInDerivedTablesForEmulations(Boolean value)
      Whether emulations that require repeating expressions should render variables for those expressions in derived tables.

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

    • withRenderRowConditionForSeekClause Link icon

      public Settings withRenderRowConditionForSeekClause(Boolean value)
      Whether a (a, b) invalid input: '<' (:a, :b) row predicate should be rendered for the SEEK clause.

      Some RDBMS may support (a, b) invalid input: '<' (:a, :b) row predicate syntax, which is very convenient for SEEK clause implementations, but fail to optimise this predicate as could be expected. This flag allows for expanding the predicate to the much more verbose, but equivalent (a invalid input: '<' :a) OR (a = :a AND b invalid input: '<' :b). Dialects without native support for row predicates aren't affected by this flag.

    • withRenderRedundantConditionForSeekClause Link icon

      public Settings withRenderRedundantConditionForSeekClause(Boolean value)
      Whether a redundant (a invalid input: '<'= :a) predicate should be rendered for a (a, b) invalid input: '<' (:a, :b) predicate for the SEEK clause.

      Some RDBMS may not be able to properly optimise (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'), and choose an appropriate index. By adding an additional redundant predicate, jOOQ may help the optimiser, e.g. (a invalid input: '<'= :a) AND (a, b) invalid input: '<' ('a', 'b') or (a invalid input: '<'= :a) AND ((a invalid input: '<' 'a') OR (a = 'a' AND b invalid input: '<' 'b'))

    • withRenderPlainSQLTemplatesAsRaw Link icon

      public Settings withRenderPlainSQLTemplatesAsRaw(Boolean value)
      Whether plain SQL templates (SQL) are rendered as raw string content.
    • withRenderDollarQuotedStringToken Link icon

      public Settings withRenderDollarQuotedStringToken(String value)
      The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
    • withNamePathSeparator Link icon

      public Settings withNamePathSeparator(String value)
      The character(s) to be used as a separator in paths encoded in a
      invalid reference
      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 Link icon

      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 Link icon

      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.

    • withFetchTrimmedCharValues Link icon

      public Settings withFetchTrimmedCharValues(Boolean value)
      Whether right trim fetched CHAR typed strings from JDBC ResultSet.

      By default, jOOQ's internal String data type Binding fetched strings as returned by JDBC. With this flag enabled, jOOQ will always right-trim CHAR typed strings, which can be useful in database products that will often use this historic fixed length string type, especially in dictionary views.

    • withFetchTriggerValuesAfterSQLServerOutput Link icon

      public Settings withFetchTriggerValuesAfterSQLServerOutput(Boolean value)
      Deprecated.
      - 3.18.0 - [#13912] [#15316] - Use fetchTriggerValuesAfterReturning instead.
      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.

    • withFetchTriggerValuesAfterReturning Link icon

      public Settings withFetchTriggerValuesAfterReturning(FetchTriggerValuesAfterReturning value)
      Fetch trigger values after a RETURNING clause in dialects that don't have native support for this.

      SQL Server OUTPUT clauses do not support fetching trigger generated values. Neither do SQLite RETURNING clauses. An additional MERGE statement can run a second query if (and only if) the primary key has been included in the OUTPUT clause.

      Trigger meta data is only available in jOOQ's commercial editions. If setting this flag to WHEN_NEEDED in the jOOQ Open Source Edition, jOOQ will assume triggers are present.

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

    • withFetchIntermediateResult Link icon

      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.

    • withDiagnosticsDuplicateStatements Link icon

      public Settings withDiagnosticsDuplicateStatements(Boolean value)
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsDuplicateStatementsUsingTransformPatterns Link icon

      public Settings withDiagnosticsDuplicateStatementsUsingTransformPatterns(Boolean value)
      Whether to run the DiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext) diagnostic with the transformPatterns feature activated.

      When transforming patterns, many more complex, duplicate SQL statements can be recognised than if simply parsing and re-rendering the statement. This flag turns on all transformation patterns, independently of their individual settings.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsMissingWasNullCall Link icon

      public Settings withDiagnosticsMissingWasNullCall(Boolean value)
      Whether to run the DiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsRepeatedStatements Link icon

      public Settings withDiagnosticsRepeatedStatements(Boolean value)
      Whether to run the DiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsConsecutiveAggregation Link icon

      public Settings withDiagnosticsConsecutiveAggregation(Boolean value)
      Whether to run the DiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsConcatenationInPredicate Link icon

      public Settings withDiagnosticsConcatenationInPredicate(Boolean value)
      Whether to run the DiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsPossiblyWrongExpression Link icon

      public Settings withDiagnosticsPossiblyWrongExpression(Boolean value)
      Whether to run the DiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsTooManyColumnsFetched Link icon

      public Settings withDiagnosticsTooManyColumnsFetched(Boolean value)
      Whether to run the DiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsTooManyRowsFetched Link icon

      public Settings withDiagnosticsTooManyRowsFetched(Boolean value)
      Whether to run the DiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsUnnecessaryWasNullCall Link icon

      public Settings withDiagnosticsUnnecessaryWasNullCall(Boolean value)
      Whether to run the DiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

    • withDiagnosticsPatterns Link icon

      public Settings withDiagnosticsPatterns(Boolean value)
      Whether to run the various pattern transformation diagnostics.

      transformPatterns allows for applying numerous pattern transformations, which can be turned on separately when running diagnostics. This flag overrides the transformPatterns flag in the diagnostics context. Individual pattern flags still allow to enable / disable the pattern for diagnostics.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsTrivialCondition Link icon

      public Settings withDiagnosticsTrivialCondition(Boolean value)
      Whether to run the DiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext) diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withDiagnosticsNullCondition Link icon

      public Settings withDiagnosticsNullCondition(Boolean value)
      Whether to run the
      invalid reference
      org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
      diagnostic.

      Diagnostics are turned off if no Configuration.diagnosticsListenerProviders() are configured. Once configured, this diagnostic is turned on by default.

      This feature is available in the commercial distribution only.

    • withTransformPatterns Link icon

      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 Link icon

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

      public Settings withTransformPatternsUnnecessaryDistinct(Boolean value)
      Transform SELECT DISTINCT a, b FROM t GROUP BY a, b to SELECT a, b FROM t GROUP BY a, b.

      The GROUP BY clause already removes duplicates, so if the DISTINCT clause contains at least all the columns from GROUP BY then it can be removed.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnnecessaryScalarSubquery Link icon

      public Settings withTransformPatternsUnnecessaryScalarSubquery(Boolean value)
      Transform SELECT (SELECT 1) to SELECT 1.

      Scalar subqueries that don't have any content other than a SELECT clause are unnecessary and can be removed.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnnecessaryInnerJoin Link icon

      public Settings withTransformPatternsUnnecessaryInnerJoin(Boolean value)
      Transform SELECT * FROM t INNER JOIN u ON TRUE to SELECT * FROM t CROSS JOIN u.

      Some INNER JOIN expressions can be proven to be unnecessary.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnnecessaryGroupByExpressions Link icon

      public Settings withTransformPatternsUnnecessaryGroupByExpressions(Boolean value)
      Transform SELECT a, b FROM t GROUP BY a, a, b to SELECT a, b FROM t GROUP BY a, b.

      Duplicate GROUP BY expressions can be removed.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnnecessaryOrderByExpressions Link icon

      public Settings withTransformPatternsUnnecessaryOrderByExpressions(Boolean value)
      Transform SELECT a, b FROM t ORDER BY a, a, b to SELECT a, b FROM t ORDER BY a, b.

      Duplicate ORDER BY expressions can be removed.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnnecessaryExistsSubqueryClauses Link icon

      public Settings withTransformPatternsUnnecessaryExistsSubqueryClauses(Boolean value)
      Transform [ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d) to [ NOT ] EXISTS (SELECT 1 FROM t).

      In EXISTS subqueries, quite a few SELECT clauses are meaningless, and can thus be removed. These include:

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsCountConstant Link icon

      public Settings withTransformPatternsCountConstant(Boolean value)
      Transform COUNT(1) or any other COUNT(const) to COUNT(*).

      There is no benefit to counting a constant expression. In fact, in some RDBMS, it might even be slightly slower, at least in benchmarks.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsTrim Link icon

      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.

    • withTransformPatternsNotAnd Link icon

      public Settings withTransformPatternsNotAnd(Boolean value)
      Transform NOT(p AND q) to NOT(p) OR NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsNotOr Link icon

      public Settings withTransformPatternsNotOr(Boolean value)
      Transform NOT(p OR q) to NOT(p) AND NOT(q).

      This transformation normalises a predicate using De Morgan's rules.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsNotNot Link icon

      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 Link icon

      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 Link icon

      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.

    • withTransformPatternsDistinctFromNull Link icon

      public Settings withTransformPatternsDistinctFromNull(Boolean value)
      Transform a IS [ NOT ] DISTINCT FROM NULL to a IS [ NOT ] NULL.

      This simplifies the much more verbose DISTINCT predicate.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsNormaliseAssociativeOps Link icon

      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 Link icon

      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 Link icon

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

      This transformation inverses

      invalid reference
      TableField
      [op]
      invalid reference
      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.

    • withTransformPatternsNormaliseCoalesceToNvl Link icon

      public Settings withTransformPatternsNormaliseCoalesceToNvl(Boolean value)
      Transform 2 argument COALESCE(a, b) to NVL(a, b).

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsOrEqToIn Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      public Settings withTransformPatternsMergeAndComparison(Boolean value)
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      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 Link icon

      public Settings withTransformPatternsMergeRangePredicates(Boolean value)
      Transform x >= a AND x invalid input: '<'= 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 Link icon

      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.

    • withTransformPatternsCaseSearchedToCaseSimple Link icon

      public Settings withTransformPatternsCaseSearchedToCaseSimple(Boolean value)
      Transform a searched CASE WHEN x = .. WHEN x = .. to a simple CASE x WHEN … WHEN … expression.

      When a searched CASE expression always compares the same column to a value, then it can be simplified, possibly unlocking further transformations that are available only to the simple CASE expression.

      This feature is available in the commercial distribution only.

    • withTransformPatternsCaseElseNull Link icon

      public Settings withTransformPatternsCaseElseNull(Boolean value)
      Transform CASE … ELSE NULL removing the ELSE clause.

      CASE WHEN x THEN y ELSE NULL END is equivalent to CASE WHEN x THEN y END.

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnreachableCaseClauses Link icon

      public Settings withTransformPatternsUnreachableCaseClauses(Boolean value)
      Transform CASE by removing unreachable clauses.

      Case clauses can be proven to be unreachable, and thus removed:

      • CASE WHEN p THEN 1 WHEN TRUE THEN 2 WHEN q … ELSE … END is equivalent to CASE WHEN p THEN 1 ELSE 2 END
      • CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END is equivalent to CASE WHEN p THEN 1 WHEN q … ELSE … END

      This feature is available in the commercial distribution only.

    • withTransformPatternsUnreachableDecodeClauses Link icon

      public Settings withTransformPatternsUnreachableDecodeClauses(Boolean value)
      Transform DECODE by removing unreachable clauses.

      DECODE clauses can be proven to be unreachable, and thus removed:

      • DECODE(a, b, 1, c, 2, b, 3) is equivalent to DECODE(a, b, 1, c, 2)
      • DECODE(a, b, 1, c, 2, b, 3, 4) is equivalent to DECODE(a, b, 1, c, 2, 4)

      This feature is available in the commercial distribution only.

    • withTransformPatternsCaseDistinctToDecode Link icon

      public Settings withTransformPatternsCaseDistinctToDecode(Boolean value)
      Transform CASE WHEN a IS NOT DISTINCT FROM b … to an equivalent DECODE function.

      When all WHEN clauses of a CASE expression use the DISTINCT predicate, then the CASE expression can be transformed into a DECODE function call:

      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END is equivalent to DECODE(a, b, 1)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END is equivalent to DECODE(a, b, 1, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 END is equivalent to DECODE(a, b, 1, c, 2)
      • CASE WHEN a IS NOT DISTINCT FROM b THEN 1 WHEN a IS NOT DISTINCT FROM c THEN 2 ELSE 3 END is equivalent to DECODE(a, b, 1, c, 2, 3)

      This feature is available in the commercial distribution only.

    • withTransformPatternsCaseMergeWhenWhen Link icon

      public Settings withTransformPatternsCaseMergeWhenWhen(Boolean value)
      Transform CASE WHEN a THEN x WHEN b THEN x END to CASE WHEN a OR b THEN x END.

      Two consecutive WHEN clauses can be merged, if their respective THEN clause is identical.

      This feature is available in the commercial distribution only.

    • withTransformPatternsCaseMergeWhenElse Link icon

      public Settings withTransformPatternsCaseMergeWhenElse(Boolean value)
      Transform CASE WHEN a THEN x WHEN b THEN y ELSE y END to CASE WHEN a THEN x ELSE y END.

      The ultimate WHEN clause can be merged with the ELSE, if their respective result is identical. If the WHEN clause is the only WHEN clause, then the entire CASE expression can be replaced by the ELSE clause content.

      This feature is available in the commercial distribution only.

    • withTransformPatternsCaseToCaseAbbreviation Link icon

      public Settings withTransformPatternsCaseToCaseAbbreviation(Boolean value)
      Transform CASE expressions to their respective abbreviations.

      Some CASE expressions have a shorter abbreviated form, such as COALESCE() or NULLIF().

      This feature is available in the commercial distribution only.

    • withTransformPatternsSimplifyCaseAbbreviation Link icon

      public Settings withTransformPatternsSimplifyCaseAbbreviation(Boolean value)
      Transform complex predicates into simpler CASE abbreviations.

      Some predicates can be simplified into case abbreviations, such as, for example

      • a IS NULL OR COALESCE(a = b, FALSE) to NULLIF(a, b) IS NULL
      • a IS NOT NULL AND COALESCE(a != b, TRUE) to NULLIF(a, b) IS NOT NULL

      This feature is available in the commercial distribution only.

    • withTransformPatternsFlattenCaseAbbreviation Link icon

      public Settings withTransformPatternsFlattenCaseAbbreviation(Boolean value)
      Flatten nested CASE abbreviations such as NVL or CASE.

      Nested CASE abbreviations can be flattened, as such:

      • NVL(NVL(a, b), c) to COALESCE(a, b, c)
      • COALESCE(a, ..., COALESCE(b, ..., c), ..., d) to COALESCE(a, …, b, …, c, ..., d)

      This feature is available in the commercial distribution only.

    • withTransformPatternsFlattenDecode Link icon

      public Settings withTransformPatternsFlattenDecode(Boolean value)
      Flatten nested DECODE functions.

      Nested DECODE functions can be flattened, as such:

      • DECODE(a, b, c, DECODE(a, d, e)) to DECODE(a, b, c, d, e)

      This feature is available in the commercial distribution only.

    • withTransformPatternsFlattenCase Link icon

      public Settings withTransformPatternsFlattenCase(Boolean value)
      Transform CASE … ELSE CASE … by flattening the nested CASE.

      CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END is equivalent to CASE WHEN a THEN b WHEN c THEN d END.

      This feature is available in the commercial distribution only.

    • withTransformPatternsTrivialCaseAbbreviation Link icon

      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 Link icon

      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.

    • withTransformPatternsTrivialBitwiseOperations Link icon

      public Settings withTransformPatternsTrivialBitwiseOperations(Boolean value)
      Transform trivial bitwise comparisons like BIT_OR(a, 0) to a.

      This transformation removes any trivial predicates.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitSet Link icon

      public Settings withTransformPatternsBitSet(Boolean value)
      Transform bitwise operations to an equivalent BIT_SET(a, b) or BIT_SET(a, b, c) expression.

      This feature is available in the commercial distribution only.

    • withTransformPatternsBitGet Link icon

      public Settings withTransformPatternsBitGet(Boolean value)
      Transform bitwise operations to an equivalent BIT_GET(a, b) expression.

      This feature is available in the commercial distribution only.

    • withTransformPatternsScalarSubqueryCountAsteriskGtZero Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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.

    • withTransformPatternsNullOnNullInput Link icon

      public Settings withTransformPatternsNullOnNullInput(Boolean value)
      Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression with NULL arguments can be replaced by NULL.

      There are many built-in SQL functions and operators with a RETURNS NULL ON NULL INPUT property, e.g.

      • ABS(NULL)
      • MOD(NULL, 1)
      • NULL + 1

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsIdempotentFunctionRepetition Link icon

      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.

    • withTransformPatternsArithmeticComparisons Link icon

      public Settings withTransformPatternsArithmeticComparisons(Boolean value)
      Transform a + 1 = 2 to a = 2 - 1, and other transformations.

      It is usually best to compare single columns with constants or expressions to encourage index usage. While function based indexes are possible in some RDBMS, ordinary indexes are more reusable and should be preferred.

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

      This feature is available in the commercial distribution only.

    • withTransformPatternsArithmeticExpressions Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      @Deprecated public Settings withTransformInConditionSubqueryWithLimitToDerivedTable(Transformation value)
      Deprecated.
      - 3.18.0 - [#14634] - The configuration of this transformation is deprecated. It will no longer be commercially available only, but apply also to the jOOQ Open Source Edition, when required.
      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 invalid input: '&' IN/ALL/ANY/SOME subquery'"

      This feature is available in the commercial distribution only.

    • withTransformQualify Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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.

    • withTransformGroupByColumnIndex Link icon

      public Settings withTransformGroupByColumnIndex(Transformation value)
      Transform GROUP BY [column index] clauses by substituting the column index.

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

      This feature is available in the commercial distribution only.

    • withTransformInlineCTE Link icon

      public Settings withTransformInlineCTE(Transformation value)
      Transform Common Table Expressions (CTE) by inlining their WITH clause definition to wherever they're referenced.

      Non-recursive CTE are just syntax sugar for inline views (derived tables). When they're not supported natively, jOOQ can simply inline their definition to wherever they're referenced.

      This feature is available in the commercial distribution only.

    • withBackslashEscaping Link icon

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

      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 Link icon

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

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

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

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

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

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

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

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

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

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

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

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

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

      public Settings withExecuteLogging(Boolean value)
      When set to true, this will add jOOQ's default LoggerListener for debug logging. This is meant for use in development only.
    • withExecuteLoggingSQLExceptions Link icon

      public Settings withExecuteLoggingSQLExceptions(Boolean value)
      [#14420] Whether constraint violations and other SQLException should produce additional log information about the column name and data causing the problem. Unlike executeLogging, this is meant for use in production as well as development. This feature is available only in commercial distributions.
    • withDiagnosticsLogging Link icon

      public Settings withDiagnosticsLogging(Boolean value)
      When set to true, this will add jOOQ's default logging DiagnosticsListeners.
    • withDiagnosticsConnection Link icon

      public Settings withDiagnosticsConnection(DiagnosticsConnection value)
      Whether to activate the DiagnosticsConnection, explicit by DEFAULT, implicit if ON, or turned OFF entirely.
    • withUpdateRecordVersion Link icon

      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 Link icon

      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 Link icon

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

      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 Link icon

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

      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 Link icon

      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.
    • withRecordDirtyTracking Link icon

      public Settings withRecordDirtyTracking(RecordDirtyTracking value)
      Whether UpdatableRecord.store() and related calls should be based on Record.touched() or Record.modified() semantics. This also affects copying records into explicit statements.
    • withUpdatablePrimaryKeys Link icon

      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 Link icon

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

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

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

      public Settings withCacheParsingConnectionLRUCacheSize(Integer value)
      The default value of the ParsingConnection cache's LRU cache size.
    • withCacheRecordMappersLRUCacheSize Link icon

      public Settings withCacheRecordMappersLRUCacheSize(Integer value)
      The default value of the RecordMapper cache's LRU cache size.
    • withReflectionCacheLRUCacheSize Link icon

      public Settings withReflectionCacheLRUCacheSize(Integer value)
      The default value of the reflection cache's LRU cache size.
    • withCachePreparedStatementInLoader Link icon

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

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

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

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

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

      public Settings withReturnDefaultOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted().
    • withReturnComputedOnUpdatableRecord Link icon

      public Settings withReturnComputedOnUpdatableRecord(Boolean value)
      Whether calls to store(), insert() and update() should return values for columns that are DataType.computed().
    • withReturnAllOnUpdatableRecord Link icon

      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 Link icon

      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 Link icon

      public Settings withMapJPAAnnotations(Boolean value)
      Whether JPA annotations should be considered by the DefaultRecordMapper, assuming the jOOQ-jpa-extensions is on the classpath.
    • withMapRecordComponentParameterNames Link icon

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

      public Settings withMapConstructorPropertiesParameterNames(Boolean value)
      Whether constructor parameter names obtained from the ConstructorPropertiesProvider SPI (default implementation in the jOOQ-beans-extensions module) should be considered by the DefaultRecordMapper.
    • withMapConstructorParameterNames Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

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

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

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

      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 Link icon

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

      public Settings withEmulateNestedRecordProjectionsUsingMultisetEmulation(Boolean value)
      [#13598] Whether nested record projections at the top level should be emulated using the MULTISET emulation rather than the flattening emulation, if supported by the dialect.
    • withEmulateComputedColumns Link icon

      public Settings withEmulateComputedColumns(Boolean value)
      [#13418] Whether computed columns should be emulated in the client.

      This can be useful if a schema was generated using a dialect that supports computed columns, but it is deployed on an RDBMS that does not.

    • withComputedOnClientVirtual Link icon

      public Settings withComputedOnClientVirtual(Boolean value)
      Whether VIRTUAL client side computed columns should be applied to queries. This feature is available only in commercial distributions.
    • withComputedOnClientStored Link icon

      public Settings withComputedOnClientStored(Boolean value)
      Whether STORED client side computed columns should be applied to queries (including audit columns). This feature is available only in commercial distributions.
    • withExecuteUpdateWithoutWhere Link icon

      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 Link icon

      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 Link icon

      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 Link icon

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

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

      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 Link icon

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

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

      public Settings withMigrationHistorySchema(MigrationSchema value)
      The database schema where the migration history is located.
    • withMigrationHistorySchemaCreateSchemaIfNotExists Link icon

      public Settings withMigrationHistorySchemaCreateSchemaIfNotExists(Boolean value)
      Whether getMigrationHistorySchema() should be created if it doesn't exist.
    • withMigrationDefaultSchema Link icon

      public Settings withMigrationDefaultSchema(MigrationSchema value)
      The default schema whose unqualified objects that are included in the migration.
    • withMigrationSchemataCreateSchemaIfNotExists Link icon

      public Settings withMigrationSchemataCreateSchemaIfNotExists(Boolean value)
      Whether getMigrationSchemata() should be created if they don't exist.
    • withMigrationDefaultContentType Link icon

      public Settings withMigrationDefaultContentType(MigrationDefaultContentType value)
      The default ContentType that is used when loading migrations.
    • withMigrationAllowUndo Link icon

      public Settings withMigrationAllowUndo(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.

    • withMigrationAllowInvalidCommits Link icon

      public Settings withMigrationAllowInvalidCommits(Boolean value)
      Whether migrations to invalid commits (Commit.valid()) are allowed.

      This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly test uncommited or inconsistent changes in development.

    • withMigrationRevertUntracked Link icon

      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 Link icon

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

      public Settings withMigrationAutoVerification(Boolean value)
      Whether a migration automatically runs a verification first.
    • withMigrationIgnoreDefaultTimestampPrecisionDiffs Link icon

      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.
    • withMigrationIgnoreUnnamedConstraintDiffs Link icon

      public Settings withMigrationIgnoreUnnamedConstraintDiffs(Boolean value)
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the difference between (possibly synthetically) name constraints and unnamed constraints, if the structure of the constraint is the same.
    • withMigrationIgnoreImplicitPrimaryKeyNotNullConstraints Link icon

      public Settings withMigrationIgnoreImplicitPrimaryKeyNotNullConstraints(Boolean value)
      Various migrateTo() methods (e.g. Meta.migrateTo(org.jooq.Meta)) ignore the presence or absence of implicit NOT NULL constraints on PRIMARY KEY columns if the constraint is really implicit for a given dialect. This flag allows for overriding this behaviour.
    • withLocale Link icon

      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 Link icon

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

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

      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 Link icon

      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 Link icon

      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 Link icon

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

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

      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 Link icon

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

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

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

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

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

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

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

      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 Link icon

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

      public Settings withParseMetaViewSources(Boolean value)
      [#8469] Whether to parse view sources retrieved from DatabaseMetaData.
    • withReadonlyTableRecordInsert Link icon

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

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

      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 Link icon

      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 Link icon

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

      public Settings withWarnOnStaticTypeRegistryAccess(Warning value)
      [#15286] The warning level when the deprecated static type registry was accessed by legacy code.
    • withInterpreterSearchPath Link icon

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

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

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

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

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

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

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

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

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

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

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

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

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

      public Object clone()
      Overrides:
      clone in class Object