8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-02-02 10:00:38 +01:00

More strict check of orphan data pages when deleting big record fragments

This commit is contained in:
Ilya Eremin 2023-07-07 13:02:43 +03:00
parent 2508339ea5
commit d31acc2342

View File

@ -2590,7 +2590,9 @@ static void delete_tail(thread_db* tdbb, rhdf* header, const USHORT page_space,
window.win_page = page_number;
data_page* dpage = (data_page*) CCH_FETCH(tdbb, &window, LCK_read, pag_data);
if (dpage->dpg_header.pag_flags & dpg_orphan)
if (dpage->dpg_header.pag_flags & dpg_orphan &&
dpage->dpg_header.pag_flags & dpg_full &&
dpage->dpg_count == 1)
{
header = (rhdf*) ((UCHAR *) dpage + dpage->dpg_rpt[0].dpg_offset);
flags = header->rhdf_flags;