You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In 1st terminal - create new database and type:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be 3 attachments in order: SYSDBA, Cache Writer, Garbage Collector
After connect from 2nd terminal and type in 1st terminal:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be 4 attachments in order:
3 SYSDBA
1 Cache Writer
2 Garbage Collector
4 SYSDBA
After type:
SQL> commit; delete from mon$attachments order by mon$timestamp;
Output no errors, but if typing:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be same 4 attachments, but one attachment should be closed (in the 2nd terminal).
If set breakpoint in function VirtualTable::erase (src/jrd/VirtualTable.cpp) id from all 4 times is same (the first one in the select and equal of current attachment in 1st terminal)
summary: Don't close attach while deleting record from MON$ATTACHMENTS using ORDER BY clause => Deleting records from MON$ATTACHMENTS using ORDER BY clause doesn't close the corresponding attachments
Submitted by: @XaBbl4
Start the server.
In 1st terminal - create new database and type:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be 3 attachments in order: SYSDBA, Cache Writer, Garbage Collector
After connect from 2nd terminal and type in 1st terminal:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be 4 attachments in order:
3 SYSDBA
1 Cache Writer
2 Garbage Collector
4 SYSDBA
After type:
SQL> commit; delete from mon$attachments order by mon$timestamp;
Output no errors, but if typing:
SQL> commit; select mon$attachment_id, mon$user, mon$timestamp from mon$attachments order by mon$timestamp;
Output will be same 4 attachments, but one attachment should be closed (in the 2nd terminal).
If set breakpoint in function VirtualTable::erase (src/jrd/VirtualTable.cpp) id from all 4 times is same (the first one in the select and equal of current attachment in 1st terminal)
Commits: 471f1f5 914ae09
====== Test Details ======
Section for 4.0 (in .fbt file) intentionally contains temp message about missed implementation. Will be removed after fix for 4.0.
The text was updated successfully, but these errors were encountered: