Commit Graph

7333 Commits

Author SHA1 Message Date
Lukas Eder
7f75f47c29 [jOOQ/jOOQ#8781] Improve error msg when org.jooq.util class not found
Users keep running into issues when they don't see why their
org.jooq.util classes from the code generator cannot be found. This
change helps them better find the new package qualification of types in
the jOOQ-meta and jOOQ-codegen modules.
2019-06-13 12:20:16 +02:00
Knut Wannheden
527486e296 [jOOQ/jOOQ#8777] Fix AbstractFormattable#formatCSV()
Two of the `AbstractFormattable#formatCSV()` overloads didn't respect
the `header` parameter.
2019-06-12 16:29:44 +02:00
Knut Wannheden
075b1dc856 [jOOQ/jOOQ#5909] Update academy examples 2019-06-12 13:01:37 +02:00
Knut Wannheden
986dbbc711 Make JavaFX example Java 11 compatible 2019-06-12 12:50:54 +02:00
Knut Wannheden
55cefa0f5a [jOOQ/jOOQ#8753] Add Context#sql(long), sql(float), and sql(double)
Adds the methods Context#sql(long), sql(float), and sql(double). These
are used by the default converters in DefaultBinding for better
performance.

Note that there is no sql(boolean), since "true" and "false" are
expected to be treated as keywords and as such respect the keyword
rendering style.
2019-06-12 12:33:51 +02:00
Knut Wannheden
6f936994af [jOOQ/jOOQ#8771] Add REDSHIFT support for SelectWithTiesAfterOffsetStep
The LIMIT WITH TIES clause can be emulated for REDSHIFT using RANK().
2019-06-12 11:26:23 +02:00
Knut Wannheden
74897133f2 [jOOQ/jOOQ#8744] H2: Support INSERT ... ON CONFLICT DO UPDATE
Support this clause by emulating it with MERGE.
2019-06-11 15:13:40 +02:00
Knut Wannheden
d6ff51aa43 [jOOQ/jOOQ#8774] Remove SQLITE from AlterTableAlterStep methods 2019-06-11 15:08:02 +02:00
Knut Wannheden
b798c038d0 [jOOQ/jOOQ#2059] Fix AlterTableRenameIndexToStep @Support annotations
This feature is not supported by MEMSQL.
2019-06-11 15:06:05 +02:00
Knut Wannheden
906ca2b0e4 [jOOQ/jOOQ#8772] Correct @Support annotations on CreateIndexIncludeStep 2019-06-11 14:46:44 +02:00
Knut Wannheden
afe0643d7c [jOOQ/jOOQ#8771] Remove REDSHIFT from SelectWithTiesAfterOffsetStep
SelectWithTiesAfterOffsetStep#withTies() is not supported by REDSHIFT.
2019-06-11 14:26:17 +02:00
Knut Wannheden
338c02a89e [jOOQ/jOOQ#8770] Fix @Support annotations of SelectLimitAfterOffsetStep
Align the @Support annotations of the limit() methods.
2019-06-11 14:16:27 +02:00
Knut Wannheden
046a99bb68 [jOOQ/jOOQ#8769] Fix @Support annotations on TableOuterJoinStep
TableOuterJoinStep is for the time being only supported by ORACLE.
2019-06-11 14:08:06 +02:00
Knut Wannheden
88be3c65ab [jOOQ/jOOQ#8767] Add DB2 and FIREBIRD support to DSL#alterView()
DSL#alterView() was missing `DB2` and `FIREBIRD` in its `@Support`
annnotation.
2019-06-11 13:41:39 +02:00
Knut Wannheden
9e1a69ab54 [jOOQ/jOOQ#8766] Add missing dialects to @Support of mergeInto()
Adds AURORA_POSTGRES, HANA, and POSTGRES_9_5 to @Support annotation of
DSLContext#mergeInto(Table) and DSL#mergeInto(Table).
2019-06-11 11:58:23 +02:00
Lukas Eder
fa17504b57 [jOOQ/jOOQ#8723] Fixed this issue for Teradata 2019-06-07 16:01:59 +02:00
Lukas Eder
4c77d1386e [jOOQ/jOOQ#8761] Fix missing Support annotations for Teradata 2019-06-07 15:50:44 +02:00
Knut Wannheden
9cd09f5b70 [jOOQ/jOOQ#8758] [jOOQ/jOOQ#7518] DEFAULT in INSERT and MERGE
The DEFAULT keyword is now also properly supported in the INSERT and
MERGE statements.
2019-06-07 15:49:56 +02:00
Lukas Eder
82e4a12712 [jOOQ/jOOQ#8759] Add support for SET SCHEMA in Teradata 2019-06-07 15:24:55 +02:00
Knut Wannheden
bb871723a7 [jOOQ/jOOQ#8760] [jOOQ/jOOQ#7518] Parse TIMESTAMPDIFF()
The parser now supports parsing the TIMESTAMPDIFF() function, which is
mapped to DSL#timestampDiff().
2019-06-07 15:23:47 +02:00
Knut Wannheden
a1c54350a5 [jOOQ/jOOQ#8758] Parse UPDATE keyword in UPDATE statements 2019-06-07 14:54:38 +02:00
Knut Wannheden
ae13be078d [jOOQ/jOOQ#8736] Avoid NumberFormatException in Convert
This commit makes `NumberFormatException`s less likely to happen in
`Convert.ConvertAll#from(Object)` by first attempting to parse the
string representation of the value using `Ints#tryParse()` or
`Longs#tryParse()` (as appropriate). If that fails the conversion will
still try to use `BigDecimal(String)`, as that also allows parsing
numbers with fractions and / or exponent.

Note that this change required moving `tryParseInt()` and
`tryParseLong()` from `Tools` to the new public classes `Ints` and
`Longs` which have the license header from the corresponding
Guava sources, where the methods were copied from.
2019-06-07 14:52:39 +02:00
Lukas Eder
dce1a6a2b9 [jOOQ/jOOQ#8756] DSL.timestampAdd() produces wrong cast for teradata 2019-06-07 14:28:23 +02:00
Lukas Eder
6e7eda9a36 [jOOQ/jOOQ#8728] Parser cannot handle double quoted string literals in dialects that support them 2019-06-07 11:50:16 +02:00
Knut Wannheden
351b45b1ae [jOOQ/jOOQ#8751] Slightly improve performance of Integer rendering
When rendering Integer values (e.g. represented by Val objects) the
`DefaultIntegerBinding` can be optimized to use `RenderContext#sql(int)`
rather than `RenderContext#sql(String)`, as the latter requires to first
call `Integer#toString()`.
2019-06-07 07:49:44 +02:00
Knut Wannheden
c43f685199 [jOOQ/jOOQ#8751] Optimize placeholder logic in Tools#renderAndBind()
Add new private Tools#tryParseInt(String, int, int) method so that
Tools#renderAndBind() doesn't first have to call String#substring(int,
int).
2019-06-06 15:54:43 +02:00
Knut Wannheden
ddff21fc07 [jOOQ/jOOQ#8751] Improve SQL rendering performance
Improves the rendering of SQL relying on the keyword placeholders in
string templates as in e.g. "{substring}({0} {from} {1} {for} {2})",
where {substring} and {from} denote keywords.

The rendering is improved by changing `KeywordImpl` to lazily render the
keywords in the UPPER, LOWER, and PASCAL styles.
2019-06-06 15:37:09 +02:00
Lukas Eder
cceea5f1d8 [jOOQ/jOOQ#8746] Add support for reversing the listener invocation order
In some cases, it may make sense to support reversing the invocation
order for some listener lists, e.g. for VisitListener (in this
commit), depending on whether we're calling a [action]Start() or an
[action]End() event.
2019-06-06 14:38:38 +02:00
Lukas Eder
277b295cd0 [jOOQ/jOOQ#8746] Add support for reversing the listener invocation order
In some cases, it may make sense to support reversing the invocation
order for some listener lists, e.g. for TransactionListener (in this
commit), depending on whether we're calling a [action]Start() or an
[action]End() event.
2019-06-06 14:18:22 +02:00
Lukas Eder
0fba3e7564 [jOOQ/jOOQ#8746] More reusable code 2019-06-06 14:04:06 +02:00
Lukas Eder
7fda1e6d0d [jOOQ/jOOQ#8746] Add support for reversing the listener invocation order
In some cases, it may make sense to support reversing the invocation
order for some listener lists, e.g. for RecordListener (in this
commit), depending on whether we're calling a [action]Start() or an
[action]End() event.
2019-06-06 14:01:53 +02:00
Lukas Eder
463a621787 [jOOQ/jOOQ#8746] Add support for reversing the listener invocation order
In some cases, it may make sense to support reversing the invocation order for some listener lists, e.g. for ExecuteListener (in this commit), depending on whether we're calling a [action]Start() or an [action]End() event.
2019-06-06 12:14:53 +02:00
Knut Wannheden
2d118d83d6 [jOOQ/jOOQ#8654] Support ALTER TABLE ... DROP PRIMARY KEY for H2
H2 also has native support for this clause.
2019-06-06 11:32:22 +02:00
Knut Wannheden
3726b347b4 [jOOQ/jOOQ#8744] H2: Support INSERT ... ON CONFLICT DO UPDATE
Support this clause by emulating it with MERGE.
2019-06-06 10:16:21 +02:00
Knut Wannheden
6dfd51a8ca [jOOQ/jOOQ#8732] H2: Fix DSL#week() implementation
For H2 the DSL#week() function should be mapped to the ISO_WEEK()
function as EXTRACT(WEEK FROM ...) is equivalent to the WEEK() function.
2019-06-06 10:15:14 +02:00
Knut Wannheden
81fc8c62ae [jOOQ/jOOQ#8742] H2: Support DROP SCHEMA ... [CASCADE | RESTRICT] 2019-06-06 10:14:11 +02:00
Knut Wannheden
b1bebfbb0e [jOOQ/jOOQ#8739] Support ALTER SCHEMA in H2 2019-06-05 16:16:34 +02:00
Knut Wannheden
2765329af3 [jOOQ/jOOQ#8736] Add Tools#tryParseInt() and Tools#tryParseLong()
For the benefit of performance Tools#renderAndBind() now no longer uses
Integer#parseInt() when deciding whether a placeholder is a keyword or
an index of a bind value.

Also AbstractQuery#bind(String, Object) and DefaultBinding#parse(Class,
String) no longer rely on Integer#parseInt() or Long#parseLong().

The new methods in Tools are based on the Guava method
Longs#tryParse(String, int).
2019-06-05 12:39:08 +02:00
Knut Wannheden
56ee881246 [jOOQ/jOOQ#8737] Fix date arithmetic does not support fractional seconds
Date arithmetic now uses strftime(), so that fractional seconds don't
get trimmed.
2019-06-05 09:47:07 +02:00
Knut Wannheden
37727bee41 [jOOQ/jOOQ#8735] Support Offset[Date]Time and Instant for SQLite
For SQLite the Java 8 time types Offset[Date|DateTime|Time] and Instant
are now supported. SQLite basically supports date and time data with
time zones as input. Returned values are however always in Zulu / UTC
time, as with some other dialects.
2019-06-05 08:44:08 +02:00
Knut Wannheden
a67fbe5b79 [jOOQ/jOOQ#8730] Fix binding of Java 8 date and time literals
In SQLite the binding of [Local|Offset][Date][Time] literals didn't
always work correctly when the value specified fractional seconds. This
was because the corresponding DSL method would return a DateOrTime
instance rather than a simple Tools#field() constructed instance. This
commit fixes that.
2019-06-05 08:41:55 +02:00
Lukas Eder
11c5e08fc5 [jOOQ/jOOQ#7389] UniqueKey.getReferences returns unnamed foreign keys 2019-06-04 16:50:32 +02:00
Lukas Eder
7c94342142 [jOOQ/jOOQ#2059] Fixed regression
This newly introduced DISTINCT keyword needs to include all columns that appear in the ORDER BY clause. I'm not sure if the effect is still the desired one in MemSQL (nor why this even worked in MemSQL), but it doesn't work in MySQL this way.
2019-06-04 16:25:26 +02:00
Lukas Eder
d538acfac6 [jOOQ/jOOQ#8723] Fixed parser test 2019-06-03 11:03:48 +02:00
Lukas Eder
9f363f75d4 Whitespace change 2019-06-03 10:13:29 +02:00
Lukas Eder
1599efa5f9 [jOOQ/jOOQ#8727] Bad Support annotation on Row[N].op(QuantifiedSelect) 2019-06-03 10:13:07 +02:00
Lukas Eder
6c5bc13cc1 [jOOQ/jOOQ#7120] SQL Server fix 2019-05-31 15:15:44 +02:00
Lukas Eder
712b4afad7 [jOOQ/jOOQ#8723] Fixed this issue for PostgreSQL 2019-05-31 14:42:31 +02:00
Lukas Eder
f33b1f1512 [jOOQ/jOOQ#8723] Fixed this issue for MariaDB / MySQL 2019-05-31 14:37:12 +02:00
Lukas Eder
72964e352c [jOOQ/jOOQ#8041] Add support for DataType.characterSet() 2019-05-31 14:17:06 +02:00