Commit Graph

9886 Commits

Author SHA1 Message Date
Lukas Eder
d298eeca8c [jOOQ/jOOQ#11700] Work around https://bugs.openjdk.java.net/browse/JDK-8264275 2021-03-26 14:07:39 +01:00
Lukas Eder
6409400d56 [jOOQ/jOOQ#11700] [jOOQ/jOOQ#11190] Support INSERT .. RETURNING 2021-03-26 11:28:06 +01:00
Lukas Eder
4819e68743 [jOOQ/jOOQ#11700] Implement RowCountQuery.subscribe() 2021-03-25 21:53:54 +01:00
Lukas Eder
d7736fda19 [jOOQ/jOOQ#11700] Add support for array types 2021-03-25 17:54:53 +01:00
Lukas Eder
c5b98e36ad [jOOQ/jOOQ#11700] Make sure we maintain input bind indexes
The ParsingConnectionFactory currently ignores the actual bind index and uses them just for sorting the bind values. This is incorrect, in case a driver implementation support omitting bind values for a given index, e.g. when batching.
2021-03-25 16:36:18 +01:00
Lukas Eder
1b7a3684a4 [jOOQ/jOOQ#11712] Support parsing the ** exponentiation operator 2021-03-25 15:49:59 +01:00
Lukas Eder
9923e22bb5 [jOOQ/jOOQ#11711] Use floating point literals for inline DOUBLE, FLOAT, and REAL literals 2021-03-25 15:23:13 +01:00
Lukas Eder
db6f8efc22 [jOOQ/jOOQ#11700] Fix MariaDB and SQL Server bind variable usage
- SQL Server's R2DBC driver seems to only support named params
- Support fetchSize
- Support BINARY_FLOAT and BINARY_DOUBLE types in Oracle
- Support binding temporal types (R2DBC doesn't support java.sql types)
2021-03-25 09:06:28 +01:00
Lukas Eder
5fa2669f19 [jOOQ/jOOQ#11700] MariaDB and SQL Server don't support bind values yet 2021-03-24 16:47:36 +01:00
Lukas Eder
c6d049d9d7 [jOOQ/jOOQ#8821] Add Settings.parseNamedParamPrefix to support dialect
specific named parameter placeholders
2021-03-24 15:34:25 +01:00
Lukas Eder
a49950b831 [jOOQ/jOOQ#11700] Add a R2DBCPreparedStatement proxy
In order to re-use existing variable binding logic (and eventually, to
offer supporing org.jooq.Binding transparently), we'll implement an
R2DBCPreparedStatement proxy that wraps the R2DBC Statement in a JDBC
PreparedStatement and can thus use the existing lifecycle methods.
2021-03-24 13:39:50 +01:00
Lukas Eder
87d356de41 [jOOQ/jOOQ#11704] Don't use H2's obscure SQRT(-1) trick for NaN 2021-03-24 11:15:39 +01:00
Lukas Eder
abf27a50a0 [jOOQ/jOOQ#11700] Support plain SQL queries
A new R2DBC to JDBC ResultSetMetaData bridge helps re-use existing code to detect column names and types when we don't know them from the query.
2021-03-24 10:59:06 +01:00
Lukas Eder
9db3cf002f [jOOQ/jOOQ#11700] Add support for ResultQuery.getRecordType()
This allows for using selectFrom() and get UpdatableRecords (which can't be stored yet, but at least they have getters / setters).
2021-03-24 10:01:13 +01:00
Lukas Eder
74569c5989 [jOOQ/jOOQ#11700] Add R2DBC support
- Add non-blocking ResultQuery.subscribe() implementation (draft)
2021-03-23 22:14:42 +01:00
Lukas Eder
f27e57521f [jOOQ/jOOQ#11700] Add R2DBC support
- Add DSLContext.parsingConnectionFactory()
2021-03-23 17:35:34 +01:00
Lukas Eder
22d9f0758b [jOOQ/jOOQ#11704] WAT javac 8? 2021-03-23 15:05:04 +01:00
Lukas Eder
b4919c9862 [jOOQ/jOOQ#11707] SQUARE() should be emulated using POWER() if the argument is not a SimpleQueryPart 2021-03-23 14:55:08 +01:00
Lukas Eder
f163601be5 [jOOQ/jOOQ#11705] Add parser support for Firebird's BLOB SUB_TYPE syntax 2021-03-23 13:43:54 +01:00
Lukas Eder
e2cecab034 [jOOQ/jOOQ#11704] Support floating point NaN and (-)Infinity (WIP) 2021-03-23 13:36:19 +01:00
Lukas Eder
a1b22b1716 [jOOQ/jOOQ#11700] Add a jOOQ-r2dbc module (ignore for now) 2021-03-23 09:16:39 +01:00
Lukas Eder
5df798387b [jOOQ/jOOQ#6252] Infinity values not correctly escaped with PostgreSQL 2021-03-23 09:15:46 +01:00
Lukas Eder
9f0530cace [jOOQ/jOOQ#11699] Support parsing Oracle comparison operators with whitespace in between 2021-03-22 20:47:21 +01:00
Lukas Eder
7b7cd0e79f [jOOQ/jOOQ#11694] Parse TO_DATE(string) and TO_TIMESTAMP(string) 2021-03-22 17:55:13 +01:00
Lukas Eder
50825f5e1b [jOOQ/jOOQ#8334] Documented caching of ParsingConnection 2021-03-22 12:06:08 +01:00
Lukas Eder
8f7b51808e [jOOQ/jOOQ#11688] Remove experimental remarks from all parser API 2021-03-22 11:30:37 +01:00
Lukas Eder
733ad5c210 [jOOQ/jOOQ#11031] Add another comment regarding some tables not knowing their fields 2021-03-22 09:54:10 +01:00
Lukas Eder
0545969e8b [jOOQ/jOOQ#11684] Restore lazy Cache.key() behaviour 2021-03-21 19:59:43 +01:00
Lukas Eder
dda4215190 [jOOQ/jOOQ#11684] Cannot use ConcurrentHashMap.computeIfAbsent()
Because that would prevent calling it recursively due to an implementation flaw in the JDK method.
2021-03-21 19:31:25 +01:00
Lukas Eder
32b2170830 [jOOQ/jOOQ#11684] Lazy Cache.key() calculation to prevent allocations 2021-03-21 11:36:10 +01:00
Lukas Eder
6206129ddd [jOOQ/jOOQ#8334] ParsingConnection should cache frequent input / output SQL string pairs
This includes:
- [jOOQ/jOOQ#11684] Add a CacheProvider SPI to allow for overriding the default ConcurrentHashMap
2021-03-21 11:31:16 +01:00
Lukas Eder
b0ff984619 [jOOQ/jOOQ#11683] REPLACE should inline empty string parameter 2021-03-20 23:36:33 +01:00
Lukas Eder
8378c35e21 [jOOQ/jOOQ#11683] REPLACE should inline empty string parameter 2021-03-20 23:32:45 +01:00
Lukas Eder
c4d6560f6f [jOOQ/jOOQ#11660] Emulate CONNECT BY LEVEL < x - WIP 2021-03-19 20:53:42 +01:00
Lukas Eder
49db2f1fed [jOOQ/jOOQ#10572] [jOOQ/jOOQ#11232] Support parsing the STDDEV alias 2021-03-19 16:48:26 +01:00
Lukas Eder
cf16992b0e [jOOQ/jOOQ#11658] PostgresDatabase doesn't produce CHAR type length for CHAR(n)[] array types 2021-03-19 15:56:01 +01:00
Lukas Eder
436c2ed393 [jOOQ/jOOQ#11672] Function formatting improvements 2021-03-19 13:58:10 +01:00
Lukas Eder
d802105da7 [jOOQ/jOOQ#11672] Function formatting
improvements

This includes:
- [jOOQ/jOOQ#11674] Add native support for NVL2 where supported
- [jOOQ/jOOQ9085] NVL2 should generate NVL2 for the DEFAULT dialect
2021-03-19 11:36:20 +01:00
Lukas Eder
d43fc234ef [jOOQ/jOOQ#11672] Function and QueryPartCollectionView formatting
improvements

This includes:
- [jOOQ/jOOQ#11673] Emulate NVL using COALESCE instead of CASE, where possible
- [jOOQ/jOOQ9085] NVL should generate NVL for the DEFAULT dialect
2021-03-19 11:07:11 +01:00
Lukas Eder
fadd3aa05a [jOOQ/jOOQ#11667] Oracle MetaTable fields do not have identity information 2021-03-18 18:18:57 +01:00
Lukas Eder
22f0b7e8d5 [jOOQ/jOOQ#11367] Oracle triggers require DECLARE keyword 2021-03-18 17:50:35 +01:00
Lukas Eder
304d4fb4c9 [jOOQ/jOOQ#11666] Do this also for Firebird 2021-03-18 16:55:42 +01:00
Lukas Eder
d3f9928ff0 [jOOQ/jOOQ#5810] Emulate QUALIFY
This includes:
- [jOOQ/jOOQ#11666] Expand unqualified asterisk when combined with other
projection expressions and when not supported

The current QUALIFY emulation works with unqualified asterisks in the
synthetic derived table, which may need to be expanded again in some
dialects.
2021-03-18 16:48:26 +01:00
Lukas Eder
f25596ff19 [jOOQ/jOOQ#5810] Fix splitter problems 2021-03-18 16:15:53 +01:00
Lukas Eder
a912917b3f [jOOQ/jOOQ#5810] Emulate QUALIFY
- Remove nest() methods from OSS edition
- Don't extract window functions from QUALIFY. Project QUALIFY instead
- Derived table projects * if columns are not ambiguous
- It aliases columns if they are (TODO: Unaliasing)
2021-03-18 16:09:34 +01:00
Lukas Eder
c43ec348d6 [jOOQ/jOOQ#5810] Log a warning if OSS edition tries to emulate QUALIFY 2021-03-18 12:17:10 +01:00
Lukas Eder
f4f42de123 [jOOQ/jOOQ#5810] Refactor copyTo() and nestTo() methods for better reuse 2021-03-18 12:01:02 +01:00
Lukas Eder
66d875a922 [jOOQ/jOOQ#5810] Emulate QUALIFY where not supported - WIP 2021-03-18 10:33:30 +01:00
Lukas Eder
4febe602d8 [jOOQ/jOOQ#5810] Emulate QUALIFY where not supported
This includes:
- [jOOQ/jOOQ#11663] Wrong order of WINDOW / QUALIFY clauses
2021-03-17 18:07:05 +01:00
Lukas Eder
71f26063df [jOOQ/jOOQ#10716] Fix known issues of Settings.transformRownum
This includes:
- [jOOQ/jOOQ#11661] ROWNUM with DISTINCT
2021-03-17 15:37:54 +01:00