The GitHub Actions job "Tests (AMD)" on 
airflow.git/fix-cursor-pagination-null-rows has succeeded.
Run started by GitHub user steveahnahn (triggered by steveahnahn).

Head commit for run:
207d216470ab51fdaa69472dc79df92e9ca92b52 / Steve Ahn 
<[email protected]>
Fix cursor pagination dropping rows when sorting by a nullable column

Cursor (keyset) paginated REST list endpoints silently dropped rows when the
sort column was nullable. The keyset predicate and the generated ORDER BY
disagreed on where NULLs sort, so once a page boundary fell on the NULL/non-NULL
edge every row on one side of it was skipped with no error. This is silent data
loss from the public API under a common sort such as start_date.

Cross-dialect NULLS FIRST/LAST is not portable (unsupported on MySQL and old
SQLite), so the cursor path now pins NULL placement with a portable CASE-based
null-rank key shared by both the keyset ORDER BY and the keyset predicate, so 
the
two can no longer disagree on any backend. The rank follows the column's sort
direction, so NULLs order as the largest value (last when ascending, first when
descending), matching PostgreSQL's default. PostgreSQL result order is therefore
unchanged; SQLite and MySQL NULL ordering shifts to align with it. The cursor
token format is unchanged (the rank is derived, not encoded) and offset
pagination is untouched.

Report URL: https://github.com/apache/airflow/actions/runs/27997708572

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to