Re: [Firebird-devel] garbage_collect_idx() doesn't work?..

2014-04-14 Thread Dimitry Sibiryakov
04.04.2014 10:46, Alex Peshkoff wrote: Never told this. Instead I've agreed that such argument as avoiding additional atomic ops is always important. But it's definitely more important inside engine in time critical part of it. In this case shouldn't vio.cpp:realoc_record() to be reworked

Re: [Firebird-devel] garbage_collect_idx() doesn't work?..

2014-04-14 Thread Dmitry Yemanov
14.04.2014 20:21, Dimitry Sibiryakov wrote: In this case shouldn't vio.cpp:realoc_record() to be reworked as well to avoid allocations? It extends the record only when required (new format is longer than the prior one). It's not something happening often for a single table. Dmitry

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Adriano dos Santos Fernandes
Hi! I localized the commit who caused this bug, but so far I'm unable to fix. It's this one: Date: Mon Feb 28 10:11:37 2011 + Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement AFAIU, the commit is not a problem per se, but exposed something

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Dimitry Sibiryakov
14.04.2014 20:40, Adriano dos Santos Fernandes wrote: I localized the commit who caused this bug, but so far I'm unable to fix. Actually, on official snapshot 31021 it also work without error. -- WBR, SD. --

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Adriano dos Santos Fernandes
On 14/04/2014 16:19, Dimitry Sibiryakov wrote: 14.04.2014 20:40, Adriano dos Santos Fernandes wrote: I localized the commit who caused this bug, but so far I'm unable to fix. Actually, on official snapshot 31021 it also work without error. Try to commit after the EXECUTE BLOCK. It may be

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Dimitry Sibiryakov
14.04.2014 21:26, Adriano dos Santos Fernandes wrote: Try to commit after the EXECUTE BLOCK. It may be that. Yes, now I see the crash. According to stack trace I would guess that update_in_place() didn't expand delta-backversion to full one or just didn't clean the flag. -- WBR, SD.

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Dimitry Sibiryakov
In any case the best fix would be to raise error when MERGE is attempting to update the same record second time. It'll make it standard conformant. -- WBR, SD. -- Learn Graph Databases - Download FREE O'Reilly

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Adriano dos Santos Fernandes
On 14/04/2014 16:58, Dimitry Sibiryakov wrote: In any case the best fix would be to raise error when MERGE is attempting to update the same record second time. It'll make it standard conformant. But don't the error can happen in another situations, say, subsequent updates? Adriano

Re: [Firebird-devel] Created: (CORE-4369) consistency check in MERGE with more data

2014-04-14 Thread Dimitry Sibiryakov
14.04.2014 22:03, Adriano dos Santos Fernandes wrote: But don't the error can happen in another situations, say, subsequent updates? I would say - no. Subsequent updates cannot call VIO_modify() with the same rpb two times in row. But you are right: rpb_delta flag appeared without