Commit Graph

4474 Commits

Author SHA1 Message Date
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
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
Lukas Eder
290a1bf487 [jOOQ/jOOQ#8724] Add UpdateSetStep.setNull(Field<?>) for convenience 2019-05-31 13:37:47 +02:00
Lukas Eder
bfd68f5947 [jOOQ/jOOQ#8723] Wrong SQL generated when using qualified index references with H2 CREATE or DROP INDEX statements 2019-05-31 13:05:10 +02:00
Lukas Eder
5b281e2795 Merge branch 'master' of https://github.com/jOOQ/jOOQ 2019-05-29 16:15:40 +02:00
Lukas Eder
999a4eb761 [jOOQ/jOOQ#8717] Support parsing SQL Server's UNIQUEIDENTIFIER data type 2019-05-29 16:15:15 +02:00
Knut Wannheden
dd9b685055 [jOOQ/jOOQ#8716] Support DSL#md5() for SQL Server and SQL Data Warehouse 2019-05-29 15:41:19 +02:00
Knut Wannheden
8ca6c01264 Simplify @Support annotation on createTable()
The @Support annotations on DSL#createTable() and
DSLContext#createTable() don't need to explicitly list all families.
2019-05-29 08:04:06 +02:00
Lukas Eder
3bb2fef32d [jOOQ/jOOQ#6920] Update API with Vertica Support annotations 2019-05-28 17:56:36 +02:00
Knut Wannheden
8b4e41dacf [#8682] Correctly parse SQL Server LOG() function 2019-05-28 17:00:52 +02:00
Knut Wannheden
635cbc1874 [#8682] Correctly parse SQL Server LOG() function
SQL Server's LOG() function defines the parameters in reverse order from
the SQL standard (see
https://docs.microsoft.com/sql/t-sql/functions/log-transact-sql?view=sql-server-2017).
Also, instead of a dedicated LN() function the natural logarithm is
calculated by omitting the second parameter (representing the base). The
same applies to SQL Data Warehouse.

Again reverting change in DSL#log(Number, int) to use Tools#field() over
DSL#val().
2019-05-28 16:53:53 +02:00
Lukas Eder
2327516eaa [jOOQ/jOOQ#8709] Work around Vertica's incorrect IS NOT NULL implementation 2019-05-28 16:26:03 +02:00
Knut Wannheden
988e868444 [#8703] Use DSL#val(Object) over Tools#field(Object)
In DSL#log(Number, int) the input is known to be a Number so it makes
more sense to call DSL#val(Object) directly.
2019-05-28 16:20:33 +02:00
Lukas Eder
9459e9fc49 [jOOQ/jOOQ#8708] Ranking functions without ORDER BY are not correctly emulated in Vertica 2019-05-28 16:10:28 +02:00
Lukas Eder
a083eb10d1 [jOOQ/jOOQ#8706] Error when translating a query with OFFSET only (no LIMIT) to Vertica 2019-05-28 16:02:48 +02:00
Knut Wannheden
4e88bb2727 [#8707] Fix switch in FunctionTable#accept() 2019-05-28 15:59:06 +02:00
Knut Wannheden
d751d6edc7 [#8547] Fix SQLITE comparisons against dialect
SQLITE should normally be compared against the dialect family.

Also replace some occurrences of `context.configuration().dialect()`
with `context.dialect()`.
2019-05-28 15:51:08 +02:00
Knut Wannheden
2b26053a64 [jOOQ/jOOQ#6920] Update API with Vertica Support annotations 2019-05-28 15:32:00 +02:00
Knut Wannheden
de263dc9b8 [#8547] Add missing SQLITE_3_x cases to switches
Add missing cases for SQLITE_3_25 and SQLITE_3_28 in dialect switches.
2019-05-28 15:17:10 +02:00
Knut Wannheden
2e6a9514c3 [#8703] Add DSL#log(Field, Field)
Adds an overload DSL#log(Field, Field) which is also used by the parser,
as the base can for multiple dialects both be a float literal or an
arbitrary expression.
2019-05-28 15:05:01 +02:00
Lukas Eder
89a1751918 [jOOQ/jOOQ#6920] Update API with Vertica Support annotations 2019-05-28 14:55:29 +02:00
Lukas Eder
1a849a9232 [jOOQ/jOOQ#6920] Update API with Vertica Support annotations 2019-05-28 14:55:05 +02:00
Lukas Eder
130db06e3c [jOOQ/jOOQ#8704] Add support for MERGE in Vertica 2019-05-28 14:53:58 +02:00
Knut Wannheden
1cd7aa47fb [#8696] Added "fall through" comments to make code better readable 2019-05-28 12:59:38 +02:00
Knut Wannheden
a986cd0380 [#8696] Use SQL Server 2012's LOG() function with base parameter
SQL Server 2012's LOG() function accepts an optional second parameter to
specify the "base" to use. Use this rather than emulate that function.
2019-05-28 12:39:21 +02:00
Knut Wannheden
0b8f7cc111 [#8699] In Trim add case for SQLITE_3_25 and SQLITE_3_28
The switch over Configuration#dialect() was missing cases for
SQLITE_3_25 and SQLITE_3_28.
2019-05-28 12:17:21 +02:00
Knut Wannheden
2ef879d6bc [#8699] In Trim add case for SQLITE_3_25 and SQLITE_3_28
The switch over Configuration#dialect() was missing cases for
SQLITE_3_25 and SQLITE_3_28.
2019-05-28 12:15:34 +02:00
Knut Wannheden
893ce190e3 [#8698] In Sign switch over Configuration#family()
The switch over Sign#dialect() was wrong (typo).
2019-05-28 12:09:09 +02:00
Knut Wannheden
9a7e111fb9 [#8697] Removed MYSQL case from switch in MD5
Since the case was the default ayway it (along with some others) could
be removed.
2019-05-28 12:02:34 +02:00
Knut Wannheden
ed0634f0cb [#8695] Use Configuration#family() convenience method
Replace expressions like `configuration.dialect().family()` with
`configuration.family()`.
2019-05-28 11:41:04 +02:00
Knut Wannheden
e1b64b4987 [#8694] Floor must switch over Configuration#family() 2019-05-28 11:30:59 +02:00
Lukas Eder
e8dab8a763 [#7921] Prevent NPE from unattached queries 2019-05-28 10:28:49 +02:00
Lukas Eder
7b82eff279 [#8691] Serialization fails when table contains SQLDataType.INSTANT
columns or when using Converter.ofNullable() converters
2019-05-27 12:45:40 +02:00
Lukas Eder
c60d7b5467 [#7921] Support the feature for all dialects 2019-05-27 11:57:59 +02:00
Lukas Eder
cccc232aae [jOOQ/jOOQ#8657] Add DDLExportConfiguration.createSchemaIfNotExists and createTableIfNotExists flags 2019-05-27 10:33:16 +02:00
Lukas Eder
4921fdf6bc [#7921] Add support for Asterisk.except(Field...) and QualifiedAsterisk.except(Field...) 2019-05-27 09:44:36 +02:00
Lukas Eder
fea421868c [#8689] Generate LN function in H2, instead of LOG 2019-05-27 09:43:00 +02:00
Knut Wannheden
9c18aa464e [#8452] Support RAND() and RANDOM() in parser 2019-05-24 10:49:57 +02:00
Knut Wannheden
2dafae0c85 [#8682] Corrected parsing of LOG() function
The SQL parser had reversed the "base" and "value" parameters when
parsing the LOG() function.
2019-05-24 10:30:02 +02:00
Knut Wannheden
293ccc7e2c [#8452] Implement parsing of SYS_CONNECT_BY_PATH
The parser can now parse Oracle's SYS_CONNECT_BY_PATH function used in
hierarchical queries.
2019-05-24 08:25:58 +02:00
Knut Wannheden
18a9017b21 [#8675] CONNECT_BY_ROOT is now correctly parsed as an unary operator
Parsing CONNECT_BY_ROOT as a regular term lead to various smaller
glitches when used in expressions with other operators (of different
precedences). Parsing it as an unary operator and its operand as a term
fixes this problem.
2019-05-24 08:25:01 +02:00
Knut Wannheden
5f21af8d6d [#8675] Implement parsing of CONNECT BY operators and pseudo columns
The parser now properly parses Oracle's CONNECT_BY_ROOT,
CONNECT_BY_ISLEAF, and CONNECT_BY_ISCYCLE syntax.
2019-05-23 16:36:14 +02:00
Knut Wannheden
860a9b079e [#8646] Refactor AbstractDMLQuery#prepare()
Refactor AbstractDMLQuery#prepare() by extracting into prepare0() to
make sure that Tools#setFetchSize() will always get called.
2019-05-23 16:35:40 +02:00
Knut Wannheden
6f13d24232 [#8646] Call Statement#setFetchSize(int) where applicable
Calling Statement#setFetchSize(int) can also make sense in other places
than AbstractResultQuery. Specifically it is now also called in
AbstractDMLQuery and AbstractRoutine.

In each case the fetch size will be determined using
Settings#getFetchSize(), except for AbstractResultQuery where the value
supplied via ResultQuery#fetchSize(int) takes precedence.
2019-05-22 11:01:20 +02:00
lukaseder
dd9b3e9f3e [#8616] Fix off-by-one error... 2019-05-21 16:58:17 +02:00
lukaseder
b83f9cc009 [#8616] Add Settings.parseSearchPath 2019-05-21 16:34:36 +02:00
Knut Wannheden
444c2f0034 [#8542] Add MySQL 8.0 support for LATERAL 2019-05-21 16:09:58 +02:00
Knut Wannheden
85a1d1f31e [#2059] Remove some MemSQL related code 2019-05-21 14:56:49 +02:00
Knut Wannheden
bc4d121aa9 [#2059] Fix problem with code comment in Function.java 2019-05-21 14:46:31 +02:00
Knut Wannheden
35fc136643 [#2059] Add MemSQL support
Implement support for new dialect SQLDialect#MEMSQL. Excluded from the
support are stored procedures, MemSQL specific DDL keywords, MemSQL
specific DML (like REPLACE), and for the time being also the PIVOT
clause (see #8643).

Approved-by: Lukas Eder
2019-05-21 14:38:06 +02:00
Lukas Eder
17df39efbc [jOOQ/jOOQ#8656] Add org.jooq.DDLExportConfiguration 2019-05-21 12:58:18 +02:00
Lukas Eder
fce9626b13 [jOOQ/jOOQ#8615] Missing NOTICE file from commons-lang 2019-05-21 12:23:17 +02:00
Lukas Eder
cdf8ea7381 [jOOQ/jOOQ#8660] Add support for synthetic ALTER TABLE .. DROP PRIMARY KEY <name> syntax 2019-05-21 11:20:05 +02:00
Lukas Eder
80bb688a75 [#8654] Emulate MySQL's ALTER TABLE .. DROP PRIMARY KEY in PostgreSQL 2019-05-20 11:16:09 +02:00
Lukas Eder
5c17db88e8 [#8201] Add support for EXECUTE for use in procedural blocks 2019-05-20 11:02:35 +02:00
Lukas Eder
159a2bbb26 [#8650] Add support for MySQL's ALTER TABLE .. DROP PRIMARY KEY syntax 2019-05-20 10:25:34 +02:00
Lukas Eder
ebce61b0fc [#8649] Add support for MySQL's ALTER TABLE .. DROP FOREIGN KEY syntax 2019-05-18 16:47:48 +02:00
Lukas Eder
8d61fa4235 [#8637] Support annotation mismatch between overloaded methods 2019-05-16 11:11:01 +02:00
Lukas Eder
626703b841 [#8636] Missing PlainSQL annotations on some API 2019-05-16 10:08:13 +02:00
Knut Wannheden
496e381e79 [#8634] Remove MySQL support for DROP INDEX IF EXISTS
MySQL does not support this and it cannot easily be emulated.
2019-05-16 08:03:33 +02:00
Lukas Eder
6f43106f47 [#8627] Some Support annotation mismatches between DSLContext and DSL methods 2019-05-14 18:03:17 +02:00
Lukas Eder
f5c93ca6b9 [#7518] [#8623] Add parser support for TOP (n) in DML 2019-05-14 14:38:58 +02:00
Lukas Eder
9e348f28d0 [#7163] More consistent method names 2019-05-14 13:52:41 +02:00
Lukas Eder
62c42944d3 [#8619] Let Query subtypes extends RowCountQuery, which extends Publisher<Integer> 2019-05-13 12:39:47 +02:00
Lukas Eder
b1d992e33b [#8619] Let Query subtypes extends RowCountQuery, which extends Publisher<Integer> 2019-05-13 12:39:40 +02:00
Lukas Eder
af00823df5 [#4371] Add support for the JDK 9 Flow API (JSR-166 enhancements) and reactive streams 2019-05-13 11:37:08 +02:00
Lukas Eder
4dc63312a8 [#8606] Fixed this also for values(Field...) 2019-05-13 09:27:17 +02:00
lukaseder
00dbe54d69 [#7163] WIP 2019-05-10 16:43:43 +02:00
lukaseder
4aa834c8d0 Merge branch 'master' of https://github.com/jOOQ/jOOQ 2019-05-09 21:09:30 +02:00
Knut Wannheden
971378a3b0 [#8579] Implement parsing of UNIQUE predicate 2019-05-09 11:17:41 +02:00
Knut Wannheden
7d818d2f3f [#8294] Interactive mode is the default 2019-05-09 11:17:26 +02:00
Knut Wannheden
7a7350e508 [#8606] Bad SQL generated when writing multi row insert query with
unknown column names (plain SQL table)
2019-05-09 11:17:00 +02:00
lukaseder
9f4754bac5 [#8606] Bad SQL generated when writing multi row insert query with unknown column names (plain SQL table) 2019-05-07 18:04:14 +02:00
lukaseder
aa5e566d88 [#8294] Interactive mode is the default 2019-05-07 18:04:04 +02:00
lukaseder
d87e6f1b93 Added missing Support annotations 2019-05-07 17:22:56 +02:00
lukaseder
0611a6713d [#8606] Bad SQL generated when writing multi row insert query with unknown column names (plain SQL table) 2019-05-07 17:22:37 +02:00
lukaseder
651fbc5973 [#8604] Add support for DB2 multi ALTER TABLE ADD / DROP statements 2019-05-06 13:13:51 +02:00
lukaseder
b3b7090495 [#8603] DB2 CREATE TABLE IF EXISTS emulation should ignore SQLState 42710, not 42704 2019-05-06 13:03:53 +02:00
lukaseder
034c2db718 [#8602] Add support for DB2 translate 2019-05-06 12:55:56 +02:00
Knut Wannheden
8ede6ac357 [#8593] The row_number emulation is only needed in the pro editions 2019-05-03 16:10:13 +02:00
Knut Wannheden
b61f2d0c9b [#8593] DB2 ranking functions require an ORDER BY clause 2019-05-03 16:01:07 +02:00
Knut Wannheden
554b8fcd1e [#8596] Support more DML for MySQL
Added some missing @Support annotations.
2019-05-03 15:48:55 +02:00
Knut Wannheden
58cb9e5692 [#8595] Support more MySQL DDL
CREATE SCHEMA, CREATE OR REPLACE VIEW, and DROP SCHEMA.
2019-05-03 15:48:37 +02:00
lukaseder
cad39d4e62 [#8593] DB2 ranking functions require an ORDER BY clause 2019-05-02 13:39:10 +02:00
Knut Wannheden
a7a0a02d3c [#8591] Extract DSL#unnest() into private unnest0()
This refatoring is done in order to avoid @Support annotated methods
(with incompatible sets of dialects) calling each other.
2019-05-02 11:59:55 +02:00
Knut Wannheden
3d94a4885e [#8590] Support for SQLite EXPLAIN 2019-05-02 11:33:32 +02:00
Knut Wannheden
696d953036 [#8588] Add SQLite support for partial indexes
Adds SQLite to the @Support annotations of CreateIndexWhereStep.
2019-05-02 11:33:13 +02:00
Knut Wannheden
82f18d0129 [#8582] Support AURORA_MYSQL in MySQLDSL
Add AURORA_MYSQL to @Support annotations of MySQLDSL.
2019-05-01 13:34:47 +02:00
lukaseder
cc4d7cd837 [#8573] Outdated Javadoc on ExecuteType.DDL 2019-04-29 10:52:55 +02:00
lukaseder
6ad62ad5b7 [#7518] [#8572] Add parser support for RATIO_TO_REPORT 2019-04-29 10:24:24 +02:00
lukaseder
0e50536a3e [#8570] Wrong Javadoc on Record.setValue() 2019-04-29 09:47:50 +02:00
Knut Wannheden
50ac9e746c [#1699] Support UNIQUE constraint
Add DSL#unique(Select) which represents the standard SQL "UNIQUE"
constraint. Since no of the supported dialects natively support UNIQUE,
the constraint is always emulated as a NOT EXISTS predicate (and NOT
UNIQUE is emulated as a corresponding EXISTS predicate). See the
following example:

  NOT EXISTS (
    SELECT NULL
    FROM (SELECT 1 a, 2 b UNION ALL SELECT 1 a, 2 b) t
    WHERE (a, b) IS NOT NULL
    GROUP BY a, b
    HAVING count(*) > 1
  )
2019-04-24 11:51:58 +02:00
Knut Wannheden
323b8cc36b Added Knut to ABOUT.txt 2019-04-24 11:51:29 +02:00
lukaseder
fc8f74ed87 [#7851] DSL.coerce() should use argument field's qualified name 2019-04-24 10:34:54 +02:00
lukaseder
65ce24294c [#8561] Wrong cast generated for Informix and others when casting a LocalDateTime value 2019-04-23 15:34:12 +02:00
lukaseder
60d856075e [#8560] Add support for calling stored functions with defaulted parameters from SQL in Oracle 2019-04-23 14:31:11 +02:00
Knut Wannheden
8f616025c2 [#8511] Updated DefaultRenderContext#SQLITE_KEYWORDS to SQLite 3.28
Updated DefaultRenderContext#SQLITE_KEYWORDS to include all keywords in
SQLite 3.28. See https://www.sqlite.org/lang_keywords.html.
2019-04-23 14:06:25 +02:00
lukaseder
d67d04b19a [#8557] StackOverflowError when using same query instance on both sides of a set operation
In jOOQ 3.x, the DSL API is mostly mutable. For set operations, this means that a query x cannot appear on both sides of the set operation, e.g. x.union(x) is not possible.
2019-04-23 10:31:07 +02:00
lukaseder
9323e819c3 [#8548] Missing H2 support on WindowExcludeStep.excludeNoOthers() 2019-04-23 09:39:11 +02:00
lukaseder
fa9422521f [#8548] Add support for SQLite window function extensions from version 3.28 2019-04-18 18:01:12 +02:00
lukaseder
6860388843 [#8552] Add SQLDialect.supports(Collection<SQLDialect>) 2019-04-18 17:46:08 +02:00
lukaseder
c7beac5ae3 [#8547] Add SQLDialect.SQLITE_3_28 and SQLDialect.SQLITE_3_25 2019-04-18 16:26:06 +02:00
lukaseder
a7215a91ba [#8551] Support old SQLDialects only in commercial distributions 2019-04-18 16:11:37 +02:00
lukaseder
b7e6923f34 [#8502] Missing annotation 2019-04-18 10:56:29 +02:00
Knut Wannheden
e24d186330 [#8433] INSERT ... ON CONFLICT clause for SQLite
As of version 3.24.0 SQLite natively supports INSERT's ON CONFLICT
clause, which can thus also be used by jOOQ.

Note: SQLite doesn't support combining DEFAULT VALUES with ON CONFLICT.
And since SQLite does not support the DEFAULT keyword in INSERT the
DEFAULT VALUES clause cannot be emulated.
2019-04-18 10:48:37 +02:00
Knut Wannheden
861c4422c7 Regenerate JAXB code
Specify <noFileHeader> option to maven-jaxb2-plugin and also normalize
line terminators to UNIX style.
2019-04-18 10:22:24 +02:00
lukaseder
b65a945c91 [#8539] Add alias DSL.default_() for DSL.defaultValue() 2019-04-17 14:27:43 +02:00
lukaseder
c5903425ee [#8537] Parsing CREATE SEQUENCE always leads to quoted sequence names 2019-04-17 13:38:03 +02:00
lukaseder
be6200e1ba [#8522] Added integration test for chained function calls 2019-04-16 16:55:15 +02:00
Knut Wannheden
56fe33475d [#8529] Clean up Javadoc for INSERT ... ON CONFLICT
Improves the DSL Javadoc for INSERT ... ON [ CONFLICT | DUPLICATE KEY ]
2019-04-16 16:22:16 +02:00
lukaseder
97f8700abf [#8531] Wrong Context.subqueryLevel() when emulating derived column lists
If a QueryPart generates a subquery explicitly, then it has to mark it as such.
2019-04-16 16:08:40 +02:00
Knut Wannheden
adcb72fcfb [#7545] Add <includeExpression> and <excludeExpression> to <forcedType>
Add <includeExpression> and <excludeExpression> as well as
<includeTypes> and <excludeTypes> to <forcedType>. The generator will
warn about usage conflicting with the legacy <expression>,
<expressions>, and <types> elements.
2019-04-16 15:34:24 +02:00
Knut Wannheden
840f5a2aed [#8527] Fix MiniJAXB#append() when called using enums
The JAXB generated models also define Java enums, which should thus also
be supported by MiniJAXB#append().
2019-04-16 12:55:45 +02:00
Knut Wannheden
652e2b1a96 [#8515] Fix type hierarchy of InsertOnConflictConditionStep
InsertOnConflictConditionStep now extends InsertReturningStep rather
than InsertFinalStep and is now also the type returned by the methods
declared in InsertOnConflictWhereStep.
2019-04-16 12:49:47 +02:00
Knut Wannheden
14a0f6ddc8 [#3607] [#8522] Support PL/SQL BOOLEAN types in SQL functions 2019-04-16 12:49:37 +02:00
lukaseder
927708b15a [#3607] [#8522] Support PL/SQL BOOLEAN types in SQL functions
[#8522] Emulate the PL/SQL BOOLEAN type in SQL functions in Oracle 12c
[#3607] Allow for emitting common table expression declarations to RenderContext
2019-04-16 12:04:53 +02:00
lukaseder
cd057d34d4 [#461] [#473] [#2597] [#8234] Unnecessary casts should no longer be ignored
Historically, SQL casts were ignored if jOOQ's Field<T> type was of the same type T as the cast type. This makes sense for some internals, but not in the public API. When a user wants to cast an expression, this should always produce a SQL cast.
2019-04-10 16:16:20 +02:00
lukaseder
929529ec7a [#8503] Make SET clause in ON DUPLICATE KEY UPDATE optional in parser
jOOQ parses a synthetic SET clause which is not supported by MySQL. This clause must be parsed optionally
2019-04-10 12:01:55 +02:00
lukaseder
3f84ccf58f [#8479] Emulate INSERT .. ON DUPLICATE KEY UPDATE .. WHERE on MySQL
MySQL doesn't support the useful WHERE clause on ON DUPLICATE KEY UPDATE like PostgreSQL does on ON CONFLICT. But it can easily be emulated using CASE if users do not rely on the effective update counts.
2019-04-10 11:52:56 +02:00
lukaseder
6d630cd53a [#8434] Support H2 v1.4.198 array syntax
H2 1.4.198 changed array syntax incompatibly to align the syntax with PostgreSQL, HSQLDB, and the SQL standard. The old syntax (which conflicts with row value expression) is no longer really supported.
2019-04-10 11:12:28 +02:00
lukaseder
a55a362fd8 [#8502] Add support for H2 1.4.198 row value expression subquery syntax
H2 breaks backwards compatibility in 1.4.198 and supports row value expressions at the price of desupporting the "old" vendor specific array syntax. This means we can now remove some H2 specific logic and implement standard row value expression syntax also for H2
2019-04-09 17:49:26 +02:00
Knut Wannheden
f50f71eb9f [#8429] Fix escaping in AbstractField#endsWith(Object)
Since client code can specify a different value when the query is being
executed, the escaping must be done in SQL rather than in Java. The same
applies to AbstractField#startsWith(Object) and some more LIKE-based
predicates.
2019-04-09 16:37:22 +02:00
lukaseder
f37d66de12 [#8498] Add more documentation to the RETURNING clause 2019-04-09 12:45:51 +02:00
lukaseder
baeae9a24b [#7953] [#8496] Search the hierarchy for a matching setter 2019-04-09 12:33:43 +02:00
lukaseder
af286d96b7 [#8486] Add Settings.renderNamedParamPrefix to support dialect specific named parameter placeholders 2019-04-08 11:16:48 +02:00
lukaseder
519e870394 [#4498] emulate INSERT .. RETURNING via SQL Server OUTPUT clause (WIP) 2019-04-05 17:08:02 +02:00
lukaseder
2785bc84ae [#8491] Remove unnecessary marker tokens in source code 2019-04-05 11:52:34 +02:00
Knut Wannheden
24db79da74 [#8489] Add TableImpl#fieldsRow() override due to Scala compiler bug 2019-04-04 17:51:57 +02:00
Knut Wannheden
7fcbc8e135 [#8484] Fix 3.11 <-> 3.12 mismatches between XSDs and Constants class 2019-04-04 12:14:56 +02:00
lukaseder
b00f17efcf [#8477] Support views with renamed columns in SQLite's CREATE VIEW statement 2019-04-01 13:02:54 +02:00