jOOQ is the best way to write SQL in Java
This is a 3.17 patch release with minor improvements and bug fixes
#16491 - Add DataType.isFloat()
#16464 - SEEK doesn't work correctly when there are multiple noField() arguments and ORDER BY is uniform and Settings.renderRowConditionForSeekClause is true #16473 - Work around CockroachDB's lack of support for the POWER() function accepting integer arguments #16476 - jOOQ parser parses indexed parameters as named #16482 - SQL Server's CREATE cannot fully qualify a sequence name #16497 - Intercept SQLFeatureNotSupportedException caused by DatabaseMetaData::getImportedKeys and other calls #16506 - Improve compilation speeds of generated QOM types #16513 - Avoid PostgreSQL empty array cast when explicit cast is given #16538 - Parser fails to parse TIME[STAMP] WITH TIME ZONE literals #16542 - Incorrect conversion of LocalDateTime to LocalDate during daylight saving time
This is a 3.18 patch release with minor improvements and bug fixes
#16438 - Document DSL.jsonGetElement() index being 0 based
#16441 - QuantifiedSelect wrapping array doesn't correctly convert array component types #16454 - Fix other cases where org.jooq.impl.Val uses "inferred data type," but cannot actually lazily infer the type #16458 - ParsingConnection should not rely on org.jooq.impl.Val identity to match user bind value indexes with rendered indexes #16463 - SEEK doesn't work correctly when there are multiple noField() arguments and ORDER BY is uniform and Settings.renderRowConditionForSeekClause is true #16472 - Work around CockroachDB's lack of support for the POWER() function accepting integer arguments #16475 - jOOQ parser parses indexed parameters as named #16481 - SQL Server's CREATE cannot fully qualify a sequence name #16496 - Intercept SQLFeatureNotSupportedException caused by DatabaseMetaData::getImportedKeys and other calls #16505 - Improve compilation speeds of generated QOM types #16512 - Avoid PostgreSQL empty array cast when explicit cast is given #16517 - Row[N].eq(Row[N]) should apply data type bindings if necessary #16537 - Parser fails to parse TIME[STAMP] WITH TIME ZONE literals #16541 - Incorrect conversion of LocalDateTime to LocalDate during daylight saving time
This is a 3.19 patch release with minor improvements and bug fixes
#16437 - Document DSL.jsonGetElement() index being 0 based
#16428 - DefaultDataType.getDataType logger should add more details about how to fix the problem #16429 - Row[N].eq(Row[N]) should apply data type bindings if necessary #16430 - Unnecessary static type registry warning when inlining custom converted enum value #16431 - Static type registry deprecation warning shouldn't appear when using the INSERT valuesOfRows() clause with converted data types #16440 - QuantifiedSelect wrapping array doesn't correctly convert array component types #16453 - Fix other cases where org.jooq.impl.Val uses "inferred data type," but cannot actually lazily infer the type #16457 - ParsingConnection should not rely on org.jooq.impl.Val identity to match user bind value indexes with rendered indexes #16462 - SEEK doesn't work correctly when there are multiple noField() arguments and ORDER BY is uniform and Settings.renderRowConditionForSeekClause is true #16471 - Work around CockroachDB's lack of support for the POWER() function accepting integer arguments #16474 - jOOQ parser parses indexed parameters as named #16480 - SQL Server's CREATE cannot fully qualify a sequence name #16495 - Intercept SQLFeatureNotSupportedException caused by DatabaseMetaData::getImportedKeys and other calls #16504 - Improve compilation speeds of generated QOM types #16511 - Avoid PostgreSQL empty array cast when explicit cast is given #16536 - Parser fails to parse TIME[STAMP] WITH TIME ZONE literals #16540 - Incorrect conversion of LocalDateTime to LocalDate during daylight saving time
This is a 3.17 patch release with minor improvements and bug fixes
#16350 - Parser fails with StringIndexOutOfBoundsException when encountering invalid PostgreSQL unicode literal
#16353 - Parser shouldn't fail with NumberFormatException
#16359 - ParsingConnection doesn't correctly execute batches when using ParamType.INLINED or StatementType.STATIC_STATEMENT
#16366 - UUID bind values should be auto-cast to avoid issues with lack of auto-conversion support in PostgreSQL
#16373 - Parser always parses NULL literal of type BOOLEAN
#16384 - DataType should cache null_() and notNull() variants
#16388 - Add some WARN logs when synthetic key objects aren't matched
#16391 - Add arity check to synthetic foreign key configuration to avoid wrong generated code when FK / UK columns mismatch
#16396 - Empty derived column lists generate wrong SQL syntax
#16399 - Regression in fetchCount execution when argument query uses plain SQL tables
#16408 - Parser doesn't support GROUPING SETS with
This is a 3.18 patch release with minor improvements and bug fixes
#16349 - Parser fails with StringIndexOutOfBoundsException when encountering invalid PostgreSQL unicode literal
#16352 - Parser shouldn't fail with NumberFormatException
#16358 - ParsingConnection doesn't correctly execute batches when using ParamType.INLINED or StatementType.STATIC_STATEMENT
#16365 - UUID bind values should be auto-cast to avoid issues with lack of auto-conversion support in PostgreSQL
#16372 - Parser always parses NULL literal of type BOOLEAN
#16383 - DataType should cache null_() and notNull() variants
#16387 - Add some WARN logs when synthetic key objects aren't matched
#16390 - Add arity check to synthetic foreign key configuration to avoid wrong generated code when FK / UK columns mismatch
#16395 - Empty derived column lists generate wrong SQL syntax
#16398 - Regression in fetchCount execution when argument query uses plain SQL tables
#16407 - Parser doesn't support GROUPING SETS with
This is a 3.19 patch release with minor improvements and bug fixes
#16348 - Parser fails with StringIndexOutOfBoundsException when encountering invalid PostgreSQL unicode literal
#16351 - Parser shouldn't fail with NumberFormatException
#16357 - ParsingConnection doesn't correctly execute batches when using ParamType.INLINED or StatementType.STATIC_STATEMENT
#16364 - UUID bind values should be auto-cast to avoid issues with lack of auto-conversion support in PostgreSQL
#16371 - Parser always parses NULL literal of type BOOLEAN
#16374 - Cast NULL literal in subquery SELECT projection in PostgreSQL
#16382 - DataType should cache null_() and notNull() variants
#16386 - Add some WARN logs when synthetic key objects aren't matched
#16389 - Add arity check to synthetic foreign key configuration to avoid wrong generated code when FK / UK columns mismatch
#16394 - Empty derived column lists generate wrong SQL syntax
#16397 - Regression in fetchCount execution when argument query uses plain SQL tables
#16400 - jOOQ-codegen-gradle should lazily evaluate its configuration
#16406 - Parser doesn't support GROUPING SETS with
This is a 3.17 patch release with minor improvements and bug fixes
#16322 - Wrong SQL generated when nesting predicates on subqueries projecting embeddables within MULTISET #16325 - SelectIsNull renders invalid SQL when SELECT projection is embeddable #16329 - DSLContext.fetchCount(Select) produces wrong SQL when query projects embeddables #16339 - NumberFormatException in parser when encountering double value with implicit 0 exponent #16343 - DefaultRenderContext::peekIndex doesn't contain correct bind index
This is a 3.18 patch release with minor improvements and bug fixes
#16321 - Wrong SQL generated when nesting predicates on subqueries projecting embeddables within MULTISET #16324 - SelectIsNull renders invalid SQL when SELECT projection is embeddable #16328 - DSLContext.fetchCount(Select) produces wrong SQL when query projects embeddables #16338 - NumberFormatException in parser when encountering double value with implicit 0 exponent #16342 - DefaultRenderContext::peekIndex doesn't contain correct bind index
This is a 3.19 patch release with minor improvements and bug fixes
#16317 - Regression: Gradle plugin thinks it's up to date when it's not #16320 - Wrong SQL generated when nesting predicates on subqueries projecting embeddables within MULTISET #16323 - SelectIsNull renders invalid SQL when SELECT projection is embeddable #16327 - DSLContext.fetchCount(Select) produces wrong SQL when query projects embeddables #16337 - NumberFormatException in parser when encountering double value with implicit 0 exponent #16341 - DefaultRenderContext::peekIndex doesn't contain correct bind index
This is a 3.17 patch release with minor improvements and bug fixes
#16131 - Maximum consumed results reached when Hikari close a SQL Server connection, leading to excessive logging #16183 - %ROWTYPE UDT types generate invalid system columns when underlying table references object types #16198 - Overall performance improvement in AbstractNamed.hashCode() specialisations by avoiding Name::append #16206 - Remove internal AbstractContext::toggle utilities #16212 - AbstractScope::dsl, ::settings, ::dialect, and ::family should avoid unnecessary null-checks on Configuration #16235 - Wrong Support annotation on CREATE TRIGGER for INFORMIX #16240 - IndexOutOfBoundsException in DerbyDatabase when <includeExcludeColumns/> excludes a column from an index #16249 - Avoid allocating DataMap in short lived Scope implementations #16252 - Cache TableRecord Constructor in TableImpl for use in Tools.recordFactory() #16261 - Avoid allocating Collections.nCopies in ScopeStack #16265 - Avoid allocating JoinNode in scope registration of tables if unnecessary #16269 - Avoid constructing DSL.name() for constant internal names #16273 - Refactor QualifiedName to improve performance #16278 - name(null, "") should equal to name("") #16282 - Result::formatXML should omit type attribute on columns whose type is unknown #16286 - Meta::ddl generates incorrect queries for SQL Server (max) lengths #16305 - Can't parse MySQL ALTER TABLE .. DROP .., DROP .. syntax