forgejo/models/git
YR Chen 2813425488
Move from max( id ) to max( index ) for latest commit statuses (#30076)
This PR replaces the use of `max( id )`, and instead using ``max(
`index` )`` for determining the latest commit status. Building business
logic over an `auto_increment` primary key like `id` is risky and
there’re already plenty of discussions on the Internet.

There‘s no guarantee for `auto_increment` values to be monotonic,
especially upon failures or with a cluster. In the specific case, we met
the problem of commit statuses being outdated when using TiDB as the
database. As [being
documented](https://docs.pingcap.com/tidb/stable/auto-increment),
`auto_increment` values assigned to an `insert` statement will only be
monotonic on a per server (node) basis.

Closes #30074.

(cherry picked from commit 7443a10fc3d722d3326a0cb7b15b208f907c72d7)
2024-03-30 07:17:31 +01:00
..
branch.go Fix schedule tasks bugs (#28691) 2024-03-25 16:25:02 +01:00
branch_list.go Start to migrate from util.OptionalBool to optional.Option[bool] (#29329) 2024-02-26 22:30:26 +01:00
branch_test.go Fix schedule tasks bugs (#28691) 2024-03-25 16:25:02 +01:00
commit_status.go Move from max( id ) to max( index ) for latest commit statuses (#30076) 2024-03-30 07:17:31 +01:00
commit_status_test.go fix commit_status 2024-03-24 07:11:19 +01:00
lfs.go
lfs_lock.go
main_test.go
protected_banch_list_test.go
protected_branch.go Add branch protection setting for ignoring stale approvals (#28498) 2024-01-15 07:20:01 +00:00
protected_branch_list.go Start to migrate from util.OptionalBool to optional.Option[bool] (#29329) 2024-02-26 22:30:26 +01:00
protected_branch_test.go
protected_tag.go Refactor some legacy code and remove unused code (#28622) 2023-12-28 09:38:59 +00:00
protected_tag_test.go