Commit Graph

11207 Commits

Author SHA1 Message Date
Lukas Eder
15fc42b979 [jOOQ/jOOQ#13486] Replace internal ConstantSortField by noField() 2022-04-26 14:28:27 +02:00
Lukas Eder
50bcf05986 [jOOQ/jOOQ#13485] Add a QOM.UOpaque marker interface for non-traversable QueryPart types 2022-04-26 14:01:13 +02:00
Lukas Eder
bbb2dec695 [jOOQ/jOOQ#9879] Take into account MySQL's SET clause order sensitivity 2022-04-26 12:47:56 +02:00
Lukas Eder
06cca93aa1 [jOOQ/jOOQ#9879] Prevent correlation trouble when using SET c = c + 1
The emulation using SET ROW = (SELECT ...) is very generic and avoids repeating potentially non-deterministic expressions, but it suffers from the fact that it requires support for correlated derived tables, which aren't supported in at least Db2, H2, MariaDB, MySQL 5.7, Oracle 11g

A more pragmatic emulation uses QueryPart:: to substitute all references to 'c' by 'c + 1' in computed column expressions, avoiding the correlated subquery.
2022-04-26 12:28:25 +02:00
Lukas Eder
5236080692 [jOOQ/jOOQ#13482] Upgrade H2 dependency to 2.1.212 2022-04-26 10:03:23 +02:00
Lukas Eder
521a364010 [jOOQ/jOOQ#13014] Document the /S, /schema, -S, --schema flag 2022-04-25 16:42:53 +02:00
Lukas Eder
b5b9acc2a0
Merge pull request #13479 from jOOQ/dependabot/maven/org.springframework-spring-core-5.3.19
Bump spring-core from 5.3.18 to 5.3.19
2022-04-25 16:07:48 +02:00
Lukas Eder
65d2396cb2 [jOOQ/jOOQ#9981] Add improvement and apply it to
- SimpleDataKey.DATA_WINDOW_DEFINITIONS
2022-04-25 16:04:53 +02:00
Lukas Eder
1bc9f81217 [jOOQ/jOOQ#9981] Add improvement and apply it to
- BooleanDataKey.DATA_AS_REQUIRED
- BooleanDataKey.DATA_MANDATORY_WHERE_CLAUSE
2022-04-25 15:28:40 +02:00
dependabot[bot]
ec8ef4241c
Bump spring-core from 5.3.18 to 5.3.19
Bumps [spring-core](https://github.com/spring-projects/spring-framework) from 5.3.18 to 5.3.19.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.18...v5.3.19)

---
updated-dependencies:
- dependency-name: org.springframework:spring-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 22:10:20 +00:00
Lukas Eder
033ba61598 [jOOQ/jOOQ#11731] Emulate Oracle INSERT .. SELECT.. RETURNING 2022-04-22 20:31:32 +02:00
Lukas Eder
abd9e5b7fc [jOOQ/jOOQ#9879] Prevent writing to virtual client side computed columns 2022-04-22 14:28:27 +02:00
Lukas Eder
a3635b4aa8 [jOOQ/jOOQ#13473] SQLException when calling oracle.jdbc.driver.ArrayDataResultSet.getMetaData() 2022-04-22 10:52:42 +02:00
Lukas Eder
ad66537fe9 [jOOQ/jOOQ#13471] Add Scope.creationTime() and make it available through GeneratorContext.renderTime() 2022-04-21 15:36:32 +02:00
Lukas Eder
be023ec8bf [jOOQ/jOOQ#13468] Work around SQLite INSERT .. SELECT .. ON CONFLICT bug 2022-04-21 14:48:41 +02:00
Lukas Eder
3d4ce31d8b [jOOQ/jOOQ#9879] DefaultGenerator must override supports() 2022-04-21 12:27:34 +02:00
Lukas Eder
e17d2c26f8 [jOOQ/jOOQ#9879] Implement exactly once Generator semantics 2022-04-21 11:13:26 +02:00
Lukas Eder
dae248ac3e [jOOQ/jOOQ#13467] Generate @Suppress(INAPPLICABLE_JVM_NAME) everywhere 2022-04-21 10:02:28 +02:00
Lukas Eder
0b3c99e00a [jOOQ/jOOQ#13467] KotlinGenerator should generate open properties in generated records 2022-04-21 09:48:26 +02:00
Lukas Eder
2f064052e8 [jOOQ/jOOQ#9879] Support client side computed embeddables in UPSERT 2022-04-20 17:42:52 +02:00
Lukas Eder
b17ec92d98 [jOOQ/jOOQ#13465] Parameters and UDTFields can also be defaulted 2022-04-20 15:21:13 +02:00
Lukas Eder
825e698455 [jOOQ/jOOQ#13465] Expressions based on computed columns must not retain computation reference 2022-04-20 14:21:23 +02:00
Lukas Eder
93ad14f891 [jOOQ/jOOQ#13464] Add ExecuteContext.executionTime():Instant 2022-04-20 13:20:50 +02:00
Lukas Eder
33b383b0a3 [jOOQ/jOOQ#1592] Added support for audit columns in embeddables
- AuditProvider callbacks should receive GeneratorContext, not DataType
- Added code generation tests (some still fail)
- Added integration tests (still fail)
- Flatten embeddables
  - in Tools::anyComputedOnClientStoredFields
  - in FieldMapsForInsert::keysFlattenedAndComputedOnClientStored

This includes:

- [jOOQ/jOOQ#9879] Retain aliasing of computed columns in projection
2022-04-20 13:19:54 +02:00
Lukas Eder
7740ce2ecd Remove codeql-analysis again 2022-04-20 13:19:31 +02:00
Lukas Eder
318fccae97 Merge branch 'main' of github.com:jOOQ/jOOQ 2022-04-19 16:51:24 +02:00
Lukas Eder
b87e1d360b [jOOQ/jOOQ#13461] ResultQueryTrait::getFields should accept Supplier<ResultSetMetaData> instead of ResultSetMetaData 2022-04-19 16:50:11 +02:00
Lukas Eder
fee2d124fc
Create codeql-analysis.yml 2022-04-19 10:55:05 +02:00
Lukas Eder
551b8576e1
Create SECURITY.md 2022-04-19 10:53:35 +02:00
Lukas Eder
153762132f [jOOQ/jOOQ#9879] Added more generics to Generator and GeneratorContext
In order to implement pure functions of type Generator, we must make the GeneratorContext::table available to Generator implementations, including the usual type safety that allows for binding to the generated table type, which gives access to columns. This prevents having to capture this from the Generator, which isn't too clean (though it's still possible for those people who don't care)
2022-04-19 10:26:45 +02:00
Lukas Eder
4717560baa [jOOQ/jOOQ#1592] [jOOQ/jOOQ#9879] AuditGenerator improvements
- Added DataType::computedOnClientStoredOn
- Improved DataType Javadoc
- AuditGenerator can accept multiple GeneratorStatementType
- Made GeneratorContext<T> generic
- Added GeneratorContext.field()
2022-04-14 14:26:11 +02:00
Lukas Eder
1b4f2ba690 [jOOQ/jOOQ#1592] [jOOQ/jOOQ#9879] AuditGenerator improvements
- Added DataType::computedOnClientStoredOn
- Improved DataType Javadoc
- AuditGenerator can accept multiple GeneratorStatementType
- Made GeneratorContext<T> generic
- Added GeneratorContext.field()
2022-04-14 14:26:01 +02:00
Lukas Eder
bd064a7be9 [jOOQ/jOOQ#9879] Added GeneratorStatementType 2022-04-13 14:35:59 +02:00
Lukas Eder
69d2708080 [jOOQ/jOOQ#1592] Added SPI 2022-04-13 14:20:14 +02:00
Lukas Eder
fb99f8b05a [jOOQ/jOOQ#9879] Added a GeneratorContext
Generators may require access to a Configuration, so they should be
Function<Generator, Field<T>>, not Supplier<Field<T>>

Fixed issues and added many more tests for virtual client side computed
columns.
2022-04-13 12:02:28 +02:00
Lukas Eder
779d67338a [jOOQ/jOOQ#13446] Add H2_2_0_202 support for UPDATE .. RETURNING and DELETE .. RETURNING 2022-04-13 12:01:54 +02:00
Lukas Eder
90f0a01c91 [jOOQ/jOOQ#13434] Log unused synthetic columns 2022-04-11 11:13:12 +02:00
Lukas Eder
124368ce3e [jOOQ/jOOQ#13439] No warning is logged when readonly columns or rowids are not used 2022-04-11 11:07:24 +02:00
Lukas Eder
c812e30b6f [jOOQ/jOOQ#9864] checkReadonly() always throws 2022-04-11 10:26:28 +02:00
Lukas Eder
d3b700685d [jOOQ/jOOQ#9879] Support VIRTUAL client side computed columns 2022-04-08 17:04:34 +02:00
Lukas Eder
3291bc007a [jOOQ/jOOQ#13437] Add Definition.isSynthetic() to indicate that a jOOQ-meta object has been created synthetically 2022-04-08 14:51:56 +02:00
Lukas Eder
dae57e01cd [jOOQ/jOOQ#13434] Add <columns/> to <syntheticObjects/> to generate
synthetic columns
2022-04-08 14:39:26 +02:00
Lukas Eder
c47ce55f61 [jOOQ/jOOQ#2333] Update API generator 2022-04-07 15:45:52 +02:00
Lukas Eder
f7e72cd17d [jOOQ/jOOQ#13432] Add <visibilityModifier/> code generation option to <forcedType/> 2022-04-07 14:56:07 +02:00
Lukas Eder
59be6f5f23 [jOOQ/jOOQ#13429] DSL.noCondition() isn't applied correctly to aggregate FILTER WHERE clause 2022-04-07 11:41:46 +02:00
Lukas Eder
f59c3b8d8c [jOOQ/jOOQ#2333] Add DSL.noField() for "conditional" LIMIT, OFFSET, GROUP BY, ORDER BY support when creating dynamic SQL 2022-04-07 10:53:28 +02:00
Lukas Eder
b0674b341e [jOOQ/jOOQ#12905] Check for ScalarSubquery, not Select 2022-04-06 13:59:21 +02:00
Lukas Eder
a60f5df8fb [jOOQ/jOOQ#13399] Updated a few dependencies 2022-04-06 11:44:16 +02:00
Lukas Eder
c92a542d4d [jOOQ/jOOQ#13426] DSLContext::fetchFromJSON and ::fetchFromXML wrongly
assume dialect specific data types in header
2022-04-06 11:44:05 +02:00
Lukas Eder
8dd9c76a48 [jOOQ/jOOQ#13425] Fix MERGE .. SET clause emulation
This includes: [jOOQ/jOOQ#13326] An attempt at fixing ORDER BY emulation, which is currently wrong
2022-04-05 16:28:29 +02:00