Patch: improve performance - new secondary keys (#5102)

* Patch: improve performance - new secondary keys

* cleanup

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Christian Günter 2021-11-05 05:30:17 +01:00 committed by GitHub
parent 3da00146b7
commit 57879a87ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 23 deletions

View File

@ -309,6 +309,7 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
FIELD-SYMBOLS: <ls_diff> TYPE zif_abapgit_definitions=>ty_diff.
LOOP AT mt_diff ASSIGNING <ls_diff>
USING KEY new_num
WHERE old = is_diff_old-old
AND new = is_diff_old-new
AND new_num = is_diff_old-new_num
@ -324,19 +325,11 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
METHOD set_patch_new.
DATA: lv_new_num TYPE i.
FIELD-SYMBOLS: <ls_diff> TYPE zif_abapgit_definitions=>ty_diff.
LOOP AT mt_diff ASSIGNING <ls_diff>.
lv_new_num = <ls_diff>-new_num.
IF lv_new_num = iv_line_new.
EXIT.
ENDIF.
ENDLOOP.
READ TABLE mt_diff WITH TABLE KEY new_num
COMPONENTS new_num = iv_line_new
ASSIGNING <ls_diff>.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Invalid new line number { iv_line_new }| ).
ENDIF.
@ -348,19 +341,11 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
METHOD set_patch_old.
DATA: lv_old_num TYPE i.
FIELD-SYMBOLS: <ls_diff> TYPE zif_abapgit_definitions=>ty_diff.
LOOP AT mt_diff ASSIGNING <ls_diff>.
lv_old_num = <ls_diff>-old_num.
IF lv_old_num = iv_line_old.
EXIT.
ENDIF.
ENDLOOP.
READ TABLE mt_diff WITH TABLE KEY old_num
COMPONENTS old_num = iv_line_old
ASSIGNING <ls_diff>.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Invalid old line number { iv_line_old }| ).
ENDIF.

View File

@ -269,7 +269,10 @@ INTERFACE zif_abapgit_definitions
beacon TYPE i,
END OF ty_diff .
TYPES:
ty_diffs_tt TYPE STANDARD TABLE OF ty_diff WITH DEFAULT KEY .
ty_diffs_tt TYPE STANDARD TABLE OF ty_diff
WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY new_num COMPONENTS new_num
WITH NON-UNIQUE SORTED KEY old_num COMPONENTS old_num.
TYPES:
BEGIN OF ty_count,
insert TYPE i,