Bug #18075 varsize PK and blobs do not work correctly
Submitted: 8 Mar 2006 15:44 Modified: 14 Mar 2006 11:14
Reporter: Pekka Nousiainen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:5.1.7 OS:
Assigned to: Pekka Nousiainen CPU Architecture:Any

[8 Mar 2006 15:44] Pekka Nousiainen
Description:
varsize PK not computed correctly for blob parts

How to repeat:
CREATE TABLE  t1 (
  db VARBINARY(4) NOT NULL,
  query TEXT NOT NULL,
  PRIMARY KEY USING HASH (db))
ENGINE=NDB;

insert into t1 values ('a', concat(repeat('b',256),repeat('c',2000)));

select db from t1; -- works
select length(query) from t1; -- returns no rows and empty warning
[9 Mar 2006 12:29] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/3635
[9 Mar 2006 12:51] Pekka Nousiainen
blob part key includes primary table PK.
to match signal formats etc the PK must be packed
ie each varsize attr takes only as many words (Uint32)
as needed (remaining 0-3 bytes zeroed).

this fix does unpack/pack in NdbBlob.cpp,
no time for better solution.
[9 Mar 2006 16:18] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/3648
[14 Mar 2006 11:14] Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Documented bugfix in 5.1.8 changelog; closed.