- All Implemented Interfaces:
Serializable
,Cloneable
,XMLAppendable
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Boolean
protected Boolean
protected BackslashEscaping
protected Integer
protected Boolean
protected Boolean
protected Boolean
protected Integer
protected Boolean
protected Boolean
protected Integer
protected Boolean
protected Boolean
protected Boolean
protected String
protected Boolean
protected DiagnosticsConnection
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected NestedCollectionEmulation
protected Boolean
protected Boolean
protected ExecuteWithoutWhere
protected InvocationOrder
protected InvocationOrder
protected Boolean
protected Boolean
protected ExecuteWithoutWhere
protected Boolean
protected Boolean
protected FetchIntermediateResult
protected Integer
protected Integer
protected FetchTriggerValuesAfterReturning
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Integer
protected Integer
protected Boolean
protected Boolean
protected Boolean
protected SQLDialect
protected Locale
protected InterpreterNameLookupCaseSensitivity
protected List
<InterpreterSearchSchema> protected Locale
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Integer
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected MigrationDefaultContentType
protected MigrationSchema
protected MigrationSchema
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected InvocationOrder
protected InvocationOrder
protected Boolean
protected List
<MigrationSchema> protected Boolean
protected String
protected ParamCastMode
protected ParamType
protected Transformation
protected String
protected SQLDialect
protected Boolean
protected String
protected String
protected Boolean
protected Locale
protected Boolean
protected Boolean
protected ParseNameCase
protected String
protected Boolean
protected List
<ParseSearchSchema> protected Boolean
protected String
protected ParseUnknownFunctions
protected ParseUnsupportedSyntax
protected ParseWithMetaLookups
protected QueryPoolable
protected Integer
protected WriteIfReadonly
protected WriteIfReadonly
protected WriteIfReadonly
protected WriteIfReadonly
protected RecordDirtyTracking
protected InvocationOrder
protected InvocationOrder
protected Integer
protected Boolean
protected AutoAliasExpressions
protected Boolean
protected Boolean
protected RenderDefaultNullability
protected String
protected Boolean
protected RenderFormatting
protected Boolean
protected RenderImplicitJoinType
protected RenderImplicitJoinType
protected RenderImplicitWindowRange
protected RenderKeywordCase
protected RenderKeywordStyle
protected Locale
protected RenderMapping
protected RenderNameCase
protected String
protected RenderNameStyle
protected Boolean
protected RenderOptionalKeyword
protected RenderOptionalKeyword
protected RenderOptionalKeyword
protected RenderOptionalKeyword
protected RenderOptionalKeyword
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected RenderQuotedNames
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected RenderTable
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected StatementType
protected ThrowExceptions
protected InvocationOrder
protected InvocationOrder
protected Boolean
protected Transformation
protected Transformation
protected Boolean
protected Transformation
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Boolean
protected Transformation
protected Transformation
protected Boolean
protected TransformUnneededArithmeticExpressions
protected Boolean
protected Boolean
protected Boolean
protected UpdateUnchangedRecords
protected InvocationOrder
protected InvocationOrder
protected Warning
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal void
appendTo
(XMLBuilder builder) clone()
boolean
Whether string literals should be escaped with backslash.A property specifying a batch size that should be applied to all automatically createdBatchedConnection
instances.The default value of the ParsingConnection cache's LRU cache size.The default value of the RecordMapper cache's LRU cache size.[#5826] The delimiter character to be used to delimit statements in batches.Whether to activate the DiagnosticsConnection, explicit byDEFAULT
, implicit ifON
, or turnedOFF
entirely.[#3884] HowMULTISET
support should be emulated.[#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause.The order of invocation for [action]end() methods registeredExecuteListener
s.The order of invocation for [action]start() methods registeredExecuteListener
s.[#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause.Whether to fetch data into intermediateResult
instances.Whether server output should be fetched after each query execution.The default JDBC fetchSize property that should be applied to all jOOQ queries, for which no specific fetchSize value was specified.Fetch trigger values after aRETURNING
clause in dialects that don't have native support for this.The maximum number of allowed bind variables before inlining all values where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.DATABRICKS
: 256SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100SQLDialect.TERADATA
: 2536[#7095] The base to use to calculate the powers of when applying in list padding.[#7337] The dialect that should be used to interpret SQL DDL statements.The Locale to be used with any interpreter locale dependent logic, defaulting togetLocale()
.[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.The Locale to be used with any locale dependent logic if there is not a more specific locale available.The default JDBC maxRows property that should be applied to all jOOQ queries, for which no specific maxRows value was specified.The defaultContentType
that is used when loading migrations.The default schema whose unqualified objects that are included in the migration.The database schema where the migration history is located.The order of invocation for [action]end() methods registeredMigrationListener
s.The order of invocation for [action]start() methods registeredMigrationListener
s.The character(s) to be used as a separator in paths encoded in ainvalid reference
Name
Whether rendered bind values should be cast to their respective type.Specify how bind variables are to be rendered.Transform the parsed SQL to append missing table references to the query'sFROM
orUSING
clause, if applicable.The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle[#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.[#8325] The ignore comment start token[#8325] The ignore comment stop tokenThe Locale to be used with any parser locale dependent logic, defaulting togetLocale()
.[#7337] The default name case for parsed identifiers.The prefix to use for named parameters in parsed SQL.The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle[#7344] Whether the parser should accept unknown functions.[#5917] Whether the parser should accept unsupported (but known) syntax.[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.The default JDBC poolable property that should be applied to all jOOQ queries, for which no specific poolable flag was specified.The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
.[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.update()
.WhetherUpdatableRecord.store()
and related calls should be based onRecord.touched()
orRecord.modified()
semantics.The order of invocation for [action]end() methods registeredRecordListener
s.The order of invocation for [action]start() methods registeredRecordListener
s.The default value of the reflection cache's LRU cache size.Whether to auto-alias expressions in derived tables.Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.The token to place between the$$
signs of a PostgreSQL dollar quoted string generated by jOOQ.All sorts of formatting flags / settings.The join type to be generated by implicit joins for to-many paths inSelect
queries.The join type to be generated by implicit joins for to-one paths inSelect
queries.Whether to render an explicit windowRANGE
clause when an implicit clause is applied.Whether the case ofKeyword
references should be modified in any way.Deprecated.The Locale to be used with any render locale dependent logic (as e.g.Configure render mapping for runtime schema / table rewriting in generated SQL.Whether the case ofName
references should be modified in any way.The prefix to use for named parameters in generated SQL.Deprecated.- 3.12.0 - [#5909] - UseRenderQuotedNames
andRenderNameCase
instead.Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.Whether to render optional parentheses to make associativity explicit, e.g.Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect.Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect.Whether rendered schema, table, column names, etc should be quoted.Whether any table name qualification should be rendered at all on columns.The type of statement that is to be executed.A strategy defining how exceptions from the database / JDBC driver should be propagatedThe order of invocation for [action]end() methods registeredTransactionListener
s.The order of invocation for [action]start() methods registeredTransactionListener
s.TransformGROUP BY [column index]
clauses by substituting the column index.Deprecated.- 3.18.0 - [#14634] - The configuration of this transformation is deprecated.Transform Common Table Expressions (CTE) by inlining theirWITH
clause definition to wherever they're referenced.Transform theQUALIFY
clause to an equivalent derived table to filter on window functions.TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_NUMBER()
expressions.Transform arithmetic expressions on literals and bind variables.WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged.The order of invocation for [action]end() methods registeredVisitListener
s.The order of invocation for [action]start() methods registeredVisitListener
s.[#15286] The warning level when the deprecated static type registry was accessed by legacy code.int
hashCode()
[#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keysWhether fetched records should be attached to the fetching configuration.Whether thejava.time
(JSR 310) typeOffsetDateTime
should be bound natively to JDBC.Whether thejava.time
(JSR 310) typeOffsetTime
should be bound natively to JDBC.Whether parsing connection translations should be cached in the configuration.Whether JDBCPreparedStatement
instances should be cached in loader API.Whether record mappers should be cached in the configuration.WhetherSTORED
client side computed columns should be applied to queries (including audit columns).WhetherVIRTUAL
client side computed columns should be applied to queries.[#5570] Whether exception stack traces should be enhanced with additional debug information.Whether to run theDiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
feature activated.When set to true, this will add jOOQ's default logging DiagnosticsListeners.Whether to run theDiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theinvalid reference
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
Whether to run the various pattern transformation diagnostics.Whether to run theDiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.[#13418] Whether computed columns should be emulated in the client.[#13598] Whether nested record projections at the top level should be emulated using theMULTISET
emulation rather than the flattening emulation, if supported by the dialect.[#6462] Use only the primary key to emulate MySQL's INSERT ..When set to true, this will add jOOQ's defaultLoggerListener
for debug logging.[#14420] Whether constraint violations and otherSQLException
should produce additional log information about the column name and data causing the problem.Whether store() and delete() methods should be executed with optimistic locking.Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e.Deprecated.- 3.18.0 - [#13912] [#15316] - UsefetchTriggerValuesAfterReturning
instead.Whether right trim fetchedCHAR
typed strings from JDBCResultSet
.Whether warnings should be fetched after each query execution.Historically, zero-scale decimal types are generated as their most appropriate, corresponding integer type (e.g.[#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).WhetherTableRecord.insert()
calls should be executed if the record is unchanged.Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.Whether constructor parameter names obtained via reflection in Java 8+ should be considered by the DefaultRecordMapper.Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper.Whether constructor parameter names obtained from theConstructorPropertiesProvider
SPI (default implementation in thejOOQ-beans-extensions
module) should be considered by the DefaultRecordMapper.Whether JPA annotations should be considered by theDefaultRecordMapper
, assuming thejOOQ-jpa-extensions
is on the classpath.Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper.TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default.TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default.Whether migrations to invalid commits (Commit.valid()
) are allowed.Whether migrations are allowed to be executed in inverse order.Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.Whether a migration automatically runs a verification first.WhethergetMigrationHistorySchema()
should be created if it doesn't exist.VariousmigrateTo()
methods (e.g.VariousmigrateTo()
methods (e.g.VariousmigrateTo()
methods (e.g.Whether migrations revert any untracked changes in the schemas that are being migrated.WhethergetMigrationSchemata()
should be created if they don't exist.[#8325] Whether the parser should ignore content between ignore comment tokens.[#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.[#8469] Whether to parse default expressions retrieved fromDatabaseMetaData
.[#8469] Whether to parse view sources retrieved fromDatabaseMetaData
.[#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries throughParser.parse(String)
.[#9780] Whether commands of the typeSET key = value
should be parsed rather than ignored.Whether reflection information should be cached in the configuration.Whether any catalog name should be rendered at all.Whether string concatenation operands should be coalesced to empty strings.Whether rendered SQL should be pretty-printed.Whether the jOOQGROUP_CONCAT
function should be overflow-protected by setting the@@group_concat_max_len
session variable in MySQL style database systems.Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.Whether an additionalORDER BY rn
clause should be rendered on emulated paginated queries.Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.Whether queries combined with set operators (e.g.Whether plain SQL templates (SQL
) are rendered as raw string content.Whether a redundant(a invalid input: '<'= :a)
predicate should be rendered for a(a, b) invalid input: '<' (:a, :b)
predicate for theSEEK
clause.Whether a(a, b) invalid input: '<' (:a, :b)
row predicate should be rendered for theSEEK
clause.Whether stored function calls should be wrapped in scalar subqueries.Whether any schema name should be rendered at all.Whether emulations that require repeating expressions should render variables for those expressions in derived tables.Whether calls to store(), insert() and update() should return all columns, not just identity columns.Whether calls to store(), insert() and update() should return values for columns that areDataType.computed()
.Whether calls to store(), insert() and update() should return values for columns that areDataType.defaulted()
.Whether calls to store(), insert() and update() should return the identity column.Whether calls to store(), insert(), update(), and delete() that are called on an UpdatableRecord that is created from a POJO (e.g.Transform ANSI join to table lists if possible.TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchTransform various syntax patterns to better versions, if possible.Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.Transforma + 1 = 2
toa = 2 - 1
, and other transformations.Transform1 / y * x
tox / y
, and other transformations.Transform bitwise operations to an equivalentBIT_GET(a, b)
expression.Transform~(bitnand(x, y))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(x, y)
.Transform~(bitnor(x, y))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(x, y)
.Transform~(~(x))
tox
.Transform~(bitxnor(x, y))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(x, y)
.Transform bitwise operations to an equivalentBIT_SET(a, b)
orBIT_SET(a, b, c)
expression.TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.TransformCASE … ELSE NULL
removing theELSE
clause.TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.Transform a searchedCASE WHEN x = ..
TransformCASE
expressions to their respective abbreviations.TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.Transforma IS [ NOT ] DISTINCT FROM NULL
toa IS [ NOT ] NULL
.Transform empty scalar subqueries like(SELECT 1 WHERE FALSE)
toNULL
.TransformCASE … ELSE CASE …
by flattening the nestedCASE
.Flatten nestedCASE
abbreviations such asNVL
orCASE
.Flatten nestedDECODE
functions.Transform(EXP(x) - EXP(-x)) / 2
toSINH(x)
, and other transformations.Transform all repetitions of idempotent functions, such asUPPER(UPPER(s))
toUPPER(s)
.TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(x)
, and other transformations.TransformLN(value) / LN(base)
toLOG(base, value)
, and other transformations.Activate debug logging of thetransformPatterns
feature.Transformx >= a AND x invalid input: '<'= a
tox = a
.Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.Transformx IN (a, b, c) AND x IN (b, c, d)
tox IN (b, c)
.Transformx = a OR x > a
tox >= a
.Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.Transform-(-(x))
tox
Transform(a + b) + (c + d)
to((a + b) + c) + d
.Transform 2 argumentCOALESCE(a, b)
toNVL(a, b)
.Transform1 = a
toa = 1
.Transformx IN (a)
tox = a
andx NOT IN (a)
tox != a
.TransformNOT(p AND q)
toNOT(p) OR NOT(q)
.TransformNOT (a != b)
toa = b
, and similar comparisons.TransformNOT(NOT(x))
tox
.TransformNOT (a IS NOT DISTINCT FROM b)
toa IS DISTINCT FROM b
.TransformNOT(p OR q)
toNOT(p) AND NOT(q)
.Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression withNULL
arguments can be replaced byNULL
.Transformx = c1 OR x = c2
tox IN (c1, c2)
.Transform predicates comparing scalar subqueries with a count(SELECT COUNT(*) …) > 0
to equivalentEXISTS (SELECT 1 …)
.Transform predicates comparing scalar subqueries with a count(SELECT COUNT(expr) …) > 0
to equivalentEXISTS (SELECT 1 … WHERE expr IS NOT NULL)
.Transform complex predicates into simplerCASE
abbreviations.TransformSIN(x) / COS(x)
toTAN(x)
, and other transformations.TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.Transform trivial bitwise comparisons likeBIT_OR(a, 0)
toa
.Transform trivial case abbreviations likeNVL(NULL, a)
toa
.Transform trivial predicates like1 = 1
toTRUE
.TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.Transform[ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d)
to[ NOT ] EXISTS (SELECT 1 FROM t)
.TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT a, b FROM t GROUP BY a, b
.TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * FROM t CROSS JOIN u
.TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT a, b FROM t ORDER BY a, b
.TransformSELECT (SELECT 1)
toSELECT 1
.TransformCASE
by removing unreachable clauses.TransformDECODE
by removing unreachable clauses.Transform table lists to ANSI join if possible.Whether primary key values are deemed to be "updatable" in jOOQ.Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
.Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
.void
setApplyWorkaroundFor7962
(Boolean value) [#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keysvoid
setAttachRecords
(Boolean value) Whether fetched records should be attached to the fetching configuration.void
Whether string literals should be escaped with backslash.void
setBatchSize
(Integer value) A property specifying a batch size that should be applied to all automatically createdBatchedConnection
instances.void
setBindOffsetDateTimeType
(Boolean value) Whether thejava.time
(JSR 310) typeOffsetDateTime
should be bound natively to JDBC.void
setBindOffsetTimeType
(Boolean value) Whether thejava.time
(JSR 310) typeOffsetTime
should be bound natively to JDBC.void
setCacheParsingConnection
(Boolean value) Whether parsing connection translations should be cached in the configuration.void
The default value of the ParsingConnection cache's LRU cache size.void
Whether JDBCPreparedStatement
instances should be cached in loader API.void
setCacheRecordMappers
(Boolean value) Whether record mappers should be cached in the configuration.void
The default value of the RecordMapper cache's LRU cache size.void
setComputedOnClientStored
(Boolean value) WhetherSTORED
client side computed columns should be applied to queries (including audit columns).void
WhetherVIRTUAL
client side computed columns should be applied to queries.void
setDebugInfoOnStackTrace
(Boolean value) [#5570] Whether exception stack traces should be enhanced with additional debug information.void
setDelimiter
(String value) [#5826] The delimiter character to be used to delimit statements in batches.void
Whether to run theDiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to activate the DiagnosticsConnection, explicit byDEFAULT
, implicit ifON
, or turnedOFF
entirely.void
Whether to run theDiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
feature activated.void
setDiagnosticsLogging
(Boolean value) When set to true, this will add jOOQ's default logging DiagnosticsListeners.void
Whether to run theDiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theinvalid reference
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
void
setDiagnosticsPatterns
(Boolean value) Whether to run the various pattern transformation diagnostics.void
Whether to run theDiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext)
diagnostic.void
Whether to run theDiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.void
setEmulateComputedColumns
(Boolean value) [#13418] Whether computed columns should be emulated in the client.void
[#3884] HowMULTISET
support should be emulated.void
[#13598] Whether nested record projections at the top level should be emulated using theMULTISET
emulation rather than the flattening emulation, if supported by the dialect.void
[#6462] Use only the primary key to emulate MySQL's INSERT ..void
[#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause.void
The order of invocation for [action]end() methods registeredExecuteListener
s.void
The order of invocation for [action]start() methods registeredExecuteListener
s.void
setExecuteLogging
(Boolean value) When set to true, this will add jOOQ's defaultLoggerListener
for debug logging.void
[#14420] Whether constraint violations and otherSQLException
should produce additional log information about the column name and data causing the problem.void
[#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause.void
Whether store() and delete() methods should be executed with optimistic locking.void
Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e.void
Whether to fetch data into intermediateResult
instances.void
setFetchServerOutputSize
(Integer value) Whether server output should be fetched after each query execution.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.void
Fetch trigger values after aRETURNING
clause in dialects that don't have native support for this.void
Deprecated.- 3.18.0 - [#13912] [#15316] - UsefetchTriggerValuesAfterReturning
instead.void
setFetchTrimmedCharValues
(Boolean value) Whether right trim fetchedCHAR
typed strings from JDBCResultSet
.void
setFetchWarnings
(Boolean value) Whether warnings should be fetched after each query execution.void
Historically, zero-scale decimal types are generated as their most appropriate, corresponding integer type (e.g.void
setInlineThreshold
(Integer value) The maximum number of allowed bind variables before inlining all values where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.DATABRICKS
: 256SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100SQLDialect.TERADATA
: 2536void
setInListPadBase
(Integer value) [#7095] The base to use to calculate the powers of when applying in list padding.void
setInListPadding
(Boolean value) [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).void
setInsertUnchangedRecords
(Boolean value) WhetherTableRecord.insert()
calls should be executed if the record is unchanged.void
Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.void
setInterpreterDialect
(SQLDialect value) [#7337] The dialect that should be used to interpret SQL DDL statements.void
setInterpreterLocale
(Locale value) The Locale to be used with any interpreter locale dependent logic, defaulting togetLocale()
.void
[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.void
setInterpreterSearchPath
(List<InterpreterSearchSchema> interpreterSearchPath) void
The Locale to be used with any locale dependent logic if there is not a more specific locale available.void
Whether constructor parameter names obtained via reflection in Java 8+ should be considered by the DefaultRecordMapper.void
Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper.void
Whether constructor parameter names obtained from theConstructorPropertiesProvider
SPI (default implementation in thejOOQ-beans-extensions
module) should be considered by the DefaultRecordMapper.void
setMapJPAAnnotations
(Boolean value) Whether JPA annotations should be considered by theDefaultRecordMapper
, assuming thejOOQ-jpa-extensions
is on the classpath.void
Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper.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.void
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default.void
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default.void
Whether migrations to invalid commits (Commit.valid()
) are allowed.void
setMigrationAllowUndo
(Boolean value) Whether migrations are allowed to be executed in inverse order.void
setMigrationAutoBaseline
(Boolean value) Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.void
Whether a migration automatically runs a verification first.void
The defaultContentType
that is used when loading migrations.void
The default schema whose unqualified objects that are included in the migration.void
The database schema where the migration history is located.void
WhethergetMigrationHistorySchema()
should be created if it doesn't exist.void
VariousmigrateTo()
methods (e.g.void
VariousmigrateTo()
methods (e.g.void
VariousmigrateTo()
methods (e.g.void
The order of invocation for [action]end() methods registeredMigrationListener
s.void
The order of invocation for [action]start() methods registeredMigrationListener
s.void
Whether migrations revert any untracked changes in the schemas that are being migrated.void
setMigrationSchemata
(List<MigrationSchema> migrationSchemata) void
WhethergetMigrationSchemata()
should be created if they don't exist.void
setNamePathSeparator
(String value) The character(s) to be used as a separator in paths encoded in ainvalid reference
Name
void
setParamCastMode
(ParamCastMode value) Whether rendered bind values should be cast to their respective type.void
setParamType
(ParamType value) Specify how bind variables are to be rendered.void
Transform the parsed SQL to append missing table references to the query'sFROM
orUSING
clause, if applicable.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 Oraclevoid
setParseDialect
(SQLDialect value) [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.void
setParseIgnoreComments
(Boolean value) [#8325] Whether the parser should ignore content between ignore comment tokens.void
setParseIgnoreCommentStart
(String value) [#8325] The ignore comment start tokenvoid
setParseIgnoreCommentStop
(String value) [#8325] The ignore comment stop tokenvoid
[#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.void
setParseLocale
(Locale value) The Locale to be used with any parser locale dependent logic, defaulting togetLocale()
.void
[#8469] Whether to parse default expressions retrieved fromDatabaseMetaData
.void
setParseMetaViewSources
(Boolean value) [#8469] Whether to parse view sources retrieved fromDatabaseMetaData
.void
setParseNameCase
(ParseNameCase value) [#7337] The default name case for parsed identifiers.void
setParseNamedParamPrefix
(String value) The prefix to use for named parameters in parsed SQL.void
[#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries throughParser.parse(String)
.void
setParseSearchPath
(List<ParseSearchSchema> parseSearchPath) void
setParseSetCommands
(Boolean value) [#9780] Whether commands of the typeSET key = value
should be parsed rather than ignored.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 Oraclevoid
[#7344] Whether the parser should accept unknown functions.void
[#5917] Whether the parser should accept unsupported (but known) syntax.void
[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.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.void
setQueryTimeout
(Integer value) The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.void
setReadonlyInsert
(WriteIfReadonly value) void
[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
.void
[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.update()
.void
setReadonlyUpdate
(WriteIfReadonly value) void
WhetherUpdatableRecord.store()
and related calls should be based onRecord.touched()
orRecord.modified()
semantics.void
The order of invocation for [action]end() methods registeredRecordListener
s.void
The order of invocation for [action]start() methods registeredRecordListener
s.void
The default value of the reflection cache's LRU cache size.void
setReflectionCaching
(Boolean value) Whether reflection information should be cached in the configuration.void
Whether to auto-alias expressions in derived tables.void
setRenderCatalog
(Boolean value) Whether any catalog name should be rendered at all.void
Whether string concatenation operands should be coalesced to empty strings.void
Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.void
The token to place between the$$
signs of a PostgreSQL dollar quoted string generated by jOOQ.void
setRenderFormatted
(Boolean value) Whether rendered SQL should be pretty-printed.void
All sorts of formatting flags / settings.void
Whether the jOOQGROUP_CONCAT
function should be overflow-protected by setting the@@group_concat_max_len
session variable in MySQL style database systems.void
The join type to be generated by implicit joins for to-many paths inSelect
queries.void
The join type to be generated by implicit joins for to-one paths inSelect
queries.void
Whether to render an explicit windowRANGE
clause when an implicit clause is applied.void
Whether the case ofKeyword
references should be modified in any way.void
Deprecated.- 3.12.0 - [#5909] - UseRenderKeywordCase
instead.void
setRenderLocale
(Locale value) The Locale to be used with any render locale dependent logic (as e.g.void
setRenderMapping
(RenderMapping value) Configure render mapping for runtime schema / table rewriting in generated SQL.void
setRenderNameCase
(RenderNameCase value) Whether the case ofName
references should be modified in any way.void
setRenderNamedParamPrefix
(String value) The prefix to use for named parameters in generated SQL.void
Deprecated.- 3.12.0 - [#5909] - UseRenderQuotedNames
andRenderNameCase
instead.void
Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.void
Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.void
Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.void
Whether to render optional parentheses to make associativity explicit, e.g.void
Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect.void
Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect.void
Whether an additionalORDER BY rn
clause should be rendered on emulated paginated queries.void
Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.void
Whether queries combined with set operators (e.g.void
Whether plain SQL templates (SQL
) are rendered as raw string content.void
Whether rendered schema, table, column names, etc should be quoted.void
Whether a redundant(a invalid input: '<'= :a)
predicate should be rendered for a(a, b) invalid input: '<' (:a, :b)
predicate for theSEEK
clause.void
Whether a(a, b) invalid input: '<' (:a, :b)
row predicate should be rendered for theSEEK
clause.void
Whether stored function calls should be wrapped in scalar subqueries.void
setRenderSchema
(Boolean value) Whether any schema name should be rendered at all.void
setRenderTable
(RenderTable value) Whether any table name qualification should be rendered at all on columns.void
Whether emulations that require repeating expressions should render variables for those expressions in derived tables.void
Whether calls to store(), insert() and update() should return all columns, not just identity columns.void
Whether calls to store(), insert() and update() should return values for columns that areDataType.computed()
.void
Whether calls to store(), insert() and update() should return values for columns that areDataType.defaulted()
.void
Whether calls to store(), insert() and update() should return the identity column.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.void
setStatementType
(StatementType value) The type of statement that is to be executed.void
A strategy defining how exceptions from the database / JDBC driver should be propagatedvoid
The order of invocation for [action]end() methods registeredTransactionListener
s.void
The order of invocation for [action]start() methods registeredTransactionListener
s.void
Transform ANSI join to table lists if possible.void
TransformGROUP BY [column index]
clauses by substituting the column index.void
Deprecated.- 3.18.0 - [#14634] - The configuration of this transformation is deprecated.void
TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchvoid
Transform Common Table Expressions (CTE) by inlining theirWITH
clause definition to wherever they're referenced.void
setTransformPatterns
(Boolean value) Transform various syntax patterns to better versions, if possible.void
Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.void
Transforma + 1 = 2
toa = 2 - 1
, and other transformations.void
Transform1 / y * x
tox / y
, and other transformations.void
Transform bitwise operations to an equivalentBIT_GET(a, b)
expression.void
Transform~(bitnand(x, y))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(x, y)
.void
Transform~(bitnor(x, y))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(x, y)
.void
Transform~(~(x))
tox
.void
Transform~(bitxnor(x, y))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(x, y)
.void
Transform bitwise operations to an equivalentBIT_SET(a, b)
orBIT_SET(a, b, c)
expression.void
TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.void
TransformCASE … ELSE NULL
removing theELSE
clause.void
TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.void
TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.void
Transform a searchedCASE WHEN x = ..
void
TransformCASE
expressions to their respective abbreviations.void
TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.void
Transforma IS [ NOT ] DISTINCT FROM NULL
toa IS [ NOT ] NULL
.void
Transform empty scalar subqueries like(SELECT 1 WHERE FALSE)
toNULL
.void
TransformCASE … ELSE CASE …
by flattening the nestedCASE
.void
Flatten nestedCASE
abbreviations such asNVL
orCASE
.void
Flatten nestedDECODE
functions.void
Transform(EXP(x) - EXP(-x)) / 2
toSINH(x)
, and other transformations.void
Transform all repetitions of idempotent functions, such asUPPER(UPPER(s))
toUPPER(s)
.void
TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(x)
, and other transformations.void
TransformLN(value) / LN(base)
toLOG(base, value)
, and other transformations.void
Activate debug logging of thetransformPatterns
feature.void
Transformx >= a AND x invalid input: '<'= a
tox = a
.void
Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.void
Transformx IN (a, b, c) AND x IN (b, c, d)
tox IN (b, c)
.void
Transformx = a OR x > a
tox >= a
.void
Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.void
Transform-(-(x))
tox
void
Transform(a + b) + (c + d)
to((a + b) + c) + d
.void
Transform 2 argumentCOALESCE(a, b)
toNVL(a, b)
.void
Transform1 = a
toa = 1
.void
Transformx IN (a)
tox = a
andx NOT IN (a)
tox != a
.void
TransformNOT(p AND q)
toNOT(p) OR NOT(q)
.void
TransformNOT (a != b)
toa = b
, and similar comparisons.void
TransformNOT(NOT(x))
tox
.void
TransformNOT (a IS NOT DISTINCT FROM b)
toa IS DISTINCT FROM b
.void
setTransformPatternsNotOr
(Boolean value) TransformNOT(p OR q)
toNOT(p) AND NOT(q)
.void
Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression withNULL
arguments can be replaced byNULL
.void
Transformx = c1 OR x = c2
tox IN (c1, c2)
.void
Transform predicates comparing scalar subqueries with a count(SELECT COUNT(*) …) > 0
to equivalentEXISTS (SELECT 1 …)
.void
Transform predicates comparing scalar subqueries with a count(SELECT COUNT(expr) …) > 0
to equivalentEXISTS (SELECT 1 … WHERE expr IS NOT NULL)
.void
Transform complex predicates into simplerCASE
abbreviations.void
TransformSIN(x) / COS(x)
toTAN(x)
, and other transformations.void
setTransformPatternsTrim
(Boolean value) TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.void
Transform trivial bitwise comparisons likeBIT_OR(a, 0)
toa
.void
Transform trivial case abbreviations likeNVL(NULL, a)
toa
.void
Transform trivial predicates like1 = 1
toTRUE
.void
TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.void
Transform[ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d)
to[ NOT ] EXISTS (SELECT 1 FROM t)
.void
TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT a, b FROM t GROUP BY a, b
.void
TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * FROM t CROSS JOIN u
.void
TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT a, b FROM t ORDER BY a, b
.void
TransformSELECT (SELECT 1)
toSELECT 1
.void
TransformCASE
by removing unreachable clauses.void
TransformDECODE
by removing unreachable clauses.void
Transform theQUALIFY
clause to an equivalent derived table to filter on window functions.void
setTransformRownum
(Transformation value) TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_NUMBER()
expressions.void
Transform table lists to ANSI join if possible.void
Transform arithmetic expressions on literals and bind variables.void
setUpdatablePrimaryKeys
(Boolean value) Whether primary key values are deemed to be "updatable" in jOOQ.void
setUpdateRecordTimestamp
(Boolean value) Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
.void
setUpdateRecordVersion
(Boolean value) Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
.void
WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged.void
The order of invocation for [action]end() methods registeredVisitListener
s.void
The order of invocation for [action]start() methods registeredVisitListener
s.void
[#15286] The warning level when the deprecated static type registry was accessed by legacy code.toString()
[#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keyswithAttachRecords
(Boolean value) Whether fetched records should be attached to the fetching configuration.Whether string literals should be escaped with backslash.withBatchSize
(Integer value) A property specifying a batch size that should be applied to all automatically createdBatchedConnection
instances.Whether thejava.time
(JSR 310) typeOffsetDateTime
should be bound natively to JDBC.withBindOffsetTimeType
(Boolean value) Whether thejava.time
(JSR 310) typeOffsetTime
should be bound natively to JDBC.Whether parsing connection translations should be cached in the configuration.The default value of the ParsingConnection cache's LRU cache size.Whether JDBCPreparedStatement
instances should be cached in loader API.withCacheRecordMappers
(Boolean value) Whether record mappers should be cached in the configuration.The default value of the RecordMapper cache's LRU cache size.WhetherSTORED
client side computed columns should be applied to queries (including audit columns).WhetherVIRTUAL
client side computed columns should be applied to queries.withDebugInfoOnStackTrace
(Boolean value) [#5570] Whether exception stack traces should be enhanced with additional debug information.withDelimiter
(String value) [#5826] The delimiter character to be used to delimit statements in batches.Whether to run theDiagnosticsListener.concatenationInPredicate(org.jooq.DiagnosticsContext)
diagnostic.Whether to activate the DiagnosticsConnection, explicit byDEFAULT
, implicit ifON
, or turnedOFF
entirely.Whether to run theDiagnosticsListener.consecutiveAggregation(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
feature activated.withDiagnosticsLogging
(Boolean value) When set to true, this will add jOOQ's default logging DiagnosticsListeners.Whether to run theDiagnosticsListener.missingWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theinvalid reference
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
withDiagnosticsPatterns
(Boolean value) Whether to run the various pattern transformation diagnostics.Whether to run theDiagnosticsListener.possiblyWrongExpression(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.repeatedStatements(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.tooManyColumnsFetched(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.tooManyRowsFetched(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.trivialCondition(org.jooq.DiagnosticsContext)
diagnostic.Whether to run theDiagnosticsListener.unnecessaryWasNullCall(org.jooq.DiagnosticsContext)
diagnostic.[#13418] Whether computed columns should be emulated in the client.[#3884] HowMULTISET
support should be emulated.[#13598] Whether nested record projections at the top level should be emulated using theMULTISET
emulation rather than the flattening emulation, if supported by the dialect.[#6462] Use only the primary key to emulate MySQL's INSERT ..[#6771] Specifies whether DELETE statements are allowed to be executed lacking a WHERE clause.The order of invocation for [action]end() methods registeredExecuteListener
s.The order of invocation for [action]start() methods registeredExecuteListener
s.withExecuteLogging
(Boolean value) When set to true, this will add jOOQ's defaultLoggerListener
for debug logging.[#14420] Whether constraint violations and otherSQLException
should produce additional log information about the column name and data causing the problem.[#6771] Specifies whether UPDATE statements are allowed to be executed lacking a WHERE clause.Whether store() and delete() methods should be executed with optimistic locking.Whether store() and delete() methods should be executed with optimistic locking also on "unversioned" tables, i.e.Whether to fetch data into intermediateResult
instances.withFetchServerOutputSize
(Integer value) Whether server output should be fetched after each query execution.withFetchSize
(Integer value) The default JDBC fetchSize property that should be applied to all jOOQ queries, for which no specific fetchSize value was specified.Fetch trigger values after aRETURNING
clause in dialects that don't have native support for this.Deprecated.- 3.18.0 - [#13912] [#15316] - UsefetchTriggerValuesAfterReturning
instead.Whether right trim fetchedCHAR
typed strings from JDBCResultSet
.withFetchWarnings
(Boolean value) Whether warnings should be fetched after each query execution.Historically, zero-scale decimal types are generated as their most appropriate, corresponding integer type (e.g.withInlineThreshold
(Integer value) The maximum number of allowed bind variables before inlining all values where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.DATABRICKS
: 256SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100SQLDialect.TERADATA
: 2536withInListPadBase
(Integer value) [#7095] The base to use to calculate the powers of when applying in list padding.withInListPadding
(Boolean value) [#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).WhetherTableRecord.insert()
calls should be executed if the record is unchanged.Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.withInterpreterDialect
(SQLDialect value) [#7337] The dialect that should be used to interpret SQL DDL statements.withInterpreterLocale
(Locale value) The Locale to be used with any interpreter locale dependent logic, defaulting togetLocale()
.[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.withInterpreterSearchPath
(List<InterpreterSearchSchema> interpreterSearchPath) withInterpreterSearchPath
(InterpreterSearchSchema... values) withLocale
(Locale value) The Locale to be used with any locale dependent logic if there is not a more specific locale available.Whether constructor parameter names obtained via reflection in Java 8+ should be considered by the DefaultRecordMapper.Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper.Whether constructor parameter names obtained from theConstructorPropertiesProvider
SPI (default implementation in thejOOQ-beans-extensions
module) should be considered by the DefaultRecordMapper.withMapJPAAnnotations
(Boolean value) Whether JPA annotations should be considered by theDefaultRecordMapper
, assuming thejOOQ-jpa-extensions
is on the classpath.Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper.withMaxRows
(Integer value) The default JDBC maxRows property that should be applied to all jOOQ queries, for which no specific maxRows value was specified.TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default.TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default.Whether migrations to invalid commits (Commit.valid()
) are allowed.withMigrationAllowUndo
(Boolean value) Whether migrations are allowed to be executed in inverse order.withMigrationAutoBaseline
(Boolean value) Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.Whether a migration automatically runs a verification first.The defaultContentType
that is used when loading migrations.The default schema whose unqualified objects that are included in the migration.The database schema where the migration history is located.WhethergetMigrationHistorySchema()
should be created if it doesn't exist.VariousmigrateTo()
methods (e.g.VariousmigrateTo()
methods (e.g.VariousmigrateTo()
methods (e.g.The order of invocation for [action]end() methods registeredMigrationListener
s.The order of invocation for [action]start() methods registeredMigrationListener
s.Whether migrations revert any untracked changes in the schemas that are being migrated.withMigrationSchemata
(List<MigrationSchema> migrationSchemata) withMigrationSchemata
(MigrationSchema... values) WhethergetMigrationSchemata()
should be created if they don't exist.withNamePathSeparator
(String value) The character(s) to be used as a separator in paths encoded in ainvalid reference
Name
withParamCastMode
(ParamCastMode value) Whether rendered bind values should be cast to their respective type.withParamType
(ParamType value) Specify how bind variables are to be rendered.Transform the parsed SQL to append missing table references to the query'sFROM
orUSING
clause, if applicable.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 OraclewithParseDialect
(SQLDialect value) [#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.withParseIgnoreComments
(Boolean value) [#8325] Whether the parser should ignore content between ignore comment tokens.[#8325] The ignore comment start tokenwithParseIgnoreCommentStop
(String value) [#8325] The ignore comment stop token[#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.withParseLocale
(Locale value) The Locale to be used with any parser locale dependent logic, defaulting togetLocale()
.[#8469] Whether to parse default expressions retrieved fromDatabaseMetaData
.withParseMetaViewSources
(Boolean value) [#8469] Whether to parse view sources retrieved fromDatabaseMetaData
.withParseNameCase
(ParseNameCase value) [#7337] The default name case for parsed identifiers.withParseNamedParamPrefix
(String value) The prefix to use for named parameters in parsed SQL.[#12538] Whether the parser should retain comments and whitespace between queries when parsing multiple queries throughParser.parse(String)
.withParseSearchPath
(List<ParseSearchSchema> parseSearchPath) withParseSearchPath
(ParseSearchSchema... values) withParseSetCommands
(Boolean value) [#9780] Whether commands of the typeSET key = value
should be parsed rather than ignored.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[#7344] Whether the parser should accept unknown functions.[#5917] Whether the parser should accept unsupported (but known) syntax.[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.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
(Integer value) The default JDBC queryTimeout property that should be applied to all jOOQ queries, for which no specific queryTimeout was specified.[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
.[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.update()
.WhetherUpdatableRecord.store()
and related calls should be based onRecord.touched()
orRecord.modified()
semantics.The order of invocation for [action]end() methods registeredRecordListener
s.The order of invocation for [action]start() methods registeredRecordListener
s.The default value of the reflection cache's LRU cache size.withReflectionCaching
(Boolean value) Whether reflection information should be cached in the configuration.Whether to auto-alias expressions in derived tables.withRenderCatalog
(Boolean value) Whether any catalog name should be rendered at all.Whether string concatenation operands should be coalesced to empty strings.Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.The token to place between the$$
signs of a PostgreSQL dollar quoted string generated by jOOQ.withRenderFormatted
(Boolean value) Whether rendered SQL should be pretty-printed.All sorts of formatting flags / settings.Whether the jOOQGROUP_CONCAT
function should be overflow-protected by setting the@@group_concat_max_len
session variable in MySQL style database systems.The join type to be generated by implicit joins for to-many paths inSelect
queries.The join type to be generated by implicit joins for to-one paths inSelect
queries.Whether to render an explicit windowRANGE
clause when an implicit clause is applied.Whether the case ofKeyword
references should be modified in any way.Deprecated.- 3.12.0 - [#5909] - UseRenderKeywordCase
instead.withRenderLocale
(Locale value) The Locale to be used with any render locale dependent logic (as e.g.withRenderMapping
(RenderMapping value) Configure render mapping for runtime schema / table rewriting in generated SQL.withRenderNameCase
(RenderNameCase value) Whether the case ofName
references should be modified in any way.withRenderNamedParamPrefix
(String value) The prefix to use for named parameters in generated SQL.Deprecated.- 3.12.0 - [#5909] - UseRenderQuotedNames
andRenderNameCase
instead.Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect.Whether to render optional parentheses to make associativity explicit, e.g.Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect.Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect.Whether an additionalORDER BY rn
clause should be rendered on emulated paginated queries.Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.Whether queries combined with set operators (e.g.Whether plain SQL templates (SQL
) are rendered as raw string content.Whether rendered schema, table, column names, etc should be quoted.Whether a redundant(a invalid input: '<'= :a)
predicate should be rendered for a(a, b) invalid input: '<' (:a, :b)
predicate for theSEEK
clause.Whether a(a, b) invalid input: '<' (:a, :b)
row predicate should be rendered for theSEEK
clause.Whether stored function calls should be wrapped in scalar subqueries.withRenderSchema
(Boolean value) Whether any schema name should be rendered at all.withRenderTable
(RenderTable value) Whether any table name qualification should be rendered at all on columns.Whether emulations that require repeating expressions should render variables for those expressions in derived tables.Whether calls to store(), insert() and update() should return all columns, not just identity columns.Whether calls to store(), insert() and update() should return values for columns that areDataType.computed()
.Whether calls to store(), insert() and update() should return values for columns that areDataType.defaulted()
.Whether calls to store(), insert() and update() should return the identity column.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.withStatementType
(StatementType value) The type of statement that is to be executed.A strategy defining how exceptions from the database / JDBC driver should be propagatedThe order of invocation for [action]end() methods registeredTransactionListener
s.The order of invocation for [action]start() methods registeredTransactionListener
s.Transform ANSI join to table lists if possible.TransformGROUP BY [column index]
clauses by substituting the column index.Deprecated.- 3.18.0 - [#14634] - The configuration of this transformation is deprecated.TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchTransform Common Table Expressions (CTE) by inlining theirWITH
clause definition to wherever they're referenced.withTransformPatterns
(Boolean value) Transform various syntax patterns to better versions, if possible.Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.Transforma + 1 = 2
toa = 2 - 1
, and other transformations.Transform1 / y * x
tox / y
, and other transformations.Transform bitwise operations to an equivalentBIT_GET(a, b)
expression.Transform~(bitnand(x, y))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(x, y)
.Transform~(bitnor(x, y))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(x, y)
.Transform~(~(x))
tox
.Transform~(bitxnor(x, y))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(x, y)
.Transform bitwise operations to an equivalentBIT_SET(a, b)
orBIT_SET(a, b, c)
expression.TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.TransformCASE … ELSE NULL
removing theELSE
clause.TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.Transform a searchedCASE WHEN x = ..
TransformCASE
expressions to their respective abbreviations.TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.Transforma IS [ NOT ] DISTINCT FROM NULL
toa IS [ NOT ] NULL
.Transform empty scalar subqueries like(SELECT 1 WHERE FALSE)
toNULL
.TransformCASE … ELSE CASE …
by flattening the nestedCASE
.Flatten nestedCASE
abbreviations such asNVL
orCASE
.Flatten nestedDECODE
functions.Transform(EXP(x) - EXP(-x)) / 2
toSINH(x)
, and other transformations.Transform all repetitions of idempotent functions, such asUPPER(UPPER(s))
toUPPER(s)
.TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(x)
, and other transformations.TransformLN(value) / LN(base)
toLOG(base, value)
, and other transformations.Activate debug logging of thetransformPatterns
feature.Transformx >= a AND x invalid input: '<'= a
tox = a
.Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.Transformx IN (a, b, c) AND x IN (b, c, d)
tox IN (b, c)
.Transformx = a OR x > a
tox >= a
.Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.Transform-(-(x))
tox
Transform(a + b) + (c + d)
to((a + b) + c) + d
.Transform 2 argumentCOALESCE(a, b)
toNVL(a, b)
.Transform1 = a
toa = 1
.Transformx IN (a)
tox = a
andx NOT IN (a)
tox != a
.TransformNOT(p AND q)
toNOT(p) OR NOT(q)
.TransformNOT (a != b)
toa = b
, and similar comparisons.TransformNOT(NOT(x))
tox
.TransformNOT (a IS NOT DISTINCT FROM b)
toa IS DISTINCT FROM b
.TransformNOT(p OR q)
toNOT(p) AND NOT(q)
.Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression withNULL
arguments can be replaced byNULL
.Transformx = c1 OR x = c2
tox IN (c1, c2)
.Transform predicates comparing scalar subqueries with a count(SELECT COUNT(*) …) > 0
to equivalentEXISTS (SELECT 1 …)
.Transform predicates comparing scalar subqueries with a count(SELECT COUNT(expr) …) > 0
to equivalentEXISTS (SELECT 1 … WHERE expr IS NOT NULL)
.Transform complex predicates into simplerCASE
abbreviations.TransformSIN(x) / COS(x)
toTAN(x)
, and other transformations.withTransformPatternsTrim
(Boolean value) TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.Transform trivial bitwise comparisons likeBIT_OR(a, 0)
toa
.Transform trivial case abbreviations likeNVL(NULL, a)
toa
.Transform trivial predicates like1 = 1
toTRUE
.TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.Transform[ NOT ] EXISTS (SELECT DISTINCT a, b FROM t ORDER BY c LIMIT d)
to[ NOT ] EXISTS (SELECT 1 FROM t)
.TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT a, b FROM t GROUP BY a, b
.TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * FROM t CROSS JOIN u
.TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT a, b FROM t ORDER BY a, b
.TransformSELECT (SELECT 1)
toSELECT 1
.TransformCASE
by removing unreachable clauses.TransformDECODE
by removing unreachable clauses.Transform theQUALIFY
clause to an equivalent derived table to filter on window functions.TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_NUMBER()
expressions.Transform table lists to ANSI join if possible.Transform arithmetic expressions on literals and bind variables.withUpdatablePrimaryKeys
(Boolean value) Whether primary key values are deemed to be "updatable" in jOOQ.withUpdateRecordTimestamp
(Boolean value) Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
.withUpdateRecordVersion
(Boolean value) Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
.WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged.The order of invocation for [action]end() methods registeredVisitListener
s.The order of invocation for [action]start() methods registeredVisitListener
s.[#15286] The warning level when the deprecated static type registry was accessed by legacy code.
-
Field Details 
-
forceIntegerTypesOnZeroScaleDecimals 
-
renderCatalog 
-
renderSchema 
-
renderTable 
-
renderMapping 
-
renderQuotedNames 
-
renderNameCase 
-
renderNameStyle 
-
renderNamedParamPrefix 
-
renderKeywordCase 
-
renderKeywordStyle 
-
renderLocale 
-
renderFormatted 
-
renderFormatting 
-
renderNullifEmptyStringForBindValues 
-
renderAutoAliasedDerivedTableExpressions 
-
renderOptionalAssociativityParentheses 
-
renderOptionalAsKeywordForTableAliases 
-
renderOptionalAsKeywordForFieldAliases 
-
renderOptionalInnerKeyword 
-
renderOptionalOuterKeyword 
-
renderImplicitWindowRange 
-
renderScalarSubqueriesForStoredFunctions 
-
renderImplicitJoinType 
-
renderImplicitJoinToManyType 
-
renderDefaultNullability 
-
renderCoalesceToEmptyStringInConcat 
-
renderOrderByRownumberForEmulatedPagination 
-
renderOutputForSQLServerReturningClause 
-
renderGroupConcatMaxLenSessionVariable 
-
renderParenthesisAroundSetOperationQueries 
-
renderVariablesInDerivedTablesForEmulations 
-
renderRowConditionForSeekClause 
-
renderRedundantConditionForSeekClause 
-
renderPlainSQLTemplatesAsRaw 
-
renderDollarQuotedStringToken 
-
namePathSeparator 
-
bindOffsetDateTimeType 
-
bindOffsetTimeType 
-
fetchTrimmedCharValues 
-
fetchTriggerValuesAfterSQLServerOutput 
-
fetchTriggerValuesAfterReturning 
-
fetchIntermediateResult 
-
diagnosticsDuplicateStatements 
-
diagnosticsDuplicateStatementsUsingTransformPatterns 
-
diagnosticsMissingWasNullCall 
-
diagnosticsRepeatedStatements 
-
diagnosticsConsecutiveAggregation 
-
diagnosticsConcatenationInPredicate 
-
diagnosticsPossiblyWrongExpression 
-
diagnosticsTooManyColumnsFetched 
-
diagnosticsTooManyRowsFetched 
-
diagnosticsUnnecessaryWasNullCall 
-
diagnosticsPatterns 
-
diagnosticsTrivialCondition 
-
diagnosticsNullCondition 
-
transformPatterns 
-
transformPatternsLogging 
-
transformPatternsUnnecessaryDistinct 
-
transformPatternsUnnecessaryScalarSubquery 
-
transformPatternsUnnecessaryInnerJoin 
-
transformPatternsUnnecessaryGroupByExpressions 
-
transformPatternsUnnecessaryOrderByExpressions 
-
transformPatternsUnnecessaryExistsSubqueryClauses 
-
transformPatternsCountConstant 
-
transformPatternsTrim 
-
transformPatternsNotAnd 
-
transformPatternsNotOr 
-
transformPatternsNotNot 
-
transformPatternsNotComparison 
-
transformPatternsNotNotDistinct 
-
transformPatternsDistinctFromNull 
-
transformPatternsNormaliseAssociativeOps 
-
transformPatternsNormaliseInListSingleElementToComparison 
-
transformPatternsNormaliseFieldCompareValue 
-
transformPatternsNormaliseCoalesceToNvl 
-
transformPatternsOrEqToIn 
-
transformPatternsAndNeToNotIn 
-
transformPatternsMergeOrComparison 
-
transformPatternsMergeAndComparison 
-
transformPatternsMergeInLists 
-
transformPatternsMergeRangePredicates 
-
transformPatternsMergeBetweenSymmetricPredicates 
-
transformPatternsCaseSearchedToCaseSimple 
-
transformPatternsCaseElseNull 
-
transformPatternsUnreachableCaseClauses 
-
transformPatternsUnreachableDecodeClauses 
-
transformPatternsCaseDistinctToDecode 
-
transformPatternsCaseMergeWhenWhen 
-
transformPatternsCaseMergeWhenElse 
-
transformPatternsCaseToCaseAbbreviation 
-
transformPatternsSimplifyCaseAbbreviation 
-
transformPatternsFlattenCaseAbbreviation 
-
transformPatternsFlattenDecode 
-
transformPatternsFlattenCase 
-
transformPatternsTrivialCaseAbbreviation 
-
transformPatternsTrivialPredicates 
-
transformPatternsTrivialBitwiseOperations 
-
transformPatternsBitSet 
-
transformPatternsBitGet 
-
transformPatternsScalarSubqueryCountAsteriskGtZero 
-
transformPatternsScalarSubqueryCountExpressionGtZero 
-
transformPatternsEmptyScalarSubquery 
-
transformPatternsNegNeg 
-
transformPatternsBitNotBitNot 
-
transformPatternsBitNotBitNand 
-
transformPatternsBitNotBitNor 
-
transformPatternsBitNotBitXNor 
-
transformPatternsNullOnNullInput 
-
transformPatternsIdempotentFunctionRepetition 
-
transformPatternsArithmeticComparisons 
-
transformPatternsArithmeticExpressions 
-
transformPatternsTrigonometricFunctions 
-
transformPatternsLogarithmicFunctions 
-
transformPatternsHyperbolicFunctions 
-
transformPatternsInverseHyperbolicFunctions 
-
transformInlineBindValuesForFieldComparisons 
-
transformAnsiJoinToTableLists 
-
transformInConditionSubqueryWithLimitToDerivedTable 
-
transformQualify 
-
transformTableListsToAnsiJoin 
-
transformRownum 
-
transformUnneededArithmeticExpressions 
-
transformGroupByColumnIndex 
-
transformInlineCTE 
-
backslashEscaping 
-
paramType 
-
paramCastMode 
-
statementType 
-
inlineThreshold 
-
transactionListenerStartInvocationOrder 
-
transactionListenerEndInvocationOrder 
-
migrationListenerStartInvocationOrder 
-
migrationListenerEndInvocationOrder 
-
visitListenerStartInvocationOrder 
-
visitListenerEndInvocationOrder 
-
recordListenerStartInvocationOrder 
-
recordListenerEndInvocationOrder 
-
executeListenerStartInvocationOrder 
-
executeListenerEndInvocationOrder 
-
executeLogging 
-
executeLoggingSQLExceptions 
-
diagnosticsLogging 
-
diagnosticsConnection 
-
updateRecordVersion 
-
updateRecordTimestamp 
-
executeWithOptimisticLocking 
-
executeWithOptimisticLockingExcludeUnversioned 
-
attachRecords 
-
insertUnchangedRecords 
-
updateUnchangedRecords 
-
recordDirtyTracking 
-
updatablePrimaryKeys 
-
reflectionCaching 
-
cacheRecordMappers 
-
cacheParsingConnection 
-
cacheParsingConnectionLRUCacheSize 
-
cacheRecordMappersLRUCacheSize 
-
reflectionCacheLRUCacheSize 
-
cachePreparedStatementInLoader 
-
throwExceptions 
-
fetchWarnings 
-
fetchServerOutputSize 
-
returnIdentityOnUpdatableRecord 
-
returnDefaultOnUpdatableRecord 
-
returnComputedOnUpdatableRecord 
-
returnAllOnUpdatableRecord 
-
returnRecordToPojo 
-
mapJPAAnnotations 
-
mapRecordComponentParameterNames 
-
mapConstructorPropertiesParameterNames 
-
mapConstructorParameterNames 
-
mapConstructorParameterNamesInKotlin 
-
queryPoolable 
-
queryTimeout 
-
maxRows 
-
fetchSize 
-
batchSize 
-
debugInfoOnStackTrace 
-
inListPadding 
-
inListPadBase 
-
delimiter 
-
emulateOnDuplicateKeyUpdateOnPrimaryKeyOnly 
-
emulateMultiset 
-
emulateNestedRecordProjectionsUsingMultisetEmulation 
-
emulateComputedColumns 
-
computedOnClientVirtual 
-
computedOnClientStored 
-
executeUpdateWithoutWhere 
-
executeDeleteWithoutWhere 
-
interpreterDialect 
-
interpreterNameLookupCaseSensitivity 
-
interpreterLocale 
-
interpreterDelayForeignKeyDeclarations 
-
metaIncludeSystemIndexes 
-
metaIncludeSystemSequences 
-
migrationHistorySchema 
-
migrationHistorySchemaCreateSchemaIfNotExists 
-
migrationDefaultSchema 
-
migrationSchemataCreateSchemaIfNotExists 
-
migrationDefaultContentType 
-
migrationAllowUndo 
-
migrationAllowInvalidCommits 
-
migrationRevertUntracked 
-
migrationAutoBaseline 
-
migrationAutoVerification 
-
migrationIgnoreDefaultTimestampPrecisionDiffs 
-
migrationIgnoreUnnamedConstraintDiffs 
-
migrationIgnoreImplicitPrimaryKeyNotNullConstraints 
-
locale 
-
parseDialect 
-
parseLocale 
-
parseDateFormat 
-
parseTimestampFormat 
-
parseNamedParamPrefix 
-
parseNameCase 
-
parseWithMetaLookups 
-
parseAppendMissingTableReferences 
-
parseSetCommands 
-
parseUnsupportedSyntax 
-
parseUnknownFunctions 
-
parseIgnoreCommercialOnlyFeatures 
-
parseIgnoreComments 
-
parseIgnoreCommentStart 
-
parseIgnoreCommentStop 
-
parseRetainCommentsBetweenQueries 
-
parseMetaDefaultExpressions 
-
parseMetaViewSources 
-
readonlyTableRecordInsert 
-
readonlyUpdatableRecordUpdate 
-
readonlyInsert 
-
readonlyUpdate 
-
applyWorkaroundFor7962 
-
warnOnStaticTypeRegistryAccess 
-
interpreterSearchPath 
-
migrationSchemata 
-
parseSearchPath 
-
Constructor Details 
-
Method Details 
-
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 
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 
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 
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 
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 
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 
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 
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 
Configure render mapping for runtime schema / table rewriting in
generated SQL.
-
setRenderMapping 
Configure render mapping for runtime schema / table rewriting in
generated SQL.
-
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 
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 
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 
Whether the case of Name
references should be modified in any way.
Names are modified irrespective of the getRenderQuotedNames()
setting.
This setting does not affect any plain SQL usage.
-
getRenderNameStyle 
Deprecated.
- 3.12.0 - [#5909] - Use RenderQuotedNames
and RenderNameCase
instead.
Whether rendered schema, table, column names, etc should be quoted
in rendered SQL, or transformed in any other way.
This is set to "QUOTED" by default for backwards-compatibility.
-
setRenderNameStyle 
Deprecated.
- 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 
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 
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 
Whether the case of Keyword
references should be modified in any way.
-
setRenderKeywordCase 
Whether the case of Keyword
references should be modified in any way.
-
getRenderKeywordStyle 
Deprecated.
- 3.12.0 - [#5909] - Use RenderKeywordCase
instead.
Whether the case of Keyword
references should be modified in any way.
-
setRenderKeywordStyle 
Deprecated.
- 3.12.0 - [#5909] - Use RenderKeywordCase
instead.
Whether the case of Keyword
references should be modified in any way.
-
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 
The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to getLocale()
.
-
isRenderFormatted 
Whether rendered SQL should be pretty-printed.
- Returns:
- possible object is
Boolean
-
setRenderFormatted 
Whether rendered SQL should be pretty-printed.
- Parameters:
value
- allowed object is
Boolean
-
getRenderFormatting 
All sorts of formatting flags / settings.
-
setRenderFormatting 
All sorts of formatting flags / settings.
-
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 
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 
Whether to auto-alias expressions in derived tables.
This feature is available in the commercial distribution only.
-
setRenderAutoAliasedDerivedTableExpressions 
Whether to auto-alias expressions in derived tables.
This feature is available in the commercial distribution only.
-
getRenderOptionalAssociativityParentheses 
Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c)
instead of (a + b + c).
-
setRenderOptionalAssociativityParentheses 
Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c)
instead of (a + b + c).
-
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 
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 
Whether to render the optional AS
keyword in table aliases, if it is optional in the output dialect.
-
setRenderOptionalAsKeywordForFieldAliases 
Whether to render the optional AS
keyword in table aliases, if it is optional in the output dialect.
-
getRenderOptionalInnerKeyword 
Whether to render the optional INNER
keyword in INNER JOIN
, if it is optional in the output dialect.
-
setRenderOptionalInnerKeyword 
Whether to render the optional INNER
keyword in INNER JOIN
, if it is optional in the output dialect.
-
getRenderOptionalOuterKeyword 
Whether to render the optional OUTER
keyword in OUTER JOIN
, if it is optional in the output dialect.
-
setRenderOptionalOuterKeyword 
Whether to render the optional OUTER
keyword in OUTER JOIN
, if it is optional in the output dialect.
-
getRenderImplicitWindowRange 
Whether to render an explicit window RANGE
clause when an implicit clause is applied.
-
setRenderImplicitWindowRange 
Whether to render an explicit window RANGE
clause when an implicit clause is applied.
-
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 
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 
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 
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 
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 
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 
Whether the Nullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.
-
setRenderDefaultNullability 
Whether the Nullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.
-
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
Whether plain SQL templates (SQL
) are rendered as raw string content.
- Returns:
- possible object is
Boolean
-
setRenderPlainSQLTemplatesAsRaw 
Whether plain SQL templates (SQL
) are rendered as raw string content.
- Parameters:
value
- allowed object is
Boolean
-
getRenderDollarQuotedStringToken 
The token to place between the $$
signs of a PostgreSQL dollar quoted string generated by jOOQ.
-
setRenderDollarQuotedStringToken 
The token to place between the $$
signs of a PostgreSQL dollar quoted string generated by jOOQ.
-
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
Activate debug logging of the transformPatterns
feature.
- Returns:
- possible object is
Boolean
-
setTransformPatternsLogging 
Activate debug logging of the transformPatterns
feature.
- Parameters:
value
- allowed object is
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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:
SELECT
(any projection can be ignored)
DISTINCT
ORDER BY
LIMIT
(except LIMIT 0
, in case of which transformPatternsTrivialPredicates
applies).
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 
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:
SELECT
(any projection can be ignored)
DISTINCT
ORDER BY
LIMIT
(except LIMIT 0
, in case of which transformPatternsTrivialPredicates
applies).
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
@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 
Transform the QUALIFY
clause to an equivalent derived table to filter on window functions.
This feature is available in the commercial distribution only.
-
setTransformQualify 
Transform the QUALIFY
clause to an equivalent derived table to filter on window functions.
This feature is available in the commercial distribution only.
-
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
Whether string literals should be escaped with backslash.
-
setBackslashEscaping 
Whether string literals should be escaped with backslash.
-
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 
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 
Whether rendered bind values should be cast to their respective type.
-
setParamCastMode 
Whether rendered bind values should be cast to their respective type.
-
getStatementType 
The type of statement that is to be executed.
-
setStatementType 
The type of statement that is to be executed.
-
getInlineThreshold 
The maximum number of allowed bind variables before inlining all values where 0
uses the dialect defaults:
SQLDialect.ACCESS
: 768
SQLDialect.ASE
: 2000
SQLDialect.DATABRICKS
: 256
SQLDialect.INGRES
: 1024
SQLDialect.ORACLE
: 32767
SQLDialect.POSTGRES
: 32767
SQLDialect.SQLITE
: 999
SQLDialect.SQLSERVER
: 2100
SQLDialect.TERADATA
: 2536
-
setInlineThreshold 
The maximum number of allowed bind variables before inlining all values where 0
uses the dialect defaults:
SQLDialect.ACCESS
: 768
SQLDialect.ASE
: 2000
SQLDialect.DATABRICKS
: 256
SQLDialect.INGRES
: 1024
SQLDialect.ORACLE
: 32767
SQLDialect.POSTGRES
: 32767
SQLDialect.SQLITE
: 999
SQLDialect.SQLSERVER
: 2100
SQLDialect.TERADATA
: 2536
-
getTransactionListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered TransactionListener
s.
-
setTransactionListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered TransactionListener
s.
-
getTransactionListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered TransactionListener
s.
-
setTransactionListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered TransactionListener
s.
-
getMigrationListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered MigrationListener
s.
-
setMigrationListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered MigrationListener
s.
-
getMigrationListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered MigrationListener
s.
-
setMigrationListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered MigrationListener
s.
-
getVisitListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered VisitListener
s.
-
setVisitListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered VisitListener
s.
-
getVisitListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered VisitListener
s.
-
setVisitListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered VisitListener
s.
-
getRecordListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered RecordListener
s.
-
setRecordListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered RecordListener
s.
-
getRecordListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered RecordListener
s.
-
setRecordListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered RecordListener
s.
-
getExecuteListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered ExecuteListener
s.
-
setExecuteListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered ExecuteListener
s.
-
getExecuteListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered ExecuteListener
s.
-
setExecuteListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered ExecuteListener
s.
-
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 
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 
[#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 
[#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 
When set to true, this will add jOOQ's default logging DiagnosticsListeners.
- Returns:
- possible object is
Boolean
-
setDiagnosticsLogging 
When set to true, this will add jOOQ's default logging DiagnosticsListeners.
- Parameters:
value
- allowed object is
Boolean
-
getDiagnosticsConnection 
Whether to activate the DiagnosticsConnection, explicit by DEFAULT
, implicit if ON
, or turned OFF
entirely.
-
setDiagnosticsConnection 
Whether to activate the DiagnosticsConnection, explicit by DEFAULT
, implicit if ON
, or turned OFF
entirely.
-
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 
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 
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 
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 
Whether store() and delete() methods should be executed with optimistic locking.
- Returns:
- possible object is
Boolean
-
setExecuteWithOptimisticLocking 
Whether store() and delete() methods should be executed with optimistic locking.
- Parameters:
value
- allowed object is
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 
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 
Whether fetched records should be attached to the fetching configuration.
- Returns:
- possible object is
Boolean
-
setAttachRecords 
Whether fetched records should be attached to the fetching configuration.
- Parameters:
value
- allowed object is
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 
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 
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 
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 
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 
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 
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 
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 
Whether reflection information should be cached in the configuration.
- Returns:
- possible object is
Boolean
-
setReflectionCaching 
Whether reflection information should be cached in the configuration.
- Parameters:
value
- allowed object is
Boolean
-
isCacheRecordMappers 
Whether record mappers should be cached in the configuration.
- Returns:
- possible object is
Boolean
-
setCacheRecordMappers 
Whether record mappers should be cached in the configuration.
- Parameters:
value
- allowed object is
Boolean
-
isCacheParsingConnection 
Whether parsing connection translations should be cached in the configuration.
- Returns:
- possible object is
Boolean
-
setCacheParsingConnection 
Whether parsing connection translations should be cached in the configuration.
- Parameters:
value
- allowed object is
Boolean
-
getCacheParsingConnectionLRUCacheSize 
The default value of the ParsingConnection cache's LRU cache size.
-
setCacheParsingConnectionLRUCacheSize 
The default value of the ParsingConnection cache's LRU cache size.
-
getCacheRecordMappersLRUCacheSize 
The default value of the RecordMapper cache's LRU cache size.
-
setCacheRecordMappersLRUCacheSize 
The default value of the RecordMapper cache's LRU cache size.
-
getReflectionCacheLRUCacheSize 
The default value of the reflection cache's LRU cache size.
-
setReflectionCacheLRUCacheSize 
The default value of the reflection cache's LRU cache size.
-
isCachePreparedStatementInLoader 
Whether JDBC PreparedStatement
instances should be cached in loader API.
- Returns:
- possible object is
Boolean
-
setCachePreparedStatementInLoader 
Whether JDBC PreparedStatement
instances should be cached in loader API.
- Parameters:
value
- allowed object is
Boolean
-
getThrowExceptions 
A strategy defining how exceptions from the database / JDBC driver should be propagated
-
setThrowExceptions 
A strategy defining how exceptions from the database / JDBC driver should be propagated
-
isFetchWarnings 
Whether warnings should be fetched after each query execution.
- Returns:
- possible object is
Boolean
-
setFetchWarnings 
Whether warnings should be fetched after each query execution.
- Parameters:
value
- allowed object is
Boolean
-
getFetchServerOutputSize 
Whether server output should be fetched after each query execution.
-
setFetchServerOutputSize 
Whether server output should be fetched after each query execution.
-
isReturnIdentityOnUpdatableRecord 
Whether calls to store(), insert() and update() should return the identity column.
- Returns:
- possible object is
Boolean
-
setReturnIdentityOnUpdatableRecord 
Whether calls to store(), insert() and update() should return the identity column.
- Parameters:
value
- allowed object is
Boolean
-
isReturnDefaultOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted()
.
- Returns:
- possible object is
Boolean
-
setReturnDefaultOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted()
.
- Parameters:
value
- allowed object is
Boolean
-
isReturnComputedOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.computed()
.
- Returns:
- possible object is
Boolean
-
setReturnComputedOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.computed()
.
- Parameters:
value
- allowed object is
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 
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 
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 
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 
Whether JPA annotations should be considered by the DefaultRecordMapper
, assuming the jOOQ-jpa-extensions
is on the classpath.
- Returns:
- possible object is
Boolean
-
setMapJPAAnnotations 
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 
Whether constructor parameter names obtained from the Record
component names should be considered by the DefaultRecordMapper.
- Returns:
- possible object is
Boolean
-
setMapRecordComponentParameterNames 
Whether constructor parameter names obtained from the Record
component names should be considered by the DefaultRecordMapper.
- Parameters:
value
- allowed object is
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 
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 
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 
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 
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 
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 
The default JDBC poolable property that should be applied to all
jOOQ queries, for which no specific poolable flag was specified.
-
setQueryPoolable 
The default JDBC poolable property that should be applied to all
jOOQ queries, for which no specific poolable flag was specified.
-
getQueryTimeout 
The default JDBC queryTimeout property that should be applied to all
jOOQ queries, for which no specific queryTimeout was specified.
-
setQueryTimeout 
The default JDBC queryTimeout property that should be applied to all
jOOQ queries, for which no specific queryTimeout was specified.
-
getMaxRows 
The default JDBC maxRows property that should be applied to all
jOOQ queries, for which no specific maxRows value was specified.
-
setMaxRows 
The default JDBC maxRows property that should be applied to all
jOOQ queries, for which no specific maxRows value was specified.
-
getFetchSize 
The default JDBC fetchSize property that should be applied to all
jOOQ queries, for which no specific fetchSize value was specified.
-
setFetchSize 
The default JDBC fetchSize property that should be applied to all
jOOQ queries, for which no specific fetchSize value was specified.
-
getBatchSize 
A property specifying a batch size that should be applied to all automatically created BatchedConnection
instances.
-
setBatchSize 
A property specifying a batch size that should be applied to all automatically created BatchedConnection
instances.
-
isDebugInfoOnStackTrace 
[#5570] Whether exception stack traces should be enhanced with additional debug information.
- Returns:
- possible object is
Boolean
-
setDebugInfoOnStackTrace 
[#5570] Whether exception stack traces should be enhanced with additional debug information.
- Parameters:
value
- allowed object is
Boolean
-
isInListPadding 
[#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
- Returns:
- possible object is
Boolean
-
setInListPadding 
[#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
- Parameters:
value
- allowed object is
Boolean
-
getInListPadBase 
[#7095] The base to use to calculate the powers of when applying in list padding.
-
setInListPadBase 
[#7095] The base to use to calculate the powers of when applying in list padding.
-
getDelimiter 
[#5826] The delimiter character to be used to delimit statements in batches.
-
setDelimiter 
[#5826] The delimiter character to be used to delimit statements in batches.
-
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 
[#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 
[#3884] How MULTISET
support should be emulated.
-
setEmulateMultiset 
[#3884] How MULTISET
support should be emulated.
-
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 
[#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 
[#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 
[#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 
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 
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 
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 
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 
[#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 
[#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 
[#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 
[#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 
[#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 
[#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 
[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
-
setInterpreterNameLookupCaseSensitivity 
[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
-
getInterpreterLocale 
The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale()
.
-
setInterpreterLocale 
The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale()
.
-
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 
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 
The Meta
implementation that is backed by DatabaseMetaData
does not produce system generated indexes on constraints, by default.
- Returns:
- possible object is
Boolean
-
setMetaIncludeSystemIndexes 
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 
The Meta
implementation that is backed by DatabaseMetaData
does not produce system generated sequences, by default.
- Returns:
- possible object is
Boolean
-
setMetaIncludeSystemSequences 
The Meta
implementation that is backed by DatabaseMetaData
does not produce system generated sequences, by default.
- Parameters:
value
- allowed object is
Boolean
-
getMigrationHistorySchema 
The database schema where the migration history is located.
-
setMigrationHistorySchema 
The database schema where the migration history is located.
-
isMigrationHistorySchemaCreateSchemaIfNotExists 
Whether getMigrationHistorySchema()
should be created if it doesn't exist.
- Returns:
- possible object is
Boolean
-
setMigrationHistorySchemaCreateSchemaIfNotExists 
Whether getMigrationHistorySchema()
should be created if it doesn't exist.
- Parameters:
value
- allowed object is
Boolean
-
getMigrationDefaultSchema 
The default schema whose unqualified objects that are included in the migration.
-
setMigrationDefaultSchema 
The default schema whose unqualified objects that are included in the migration.
-
isMigrationSchemataCreateSchemaIfNotExists 
Whether getMigrationSchemata()
should be created if they don't exist.
- Returns:
- possible object is
Boolean
-
setMigrationSchemataCreateSchemaIfNotExists 
Whether getMigrationSchemata()
should be created if they don't exist.
- Parameters:
value
- allowed object is
Boolean
-
getMigrationDefaultContentType 
The default ContentType
that is used when loading migrations.
-
setMigrationDefaultContentType 
The default ContentType
that is used when loading migrations.
-
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 
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 
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 
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 
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 
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 
Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
- Returns:
- possible object is
Boolean
-
setMigrationAutoBaseline 
Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
- Parameters:
value
- allowed object is
Boolean
-
isMigrationAutoVerification 
Whether a migration automatically runs a verification first.
- Returns:
- possible object is
Boolean
-
setMigrationAutoVerification 
Whether a migration automatically runs a verification first.
- Parameters:
value
- allowed object is
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 
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 
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 
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 
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 
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 
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 
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 
[#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
-
setParseDialect 
[#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
-
getParseLocale 
The Locale to be used with any parser locale dependent logic, defaulting to getLocale()
.
-
setParseLocale 
The Locale to be used with any parser locale dependent logic, defaulting to getLocale()
.
-
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 
The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle
-
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 
The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle
-
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 
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 
[#7337] The default name case for parsed identifiers.
-
setParseNameCase 
[#7337] The default name case for parsed identifiers.
-
getParseWithMetaLookups 
[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
-
setParseWithMetaLookups 
[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
-
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 
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 
[#9780] Whether commands of the type SET key = value
should be parsed rather than ignored.
- Returns:
- possible object is
Boolean
-
setParseSetCommands 
[#9780] Whether commands of the type SET key = value
should be parsed rather than ignored.
- Parameters:
value
- allowed object is
Boolean
-
getParseUnsupportedSyntax 
[#5917] Whether the parser should accept unsupported (but known) syntax.
-
setParseUnsupportedSyntax 
[#5917] Whether the parser should accept unsupported (but known) syntax.
-
getParseUnknownFunctions 
[#7344] Whether the parser should accept unknown functions.
-
setParseUnknownFunctions 
[#7344] Whether the parser should accept unknown functions.
-
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 
[#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 
[#8325] Whether the parser should ignore content between ignore comment tokens.
- Returns:
- possible object is
Boolean
-
setParseIgnoreComments 
[#8325] Whether the parser should ignore content between ignore comment tokens.
- Parameters:
value
- allowed object is
Boolean
-
getParseIgnoreCommentStart 
[#8325] The ignore comment start token
-
setParseIgnoreCommentStart 
[#8325] The ignore comment start token
-
getParseIgnoreCommentStop 
[#8325] The ignore comment stop token
-
setParseIgnoreCommentStop 
[#8325] The ignore comment stop token
-
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 
[#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 
[#8469] Whether to parse default expressions retrieved from DatabaseMetaData
.
- Returns:
- possible object is
Boolean
-
setParseMetaDefaultExpressions 
[#8469] Whether to parse default expressions retrieved from DatabaseMetaData
.
- Parameters:
value
- allowed object is
Boolean
-
isParseMetaViewSources 
[#8469] Whether to parse view sources retrieved from DatabaseMetaData
.
- Returns:
- possible object is
Boolean
-
setParseMetaViewSources 
[#8469] Whether to parse view sources retrieved from DatabaseMetaData
.
- Parameters:
value
- allowed object is
Boolean
-
getReadonlyTableRecordInsert 
[#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert()
.
-
setReadonlyTableRecordInsert 
[#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert()
.
-
getReadonlyUpdatableRecordUpdate 
[#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update()
.
-
setReadonlyUpdatableRecordUpdate 
[#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update()
.
-
getReadonlyInsert 
-
setReadonlyInsert 
-
getReadonlyUpdate 
-
setReadonlyUpdate 
-
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 
[#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 
[#15286] The warning level when the deprecated static type registry was accessed by legacy code.
-
setWarnOnStaticTypeRegistryAccess 
[#15286] The warning level when the deprecated static type registry was accessed by legacy code.
-
getInterpreterSearchPath 
-
setInterpreterSearchPath 
-
getMigrationSchemata 
-
setMigrationSchemata 
-
getParseSearchPath 
-
setParseSearchPath 
-
withForceIntegerTypesOnZeroScaleDecimals 
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 
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 
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 
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 
Configure render mapping for runtime schema / table rewriting in
generated SQL.
-
withRenderQuotedNames 
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 
Whether the case of Name
references should be modified in any way.
Names are modified irrespective of the getRenderQuotedNames()
setting.
This setting does not affect any plain SQL usage.
-
withRenderNameStyle 
Deprecated.
- 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 
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 
Whether the case of Keyword
references should be modified in any way.
-
withRenderKeywordStyle 
Deprecated.
- 3.12.0 - [#5909] - Use RenderKeywordCase
instead.
Whether the case of Keyword
references should be modified in any way.
-
withRenderLocale 
The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting to getLocale()
.
-
withRenderFormatted 
Whether rendered SQL should be pretty-printed.
-
withRenderFormatting 
All sorts of formatting flags / settings.
-
withRenderNullifEmptyStringForBindValues 
Whether to wrap String typed bind values with NULLIF(?, '') for Oracle compatibility.
This feature is available in the commercial distribution only.
-
withRenderAutoAliasedDerivedTableExpressions 
Whether to auto-alias expressions in derived tables.
This feature is available in the commercial distribution only.
-
withRenderOptionalAssociativityParentheses 
Whether to render optional parentheses to make associativity explicit, e.g. ((a + b) + c)
instead of (a + b + c).
-
withRenderOptionalAsKeywordForTableAliases 
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 
Whether to render the optional AS
keyword in table aliases, if it is optional in the output dialect.
-
withRenderOptionalInnerKeyword 
Whether to render the optional INNER
keyword in INNER JOIN
, if it is optional in the output dialect.
-
withRenderOptionalOuterKeyword 
Whether to render the optional OUTER
keyword in OUTER JOIN
, if it is optional in the output dialect.
-
withRenderImplicitWindowRange 
Whether to render an explicit window RANGE
clause when an implicit clause is applied.
-
withRenderScalarSubqueriesForStoredFunctions 
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 
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 
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 
Whether the Nullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.
-
withRenderCoalesceToEmptyStringInConcat 
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 
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 
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 
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 
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 
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 
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 
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 
Whether plain SQL templates (SQL
) are rendered as raw string content.
-
withRenderDollarQuotedStringToken 
The token to place between the $$
signs of a PostgreSQL dollar quoted string generated by jOOQ.
-
withNamePathSeparator 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
Activate debug logging of the transformPatterns
feature.
-
withTransformPatternsUnnecessaryDistinct 
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 
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 
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 
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 
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 
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:
SELECT
(any projection can be ignored)
DISTINCT
ORDER BY
LIMIT
(except LIMIT 0
, in case of which transformPatternsTrivialPredicates
applies).
To enable this feature, transformPatterns
must be enabled as well.
This feature is available in the commercial distribution only.
-
withTransformPatternsCountConstant 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
Transform trivial predicates like 1 = 1
to TRUE
.
This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
-
withTransformPatternsTrivialBitwiseOperations 
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 
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 
Transform bitwise operations to an equivalent BIT_GET(a, b)
expression.
This feature is available in the commercial distribution only.
-
withTransformPatternsScalarSubqueryCountAsteriskGtZero 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
@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 
Transform the QUALIFY
clause to an equivalent derived table to filter on window functions.
This feature is available in the commercial distribution only.
-
withTransformTableListsToAnsiJoin 
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 
Transform ROWNUM
expressions to corresponding LIMIT
clauses or ROW_NUMBER()
expressions.
In Oracle 11g and less, ROWNUM
filtering was the most popular way to paginate. This pseudo
column is not supported in other RDBMS, and should be replaced in Oracle 12c by the FETCH clause or
ROW_NUMBER() OVER ()
filtering. This transformation allows for replacing such a filter by
equivalent SQL, if possible.
This feature is available in the commercial distribution only.
-
withTransformUnneededArithmeticExpressions 
public Settings withTransformUnneededArithmeticExpressions(TransformUnneededArithmeticExpressions value)
Transform arithmetic expressions on literals and bind variables.
Arithmetic expressions may be implemented by the user, or arise from emulations from within jOOQ.
Expressions on literals and bind variables could be evaluated in the client prior to generating SQL.
This feature is available in the commercial distribution only.
-
withTransformGroupByColumnIndex 
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 
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 
Whether string literals should be escaped with backslash.
-
withParamType 
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 
Whether rendered bind values should be cast to their respective type.
-
withStatementType 
The type of statement that is to be executed.
-
withInlineThreshold 
The maximum number of allowed bind variables before inlining all values where 0
uses the dialect defaults:
SQLDialect.ACCESS
: 768
SQLDialect.ASE
: 2000
SQLDialect.DATABRICKS
: 256
SQLDialect.INGRES
: 1024
SQLDialect.ORACLE
: 32767
SQLDialect.POSTGRES
: 32767
SQLDialect.SQLITE
: 999
SQLDialect.SQLSERVER
: 2100
SQLDialect.TERADATA
: 2536
-
withTransactionListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered TransactionListener
s.
-
withTransactionListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered TransactionListener
s.
-
withMigrationListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered MigrationListener
s.
-
withMigrationListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered MigrationListener
s.
-
withVisitListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered VisitListener
s.
-
withVisitListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered VisitListener
s.
-
withRecordListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered RecordListener
s.
-
withRecordListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered RecordListener
s.
-
withExecuteListenerStartInvocationOrder 
The order of invocation for [action]start() methods registered ExecuteListener
s.
-
withExecuteListenerEndInvocationOrder 
The order of invocation for [action]end() methods registered ExecuteListener
s.
-
withExecuteLogging 
When set to true, this will add jOOQ's default LoggerListener
for debug logging. This is meant for use in development only.
-
withExecuteLoggingSQLExceptions 
[#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 
When set to true, this will add jOOQ's default logging DiagnosticsListeners.
-
withDiagnosticsConnection 
Whether to activate the DiagnosticsConnection, explicit by DEFAULT
, implicit if ON
, or turned OFF
entirely.
-
withUpdateRecordVersion 
Whether store(), insert(), and update() methods should update the record version prior to the operation, for use with executeWithOptimisticLocking
.
-
withUpdateRecordTimestamp 
Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use with executeWithOptimisticLocking
.
-
withExecuteWithOptimisticLocking 
Whether store() and delete() methods should be executed with optimistic locking.
-
withExecuteWithOptimisticLockingExcludeUnversioned 
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 
Whether fetched records should be attached to the fetching configuration.
-
withInsertUnchangedRecords 
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 
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 
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 
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 
Whether reflection information should be cached in the configuration.
-
withCacheRecordMappers 
Whether record mappers should be cached in the configuration.
-
withCacheParsingConnection 
Whether parsing connection translations should be cached in the configuration.
-
withCacheParsingConnectionLRUCacheSize 
The default value of the ParsingConnection cache's LRU cache size.
-
withCacheRecordMappersLRUCacheSize 
The default value of the RecordMapper cache's LRU cache size.
-
withReflectionCacheLRUCacheSize 
The default value of the reflection cache's LRU cache size.
-
withCachePreparedStatementInLoader 
Whether JDBC PreparedStatement
instances should be cached in loader API.
-
withThrowExceptions 
A strategy defining how exceptions from the database / JDBC driver should be propagated
-
withFetchWarnings 
Whether warnings should be fetched after each query execution.
-
withFetchServerOutputSize 
Whether server output should be fetched after each query execution.
-
withReturnIdentityOnUpdatableRecord 
Whether calls to store(), insert() and update() should return the identity column.
-
withReturnDefaultOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.defaulted()
.
-
withReturnComputedOnUpdatableRecord 
Whether calls to store(), insert() and update() should return values for columns that are DataType.computed()
.
-
withReturnAllOnUpdatableRecord 
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 
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 
Whether JPA annotations should be considered by the DefaultRecordMapper
, assuming the jOOQ-jpa-extensions
is on the classpath.
-
withMapRecordComponentParameterNames 
Whether constructor parameter names obtained from the Record
component names should be considered by the DefaultRecordMapper.
-
withMapConstructorPropertiesParameterNames 
Whether constructor parameter names obtained from the ConstructorPropertiesProvider
SPI (default implementation in the jOOQ-beans-extensions
module) should be considered by the DefaultRecordMapper.
-
withMapConstructorParameterNames 
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 
Whether constructor parameter names obtained via reflection in Kotlin should be considered by the DefaultRecordMapper. This flag has no effect in Java.
-
withQueryPoolable 
The default JDBC poolable property that should be applied to all
jOOQ queries, for which no specific poolable flag was specified.
-
withQueryTimeout 
The default JDBC queryTimeout property that should be applied to all
jOOQ queries, for which no specific queryTimeout was specified.
-
withMaxRows 
The default JDBC maxRows property that should be applied to all
jOOQ queries, for which no specific maxRows value was specified.
-
withFetchSize 
The default JDBC fetchSize property that should be applied to all
jOOQ queries, for which no specific fetchSize value was specified.
-
withBatchSize 
A property specifying a batch size that should be applied to all automatically created BatchedConnection
instances.
-
withDebugInfoOnStackTrace 
[#5570] Whether exception stack traces should be enhanced with additional debug information.
-
withInListPadding 
[#5600] Whether IN lists in IN predicates should be padded to powers of inListPadBase (default 2).
-
withInListPadBase 
[#7095] The base to use to calculate the powers of when applying in list padding.
-
withDelimiter 
[#5826] The delimiter character to be used to delimit statements in batches.
-
withEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly 
[#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 
[#3884] How MULTISET
support should be emulated.
-
withEmulateNestedRecordProjectionsUsingMultisetEmulation 
[#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 
[#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 
Whether VIRTUAL
client side computed columns should be applied to queries. This feature is available only in commercial distributions.
-
withComputedOnClientStored 
Whether STORED
client side computed columns should be applied to queries (including audit columns). This feature is available only in commercial distributions.
-
withExecuteUpdateWithoutWhere 
[#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 
[#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 
[#7337] The dialect that should be used to interpret SQL DDL statements. SQLDialect.DEFAULT
means that jOOQ interprets the SQL itself. Any other dialect (if supported) will be interpreted on an actual JDBC connection.
-
withInterpreterNameLookupCaseSensitivity 
public Settings withInterpreterNameLookupCaseSensitivity(InterpreterNameLookupCaseSensitivity value)
[#9633] The case sensitivity of identifiers used when interpreting SQL DDL statements.
-
withInterpreterLocale 
The Locale to be used with any interpreter locale dependent logic, defaulting to getLocale()
.
-
withInterpreterDelayForeignKeyDeclarations 
Using this flag, the interpreter will be able to delay the addition of foreign key declarations until the end of the interpretation run.
-
withMetaIncludeSystemIndexes 
The Meta
implementation that is backed by DatabaseMetaData
does not produce system generated indexes on constraints, by default.
-
withMetaIncludeSystemSequences 
The Meta
implementation that is backed by DatabaseMetaData
does not produce system generated sequences, by default.
-
withMigrationHistorySchema 
The database schema where the migration history is located.
-
withMigrationHistorySchemaCreateSchemaIfNotExists 
Whether getMigrationHistorySchema()
should be created if it doesn't exist.
-
withMigrationDefaultSchema 
The default schema whose unqualified objects that are included in the migration.
-
withMigrationSchemataCreateSchemaIfNotExists 
Whether getMigrationSchemata()
should be created if they don't exist.
-
withMigrationDefaultContentType 
The default ContentType
that is used when loading migrations.
-
withMigrationAllowUndo 
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 
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 
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 
Whether to automatically existing schemas that are not yet managed by jOOQ Migrations.
-
withMigrationAutoVerification 
Whether a migration automatically runs a verification first.
-
withMigrationIgnoreDefaultTimestampPrecisionDiffs 
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 
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 
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 
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 
[#7337] The input dialect that should be chosen to disambiguate ambiguous SQL syntax.
-
withParseLocale 
The Locale to be used with any parser locale dependent logic, defaulting to getLocale()
.
-
withParseDateFormat 
The date format to use when parsing functions whose behaviour depends on some session date format, such as NLS_DATE_FORMAT in Oracle
-
withParseTimestampFormat 
The timestamp format to use when parsing functions whose behaviour depends on some session date format, such as NLS_TIMESTAMP_FORMAT in Oracle
-
withParseNamedParamPrefix 
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 
[#7337] The default name case for parsed identifiers.
-
withParseWithMetaLookups 
[#7163] Whether the parser should perform meta lookups in the Configuration's MetaProvider.
-
withParseAppendMissingTableReferences 
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 
[#9780] Whether commands of the type SET key = value
should be parsed rather than ignored.
-
withParseUnsupportedSyntax 
[#5917] Whether the parser should accept unsupported (but known) syntax.
-
withParseUnknownFunctions 
[#7344] Whether the parser should accept unknown functions.
-
withParseIgnoreCommercialOnlyFeatures 
[#13109] Whether the parser of the jOOQ Open Source Edition should ignore commercial only features, rather than failing.
-
withParseIgnoreComments 
[#8325] Whether the parser should ignore content between ignore comment tokens.
-
withParseIgnoreCommentStart 
[#8325] The ignore comment start token
-
withParseIgnoreCommentStop 
[#8325] The ignore comment stop token
-
withParseRetainCommentsBetweenQueries 
[#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 
[#8469] Whether to parse default expressions retrieved from DatabaseMetaData
.
-
withParseMetaViewSources 
[#8469] Whether to parse view sources retrieved from DatabaseMetaData
.
-
withReadonlyTableRecordInsert 
[#9864] The behaviour when trying to insert into readonly columns using TableRecord.insert()
.
-
withReadonlyUpdatableRecordUpdate 
[#9864] The behaviour when trying to update a readonly column using UpdatableRecord.update()
.
-
withReadonlyInsert 
-
withReadonlyUpdate 
-
withApplyWorkaroundFor7962 
[#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys
-
withWarnOnStaticTypeRegistryAccess 
[#15286] The warning level when the deprecated static type registry was accessed by legacy code.
-
withInterpreterSearchPath 
-
withInterpreterSearchPath 
-
withInterpreterSearchPath 
-
withMigrationSchemata 
-
withMigrationSchemata 
-
withMigrationSchemata 
-
withParseSearchPath 
-
withParseSearchPath 
-
withParseSearchPath 
-
appendTo 
- Specified by:
appendTo
in interface XMLAppendable
-
toString 
-
equals 
-
hashCode 
public int hashCode()
-
clone 
RenderKeywordCase
instead.