- All Implemented Interfaces:
Serializable
,Cloneable
,XMLAppendable
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected Boolean
protected Boolean
protected BackslashEscaping
protected Integer
protected Boolean
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 ExecuteWithoutWhere
protected InvocationOrder
protected InvocationOrder
protected Boolean
protected Boolean
protected ExecuteWithoutWhere
protected Boolean
protected Boolean
protected FetchIntermediateResult
protected Integer
protected Integer
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 InvocationOrder
protected InvocationOrder
protected Boolean
protected List<MigrationSchema>
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 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 InvocationOrder
protected InvocationOrder
protected Boolean
protected Boolean
protected Boolean
protected RenderDefaultNullability
protected Boolean
protected RenderFormatting
protected Boolean
protected RenderImplicitJoinType
protected RenderImplicitWindowRange
protected RenderKeywordCase
protected RenderKeywordStyle
protected Locale
protected RenderMapping
protected RenderNameCase
protected String
protected RenderNameStyle
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
-
Constructor Summary
-
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 implementation of the ParsingConnection 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.The maximum number of allowed bind variables before inlining all values where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100[#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 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 @link
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()
.The order of invocation for [action]end() methods registeredRecordListener
s.The order of invocation for [action]start() methods registeredRecordListener
s.Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.All sorts of formatting flags / settings.The join type to be generated by implicit joins.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.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.[#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 @link
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.[#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.Fetch trigger values after SQL ServerOUTPUT
clause.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 theConstructorProperties
annotation should be considered by the DefaultRecordMapper.Whether JPA annotations should be considered by the DefaultRecordMapper.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 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 validation first.VariousmigrateTo()
methods (e.g.Whether migrations revert any untracked changes in the schemas that are being migrated.[#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
.[#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 stored function calls should be wrapped in scalar subqueries.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 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 implementation 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
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 @link
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
[#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 SQL ServerOUTPUT
clause.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.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100void
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 theConstructorProperties
annotation should be considered by the DefaultRecordMapper.void
setMapJPAAnnotations
(Boolean value) Whether JPA annotations should be considered by the DefaultRecordMapper.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
setMigrationAllowsUndo
(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 validation first.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
setNamePathSeparator
(String value) The character(s) to be used as a separator in paths encoded in ainvalid @link
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
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
The order of invocation for [action]end() methods registeredRecordListener
s.void
The order of invocation for [action]start() methods registeredRecordListener
s.void
setReflectionCaching
(Boolean value) Whether reflection information should be cached in the configuration.void
setRenderCatalog
(Boolean value) Whether any catalog name should be rendered at all.void
Whether stored function calls should be wrapped in scalar subqueries.void
Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.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.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 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.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 implementation 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.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 @link
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.[#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 SQL ServerOUTPUT
clause.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.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100withInListPadBase
(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 theConstructorProperties
annotation should be considered by the DefaultRecordMapper.withMapJPAAnnotations
(Boolean value) Whether JPA annotations should be considered by the DefaultRecordMapper.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.withMigrationAllowsUndo
(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 validation first.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) withNamePathSeparator
(String value) The character(s) to be used as a separator in paths encoded in ainvalid @link
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
.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()
.The order of invocation for [action]end() methods registeredRecordListener
s.The order of invocation for [action]start() methods registeredRecordListener
s.withReflectionCaching
(Boolean value) Whether reflection information should be cached in the configuration.withRenderCatalog
(Boolean value) Whether any catalog name should be rendered at all.Whether stored function calls should be wrapped in scalar subqueries.Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered.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.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 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.
-
Field Details
-
forceIntegerTypesOnZeroScaleDecimals
-
renderCatalog
-
renderSchema
-
renderTable
-
renderMapping
-
renderQuotedNames
-
renderNameCase
-
renderNameStyle
-
renderNamedParamPrefix
-
renderKeywordCase
-
renderKeywordStyle
-
renderLocale
-
renderFormatted
-
renderFormatting
-
renderOptionalAssociativityParentheses
-
renderOptionalAsKeywordForTableAliases
-
renderOptionalAsKeywordForFieldAliases
-
renderOptionalInnerKeyword
-
renderOptionalOuterKeyword
-
renderImplicitWindowRange
-
renderScalarSubqueriesForStoredFunctions
-
renderImplicitJoinType
-
renderDefaultNullability
-
renderCoalesceToEmptyStringInConcat
-
renderOrderByRownumberForEmulatedPagination
-
renderOutputForSQLServerReturningClause
-
renderGroupConcatMaxLenSessionVariable
-
renderParenthesisAroundSetOperationQueries
-
renderVariablesInDerivedTablesForEmulations
-
renderRowConditionForSeekClause
-
renderRedundantConditionForSeekClause
-
renderPlainSQLTemplatesAsRaw
-
namePathSeparator
-
bindOffsetDateTimeType
-
bindOffsetTimeType
-
fetchTriggerValuesAfterSQLServerOutput
-
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
-
updatablePrimaryKeys
-
reflectionCaching
-
cacheRecordMappers
-
cacheParsingConnection
-
cacheParsingConnectionLRUCacheSize
-
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
-
emulateComputedColumns
-
executeUpdateWithoutWhere
-
executeDeleteWithoutWhere
-
interpreterDialect
-
interpreterNameLookupCaseSensitivity
-
interpreterLocale
-
interpreterDelayForeignKeyDeclarations
-
metaIncludeSystemIndexes
-
metaIncludeSystemSequences
-
migrationAllowsUndo
-
migrationRevertUntracked
-
migrationAutoBaseline
-
migrationAutoValidation
-
migrationIgnoreDefaultTimestampPrecisionDiffs
-
locale
-
parseDialect
-
parseLocale
-
parseDateFormat
-
parseTimestampFormat
-
parseNamedParamPrefix
-
parseNameCase
-
parseWithMetaLookups
-
parseAppendMissingTableReferences
-
parseSetCommands
-
parseUnsupportedSyntax
-
parseUnknownFunctions
-
parseIgnoreCommercialOnlyFeatures
-
parseIgnoreComments
-
parseIgnoreCommentStart
-
parseIgnoreCommentStop
-
parseRetainCommentsBetweenQueries
-
parseMetaDefaultExpressions
-
readonlyTableRecordInsert
-
readonlyUpdatableRecordUpdate
-
readonlyInsert
-
readonlyUpdate
-
applyWorkaroundFor7962
-
interpreterSearchPath
-
migrationSchemata
-
parseSearchPath
-
-
Constructor Details
-
Settings
public Settings()
-
-
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 theMeta
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 theMeta
API. This flag allows for turning off this feature.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 isBoolean
-
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 theFROM
clause.RenderTable.WHEN_AMBIGUOUS_COLUMNS
: A much more expensive to compute option that checks theFROM
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 theFROM
clause.RenderTable.WHEN_AMBIGUOUS_COLUMNS
: A much more expensive to compute option that checks theFROM
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), notDSL.quotedName(String)
orDSL.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), notDSL.quotedName(String)
orDSL.unquotedName(String)
, whose behaviour cannot be overridden.This setting does not affect any plain SQL usage.
-
getRenderNameCase
Whether the case ofName
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 ofName
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] - UseRenderQuotedNames
andRenderNameCase
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] - UseRenderQuotedNames
andRenderNameCase
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 ofKeyword
references should be modified in any way. -
setRenderKeywordCase
Whether the case ofKeyword
references should be modified in any way. -
getRenderKeywordStyle
Deprecated.- 3.12.0 - [#5909] - UseRenderKeywordCase
instead.Whether the case ofKeyword
references should be modified in any way. -
setRenderKeywordStyle
Deprecated.- 3.12.0 - [#5909] - UseRenderKeywordCase
instead.Whether the case ofKeyword
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 togetLocale()
. -
setRenderLocale
The Locale to be used with any render locale dependent logic (as e.g. transforming names to lower / uppper case), defaulting togetLocale()
. -
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 isBoolean
-
getRenderFormatting
All sorts of formatting flags / settings. -
setRenderFormatting
All sorts of formatting flags / settings. -
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 optionalAS
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 optionalAS
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 optionalAS
keyword in table aliases, if it is optional in the output dialect. -
setRenderOptionalAsKeywordForFieldAliases
Whether to render the optionalAS
keyword in table aliases, if it is optional in the output dialect. -
getRenderOptionalInnerKeyword
Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect. -
setRenderOptionalInnerKeyword
Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect. -
getRenderOptionalOuterKeyword
Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect. -
setRenderOptionalOuterKeyword
Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect. -
getRenderImplicitWindowRange
Whether to render an explicit windowRANGE
clause when an implicit clause is applied. -
setRenderImplicitWindowRange
Whether to render an explicit windowRANGE
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 isBoolean
-
getRenderImplicitJoinType
The join type to be generated by implicit joins. -
setRenderImplicitJoinType
The join type to be generated by implicit joins. -
getRenderDefaultNullability
Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered. -
setRenderDefaultNullability
Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered. -
isRenderCoalesceToEmptyStringInConcat
Whether stored function calls should be wrapped in scalar subqueries.Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag set to true, users can automatically profit from this feature in all SQL statements.
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setRenderCoalesceToEmptyStringInConcat
Whether stored function calls should be wrapped in scalar subqueries.Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag set to true, users can automatically profit from this feature in all SQL statements.
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isRenderOrderByRownumberForEmulatedPagination
Whether an additionalORDER 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) orROW_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 excessORDER BY
clause may add some additional performance overhead. This setting forces jOOQ to not generate the additionalORDER BY
clause.For details, see https://github.com/jOOQ/jOOQ/issues/7609.
- Returns:
- possible object is
Boolean
-
setRenderOrderByRownumberForEmulatedPagination
Whether an additionalORDER 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) orROW_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 excessORDER BY
clause may add some additional performance overhead. This setting forces jOOQ to not generate the additionalORDER BY
clause.For details, see https://github.com/jOOQ/jOOQ/issues/7609.
- Parameters:
value
- allowed object isBoolean
-
isRenderOutputForSQLServerReturningClause
Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.SQL Server supports an
OUTPUT
clause in most DML statements, whose behaviour is almost identical toRETURNING
in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering thisOUTPUT
clause can deactivate this flag to revert to jOOQ callingjava.sql.Statement#getGeneratedKeys()
instead, which is only supported for single row inserts.This
OUTPUT
clause does not support fetching trigger generated values. In order to fetch trigger generated values,fetchTriggerValuesAfterSQLServerOutput
needs to be enabled as well.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
- Returns:
- possible object is
Boolean
-
setRenderOutputForSQLServerReturningClause
Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.SQL Server supports an
OUTPUT
clause in most DML statements, whose behaviour is almost identical toRETURNING
in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering thisOUTPUT
clause can deactivate this flag to revert to jOOQ callingjava.sql.Statement#getGeneratedKeys()
instead, which is only supported for single row inserts.This
OUTPUT
clause does not support fetching trigger generated values. In order to fetch trigger generated values,fetchTriggerValuesAfterSQLServerOutput
needs to be enabled as well.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
- Parameters:
value
- allowed object isBoolean
-
isRenderGroupConcatMaxLenSessionVariable
Whether the jOOQGROUP_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 theMULTISET
emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containingGROUP_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 jOOQGROUP_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 theMULTISET
emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containingGROUP_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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
isRenderRowConditionForSeekClause
Whether a(a, b) invalid input: '<' (:a, :b)
row predicate should be rendered for theSEEK
clause.Some RDBMS may support
(a, b) invalid input: '<' (:a, :b)
row predicate syntax, which is very convenient forSEEK
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 theSEEK
clause.Some RDBMS may support
(a, b) invalid input: '<' (:a, :b)
row predicate syntax, which is very convenient forSEEK
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 isBoolean
-
isRenderRedundantConditionForSeekClause
Whether a redundant(a invalid input: '<'= :a)
predicate should be rendered for a(a, b) invalid input: '<' (:a, :b)
predicate for theSEEK
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 theSEEK
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 isBoolean
-
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 isBoolean
-
getNamePathSeparator
The character(s) to be used as a separator in paths encoded in ainvalid @link
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 ainvalid @link
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 thejava.time
(JSR 310) typeOffsetDateTime
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 thejava.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 thejava.time
(JSR 310) typeOffsetDateTime
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 thejava.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 isBoolean
-
isBindOffsetTimeType
Whether thejava.time
(JSR 310) typeOffsetTime
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 thejava.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 thejava.time
(JSR 310) typeOffsetTime
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 thejava.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 isBoolean
-
isFetchTriggerValuesAfterSQLServerOutput
Fetch trigger values after SQL ServerOUTPUT
clause.SQL Server
OUTPUT
statements do not support fetching trigger generated values. This is a limitation of therenderOutputForSQLServerReturningClause
. An additionalMERGE
statement can run a second query if (and only if) the primary key has been included in theOUTPUT
clause.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
- Returns:
- possible object is
Boolean
-
setFetchTriggerValuesAfterSQLServerOutput
Fetch trigger values after SQL ServerOUTPUT
clause.SQL Server
OUTPUT
statements do not support fetching trigger generated values. This is a limitation of therenderOutputForSQLServerReturningClause
. An additionalMERGE
statement can run a second query if (and only if) the primary key has been included in theOUTPUT
clause.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
- Parameters:
value
- allowed object isBoolean
-
getFetchIntermediateResult
Whether to fetch data into intermediateResult
instances.By default, a
ResultQuery
produces no intermediateResult
instances if they are not explicitly requested by the caller, e.g. by callingResultQuery.fetch()
, or in the presence ofExecuteListener
instances, which may require access toExecuteContext.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 intermediateResult
instances.By default, a
ResultQuery
produces no intermediateResult
instances if they are not explicitly requested by the caller, e.g. by callingResultQuery.fetch()
, or in the presence ofExecuteListener
instances, which may require access toExecuteContext.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 theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsDuplicateStatementsUsingTransformPatterns
Whether to run theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
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 theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
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 isBoolean
-
isDiagnosticsMissingWasNullCall
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsRepeatedStatements
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsConsecutiveAggregation
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsConcatenationInPredicate
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsPossiblyWrongExpression
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsTooManyColumnsFetched
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsTooManyRowsFetched
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsUnnecessaryWasNullCall
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
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 thetransformPatterns
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 thetransformPatterns
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 isBoolean
-
isDiagnosticsTrivialCondition
Whether to run theDiagnosticsListener.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 theDiagnosticsListener.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 isBoolean
-
isDiagnosticsNullCondition
Whether to run theinvalid @link
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
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 theinvalid @link
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
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 isBoolean
-
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 isBoolean
-
isTransformPatternsLogging
Activate debug logging of thetransformPatterns
feature.- Returns:
- possible object is
Boolean
-
setTransformPatternsLogging
Activate debug logging of thetransformPatterns
feature.- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsUnnecessaryDistinct
TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.The
GROUP BY
clause already removes duplicates, so if theDISTINCT
clause contains at least all the columns fromGROUP 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
TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.The
GROUP BY
clause already removes duplicates, so if theDISTINCT
clause contains at least all the columns fromGROUP 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 isBoolean
-
isTransformPatternsUnnecessaryScalarSubquery
TransformSELECT (SELECT 1)
toSELECT 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
TransformSELECT (SELECT 1)
toSELECT 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 isBoolean
-
isTransformPatternsUnnecessaryInnerJoin
TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * 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
TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * 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 isBoolean
-
isTransformPatternsUnnecessaryGroupByExpressions
TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT 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
TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT 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 isBoolean
-
isTransformPatternsUnnecessaryOrderByExpressions
TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT 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
TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT 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 isBoolean
-
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 fewSELECT
clauses are meaningless, and can thus be removed. These include:SELECT
(any projection can be ignored)DISTINCT
ORDER BY
LIMIT
(exceptLIMIT 0
, in case of whichtransformPatternsTrivialPredicates
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 fewSELECT
clauses are meaningless, and can thus be removed. These include:SELECT
(any projection can be ignored)DISTINCT
ORDER BY
LIMIT
(exceptLIMIT 0
, in case of whichtransformPatternsTrivialPredicates
applies).
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCountConstant
TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.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
TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.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 isBoolean
-
isTransformPatternsTrim
TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.Historically, a few dialects did not implement
TRIM(x)
orTRIM(BOTH FROM x)
, so users worked around this by wrappingLTRIM()
andRTRIM()
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
TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.Historically, a few dialects did not implement
TRIM(x)
orTRIM(BOTH FROM x)
, so users worked around this by wrappingLTRIM()
andRTRIM()
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 isBoolean
-
isTransformPatternsNotAnd
TransformNOT(p AND q)
toNOT(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
TransformNOT(p AND q)
toNOT(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 isBoolean
-
isTransformPatternsNotOr
TransformNOT(p OR q)
toNOT(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
TransformNOT(p OR q)
toNOT(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 isBoolean
-
isTransformPatternsNotNot
TransformNOT(NOT(x))
tox
.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
TransformNOT(NOT(x))
tox
.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 isBoolean
-
isTransformPatternsNotComparison
TransformNOT (a != b)
toa = 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
TransformNOT (a != b)
toa = 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 isBoolean
-
isTransformPatternsNotNotDistinct
TransformNOT (a IS NOT DISTINCT FROM b)
toa 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
TransformNOT (a IS NOT DISTINCT FROM b)
toa 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 isBoolean
-
isTransformPatternsDistinctFromNull
Transforma IS [ NOT ] DISTINCT FROM NULL
toa 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
Transforma IS [ NOT ] DISTINCT FROM NULL
toa 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 isBoolean
-
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 isBoolean
-
isTransformPatternsNormaliseInListSingleElementToComparison
Transformx IN (a)
tox = a
andx NOT IN (a)
tox != 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
Transformx IN (a)
tox = a
andx NOT IN (a)
tox != a
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsNormaliseFieldCompareValue
Transform1 = a
toa = 1
.This transformation inverses
invalid @link
TableField
invalid @link
org.jooq.impl.QOM.Val
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
Transform1 = a
toa = 1
.This transformation inverses
invalid @link
TableField
invalid @link
org.jooq.impl.QOM.Val
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsNormaliseCoalesceToNvl
Transform 2 argumentCOALESCE(a, b)
toNVL(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 argumentCOALESCE(a, b)
toNVL(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 isBoolean
-
isTransformPatternsOrEqToIn
Transformx = c1 OR x = c2
tox IN (c1, c2)
.This transformation simplifies verbose
OR
predicates into simplerIN
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
Transformx = c1 OR x = c2
tox IN (c1, c2)
.This transformation simplifies verbose
OR
predicates into simplerIN
predicates.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsAndNeToNotIn
Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.This transformation simplifies verbose
AND
predicates into simplerNOT 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
Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.This transformation simplifies verbose
AND
predicates into simplerNOT 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 isBoolean
-
isTransformPatternsMergeOrComparison
Transformx = a OR x > a
tox >= 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
Transformx = a OR x > a
tox >= 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 isBoolean
-
isTransformPatternsMergeAndComparison
Transformx >= a AND x invalid input: '<'= a
tox = 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
Transformx >= a AND x invalid input: '<'= a
tox = 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 isBoolean
-
isTransformPatternsMergeInLists
Transformx IN (a, b, c) AND x IN (b, c, d)
tox 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
Transformx IN (a, b, c) AND x IN (b, c, d)
tox 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 isBoolean
-
isTransformPatternsMergeRangePredicates
Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.This transformation merges multiple
AND
connected range predicates to a single comparison usingBETWEEN
.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
Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.This transformation merges multiple
AND
connected range predicates to a single comparison usingBETWEEN
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsMergeBetweenSymmetricPredicates
Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.This transformation merges multiple
OR
connectedBETWEEN
predicates to a single comparison usingBETWEEN 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
Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.This transformation merges multiple
OR
connectedBETWEEN
predicates to a single comparison usingBETWEEN SYMMETRIC
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseSearchedToCaseSimple
Transform a searchedCASE WHEN x = .. WHEN x = ..
to a simpleCASE 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 simpleCASE
expression.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseSearchedToCaseSimple
Transform a searchedCASE WHEN x = .. WHEN x = ..
to a simpleCASE 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 simpleCASE
expression.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseElseNull
TransformCASE … ELSE NULL
removing theELSE
clause.CASE WHEN x THEN y ELSE NULL END
is equivalent toCASE WHEN x THEN y END
.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseElseNull
TransformCASE … ELSE NULL
removing theELSE
clause.CASE WHEN x THEN y ELSE NULL END
is equivalent toCASE WHEN x THEN y END
.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsUnreachableCaseClauses
TransformCASE
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 toCASE WHEN p THEN 1 ELSE 2 END
CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END
is equivalent toCASE WHEN p THEN 1 WHEN q … ELSE … END
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsUnreachableCaseClauses
TransformCASE
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 toCASE WHEN p THEN 1 ELSE 2 END
CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END
is equivalent toCASE WHEN p THEN 1 WHEN q … ELSE … END
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsUnreachableDecodeClauses
TransformDECODE
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 toDECODE(a, b, 1, c, 2)
DECODE(a, b, 1, c, 2, b, 3, 4)
is equivalent toDECODE(a, b, 1, c, 2, 4)
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsUnreachableDecodeClauses
TransformDECODE
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 toDECODE(a, b, 1, c, 2)
DECODE(a, b, 1, c, 2, b, 3, 4)
is equivalent toDECODE(a, b, 1, c, 2, 4)
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseDistinctToDecode
TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.When all
WHEN
clauses of aCASE
expression use theDISTINCT
predicate, then theCASE
expression can be transformed into aDECODE
function call:CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END
is equivalent toDECODE(a, b, 1)
CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END
is equivalent toDECODE(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 toDECODE(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 toDECODE(a, b, 1, c, 2, 3)
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseDistinctToDecode
TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.When all
WHEN
clauses of aCASE
expression use theDISTINCT
predicate, then theCASE
expression can be transformed into aDECODE
function call:CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END
is equivalent toDECODE(a, b, 1)
CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END
is equivalent toDECODE(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 toDECODE(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 toDECODE(a, b, 1, c, 2, 3)
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseMergeWhenWhen
TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.Two consecutive
WHEN
clauses can be merged, if their respectiveTHEN
clause is identical.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseMergeWhenWhen
TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.Two consecutive
WHEN
clauses can be merged, if their respectiveTHEN
clause is identical.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseMergeWhenElse
TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.The ultimate
WHEN
clause can be merged with theELSE
, if their respective result is identical. If theWHEN
clause is the onlyWHEN
clause, then the entireCASE
expression can be replaced by theELSE
clause content.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseMergeWhenElse
TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.The ultimate
WHEN
clause can be merged with theELSE
, if their respective result is identical. If theWHEN
clause is the onlyWHEN
clause, then the entireCASE
expression can be replaced by theELSE
clause content.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsCaseToCaseAbbreviation
TransformCASE
expressions to their respective abbreviations.Some
CASE
expressions have a shorter abbreviated form, such asCOALESCE()
orNULLIF()
.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsCaseToCaseAbbreviation
TransformCASE
expressions to their respective abbreviations.Some
CASE
expressions have a shorter abbreviated form, such asCOALESCE()
orNULLIF()
.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsSimplifyCaseAbbreviation
Transform complex predicates into simplerCASE
abbreviations.Some predicates can be simplified into case abbreviations, such as, for example
a IS NULL OR COALESCE(a = b, FALSE)
toNULLIF(a, b) IS NULL
a IS NOT NULL AND COALESCE(a != b, TRUE)
toNULLIF(a, b) IS NOT NULL
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsSimplifyCaseAbbreviation
Transform complex predicates into simplerCASE
abbreviations.Some predicates can be simplified into case abbreviations, such as, for example
a IS NULL OR COALESCE(a = b, FALSE)
toNULLIF(a, b) IS NULL
a IS NOT NULL AND COALESCE(a != b, TRUE)
toNULLIF(a, b) IS NOT NULL
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsFlattenCaseAbbreviation
Flatten nestedCASE
abbreviations such asNVL
orCASE
.Nested
CASE
abbreviations can be flattened, as such:NVL(NVL(a, b), c)
toCOALESCE(a, b, c)
COALESCE(a, ..., COALESCE(b, ..., c), ..., d)
toCOALESCE(a, …, b, …, c, ..., d)
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsFlattenCaseAbbreviation
Flatten nestedCASE
abbreviations such asNVL
orCASE
.Nested
CASE
abbreviations can be flattened, as such:NVL(NVL(a, b), c)
toCOALESCE(a, b, c)
COALESCE(a, ..., COALESCE(b, ..., c), ..., d)
toCOALESCE(a, …, b, …, c, ..., d)
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsFlattenDecode
Flatten nestedDECODE
functions.Nested
DECODE
functions can be flattened, as such:DECODE(a, b, c, DECODE(a, d, e))
toDECODE(a, b, c, d, e)
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsFlattenDecode
Flatten nestedDECODE
functions.Nested
DECODE
functions can be flattened, as such:DECODE(a, b, c, DECODE(a, d, e))
toDECODE(a, b, c, d, e)
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsFlattenCase
TransformCASE … ELSE CASE …
by flattening the nestedCASE
.CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END
is equivalent toCASE WHEN a THEN b WHEN c THEN d END
.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsFlattenCase
TransformCASE … ELSE CASE …
by flattening the nestedCASE
.CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END
is equivalent toCASE WHEN a THEN b WHEN c THEN d END
.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsTrivialCaseAbbreviation
Transform trivial case abbreviations likeNVL(NULL, a)
toa
.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 likeNVL(NULL, a)
toa
.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 isBoolean
-
isTransformPatternsTrivialPredicates
Transform trivial predicates like1 = 1
toTRUE
.This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsTrivialPredicates
Transform trivial predicates like1 = 1
toTRUE
.This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsTrivialBitwiseOperations
Transform trivial bitwise comparisons likeBIT_OR(a, 0)
toa
.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 likeBIT_OR(a, 0)
toa
.This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsBitSet
Transform bitwise operations to an equivalentBIT_SET(a, b)
orBIT_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 equivalentBIT_SET(a, b)
orBIT_SET(a, b, c)
expression.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsBitGet
Transform bitwise operations to an equivalentBIT_GET(a, b)
expression.This feature is available in the commercial distribution only.
- Returns:
- possible object is
Boolean
-
setTransformPatternsBitGet
Transform bitwise operations to an equivalentBIT_GET(a, b)
expression.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsScalarSubqueryCountAsteriskGtZero
Transform predicates comparing scalar subqueries with a count(SELECT COUNT(*) …) > 0
to equivalentEXISTS (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 equivalentEXISTS (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 isBoolean
-
isTransformPatternsScalarSubqueryCountExpressionGtZero
Transform predicates comparing scalar subqueries with a count(SELECT COUNT(expr) …) > 0
to equivalentEXISTS (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 equivalentEXISTS (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 isBoolean
-
isTransformPatternsEmptyScalarSubquery
Transform empty scalar subqueries like(SELECT 1 WHERE FALSE)
toNULL
.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)
toNULL
.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 isBoolean
-
isTransformPatternsNegNeg
Transform-(-(x))
tox
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))
tox
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 isBoolean
-
isTransformPatternsBitNotBitNot
Transform~(~(x))
tox
.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))
tox
.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 isBoolean
-
isTransformPatternsBitNotBitNand
Transform~(bitnand(x, y))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(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))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(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 isBoolean
-
isTransformPatternsBitNotBitNor
Transform~(bitnor(x, y))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(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))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(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 isBoolean
-
isTransformPatternsBitNotBitXNor
Transform~(bitxnor(x, y))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(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))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(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 isBoolean
-
isTransformPatternsNullOnNullInput
Any {org.jooq.impl.QOM.UReturnsNullOnNullInput} function or expression withNULL
arguments can be replaced byNULL
.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 withNULL
arguments can be replaced byNULL
.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 isBoolean
-
isTransformPatternsIdempotentFunctionRepetition
Transform all repetitions of idempotent functions, such asUPPER(UPPER(s))
toUPPER(s)
.Idempotent functions that are covered so far, include:
LTRIM(LTRIM(s))
toLTRIM(s)
LTRIM(TRIM(s))
toTRIM(s)
RTRIM(RTRIM(s))
toRTRIM(s)
RTRIM(TRIM(s))
toTRIM(s)
TRIM(LTRIM(s))
toTRIM(s)
TRIM(RTRIM(s))
toTRIM(s)
UPPER(UPPER(s))
toUPPER(s)
LOWER(LOWER(s))
toLOWER(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 asUPPER(UPPER(s))
toUPPER(s)
.Idempotent functions that are covered so far, include:
LTRIM(LTRIM(s))
toLTRIM(s)
LTRIM(TRIM(s))
toTRIM(s)
RTRIM(RTRIM(s))
toRTRIM(s)
RTRIM(TRIM(s))
toTRIM(s)
TRIM(LTRIM(s))
toTRIM(s)
TRIM(RTRIM(s))
toTRIM(s)
UPPER(UPPER(s))
toUPPER(s)
LOWER(LOWER(s))
toLOWER(s)
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
- Parameters:
value
- allowed object isBoolean
-
isTransformPatternsArithmeticComparisons
Transforma + 1 = 2
toa = 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
Transforma + 1 = 2
toa = 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 isBoolean
-
isTransformPatternsArithmeticExpressions
Transform1 / y * x
tox / 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
Transform1 / y * x
tox / 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 isBoolean
-
isTransformPatternsTrigonometricFunctions
TransformSIN(x) / COS(x)
toTAN(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
TransformSIN(x) / COS(x)
toTAN(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 isBoolean
-
isTransformPatternsLogarithmicFunctions
TransformLN(value) / LN(base)
toLOG(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
TransformLN(value) / LN(base)
toLOG(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 isBoolean
-
isTransformPatternsHyperbolicFunctions
Transform(EXP(x) - EXP(-x)) / 2
toSINH(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
toSINH(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 isBoolean
-
isTransformPatternsInverseHyperbolicFunctions
TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(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
TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(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 isBoolean
-
isTransformInlineBindValuesForFieldComparisons
TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchHistorically, 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
TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchHistorically, 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 isBoolean
-
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 isBoolean
-
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 theQUALIFY
clause to an equivalent derived table to filter on window functions.This feature is available in the commercial distribution only.
-
setTransformQualify
Transform theQUALIFY
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 isBoolean
-
getTransformRownum
TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_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 orROW_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
TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_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 orROW_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
TransformGROUP 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 theGROUP BY
clause.This feature is available in the commercial distribution only.
-
setTransformGroupByColumnIndex
TransformGROUP 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 theGROUP BY
clause.This feature is available in the commercial distribution only.
-
getTransformInlineCTE
Transform Common Table Expressions (CTE) by inlining theirWITH
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 theirWITH
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 where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100
-
setInlineThreshold
The maximum number of allowed bind variables before inlining all values where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100
-
getTransactionListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredTransactionListener
s. -
setTransactionListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredTransactionListener
s. -
getTransactionListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredTransactionListener
s. -
setTransactionListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredTransactionListener
s. -
getMigrationListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredMigrationListener
s. -
setMigrationListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredMigrationListener
s. -
getMigrationListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredMigrationListener
s. -
setMigrationListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredMigrationListener
s. -
getVisitListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredVisitListener
s. -
setVisitListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredVisitListener
s. -
getVisitListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredVisitListener
s. -
setVisitListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredVisitListener
s. -
getRecordListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredRecordListener
s. -
setRecordListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredRecordListener
s. -
getRecordListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredRecordListener
s. -
setRecordListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredRecordListener
s. -
getExecuteListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredExecuteListener
s. -
setExecuteListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredExecuteListener
s. -
getExecuteListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredExecuteListener
s. -
setExecuteListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredExecuteListener
s. -
isExecuteLogging
When set to true, this will add jOOQ's defaultLoggerListener
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 defaultLoggerListener
for debug logging. This is meant for use in development only.- Parameters:
value
- allowed object isBoolean
-
isExecuteLoggingSQLExceptions
[#14420] Whether constraint violations and otherSQLException
should produce additional log information about the column name and data causing the problem. UnlikeexecuteLogging
, 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 otherSQLException
should produce additional log information about the column name and data causing the problem. UnlikeexecuteLogging
, this is meant for use in production as well as development. This feature is available only in commercial distributions.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
getDiagnosticsConnection
Whether to activate the DiagnosticsConnection, explicit byDEFAULT
, implicit ifON
, or turnedOFF
entirely. -
setDiagnosticsConnection
Whether to activate the DiagnosticsConnection, explicit byDEFAULT
, implicit ifON
, or turnedOFF
entirely. -
isUpdateRecordVersion
Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
.- Returns:
- possible object is
Boolean
-
setUpdateRecordVersion
Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
.- Parameters:
value
- allowed object isBoolean
-
isUpdateRecordTimestamp
Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
.- Returns:
- possible object is
Boolean
-
setUpdateRecordTimestamp
Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
isInsertUnchangedRecords
WhetherTableRecord.insert()
calls should be executed if the record is unchanged. This also affects theINSERT
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls.- Returns:
- possible object is
Boolean
-
setInsertUnchangedRecords
WhetherTableRecord.insert()
calls should be executed if the record is unchanged. This also affects theINSERT
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls.- Parameters:
value
- allowed object isBoolean
-
getUpdateUnchangedRecords
WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged. This also affects theUPDATE
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls. -
setUpdateUnchangedRecords
WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged. This also affects theUPDATE
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls. -
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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
getCacheParsingConnectionLRUCacheSize
The default implementation of the ParsingConnection cache's LRU cache size. -
setCacheParsingConnectionLRUCacheSize
The default implementation of the ParsingConnection cache's LRU cache size. -
isCachePreparedStatementInLoader
Whether JDBCPreparedStatement
instances should be cached in loader API.- Returns:
- possible object is
Boolean
-
setCachePreparedStatementInLoader
Whether JDBCPreparedStatement
instances should be cached in loader API.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 isBoolean
-
isReturnDefaultOnUpdatableRecord
Whether calls to store(), insert() and update() should return values for columns that areDataType.defaulted()
.- Returns:
- possible object is
Boolean
-
setReturnDefaultOnUpdatableRecord
Whether calls to store(), insert() and update() should return values for columns that areDataType.defaulted()
.- Parameters:
value
- allowed object isBoolean
-
isReturnComputedOnUpdatableRecord
Whether calls to store(), insert() and update() should return values for columns that areDataType.computed()
.- Returns:
- possible object is
Boolean
-
setReturnComputedOnUpdatableRecord
Whether calls to store(), insert() and update() should return values for columns that areDataType.computed()
.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 ifreturnAllOnUpdatableRecord
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 ifreturnAllOnUpdatableRecord
is active, also other values.- Parameters:
value
- allowed object isBoolean
-
isMapJPAAnnotations
Whether JPA annotations should be considered by the DefaultRecordMapper.- Returns:
- possible object is
Boolean
-
setMapJPAAnnotations
Whether JPA annotations should be considered by the DefaultRecordMapper.- Parameters:
value
- allowed object isBoolean
-
isMapRecordComponentParameterNames
Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper.- Returns:
- possible object is
Boolean
-
setMapRecordComponentParameterNames
Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper.- Parameters:
value
- allowed object isBoolean
-
isMapConstructorPropertiesParameterNames
Whether constructor parameter names obtained from theConstructorProperties
annotation should be considered by the DefaultRecordMapper.- Returns:
- possible object is
Boolean
-
setMapConstructorPropertiesParameterNames
Whether constructor parameter names obtained from theConstructorProperties
annotation should be considered by the DefaultRecordMapper.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 isBoolean
-
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 createdBatchedConnection
instances. -
setBatchSize
A property specifying a batch size that should be applied to all automatically createdBatchedConnection
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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
getEmulateMultiset
[#3884] HowMULTISET
support should be emulated. -
setEmulateMultiset
[#3884] HowMULTISET
support should be emulated. -
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 isBoolean
-
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 togetLocale()
. -
setInterpreterLocale
The Locale to be used with any interpreter locale dependent logic, defaulting togetLocale()
. -
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 isBoolean
-
isMetaIncludeSystemIndexes
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default.- Returns:
- possible object is
Boolean
-
setMetaIncludeSystemIndexes
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default.- Parameters:
value
- allowed object isBoolean
-
isMetaIncludeSystemSequences
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default.- Returns:
- possible object is
Boolean
-
setMetaIncludeSystemSequences
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default.- Parameters:
value
- allowed object isBoolean
-
isMigrationAllowsUndo
Whether migrations are allowed to be executed in inverse order.This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly switch between branches in a development environment. This feature is available only in commercial distributions.
- Returns:
- possible object is
Boolean
-
setMigrationAllowsUndo
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 isBoolean
-
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 isBoolean
-
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 isBoolean
-
isMigrationAutoValidation
Whether a migration automatically runs a validation first.- Returns:
- possible object is
Boolean
-
setMigrationAutoValidation
Whether a migration automatically runs a validation first.- Parameters:
value
- allowed object isBoolean
-
isMigrationIgnoreDefaultTimestampPrecisionDiffs
VariousmigrateTo()
methods (e.g.Meta.migrateTo(org.jooq.Meta)
) ignore the difference betweenTIMESTAMP
andTIMESTAMP(6)
, if 6 is the default precision for timestamps on the configured dialect.- Returns:
- possible object is
Boolean
-
setMigrationIgnoreDefaultTimestampPrecisionDiffs
VariousmigrateTo()
methods (e.g.Meta.migrateTo(org.jooq.Meta)
) ignore the difference betweenTIMESTAMP
andTIMESTAMP(6)
, if 6 is the default precision for timestamps on the configured dialect.- Parameters:
value
- allowed object isBoolean
-
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()
, orgetInterpreterLocale()
. -
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()
, orgetInterpreterLocale()
. -
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 togetLocale()
. -
setParseLocale
The Locale to be used with any parser locale dependent logic, defaulting togetLocale()
. -
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'sFROM
orUSING
clause, if applicable.Teradata (and possibly others) allow for referencing tables that are not listed in the
FROM
clause, such asSELECT t.* FROM t WHERE t.i = u.i
. This transformation is executed in the parser, to produceSELECT 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'sFROM
orUSING
clause, if applicable.Teradata (and possibly others) allow for referencing tables that are not listed in the
FROM
clause, such asSELECT t.* FROM t WHERE t.i = u.i
. This transformation is executed in the parser, to produceSELECT 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 typeSET key = value
should be parsed rather than ignored.- Returns:
- possible object is
Boolean
-
setParseSetCommands
[#9780] Whether commands of the typeSET key = value
should be parsed rather than ignored.- Parameters:
value
- allowed object isBoolean
-
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 isBoolean
-
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 isBoolean
-
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 throughParser.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 throughParser.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 isBoolean
-
isParseMetaDefaultExpressions
[#8469] Whether to parse default expressions retrieved fromDatabaseMetaData
.- Returns:
- possible object is
Boolean
-
setParseMetaDefaultExpressions
[#8469] Whether to parse default expressions retrieved fromDatabaseMetaData
.- Parameters:
value
- allowed object isBoolean
-
getReadonlyTableRecordInsert
[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
. -
setReadonlyTableRecordInsert
[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
. -
getReadonlyUpdatableRecordUpdate
[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.update()
. -
setReadonlyUpdatableRecordUpdate
[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.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 isBoolean
-
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 theMeta
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 theFROM
clause.RenderTable.WHEN_AMBIGUOUS_COLUMNS
: A much more expensive to compute option that checks theFROM
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), notDSL.quotedName(String)
orDSL.unquotedName(String)
, whose behaviour cannot be overridden.This setting does not affect any plain SQL usage.
-
withRenderNameCase
Whether the case ofName
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] - UseRenderQuotedNames
andRenderNameCase
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 ofKeyword
references should be modified in any way. -
withRenderKeywordStyle
Deprecated.- 3.12.0 - [#5909] - UseRenderKeywordCase
instead.Whether the case ofKeyword
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 togetLocale()
. -
withRenderFormatted
Whether rendered SQL should be pretty-printed. -
withRenderFormatting
All sorts of formatting flags / settings. -
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 optionalAS
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 optionalAS
keyword in table aliases, if it is optional in the output dialect. -
withRenderOptionalInnerKeyword
Whether to render the optionalINNER
keyword inINNER JOIN
, if it is optional in the output dialect. -
withRenderOptionalOuterKeyword
Whether to render the optionalOUTER
keyword inOUTER JOIN
, if it is optional in the output dialect. -
withRenderImplicitWindowRange
Whether to render an explicit windowRANGE
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. -
withRenderDefaultNullability
Whether theNullability.DEFAULT
nullablity should be rendered in generated DDL, and how it should be rendered. -
withRenderCoalesceToEmptyStringInConcat
Whether stored function calls should be wrapped in scalar subqueries.Oracle 11g (and potentially, other databases too) implements scalar subquery caching. With this flag set to true, users can automatically profit from this feature in all SQL statements.
This feature is available in the commercial distribution only.
-
withRenderOrderByRownumberForEmulatedPagination
Whether an additionalORDER 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) orROW_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 excessORDER BY
clause may add some additional performance overhead. This setting forces jOOQ to not generate the additionalORDER BY
clause.For details, see https://github.com/jOOQ/jOOQ/issues/7609.
-
withRenderOutputForSQLServerReturningClause
Whether the jOOQRETURNING
clause should map to SQL Server'sOUTPUT
clause.SQL Server supports an
OUTPUT
clause in most DML statements, whose behaviour is almost identical toRETURNING
in Firebird, Oracle, PostgreSQL. Users who want to prevent jOOQ from rendering thisOUTPUT
clause can deactivate this flag to revert to jOOQ callingjava.sql.Statement#getGeneratedKeys()
instead, which is only supported for single row inserts.This
OUTPUT
clause does not support fetching trigger generated values. In order to fetch trigger generated values,fetchTriggerValuesAfterSQLServerOutput
needs to be enabled as well.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
-
withRenderGroupConcatMaxLenSessionVariable
Whether the jOOQGROUP_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 theMULTISET
emulation. By default, jOOQ sets a session variable to the highest possible value prior to executing a query containingGROUP_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 theSEEK
clause.Some RDBMS may support
(a, b) invalid input: '<' (:a, :b)
row predicate syntax, which is very convenient forSEEK
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 theSEEK
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. -
withNamePathSeparator
The character(s) to be used as a separator in paths encoded in ainvalid @link
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 thejava.time
(JSR 310) typeOffsetDateTime
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 thejava.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 thejava.time
(JSR 310) typeOffsetTime
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 thejava.time
types. Using them may produce better performance both on the server and on the client side.This flag allows for reverting to pre-jOOQ 3.14 behaviour, where the default is to bind these types natively.
For details, see https://github.com/jOOQ/jOOQ/issues/9902.
-
withFetchTriggerValuesAfterSQLServerOutput
Fetch trigger values after SQL ServerOUTPUT
clause.SQL Server
OUTPUT
statements do not support fetching trigger generated values. This is a limitation of therenderOutputForSQLServerReturningClause
. An additionalMERGE
statement can run a second query if (and only if) the primary key has been included in theOUTPUT
clause.For details, see https://github.com/jOOQ/jOOQ/issues/4498.
-
withFetchIntermediateResult
Whether to fetch data into intermediateResult
instances.By default, a
ResultQuery
produces no intermediateResult
instances if they are not explicitly requested by the caller, e.g. by callingResultQuery.fetch()
, or in the presence ofExecuteListener
instances, which may require access toExecuteContext.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 theDiagnosticsListener.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 theDiagnosticsListener.duplicateStatements(org.jooq.DiagnosticsContext)
diagnostic with thetransformPatterns
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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 theDiagnosticsListener.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 thetransformPatterns
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 theDiagnosticsListener.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 theinvalid @link
org.jooq.DiagnosticsListener#nullConditoin(org.jooq.DiagnosticsContext)
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 thetransformPatterns
feature. -
withTransformPatternsUnnecessaryDistinct
TransformSELECT DISTINCT a, b FROM t GROUP BY a, b
toSELECT a, b FROM t GROUP BY a, b
.The
GROUP BY
clause already removes duplicates, so if theDISTINCT
clause contains at least all the columns fromGROUP 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
TransformSELECT (SELECT 1)
toSELECT 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
TransformSELECT * FROM t INNER JOIN u ON TRUE
toSELECT * 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
TransformSELECT a, b FROM t GROUP BY a, a, b
toSELECT 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
TransformSELECT a, b FROM t ORDER BY a, a, b
toSELECT 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 fewSELECT
clauses are meaningless, and can thus be removed. These include:SELECT
(any projection can be ignored)DISTINCT
ORDER BY
LIMIT
(exceptLIMIT 0
, in case of whichtransformPatternsTrivialPredicates
applies).
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsCountConstant
TransformCOUNT(1)
or any otherCOUNT(const)
toCOUNT(*)
.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
TransformLTRIM(RTRIM(x))
orRTRIM(LTRIM(x))
toTRIM(x)
.Historically, a few dialects did not implement
TRIM(x)
orTRIM(BOTH FROM x)
, so users worked around this by wrappingLTRIM()
andRTRIM()
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
TransformNOT(p AND q)
toNOT(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
TransformNOT(p OR q)
toNOT(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
TransformNOT(NOT(x))
tox
.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
TransformNOT (a != b)
toa = 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
TransformNOT (a IS NOT DISTINCT FROM b)
toa 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
Transforma IS [ NOT ] DISTINCT FROM NULL
toa 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
Transformx IN (a)
tox = a
andx NOT IN (a)
tox != a
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsNormaliseFieldCompareValue
Transform1 = a
toa = 1
.This transformation inverses
invalid @link
TableField
invalid @link
org.jooq.impl.QOM.Val
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsNormaliseCoalesceToNvl
Transform 2 argumentCOALESCE(a, b)
toNVL(a, b)
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsOrEqToIn
Transformx = c1 OR x = c2
tox IN (c1, c2)
.This transformation simplifies verbose
OR
predicates into simplerIN
predicates.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsAndNeToNotIn
Transformx != c1 AND x != c2
tox NOT IN (c1, c2)
.This transformation simplifies verbose
AND
predicates into simplerNOT IN
predicates.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsMergeOrComparison
Transformx = a OR x > a
tox >= 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
Transformx >= a AND x invalid input: '<'= a
tox = 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
Transformx IN (a, b, c) AND x IN (b, c, d)
tox 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
Transformx >= a AND x invalid input: '<'= b
tox BETWEEN a AND b
.This transformation merges multiple
AND
connected range predicates to a single comparison usingBETWEEN
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsMergeBetweenSymmetricPredicates
Transformx BETWEEN a AND b OR x BETWEEN b AND a
tox BETWEEN SYMMETRIC a AND b
.This transformation merges multiple
OR
connectedBETWEEN
predicates to a single comparison usingBETWEEN SYMMETRIC
.To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsCaseSearchedToCaseSimple
Transform a searchedCASE WHEN x = .. WHEN x = ..
to a simpleCASE 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 simpleCASE
expression.This feature is available in the commercial distribution only.
-
withTransformPatternsCaseElseNull
TransformCASE … ELSE NULL
removing theELSE
clause.CASE WHEN x THEN y ELSE NULL END
is equivalent toCASE WHEN x THEN y END
.This feature is available in the commercial distribution only.
-
withTransformPatternsUnreachableCaseClauses
TransformCASE
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 toCASE WHEN p THEN 1 ELSE 2 END
CASE WHEN p THEN 1 WHEN FALSE THEN 2 WHEN q .. ELSE .. END
is equivalent toCASE WHEN p THEN 1 WHEN q … ELSE … END
This feature is available in the commercial distribution only.
-
withTransformPatternsUnreachableDecodeClauses
TransformDECODE
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 toDECODE(a, b, 1, c, 2)
DECODE(a, b, 1, c, 2, b, 3, 4)
is equivalent toDECODE(a, b, 1, c, 2, 4)
This feature is available in the commercial distribution only.
-
withTransformPatternsCaseDistinctToDecode
TransformCASE WHEN a IS NOT DISTINCT FROM b …
to an equivalentDECODE
function.When all
WHEN
clauses of aCASE
expression use theDISTINCT
predicate, then theCASE
expression can be transformed into aDECODE
function call:CASE WHEN a IS NOT DISTINCT FROM b THEN 1 END
is equivalent toDECODE(a, b, 1)
CASE WHEN a IS NOT DISTINCT FROM b THEN 1 ELSE 2 END
is equivalent toDECODE(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 toDECODE(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 toDECODE(a, b, 1, c, 2, 3)
This feature is available in the commercial distribution only.
-
withTransformPatternsCaseMergeWhenWhen
TransformCASE WHEN a THEN x WHEN b THEN x END
toCASE WHEN a OR b THEN x END
.Two consecutive
WHEN
clauses can be merged, if their respectiveTHEN
clause is identical.This feature is available in the commercial distribution only.
-
withTransformPatternsCaseMergeWhenElse
TransformCASE WHEN a THEN x WHEN b THEN y ELSE y END
toCASE WHEN a THEN x ELSE y END
.The ultimate
WHEN
clause can be merged with theELSE
, if their respective result is identical. If theWHEN
clause is the onlyWHEN
clause, then the entireCASE
expression can be replaced by theELSE
clause content.This feature is available in the commercial distribution only.
-
withTransformPatternsCaseToCaseAbbreviation
TransformCASE
expressions to their respective abbreviations.Some
CASE
expressions have a shorter abbreviated form, such asCOALESCE()
orNULLIF()
.This feature is available in the commercial distribution only.
-
withTransformPatternsSimplifyCaseAbbreviation
Transform complex predicates into simplerCASE
abbreviations.Some predicates can be simplified into case abbreviations, such as, for example
a IS NULL OR COALESCE(a = b, FALSE)
toNULLIF(a, b) IS NULL
a IS NOT NULL AND COALESCE(a != b, TRUE)
toNULLIF(a, b) IS NOT NULL
This feature is available in the commercial distribution only.
-
withTransformPatternsFlattenCaseAbbreviation
Flatten nestedCASE
abbreviations such asNVL
orCASE
.Nested
CASE
abbreviations can be flattened, as such:NVL(NVL(a, b), c)
toCOALESCE(a, b, c)
COALESCE(a, ..., COALESCE(b, ..., c), ..., d)
toCOALESCE(a, …, b, …, c, ..., d)
This feature is available in the commercial distribution only.
-
withTransformPatternsFlattenDecode
Flatten nestedDECODE
functions.Nested
DECODE
functions can be flattened, as such:DECODE(a, b, c, DECODE(a, d, e))
toDECODE(a, b, c, d, e)
This feature is available in the commercial distribution only.
-
withTransformPatternsFlattenCase
TransformCASE … ELSE CASE …
by flattening the nestedCASE
.CASE WHEN a THEN b ELSE CASE WHEN c THEN d END END
is equivalent toCASE WHEN a THEN b WHEN c THEN d END
.This feature is available in the commercial distribution only.
-
withTransformPatternsTrivialCaseAbbreviation
Transform trivial case abbreviations likeNVL(NULL, a)
toa
.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 like1 = 1
toTRUE
.This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
-
withTransformPatternsTrivialBitwiseOperations
Transform trivial bitwise comparisons likeBIT_OR(a, 0)
toa
.This transformation removes any trivial predicates.
This feature is available in the commercial distribution only.
-
withTransformPatternsBitSet
Transform bitwise operations to an equivalentBIT_SET(a, b)
orBIT_SET(a, b, c)
expression.This feature is available in the commercial distribution only.
-
withTransformPatternsBitGet
Transform bitwise operations to an equivalentBIT_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 equivalentEXISTS (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 equivalentEXISTS (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)
toNULL
.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))
tox
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))
tox
.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))
tobitand(x, y)
and~(bitand(x, y)
tobitnand(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))
tobitor(x, y)
and~(bitor(x, y)
tobitnor(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))
tobitxor(x, y)
and~(bitxor(x, y)
tobitxnor(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 withNULL
arguments can be replaced byNULL
.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 asUPPER(UPPER(s))
toUPPER(s)
.Idempotent functions that are covered so far, include:
LTRIM(LTRIM(s))
toLTRIM(s)
LTRIM(TRIM(s))
toTRIM(s)
RTRIM(RTRIM(s))
toRTRIM(s)
RTRIM(TRIM(s))
toTRIM(s)
TRIM(LTRIM(s))
toTRIM(s)
TRIM(RTRIM(s))
toTRIM(s)
UPPER(UPPER(s))
toUPPER(s)
LOWER(LOWER(s))
toLOWER(s)
To enable this feature,
transformPatterns
must be enabled as well.This feature is available in the commercial distribution only.
-
withTransformPatternsArithmeticComparisons
Transforma + 1 = 2
toa = 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
Transform1 / y * x
tox / 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
TransformSIN(x) / COS(x)
toTAN(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
TransformLN(value) / LN(base)
toLOG(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
toSINH(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
TransformLN(x + SQRT(SQUARE(x) + 1))
toASINH(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
TransformQOM.CompareCondition
and a few other types of condition to inline their bind values, in case they matchHistorically, 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 theQUALIFY
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
TransformROWNUM
expressions to correspondingLIMIT
clauses orROW_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 orROW_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
TransformGROUP 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 theGROUP BY
clause.This feature is available in the commercial distribution only.
-
withTransformInlineCTE
Transform Common Table Expressions (CTE) by inlining theirWITH
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 where0
uses the dialect defaults:SQLDialect.ACCESS
: 768SQLDialect.ASE
: 2000SQLDialect.INGRES
: 1024SQLDialect.ORACLE
: 32767SQLDialect.POSTGRES
: 32767SQLDialect.SQLITE
: 999SQLDialect.SQLSERVER
: 2100
-
withTransactionListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredTransactionListener
s. -
withTransactionListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredTransactionListener
s. -
withMigrationListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredMigrationListener
s. -
withMigrationListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredMigrationListener
s. -
withVisitListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredVisitListener
s. -
withVisitListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredVisitListener
s. -
withRecordListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredRecordListener
s. -
withRecordListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredRecordListener
s. -
withExecuteListenerStartInvocationOrder
The order of invocation for [action]start() methods registeredExecuteListener
s. -
withExecuteListenerEndInvocationOrder
The order of invocation for [action]end() methods registeredExecuteListener
s. -
withExecuteLogging
When set to true, this will add jOOQ's defaultLoggerListener
for debug logging. This is meant for use in development only. -
withExecuteLoggingSQLExceptions
[#14420] Whether constraint violations and otherSQLException
should produce additional log information about the column name and data causing the problem. UnlikeexecuteLogging
, 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 byDEFAULT
, implicit ifON
, or turnedOFF
entirely. -
withUpdateRecordVersion
Whether store(), insert(), and update() methods should update the record version prior to the operation, for use withexecuteWithOptimisticLocking
. -
withUpdateRecordTimestamp
Whether store(), insert(), and update() methods should update the record timestamp prior to the operation, for use withexecuteWithOptimisticLocking
. -
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
WhetherTableRecord.insert()
calls should be executed if the record is unchanged. This also affects theINSERT
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls. -
withUpdateUnchangedRecords
WhetherUpdatableRecord.update()
calls should be executed if the record is unchanged. This also affects theUPDATE
part ofUpdatableRecord.store()
andUpdatableRecord.merge()
calls. -
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 implementation of the ParsingConnection cache's LRU cache size. -
withCachePreparedStatementInLoader
Whether JDBCPreparedStatement
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 areDataType.defaulted()
. -
withReturnComputedOnUpdatableRecord
Whether calls to store(), insert() and update() should return values for columns that areDataType.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 ifreturnAllOnUpdatableRecord
is active, also other values. -
withMapJPAAnnotations
Whether JPA annotations should be considered by the DefaultRecordMapper. -
withMapRecordComponentParameterNames
Whether constructor parameter names obtained from theRecord
component names should be considered by the DefaultRecordMapper. -
withMapConstructorPropertiesParameterNames
Whether constructor parameter names obtained from theConstructorProperties
annotation 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 createdBatchedConnection
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] HowMULTISET
support should be emulated. -
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.
-
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 togetLocale()
. -
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
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated indexes on constraints, by default. -
withMetaIncludeSystemSequences
TheMeta
implementation that is backed byDatabaseMetaData
does not produce system generated sequences, by default. -
withMigrationAllowsUndo
Whether migrations are allowed to be executed in inverse order.This is a potentially destructive feature, which should not be turned on in production. It is useful mostly to quickly switch between branches in a development environment. This feature is available only in commercial distributions.
-
withMigrationRevertUntracked
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. -
withMigrationAutoValidation
Whether a migration automatically runs a validation first. -
withMigrationIgnoreDefaultTimestampPrecisionDiffs
VariousmigrateTo()
methods (e.g.Meta.migrateTo(org.jooq.Meta)
) ignore the difference betweenTIMESTAMP
andTIMESTAMP(6)
, if 6 is the default precision for timestamps on the configured dialect. -
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()
, orgetInterpreterLocale()
. -
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 togetLocale()
. -
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'sFROM
orUSING
clause, if applicable.Teradata (and possibly others) allow for referencing tables that are not listed in the
FROM
clause, such asSELECT t.* FROM t WHERE t.i = u.i
. This transformation is executed in the parser, to produceSELECT 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 typeSET 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 throughParser.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 fromDatabaseMetaData
. -
withReadonlyTableRecordInsert
[#9864] The behaviour when trying to insert into readonly columns usingTableRecord.insert()
. -
withReadonlyUpdatableRecordUpdate
[#9864] The behaviour when trying to update a readonly column usingUpdatableRecord.update()
. -
withReadonlyInsert
-
withReadonlyUpdate
-
withApplyWorkaroundFor7962
[#7963] Apply workaround for ORA-04043 when inserting into Oracle tables with qualified, quoted identifiers, and fetching generated keys -
withInterpreterSearchPath
-
withInterpreterSearchPath
-
withInterpreterSearchPath
-
withMigrationSchemata
-
withMigrationSchemata
-
withMigrationSchemata
-
withParseSearchPath
-
withParseSearchPath
-
withParseSearchPath
-
appendTo
- Specified by:
appendTo
in interfaceXMLAppendable
-
toString
-
equals
-
hashCode
public int hashCode() -
clone
-
RenderKeywordCase
instead.