Icon View Incident Report

Serious Serious
Reported By: Gregory Sebastian
Reported On: 10/4/2009
For: Version 4.29 Build 1
# 3078 Memory Overwrite Occurs When Upgrading Tables from DBISAM 3.x With Large Index Key Sizes

When upgrading a DBISam V3 table with DBISam V4.29 Engine, I get an "Invalid Pointer Operation". You can simulate this with the Database System Utility. It only occurs with one specific table, while most other tables upgrades without any problem.

The only difference I can see between this table and others that work fine is that this one contains more blob data. Could you please help check whats wrong. I could not figure it out. I have already tried verifying and reparing the table with DBISam V3.3 Database Sys util first but there does not seem to be any problems with the table.

CREATE TABLE IF NOT EXISTS "InvtList"
(
   "ID" VARCHAR(12),
   "MainGrpID" VARCHAR(12),
   "SubGrpID" VARCHAR(12),
   "CreatedID" INTEGER,
   "Created" TIMESTAMP,
   "LastEditedID" INTEGER,
   "LastEdited" TIMESTAMP,
   "Image" GRAPHIC,
   "ProductID" VARCHAR(30),
   "Description" VARCHAR(250),
   "UM" VARCHAR(15),
   "CostPrice" MONEY,
   "SellingPrice" MONEY,
   "TaxID" INTEGER,
   "PTaxID" INTEGER,
   "CatalogueNo" VARCHAR(25),
   "VendorNo" VARCHAR(25),
   "VendorID" VARCHAR(12),
   "Location" VARCHAR(20),
   "QtyOnHand" FLOAT,
   "MinStock" FLOAT,
   "Remarks" MEMO,
PRIMARY KEY ("ID") COMPRESS FULL
LOCALE CODE 0
USER MAJOR VERSION 1
);

CREATE INDEX IF NOT EXISTS "ByClass" ON "InvtList"
 ("MainGrpID","SubGrpID","ProductID") COMPRESS FULL;
CREATE NOCASE INDEX IF NOT EXISTS "ByDescripProdID" ON "InvtList"
 ("Description","ProductID") COMPRESS FULL;
CREATE NOCASE INDEX IF NOT EXISTS "ByProdIDDescrip" ON "InvtList"
 ("ProductID","Description") COMPRESS TRAILBYTE;
CREATE NOCASE INDEX IF NOT EXISTS "ByVendorNo" ON "InvtList"
 ("VendorNo","ProductID") COMPRESS FULL;
CREATE NOCASE INDEX IF NOT EXISTS "ByCatNoProdID" ON "InvtList"
 ("CatalogueNo","ProductID");
CREATE INDEX IF NOT EXISTS "BySubGroupID" ON "InvtList"
 ("SubGrpID") COMPRESS FULL;



Comments Comments
The problem was caused by a bug in the index compression code that wasn't coping with large key sizes properly.


Resolution Resolution
Fixed Problem on 10/8/2009 in version 4.29 build 2


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard
DBISAM ODBC Standard with Source
DBISAM ODBC Trial
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image