Project

General

Profile

Bug #10890

merge-row-changes does not change the before/after image row-state correctly

Added by Artur Școlnic 8 months ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:

History

#2 Updated by Artur Școlnic 8 months ago

output to value("out.log").
def temp-table tt-1 before-table btt1 field f1 as int.
def dataset ds1 for tt-1.
def var hds1 as handle.
hds1 = dataset ds1:handle.

create tt-1. tt-1.f1 = 10. release tt-1.

temp-table tt-1:tracking-changes = true.
find first tt-1.  
tt-1.f1 = 20.

def var hds-c as handle.
create dataset hds-c.
hds-c:create-like(dataset ds1:handle, "").
hds-c:GET-CHANGES(dataset ds1:handle).

def var hcb1 as handle.
def var hcb2 as handle.
def var hcb1b as handle.
def var hcb2b as handle.
hcb1 = dataset ds1:handle:get-buffer-handle(1).
hcb2 = hds-c:get-buffer-handle(1).
hcb1b = hcb1:BEFORE-BUFFER.
hcb2b = hcb2:BEFORE-BUFFER.

temp-table tt-1:tracking-changes = false.

hcb2:find-first().
message hcb1:ROW-STATE.
message hcb2:ROW-STATE.
message hcb1b:ROW-STATE.
message hcb2b:ROW-STATE.
hcb2:merge-row-changes(hcb1).
message hcb1:ROW-STATE.
message hcb2:ROW-STATE.
message hcb1b:ROW-STATE.
message hcb2b:ROW-STATE.
OE  FWD
?   ?
2   2
2   ?
?   ?
?   0
2   2
?   ?
2   ?

As seen above, the row-state attribute is set correctly before and after merge-row-changes just for some buffers.
This test case needs to be extended to include also reject-row-changes, merge-changes and other row states.

#3 Updated by Artur Școlnic 8 months ago

Another issue is that after merge-row-changes, in OE there are scenarios in which the before image is not deleted, In FWD it is deleted always. This needs to be explored and corrected here since the problem revolves around the same method.

Also available in: Atom PDF