[core] Support lock for postgres catalog (#4836) #5005
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Linked issue: close #4836
Currently lock.enabled is only supported my SQLLite and MySQL. Adding support for Postgres.
The only difference between MySQL and Postgres is the
TIMESTAMPDIFF
functionIn MySQL
DELETE FROM paimon_distributed_locks WHERE TIMESTAMPDIFF(SECOND, acquired_at, NOW()) > expire_time_seconds and lock_id = ?
In Postgres
DELETE FROM paimon_distributed_locks WHERE EXTRACT(EPOCH FROM AGE(NOW(), acquired_at)) > expire_time_seconds and lock_id = ?
Tests
PostgresqlCatalogTest.java
. This uses TestContainers withpostgres:13-alpine
to run postgres inside docker.API and Format
No
Documentation
Yes ,The doc at https://paimon.apache.org/docs/master/flink/sql-ddl/#creating-jdbc-catalog says
This needs to updated to include Postgres