Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions pghistory/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -458,12 +458,12 @@ def _get_select(self, event_model):
) = self._get_context_clauses(event_model)

event_table = event_model._meta.db_table
prev_data_clause = f"""
(
SELECT row_to_json(_prev_event) FROM "{event_table}" _prev_event
WHERE _prev_event.pgh_obj_id = _event.pgh_obj_id
AND _prev_event.pgh_id < _event.pgh_id
ORDER BY _prev_event.pgh_id DESC LIMIT 1

# Use LAG window function instead of N+1 subquery for better performance
prev_data_clause = """
LAG(row_to_json(_event)) OVER (
PARTITION BY _event.pgh_obj_id
ORDER BY _event.pgh_id
) AS _prev_data
"""
pgh_obj_id_column_clause = "pgh_obj_id::TEXT"
Expand Down