static void purge(StorageImpl db, int pageId, int type, int height)
    {
        if (--height != 0) { 
            Page pg = db.getPage(pageId);
            int n = getnItems(pg)+1;
            if (type == ClassDescriptor.tpString || type == ClassDescriptor.tpArrayOfByte) { // page of strings
                while (--n >= 0) { 
                    purge(db, getKeyStrOid(pg, n), type, height);
                }
            } else { 
                while (--n >= 0) { 
                    purge(db, getReference(pg, maxItems-n-1), type, height);
                }
            }
            db.pool.unfix(pg);
        } 
        db.freePage(pageId);
    }