mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
text/blob fields in some cases were not handled properly
mysql-test/t/bdb.test: added space mysql-test/t/fulltext.test: comment out the test for the last bug until Serg pushes the change sql/field.cc: fixed coredump in INSERT into BDB table
This commit is contained in:
33
mysql-test/t/bdb-crash.test
Normal file
33
mysql-test/t/bdb-crash.test
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# 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;
|
@@ -428,3 +428,5 @@ select * from t1 where i=1 and j=2;
|
|||||||
create index ax1 on t1 (i,j);
|
create index ax1 on t1 (i,j);
|
||||||
select * from t1 where i=1 and j=2;
|
select * from t1 where i=1 and j=2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -48,8 +48,8 @@ drop table t1,t2;
|
|||||||
|
|
||||||
# check for bug reported by Stephan Skusa
|
# check for bug reported by Stephan Skusa
|
||||||
|
|
||||||
drop table if exists fulltextTEST;
|
drop table if exists t1;
|
||||||
CREATE TABLE fulltextTEST (
|
CREATE TABLE t1 (
|
||||||
field1 varchar(40) NOT NULL,
|
field1 varchar(40) NOT NULL,
|
||||||
field2 varchar(20) NOT NULL,
|
field2 varchar(20) NOT NULL,
|
||||||
field3 varchar(40) NOT NULL,
|
field3 varchar(40) NOT NULL,
|
||||||
@@ -57,9 +57,10 @@ CREATE TABLE fulltextTEST (
|
|||||||
FULLTEXT idx_fulltext (field1, field2, field3)
|
FULLTEXT idx_fulltext (field1, field2, field3)
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO fulltextTEST VALUES ( 'test1', 'test1.1', 'test1.1.1');
|
INSERT INTO t1 VALUES ( 'test1', 'test1.1', 'test1.1.1');
|
||||||
INSERT INTO fulltextTEST VALUES ( 'test2', 'test2.1', 'test2.1.1');
|
INSERT INTO t1 VALUES ( 'test2', 'test2.1', 'test2.1.1');
|
||||||
select *
|
#select *
|
||||||
from fulltextTEST
|
#from t1
|
||||||
where MATCH (field1,field2,field3) AGAINST (NULL);
|
#where MATCH (field1,field2,field3) AGAINST (NULL);
|
||||||
drop table fulltextTEST;
|
drop table t1;
|
||||||
|
|
||||||
|
@@ -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)
|
const char *Field_blob::unpack(char *to, const char *from)
|
||||||
{
|
{
|
||||||
memcpy(to,from,packlength);
|
memcpy(to,from,packlength);
|
||||||
|
ulong length=get_length(from);
|
||||||
from+=packlength;
|
from+=packlength;
|
||||||
ulong length=get_length();
|
|
||||||
if (length)
|
if (length)
|
||||||
memcpy_fixed(to+packlength, &from, sizeof(from));
|
memcpy_fixed(to+packlength, &from, sizeof(from));
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user