From 0e309bc23ec8ae1b708c756f5710bf64b3fbaf32 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sun, 26 Aug 2012 14:54:31 +0200 Subject: [PATCH] Release 2.5.0 - Release notes and updated website --- .../release/template/RELEASENOTES.txt | 145 ++++++++++++++++++ jOOQ-website/css/jooq.css | 4 +- jOOQ-website/learn.php | 96 ++++++++---- 3 files changed, 215 insertions(+), 30 deletions(-) diff --git a/jOOQ-release/release/template/RELEASENOTES.txt b/jOOQ-release/release/template/RELEASENOTES.txt index f83e1f99d7..508d82c70f 100644 --- a/jOOQ-release/release/template/RELEASENOTES.txt +++ b/jOOQ-release/release/template/RELEASENOTES.txt @@ -10,6 +10,151 @@ http://www.jooq.org/notes.php For a text version, see http://www.jooq.org/inc/RELEASENOTES.txt +Version 2.5.0 - August 26, 2012 +================================================================= + +Welcome to another great database integration in jOOQ: Firebird! +This is one of the more popular open source SQL databases out +there, with a rich feature set, including the SQL standard MERGE +statement. + +Apart from this, the main new features are: + +- Optimistic locking. jOOQ's UpdatableRecord API transparently + implements optimistic locking on its store() and delete() + methods. By default, the in-memory record is compared with the + one in the database at write time. But you can also let jOOQ + handle incremented VERSION or TIMESTAMP columns for you. +- Oracle feature increment. Many nice Oracle features are now + supported: user-defined aggregates, regular expressions, + Oracle Text, CONNECT_BY_ROOT and ORDER SIBLINGS BY clausess, + partitioned outer joins and more +- jOOQ's convenience API has been greatly enhanced. This includes + many improved fetch methods and new short forms for equal=eq, + notEqual=ne, greaterThan=gt, etc. to better align jOOQ with + JPA, XSL, QueryDSL and many other tools that abbreviate these + keywords +- Many types and methods have been deprecated to help you foresee + the upcoming changes in jOOQ 3.0 + +Please consider also the updated manual with its new, more +user-friendly structure + +Features and improvements +------------------------- +#430 - Add support for the Firebird database +#457 - Add support for Oracle user-defined AGGREGATE functions +#620 - Add support for the SQL:2008 standard LIKE_REGEX operator +#722 - Remove casting of bind values in Ingres +#727 - Simulate RPAD and LPAD in SQLite +#816 - Add support for Oracle Text functions +#1339 - Add option to generate immutable pojos +#1547 - Support "optimistic locking" in UpdatableRecord.store() + and delete() +#1552 - Generate fetchBy[ColumnName] methods in generated DAO + classes +#1553 - Add some Javadoc to document the difference between using + a Factory with a Connection or with a DataSource +#1556 - Add javax.validation API to full deliverable +#1565 - Add Factory.connectByRoot(Field) to support the Oracle + CONNECT_BY_ROOT pseudo column +#1570 - Add Factory.condition(String, QueryPart...) similar to + Factory.field(String, QueryPart...) +#1582 - Add support for Oracle's ORDER SIBLINGS BY clause, in + combination with CONNECT BY +#1586 - Add missing constructors taking DataSource to dialect- + specific factories +#1587 - Generate missing constructors taking DataSource in + schema-specific factories +#1595 - Simulate REPEAT() in SQLite +#1596 - Add support for optimistic locking using generated + information about "timestamp" or "version" columns +#1627 - Handle NULL in CSV imports/exports +#1645 - Add support for Oracle's PARTITION BY clause in OUTER + JOINs +#1657 - Reorganise the manual +#1664 - By default, activate in the code generator +#1665 - Add support for the empty GROUP BY () clause +#1675 - Add support for the SQL standard IS [NOT] DISTINCT FROM + predicate +#1680 - Overload all plain SQL DSL methods to also accept + QueryPart arguments +#1681 - Simulate empty GROUP BY () clause in Sybase ASE and + Ingres, joining a dummy table and grouping by a constant + field +#1684 - Add Setting to indicate that fetched + records shouldn't be automatically "attached" +#1685 - Improve Javadoc of Attachable.attach(). Document how + "detaching" works +#1688 - Add E Record.into(E) as a complement to + E Record.into(Class) +#1692 - Replace Factory.executeInsert(), Factory.executeUpdate() + and similar methods with more succinct variants +#1696 - Add short versions of comparison predicate methods, such + as eq, ne, gt, ge, lt, le +#1698 - Add support for the SQL standard BETWEEN SYMMETRIC + predicate +#1701 - Add Factory.not(Condition) as a synonym for + Condition.not() +#1704 - Document the behaviour of Factory.newRecord(Table, + Object) and Record.from(Object) with respect to + UpdatableRecord.store() +#1707 - Add Map> ResultQuery.fetchGroups( + Field) and Result.intoGroups(Field) +#1712 - Add > Result.sortAsc, + .sortDesc(Field) +#1713 - Add Result.sortAsc, .sortDesc(Field, + Comparator) +#1714 - Add Result.sortAsc, .sortDesc(Comparator) +#1718 - Document usage of InvalidResultException on the + ResultQuery.fetchXXX() Javadocs +#1721 - Add Map> ResultQuery.fetchGroups( + Field, Field) and Result.intoGroups(Field, + Field) +#1722 - ResultQuery.fetchArray(int) and .fetchArray(String) + should return a typed array, even if this cannot be + checked by the compiler +#1723 - Add Factory.fetchLazy(ResultSet) + +API changes (backwards-compatible) +---------------------------------- +#1544 - Remove Attachable interface from QueryPart hierarchy +#1579 - Deprecate org.jooq.Type +#1580 - Deprecate org.jooq.SchemaProvider +#1638 - Deprecate org.jooq.ArrayRecord.createArray() +#1639 - Deprecate org.jooq.Adapter +#1687 - Let Cursor.fetchInto(Table) return Result instead + of List +#1736 - Deprecate TableRecord.{store|refresh|delete}Using() + methods as being part of jOOQ's internal API +#1741 - Deprecate org.jooq.MasterDataType + +Bug fixes +--------- +#1572 - Use Thread.currentThread().getContextClassLoader() to + load ExecuteListener classes as a workaround for + experienced class loading problems when using OSGi +#1584 - Code generation error with Oracle UDT static functions +#1632 - Improve the performance of various DefaultRenderContext + methods, by locally caching Settings values +#1633 - Improve the performance of CursorImpl.CursorIterator by + setting Record values by index rather than by Field +#1635 - Improve the performance of Factory.fetch(ResultSet) by + caching data type normalisation regex in FieldTypeHelper +#1650 - jOOR Fix #16: Can't call Reflect.create(A, B, null) +#1660 - Factory.renderContext().castMode(CastMode.NEVER) + .render(query) doesn't work. CastMode is not applied +#1667 - Bad variable binding when NULLS FIRST, NULLS LAST is + simulated in SQL Server and other databases +#1673 - Result.formatXML() and Result.intoXML() do not render + namespaces correctly +#1683 - Oracle code generation regression for 10g. No such column + ALL_PROCEDURES.OBJECT_ID +#1693 - Cannot bind UDT values from other schemata to stored + procedures +#1730 - Compilation errors in SQLite generated code when flag + is set to true + Version 2.4.0 - July 8, 2012 ================================================================= diff --git a/jOOQ-website/css/jooq.css b/jOOQ-website/css/jooq.css index 8f91d0b23b..e9e6df762f 100644 --- a/jOOQ-website/css/jooq.css +++ b/jOOQ-website/css/jooq.css @@ -65,13 +65,13 @@ p { padding-right: 1em; } -td.left { +td.left, th.left { padding-right: 5px; padding-bottom: 5px; vertical-align: top; text-align: right; } -td.right { +td.right, th.right { padding-left: 5px; padding-bottom: 5px; vertical-align: top; diff --git a/jOOQ-website/learn.php b/jOOQ-website/learn.php index dd4c573a6f..53833d0f30 100644 --- a/jOOQ-website/learn.php +++ b/jOOQ-website/learn.php @@ -31,38 +31,78 @@ running. It shows how to use jOOQ and its code generator with a simple MySQL dat

Documentation

-