Commit bc52b4a2 authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

text/blob fields in some cases were not handled properly

parent 21c60176
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
# test for bug reported by Mark Steele

drop table if exists tblChange;
CREATE TABLE tblCharge (
  ChargeID int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
  ServiceID int(10) unsigned DEFAULT '0' NOT NULL,
  ChargeDate date DEFAULT '0000-00-00' NOT NULL,
  ChargeAmount decimal(20,2) DEFAULT '0.00' NOT NULL,
  FedTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
  ProvTaxes decimal(20,2) DEFAULT '0.00' NOT NULL,
  ChargeStatus enum('New','Auth','Unauth','Sale','Denied','Refund')
DEFAULT 'New' NOT NULL,
  ChargeAuthorizationMessage text,
  ChargeComment text,
  ChargeTimeStamp varchar(20),
  PRIMARY KEY (ChargeID),
  KEY ServiceID (ServiceID),
  KEY ChargeDate (ChargeDate)
) type=BDB;

BEGIN;
INSERT INTO tblCharge
VALUES(NULL,1,CURRENT_DATE(),1,1,1,'New',NULL,NULL,UNIX_TIMESTAMP(NOW()));
COMMIT;

BEGIN;
UPDATE tblCharge SET ChargeAuthorizationMessage = 'blablabla' WHERE
ChargeID = 1;
COMMIT;

INSERT INTO tblCharge
VALUES(NULL,1,CURRENT_DATE(),1,1,1,'New',NULL,NULL,UNIX_TIMESTAMP(NOW()));
drop table tblCharge;
+2 −0
Original line number Diff line number Diff line
@@ -428,3 +428,5 @@ select * from t1 where i=1 and j=2;
create index ax1 on t1 (i,j);
select * from t1 where i=1 and j=2;
drop table t1;

+9 −8
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ drop table t1,t2;

# check for bug reported by Stephan Skusa

drop table if exists fulltextTEST;
CREATE TABLE fulltextTEST (
drop table if exists t1;
CREATE TABLE t1 (
   field1 varchar(40) NOT NULL,
   field2 varchar(20) NOT NULL,
   field3 varchar(40) NOT NULL,
@@ -57,9 +57,10 @@ CREATE TABLE fulltextTEST (
   FULLTEXT idx_fulltext (field1, field2, field3)
);

INSERT INTO fulltextTEST VALUES ( 'test1', 'test1.1', 'test1.1.1');
INSERT INTO fulltextTEST VALUES ( 'test2', 'test2.1', 'test2.1.1');
select *
from fulltextTEST
where MATCH (field1,field2,field3) AGAINST (NULL);
drop table fulltextTEST;
INSERT INTO t1 VALUES ( 'test1', 'test1.1', 'test1.1.1');
INSERT INTO t1 VALUES ( 'test2', 'test2.1', 'test2.1.1');
#select *
#from t1
#where MATCH (field1,field2,field3) AGAINST (NULL);
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -4075,8 +4075,8 @@ char *Field_blob::pack(char *to, const char *from, uint max_length)
const char *Field_blob::unpack(char *to, const char *from)
{
  memcpy(to,from,packlength);
  ulong length=get_length(from);
  from+=packlength;
  ulong length=get_length();
  if (length)
    memcpy_fixed(to+packlength, &from, sizeof(from));
  else