Will mostly post about Java, SQL, jOOQ, programming humour, and write at https://blog.jooq.org
Not very often, but when I need IGNORE NULLS, then I really miss it in PostgreSQL.
modern-sql.com/caniuse/T616
Not very often, but when I need IGNORE NULLS, then I really miss it in PostgreSQL.
modern-sql.com/caniuse/T616
What is your stance, friends? What do you prefer, ORM or JDBC/jOOQ?
What Hibernate does under the hood, in which scenarios it shines, how you can fall into a trap, and when SQL-first approach is better?
And can you have the best of two worlds in one #Java app?
Watch and find out ->
www.youtube.com/watch?v=J12v...
What is your stance, friends? What do you prefer, ORM or JDBC/jOOQ?
github.com/jOOQ/jOOQ/is...
E.g. you can now write:
ctx. select(AUTHOR, exists(AUTHOR. book()))
.from(AUTHOR)
Instead of spelling out the complete correlated subquery.
github.com/jOOQ/jOOQ/is...
E.g. you can now write:
ctx. select(AUTHOR, exists(AUTHOR. book()))
.from(AUTHOR)
Instead of spelling out the complete correlated subquery.
― Oscar Wilde
― Oscar Wilde
1/ https://shodo.io/jooq-et-le-code-legacy-1/
2/ https://shodo.io/jooq-et-le-code-legacy-2/
1/ https://shodo.io/jooq-et-le-code-legacy-1/
2/ https://shodo.io/jooq-et-le-code-legacy-2/
github.com/mysql/mysql-...
github.com/mysql/mysql-...
github.com/mysql/mysql-...
github.com/mysql/mysql-...
#SQL assertions
These enable you to create cross row, cross table constraints with SQL standard syntax
CREATE ASSERTION … CHECK (
[ NOT ] EXISTS (
)
@toonkoppelaars.bsky.social explains at #DOAG2025
This is especially useful when the default emulation using CASE doesn't work as NULL values should be preserved, e.g. in ARRAY_AGG()
github.com/jOOQ/jOOQ/is...
This is especially useful when the default emulation using CASE doesn't work as NULL values should be preserved, e.g. in ARRAY_AGG()
github.com/jOOQ/jOOQ/is...
github.com/jOOQ/jOOQ/is...
Going forward, the recommended way to integrate Liquibase with jOOQ is by using testcontainers: blog.jooq.org/using-testco...
github.com/jOOQ/jOOQ/is...
Going forward, the recommended way to integrate Liquibase with jOOQ is by using testcontainers: blog.jooq.org/using-testco...
Here's Google Spanner.
- Quoting doesn't affect case sensitivity
- DDL identifiers are case sensitive (though "duplicates" are not allowed)
- DML identifiers are not case sensitive
Here's Google Spanner.
- Quoting doesn't affect case sensitivity
- DDL identifiers are case sensitive (though "duplicates" are not allowed)
- DML identifiers are not case sensitive
aws.amazon.com/de/blogs/big...
aws.amazon.com/de/blogs/big...
“The bureaucracy is expanding to meet the needs of the expanding bureaucracy.”
― Oscar Wilde
“The bureaucracy is expanding to meet the needs of the expanding bureaucracy.”
― Oscar Wilde
docs.aws.amazon.com/clean-rooms/...
docs.aws.amazon.com/clean-rooms/...
downloads.bouncycastle.org/java/docs/bc...
downloads.bouncycastle.org/java/docs/bc...
- BigQuery
- ClickHouse
- Databricks
- DuckDB
- Exasol
- H2
- Snowflake
- Teradata (the inventor, I think?)
And now also:
- Oracle!
I'm assuming MySQL will follow suit, soon? PostgreSQL, when!?
This adds the QUALIFY clause
QUALIFY filters window functions after grouping
Like the HAVING clause does for aggregate functions
SELECT ... FROM ...
QUALIFY fn OVER ( ... ) > ...
- BigQuery
- ClickHouse
- Databricks
- DuckDB
- Exasol
- H2
- Snowflake
- Teradata (the inventor, I think?)
And now also:
- Oracle!
I'm assuming MySQL will follow suit, soon? PostgreSQL, when!?
This adds the QUALIFY clause
QUALIFY filters window functions after grouping
Like the HAVING clause does for aggregate functions
SELECT ... FROM ...
QUALIFY fn OVER ( ... ) > ...
This adds the QUALIFY clause
QUALIFY filters window functions after grouping
Like the HAVING clause does for aggregate functions
SELECT ... FROM ...
QUALIFY fn OVER ( ... ) > ...
issues.apache.org/jira/browse/...
issues.apache.org/jira/browse/...
A: Yes
A: Yes
Forgetting about NULL
Processing data in Java memory
Using JDBC Pagination to paginate large results
Using aggregate instead of window functions
@lukaseder.bsky.social explains what to do instead & lists 7 more
Forgetting about NULL
Processing data in Java memory
Using JDBC Pagination to paginate large results
Using aggregate instead of window functions
@lukaseder.bsky.social explains what to do instead & lists 7 more