View Issue Details

IDProjectCategoryView StatusLast Update
0000958Database Comparer utilityGeneralpublic2020-02-23 08:00
Reporterhuff41 Assigned Tobarry  
PrioritynormalSeverityblockReproducibilityalways
Status closedResolutionfixed 
OSWindows 
Fixed in Version8.0.0.1695.Beta 
Summary0000958: Crash on Database Compare
DescriptionDatabase compare stops with error when comparing stored procedures using the position keyword on firebird 2.5.5

Database compare version:- 6.3.0.1660
Steps To Reproduceprocedure content -

ALTER PROCEDURE FORMAT_ADDRESS( ADDRESS VARCHAR( 504 ) )
RETURNS ( HOUSENUM_NAME VARCHAR( 100 )
        , ADDL1 VARCHAR( 100 )
        , ADDL2 VARCHAR( 100 )
        , ADDL3 VARCHAR( 100 )
        , ADDL4 VARCHAR( 100 ) )
AS

DECLARE VARIABLE FIRST_CHAR CHAR( 1 );
DECLARE VARIABLE TEMP_ADDRESS VARCHAR( 554 );
DECLARE VARIABLE ST INTEGER;
DECLARE VARIABLE EN INTEGER;

BEGIN
  TEMP_ADDRESS = ADDRESS||ascii_char(10)||ascii_char(10)||ascii_char(10)||ascii_char(10);
  FIRST_CHAR = SUBSTR_MORE(TEMP_ADDRESS,1,1);
  
  
  

  
  if (FIRST_CHAR IN ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0' )) then
  begin
    HOUSENUM_NAME = SUBSTR_MORE(TEMP_ADDRESS,1,(POSITION(ascii_char(32),TEMP_ADDRESS,1)) );
    ST=1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL1 = SUBSTR_MORE(TEMP_ADDRESS,ST,EN-1 );
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL2 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1);
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL3 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1 );
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL4 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1 );
  end

  else
    begin
    HOUSENUM_NAME = SUBSTR_MORE(TEMP_ADDRESS,1,(POSITION(TEMP_ADDRESS,ascii_char(10),1)-1) );
    ST=1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL1 = SUBSTR_MORE(TEMP_ADDRESS,ST,EN-1 );
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL2 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1);
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL3 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1 );
    ST=EN+1;
    EN=POSITION(ascii_char(10),temp_address,st);
    ADDL4 = SUBSTR_MORE(TEMP_ADDRESS,ST, EN-1 );
    end
  
 SUSPEND;
Additional InformationProcdure to split address (address line delimiter chr(10)

also fails on similar stored procedure code.

see screenshot attached.
TagsNo tags attached.

Activities

huff41

2016-07-05 10:48

reporter  

procedure_compare_error.png (100,559 bytes)   
procedure_compare_error.png (100,559 bytes)   

barry

2019-12-24 16:05

administrator   ~0004278

Testet on ...1695 build

Issue History

Date Modified Username Field Change
2016-07-05 10:48 huff41 New Issue
2016-07-05 10:48 huff41 File Added: procedure_compare_error.png
2019-12-24 16:00 barry Assigned To => barry
2019-12-24 16:00 barry Status new => acknowledged
2019-12-24 16:05 barry Status acknowledged => resolved
2019-12-24 16:05 barry Resolution open => fixed
2019-12-24 16:05 barry Fixed in Version => 8.0.0.1695.Beta
2019-12-24 16:05 barry Note Added: 0004278
2020-02-23 08:00 barry Status resolved => closed