Commit Graph

10504 Commits

Author SHA1 Message Date
Lukas Eder
8a75e3772f [jOOQ/jOOQ#12498] Meta does not produce correct DataType::nullable information when data type isn't supported 2021-10-11 13:49:24 +02:00
Lukas Eder
5be1737019 [jOOQ/jOOQ#12502] NPE in Query.equals() when Query isn't attached 2021-10-11 11:35:05 +02:00
Lukas Eder
0500353036 [jOOQ/jOOQ#12425] Don't leak <T> type from Traverser<T, ?> 2021-10-11 11:09:38 +02:00
Lukas Eder
9aff87b361 [jOOQ/jOOQ#12425] Added Traversers:
- Added Javadoc to Traverser
- Moved (), (), () to Traversers
- Added a Collector / Traverser bridge
2021-10-09 12:22:01 +02:00
Lukas Eder
c5019200cc [jOOQ/jOOQ#12425] Re-generate API 2021-10-08 16:41:48 +02:00
Lukas Eder
31c1dbb07a [jOOQ/jOOQ#12425] Refactor traversal utilities:
Add a new Traverser type to wrap the common () parameters. This will allow for more versatile API evolution, in case traversal requires additional features in the future, or simpler convenience APIs.
2021-10-08 16:39:30 +02:00
Lukas Eder
29d91ab544 [jOOQ/jOOQ#12425] Refactor traversal utilities:
Add a new Traverser type to wrap the common () parameters. This will allow for more versatile API evolution, in case traversal requires additional features in the future, or simpler convenience APIs.
2021-10-08 16:17:13 +02:00
Lukas Eder
f035aa30e0 [jOOQ/jOOQ#12425] () needs before/after events, not just before 2021-10-08 14:24:29 +02:00
Lukas Eder
f17f1e2a46 [jOOQ/jOOQ#12495] Ignored COMMENT ON CONSTRAINT syntax should support qualified object identifiers 2021-10-08 14:20:18 +02:00
Lukas Eder
7d08b3fa4a [jOOQ/jOOQ#12425] Replace Tools.traverseConditions by 2021-10-07 23:00:21 +02:00
Lukas Eder
43ab2fbf7c [jOOQ/jOOQ#12425] Backport pattern matching for instanceof (WIP) 2021-10-07 22:45:19 +02:00
Lukas Eder
cb564c8387 [jOOQ/jOOQ#12425] Backport pattern matching for instanceof (WIP) 2021-10-07 18:46:43 +02:00
Lukas Eder
3a4f19659b [jOOQ/jOOQ#12425] Ensure Nullable annotations are correct on QOM types 2021-10-07 16:54:03 +02:00
Lukas Eder
bd83f2bbc3 [jOOQ/jOOQ#12488] Add Maven groupId info to Constants 2021-10-07 15:14:45 +02:00
Lukas Eder
6f329c16f7 [jOOQ/jOOQ#12488] More robust version check (e.g. NoClassDefFoundError) 2021-10-07 15:06:53 +02:00
Lukas Eder
74005c452d [jOOQ/jOOQ#12488] Log warning in code generator when wrong runtime
version is used
2021-10-07 15:03:44 +02:00
Lukas Eder
c094b7b798 [jOOQ/jOOQ#12425] Refactor internal transformation utilities
We already had a few internal expression tree transformation utilities,
which can now be refactored in favour of more generic QOM transformation
tools. The refactoring includes:

- And::transform and Or::transform
- ANSI JOIN to Oracle (+) JOIN transformation (fixing some limitations)
2021-10-06 21:26:03 +02:00
Lukas Eder
b14e51a453 [jOOQ/jOOQ#12425] Ensure we use XML and JSON instead of Xml and Json 2021-10-06 17:40:16 +02:00
Lukas Eder
330e73ec4d [jOOQ/jOOQ#12425] Refactor QOM type hierarchies (WIP)
This branch attempts not to create two separate type hierarchies.

Pros:
- "Switching" between DSL and model API is trivial, because no switch
- Model API can be used to construct new models using DSL API
- No new type name prefix needs to be invented, only method name prefix

Cons:
- "Polluted" QueryPart API can lead to friction for non-model API users

Also, avoid conflicts between DSL and model API by prefixing model API methods with $, also in QueryPart
2021-10-06 17:12:36 +02:00
Lukas Eder
7dc85b6373 [jOOQ/jOOQ#12480] DSL.arrayGet() does not generate required parentheses 2021-10-05 16:00:08 +02:00
Lukas Eder
66e8e39883 [jOOQ/jOOQ#12425] Rather than remove, comment out sealed type info 2021-10-01 14:37:17 +02:00
Lukas Eder
d6c466de21 [jOOQ/jOOQ#12425] permits may reference qualified types 2021-10-01 14:26:22 +02:00
Lukas Eder
4cddcf45bc [jOOQ/jOOQ#12425] Preserve whitespace when removing permits clause 2021-10-01 14:06:25 +02:00
Lukas Eder
25d6cbd768 [jOOQ/jOOQ#12425] Made some QOM types sealed (WIP) 2021-10-01 11:21:12 +02:00
Lukas Eder
16a1a75379 [jOOQ/jOOQ#12425] Added QOM API tests
Make sure accessors always have the same $ prefix
2021-09-30 17:01:31 +02:00
Lukas Eder
706241241a [jOOQ/jOOQ#12425] Fixed Derby regression in GREATEST, LEAST emulation 2021-09-30 16:45:37 +02:00
Lukas Eder
fc1aa76d5b [jOOQ/jOOQ#12425] Added QOM API tests
Replace 3 valued Boolean types with enums:
- CycleOption
- RestartIdentityOption

Replace 3 valued Boolean types with boolean
- ToPublic (in Grant)
- FromPublic (in Revoke)
- Unique (in CreateIndex)
- Temporary (in DropTable)

Use API generator to generate Keywords / cleanup Keywords class
2021-09-30 14:26:22 +02:00
Lukas Eder
bc21b67fe2 [jOOQ/jOOQ#12425] Added QOM API tests
- Validating visibilities of U, M prefixed types
- Validating nullability of methods
- Fixed some Iterable methods that should be annotated as NotNull
2021-09-30 12:43:54 +02:00
Lukas Eder
ff89ad2f1d [jOOQ/jOOQ#12425] Fixed import 2021-09-30 12:25:13 +02:00
Lukas Eder
32c87800fe [jOOQ/jOOQ#12425] Refactor AbstractCondition.unwrapNot
With the new MQueryPart.replace() functionality, a lot of internal expression tree transformations are no longer required, among which the AbstractCondition.unwrapNot utility that can transform things like NOT NOT P to P as is useful for a Teradata workaround (see [jOOQ/jOOQ#11857])
2021-09-30 11:52:28 +02:00
Lukas Eder
2d98150483 [jOOQ/jOOQ#12425] Various fixes
If a QueryPart has a special DSL constructor (e.g. to prevent unnecessary wrapping of parts, such as ConditionAsField(FieldCondition(x)) or FieldCondition(ConditionAsField(x)), then we should make sure that DSL constructor is used, not the actual constructor, at least in replace()
2021-09-30 10:27:40 +02:00
Lukas Eder
b91e9235b3 [jOOQ/jOOQ#12425] Various fixes
- The MNull statement isn't commercial only
2021-09-29 17:59:01 +02:00
Lukas Eder
e8ee9b1b7b [jOOQ/jOOQ#12425] Various fixes
- Fix wrongly removed QOM imports in OSS edition
2021-09-29 17:18:32 +02:00
Lukas Eder
9de10a8a6b [jOOQ/jOOQ#12425] Various fixes
Revert wrong ConditionProviderImpl fix. join(..).on(..).and(..) depends on the previous behaviour, otherwise we lose the appended condition from the join convenience syntax
2021-09-29 17:02:23 +02:00
Lukas Eder
205757698b [jOOQ/jOOQ#12425] Various fixes
- ConditionProviderImpl shouldn't nest ConditionProviderImpl
- Stick with MFieldAlias, instead of MAliasedField
- Added and implemented MTableAlias
- Add a Param.(T) setter
2021-09-29 16:46:12 +02:00
Lukas Eder
d5e8a36e31 [jOOQ/jOOQ#12425] Fix OSS edition 2021-09-29 15:46:25 +02:00
Lukas Eder
d59c72fa07 [jOOQ/jOOQ#12425] TableFieldImpl should be UEmpty 2021-09-29 14:50:13 +02:00
Lukas Eder
66c1787f71 [jOOQ/jOOQ#12425] Fixed OSS version of QOM class 2021-09-29 14:24:29 +02:00
Lukas Eder
95153b184c [jOOQ/jOOQ#12425] Removed ad-hoc tests 2021-09-29 14:05:44 +02:00
Lukas Eder
6ecb5b5cd8 [jOOQ/jOOQ#12457] Generate some Javadoc on implicit join path navigation methods 2021-09-29 14:03:56 +02:00
Lukas Eder
d2a7e33fdb [jOOQ/jOOQ#12470] Add better Javadoc documentation about what Class<T> literals can be passed to DSL.val(Object, Class), etc. 2021-09-29 13:28:16 +02:00
Lukas Eder
1651e5631a [jOOQ/jOOQ#12425] Initial draft of the new query object model (QOM)
This draft includes:

- A QOM namespace containing the QOM API
- Lots of generated MQueryPart subtypes from our API generator
- Generated implementations of MQueryPart subtypes
- A draft MQueryPart traversal API

The current draft is not stable and will likely undergo heavy changes. Do not use this API yet for any production purposes (the existing DSL API is not affected, though)
2021-09-29 11:11:49 +02:00
Lukas Eder
fbffae86f1 [jOOQ/jOOQ#11864] Remove dates from blog URLs 2021-09-28 17:01:40 +02:00
Lukas Eder
b286fe1abc [jOOQ/jOOQ#12465] [jOOQ/jOOQ#12432] Extract more CompareConditions
Including:
- IN
- NOT_IN
2021-09-24 16:39:04 +02:00
Lukas Eder
2e061133ea [jOOQ/jOOQ#12465] [jOOQ/jOOQ#12432] Extract more CompareConditions
Including:
- LIKE_IGNORE_CASE
- NOT_LIKE_IGNORE_CASE
- NOT_SIMILAR_TO
- SIMILAR_TO
2021-09-24 15:57:57 +02:00
Lukas Eder
e6f3232710 [jOOQ/jOOQ#12465] [jOOQ/jOOQ#12432] Extract LIKE, NOT LIKE 2021-09-24 15:13:33 +02:00
Lukas Eder
db8c811cca [jOOQ/jOOQ#12465] Split RowIsNull into RowIsNull and SelectIsNull 2021-09-23 14:54:23 +02:00
Lukas Eder
b220e67b05 [jOOQ/jOOQ#12465] Move BOOL_AND and BOOL_OR to API generator 2021-09-23 14:54:13 +02:00
Lukas Eder
5761ddd40e [jOOQ/jOOQ#12465] Move ANY_VALUE to API generator 2021-09-23 14:08:35 +02:00
Lukas Eder
efd74633cb [jOOQ/jOOQ#12465] Move PRODUCT to API generator 2021-09-23 13:57:46 +02:00