mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
Merge clam.ndb.mysql.com:/export/space/pekka/ndb/version/my50-bug24028
into clam.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug24028 mysql-test/r/ndb_blob.result: Auto merged mysql-test/t/ndb_blob.test: Auto merged storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp: Auto merged storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: Auto merged storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged storage/ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged storage/ndb/src/ndbapi/NdbBlob.cpp: Auto merged storage/ndb/test/ndbapi/testBlobs.cpp: Auto merged storage/ndb/test/ndbapi/testNodeRestart.cpp: Auto merged storage/ndb/test/run-test/daily-basic-tests.txt: Auto merged storage/ndb/test/src/UtilTransactions.cpp: Auto merged
This commit is contained in:
commit
26cfafc787
4 changed files with 46 additions and 17 deletions
|
@ -76,6 +76,8 @@ commit;
|
||||||
select a from t1 where d is null;
|
select a from t1 where d is null;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
delete from t1 where a=45567;
|
||||||
|
commit;
|
||||||
delete from t1 where a=1;
|
delete from t1 where a=1;
|
||||||
delete from t1 where a=2;
|
delete from t1 where a=2;
|
||||||
commit;
|
commit;
|
||||||
|
|
|
@ -97,6 +97,11 @@ update t1 set d=null where a=1;
|
||||||
commit;
|
commit;
|
||||||
select a from t1 where d is null;
|
select a from t1 where d is null;
|
||||||
|
|
||||||
|
# bug#24028 - does not occur on MySQL level
|
||||||
|
# bug#17986 - not seen by us anymore but could show as warning here
|
||||||
|
delete from t1 where a=45567;
|
||||||
|
commit;
|
||||||
|
|
||||||
# pk delete
|
# pk delete
|
||||||
delete from t1 where a=1;
|
delete from t1 where a=1;
|
||||||
delete from t1 where a=2;
|
delete from t1 where a=2;
|
||||||
|
|
|
@ -607,6 +607,12 @@ NdbBlob::getHeadInlineValue(NdbOperation* anOp)
|
||||||
setErrorCode(anOp);
|
setErrorCode(anOp);
|
||||||
DBUG_RETURN(-1);
|
DBUG_RETURN(-1);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* If we get no data from this op then the operation is aborted
|
||||||
|
* one way or other. Following hack in 5.0 makes sure we don't read
|
||||||
|
* garbage. The proper fix exists only in version >= 5.1.
|
||||||
|
*/
|
||||||
|
theHead->length = 0;
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,24 +123,24 @@ printusage()
|
||||||
<< "metadata" << endl
|
<< "metadata" << endl
|
||||||
<< " -pk2len N length of PK2 [" << d.m_pk2len << "/" << g_max_pk2len <<"]" << endl
|
<< " -pk2len N length of PK2 [" << d.m_pk2len << "/" << g_max_pk2len <<"]" << endl
|
||||||
<< " -oneblob only 1 blob attribute [default 2]" << endl
|
<< " -oneblob only 1 blob attribute [default 2]" << endl
|
||||||
<< "testcases for test/skip" << endl
|
<< "test cases for test/skip" << endl
|
||||||
<< " k primary key ops" << endl
|
<< " k primary key ops" << endl
|
||||||
<< " i hash index ops" << endl
|
<< " i hash index ops" << endl
|
||||||
<< " s table scans" << endl
|
<< " s table scans" << endl
|
||||||
<< " r ordered index scans" << endl
|
<< " r ordered index scans" << endl
|
||||||
<< " p performance test" << endl
|
<< " p performance test" << endl
|
||||||
<< "additional flags for test/skip" << endl
|
<< "operations for test/skip" << endl
|
||||||
<< " u update existing blob value" << endl
|
<< " u update existing blob value" << endl
|
||||||
<< " n normal insert and update" << endl
|
<< " n normal insert and update" << endl
|
||||||
<< " w insert and update using writeTuple" << endl
|
<< " w insert and update using writeTuple" << endl
|
||||||
|
<< "blob operation styles for test/skip" << endl
|
||||||
<< " 0 getValue / setValue" << endl
|
<< " 0 getValue / setValue" << endl
|
||||||
<< " 1 setActiveHook" << endl
|
<< " 1 setActiveHook" << endl
|
||||||
<< " 2 readData / writeData" << endl
|
<< " 2 readData / writeData" << endl
|
||||||
<< "bug tests (no blob test)" << endl
|
<< "example: -test kn0 (need all 3 parts)" << endl
|
||||||
|
<< "bug tests" << endl
|
||||||
<< " -bug 4088 ndb api hang with mixed ops on index table" << endl
|
<< " -bug 4088 ndb api hang with mixed ops on index table" << endl
|
||||||
<< " -bug 27018 middle partial part write clobbers rest of part" << endl
|
<< " -bug 27018 middle partial part write clobbers rest of part" << endl
|
||||||
<< " -bug nnnn delete + write gives 626" << endl
|
|
||||||
<< " -bug nnnn acc crash on delete and long key" << endl
|
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1029,6 +1029,32 @@ deletePk()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
deleteNoPk()
|
||||||
|
{
|
||||||
|
DBG("--- deleteNoPk ---");
|
||||||
|
Tup no_tup; // bug#24028
|
||||||
|
no_tup.m_pk1 = 0xb1ffb1ff;
|
||||||
|
sprintf(no_tup.m_pk2, "%-*.*s", g_opt.m_pk2len, g_opt.m_pk2len, "b1ffb1ff");
|
||||||
|
CHK((g_con = g_ndb->startTransaction()) != 0);
|
||||||
|
Tup& tup = no_tup;
|
||||||
|
DBG("deletePk pk1=" << hex << tup.m_pk1);
|
||||||
|
CHK((g_opr = g_con->getNdbOperation(g_opt.m_tname)) != 0);
|
||||||
|
CHK(g_opr->deleteTuple() == 0);
|
||||||
|
CHK(g_opr->equal("PK1", tup.m_pk1) == 0);
|
||||||
|
if (g_opt.m_pk2len != 0)
|
||||||
|
CHK(g_opr->equal("PK2", tup.m_pk2) == 0);
|
||||||
|
CHK(g_con->execute(Commit) == -1); // fail
|
||||||
|
// BUG: error should be on op but is on con now
|
||||||
|
DBG("con: " << g_con->getNdbError());
|
||||||
|
DBG("opr: " << g_opr->getNdbError());
|
||||||
|
CHK(g_con->getNdbError().code == 626 || g_opr->getNdbError().code == 626);
|
||||||
|
g_ndb->closeTransaction(g_con);
|
||||||
|
g_opr = 0;
|
||||||
|
g_con = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// hash index ops
|
// hash index ops
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1384,6 +1410,7 @@ testmain()
|
||||||
CHK(readPk(style) == 0);
|
CHK(readPk(style) == 0);
|
||||||
}
|
}
|
||||||
CHK(deletePk() == 0);
|
CHK(deletePk() == 0);
|
||||||
|
CHK(deleteNoPk() == 0);
|
||||||
CHK(verifyBlob() == 0);
|
CHK(verifyBlob() == 0);
|
||||||
}
|
}
|
||||||
if (testcase('w')) {
|
if (testcase('w')) {
|
||||||
|
@ -1398,6 +1425,7 @@ testmain()
|
||||||
CHK(readPk(style) == 0);
|
CHK(readPk(style) == 0);
|
||||||
}
|
}
|
||||||
CHK(deletePk() == 0);
|
CHK(deletePk() == 0);
|
||||||
|
CHK(deleteNoPk() == 0);
|
||||||
CHK(verifyBlob() == 0);
|
CHK(verifyBlob() == 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1858,18 +1886,6 @@ bugtest_27018()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
bugtest_2222()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
bugtest_3333()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
int m_bug;
|
int m_bug;
|
||||||
int (*m_test)();
|
int (*m_test)();
|
||||||
|
|
Loading…
Add table
Reference in a new issue