Skip to Content
Former Member
Apr 05, 2018 at 09:18 AM

SAP IQ 16 ROWID Allocation



I am performing a data migration from IQ 15.4 to IQ 16.1 sp02 pl04.

In my IQ 15 table, the ROWID is perfectly sequential i.e. the rowcount matches with max(rowid) consistently.

When data is migrated to my IQ 16.1 table, the ROWID is not sequential and the rowcount does not match with the max(rowid) even though the rowcounts are matching on both systems. Furthermore, there are always huge gaps in the rowid allocation in IQ 16.1 when the rowcount exceeds a certain amount - why is this happening?

Why does this behavioral difference between the mentioned IQ engines matter to us? When performing data validation comparison using the hash md5 function (between IQ 15 table and IQ 16 table), I get a mismatching checksum value. This is because the ROWID on my IQ 16 table contains huge gaps and due to a different rowid being allocated to rows, the order of those row values is changed and therefore the checksum on the list of (ordered vs non-ordered) values is obviously mismatching.

I can understand if the internal rowid is different but this is affecting the order of the rows in my IQ 16 table where there is no primary key or defined order and so therefore I cannot rely on the hash md5 function to validate data for comparison purposes.

Any help, or thoughts on this will be most appreciated.