Auto-update: Tue Aug 6 22:47:16 PDT 2024

This commit is contained in:
sanj 2024-08-06 22:47:16 -07:00
parent b14a6837e1
commit a40411ed81

View file

@ -862,16 +862,16 @@ class APIConfig(BaseModel):
WITH new_version AS ( WITH new_version AS (
SELECT COALESCE(MAX(version), 0) + 1 as next_version SELECT COALESCE(MAX(version), 0) + 1 as next_version
FROM {table_name} FROM {table_name}
WHERE id = (SELECT id FROM {table_name} WHERE {columns[1]} = ${1} FOR UPDATE) WHERE id = (SELECT id FROM {table_name} WHERE {columns[1]} = $1 FOR UPDATE)
) )
INSERT INTO {table_name} ({insert_cols}, version, server_id) INSERT INTO {table_name} ({insert_cols}, version, server_id)
VALUES ({insert_vals}, (SELECT next_version FROM new_version), ${{len(args)+1}}) VALUES ({insert_vals}, (SELECT next_version FROM new_version), ${len(args)+1})
ON CONFLICT (id) DO UPDATE SET ON CONFLICT (id) DO UPDATE SET
{update_cols}, {update_cols},
version = (SELECT next_version FROM new_version), version = (SELECT next_version FROM new_version),
server_id = ${{len(args)+1}} server_id = ${len(args)+1}
WHERE {table_name}.version < (SELECT next_version FROM new_version) WHERE {table_name}.version < (SELECT next_version FROM new_version)
OR ({table_name}.version = (SELECT next_version FROM new_version) AND {table_name}.server_id < ${{len(args)+1}}) OR ({table_name}.version = (SELECT next_version FROM new_version) AND {table_name}.server_id < ${len(args)+1})
RETURNING id, version RETURNING id, version
""" """