GH-8760 Postgres: using DELETE ... RETURNING
Fixes https://github.com/spring-projects/spring-integration/issues/8760 * Make `PostgresChannelMessageStoreQueryProvider` to use single `DELETE ... RETURNING` for polling statements * Add `isUsingSingleStatementForPoll` and use it from `JdbcChannelMessageStore` * Execute Postgres init scripts to `PostgresContainerTest` * Code clean up * Document the new feature
This commit is contained in:
committed by
Artem Bilan
parent
29186e2b46
commit
87a2ac5b5c
@@ -81,6 +81,9 @@ If your database is not listed, you can implement the `ChannelMessageStoreQueryP
|
||||
|
||||
Version 4.0 added the `MESSAGE_SEQUENCE` column to the table to ensure first-in-first-out (FIFO) queueing even when messages are stored in the same millisecond.
|
||||
|
||||
Starting with version 6.2, `ChannelMessageStoreQueryProvider` exposes a `isSingleStatementForPoll` flag, where the `PostgresChannelMessageStoreQueryProvider` returns `true` and its queries for polls are now based on a single `DELETE...RETURNING` statement.
|
||||
The `JdbcChannelMessageStore` consults with the `isSingleStatementForPoll` option and skips a separate `DELETE` statement if only single poll statement is supported.
|
||||
|
||||
[[custom-message-insertion]]
|
||||
=== Custom Message Insertion
|
||||
|
||||
|
||||
@@ -62,7 +62,9 @@ See xref:kafka.adoc#kafka-inbound-pollable[Kafka Inbound Channel Adapter] for mo
|
||||
=== JDBC Support Changes
|
||||
|
||||
The `JdbcMessageStore`, `JdbcChannelMessageStore`, `JdbcMetadataStore`, and `DefaultLockRepository` implement `SmartLifecycle` and perform a `SELECT COUNT` query, on their respective tables, in the `start()` method to ensure that the required table (according to the provided prefix) is present in the target database.
|
||||
See xref:jdbc/message-store.adoc#jdbc-db-init[Initializing the Database] for more information.
|
||||
The `PostgresChannelMessageStoreQueryProvider` now provides single `DELETE...RETURNING` statement for polling queries.
|
||||
For this purpose the `ChannelMessageStoreQueryProvider` exposes `isSingleStatementForPoll` option which is consulted from the `JdbcChannelMessageStore`.
|
||||
See xref:jdbc/message-store.adoc[JDBC Message Store] for more information.
|
||||
|
||||
[[x6.2-mongodb]]
|
||||
=== MongoDB Support Changes
|
||||
|
||||
Reference in New Issue
Block a user