mirror of
https://github.com/MariaDB/server.git
synced 2025-08-31 22:22:30 +03:00
Merge poseidon.mysql.com:/home/tomas/mysql-5.0-telco-gca
into poseidon.mysql.com:/home/tomas/mysql-5.1-telco-gca
This commit is contained in:
@@ -212,7 +212,8 @@ public:
|
||||
NullablePrimaryKey = 740,
|
||||
UnsupportedChange = 741,
|
||||
BackupInProgress = 762,
|
||||
IncompatibleVersions = 763
|
||||
IncompatibleVersions = 763,
|
||||
SingleUser = 299
|
||||
};
|
||||
|
||||
private:
|
||||
|
@@ -208,6 +208,7 @@ public:
|
||||
AllocationError = 4252,
|
||||
CreateIndexTableFailed = 4253,
|
||||
DuplicateAttributes = 4258,
|
||||
SingleUser = 299,
|
||||
TableIsTemporary = 776,
|
||||
TableIsNotTemporary = 777,
|
||||
NoLoggingTemporaryIndex = 778
|
||||
|
@@ -92,6 +92,7 @@ public:
|
||||
InvalidPrimaryKeySize = 739,
|
||||
NullablePrimaryKey = 740,
|
||||
InvalidCharset = 743,
|
||||
SingleUser = 299,
|
||||
InvalidTablespace = 755,
|
||||
VarsizeBitfieldNotSupported = 757,
|
||||
NotATablespace = 758,
|
||||
|
@@ -172,7 +172,8 @@ public:
|
||||
IndexNotFound = 4243,
|
||||
BadRequestType = 4247,
|
||||
InvalidName = 4248,
|
||||
NotAnIndex = 4254
|
||||
NotAnIndex = 4254,
|
||||
SingleUser = 299
|
||||
};
|
||||
STATIC_CONST( SignalLength = DropIndxConf::SignalLength + 3 );
|
||||
|
||||
|
@@ -58,7 +58,8 @@ public:
|
||||
InvalidTableVersion = 241,
|
||||
DropInProgress = 283,
|
||||
NoDropTableRecordAvailable = 1229,
|
||||
BackupInProgress = 761
|
||||
BackupInProgress = 761,
|
||||
SingleUser = 299
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -96,6 +96,8 @@ printPACKED_SIGNAL(FILE * output, const Uint32 * theData, Uint32 len, Uint16 rec
|
||||
}
|
||||
default:
|
||||
fprintf(output, "Unknown signal type\n");
|
||||
i = len; // terminate printing
|
||||
break;
|
||||
}
|
||||
}//for
|
||||
fprintf(output, "--------- End Packed Signals ----------\n");
|
||||
|
@@ -3759,6 +3759,15 @@ Dbdict::execCREATE_TABLE_REQ(Signal* signal){
|
||||
break;
|
||||
}
|
||||
|
||||
if(getNodeState().getSingleUserMode() &&
|
||||
(refToNode(signal->getSendersBlockRef()) !=
|
||||
getNodeState().getSingleUserApi()))
|
||||
{
|
||||
jam();
|
||||
parseRecord.errorCode = CreateTableRef::SingleUser;
|
||||
break;
|
||||
}
|
||||
|
||||
CreateTableRecordPtr createTabPtr;
|
||||
c_opCreateTable.seize(createTabPtr);
|
||||
|
||||
@@ -3951,6 +3960,15 @@ Dbdict::execALTER_TABLE_REQ(Signal* signal)
|
||||
return;
|
||||
}
|
||||
|
||||
if(getNodeState().getSingleUserMode() &&
|
||||
(refToNode(signal->getSendersBlockRef()) !=
|
||||
getNodeState().getSingleUserApi()))
|
||||
{
|
||||
jam();
|
||||
alterTableRef(signal, req, AlterTableRef::SingleUser);
|
||||
return;
|
||||
}
|
||||
|
||||
const TableRecord::TabState tabState = tablePtr.p->tabState;
|
||||
bool ok = false;
|
||||
switch(tabState){
|
||||
@@ -6550,6 +6568,15 @@ Dbdict::execDROP_TABLE_REQ(Signal* signal){
|
||||
return;
|
||||
}
|
||||
|
||||
if(getNodeState().getSingleUserMode() &&
|
||||
(refToNode(signal->getSendersBlockRef()) !=
|
||||
getNodeState().getSingleUserApi()))
|
||||
{
|
||||
jam();
|
||||
dropTableRef(signal, req, DropTableRef::SingleUser);
|
||||
return;
|
||||
}
|
||||
|
||||
const TableRecord::TabState tabState = tablePtr.p->tabState;
|
||||
bool ok = false;
|
||||
switch(tabState){
|
||||
@@ -7758,6 +7785,13 @@ Dbdict::execCREATE_INDX_REQ(Signal* signal)
|
||||
jam();
|
||||
tmperr = CreateIndxRef::Busy;
|
||||
}
|
||||
else if(getNodeState().getSingleUserMode() &&
|
||||
(refToNode(senderRef) !=
|
||||
getNodeState().getSingleUserApi()))
|
||||
{
|
||||
jam();
|
||||
tmperr = CreateIndxRef::SingleUser;
|
||||
}
|
||||
if (tmperr != CreateIndxRef::NoError) {
|
||||
releaseSections(signal);
|
||||
OpCreateIndex opBusy;
|
||||
@@ -8401,6 +8435,13 @@ Dbdict::execDROP_INDX_REQ(Signal* signal)
|
||||
jam();
|
||||
tmperr = DropIndxRef::Busy;
|
||||
}
|
||||
else if(getNodeState().getSingleUserMode() &&
|
||||
(refToNode(senderRef) !=
|
||||
getNodeState().getSingleUserApi()))
|
||||
{
|
||||
jam();
|
||||
tmperr = DropIndxRef::SingleUser;
|
||||
}
|
||||
if (tmperr != DropIndxRef::NoError) {
|
||||
err = tmperr;
|
||||
goto error;
|
||||
|
@@ -283,6 +283,7 @@ ErrorBundle ErrorCodes[] = {
|
||||
/**
|
||||
* Application error
|
||||
*/
|
||||
{ 299, DMEC, AE, "Operation not allowed or aborted due to single user mode" },
|
||||
{ 763, DMEC, AE, "Alter table requires cluster nodes to have exact same version" },
|
||||
{ 823, DMEC, AE, "Too much attrinfo from application in tuple manager" },
|
||||
{ 831, DMEC, AE, "Too many nullable/bitfields in table definition" },
|
||||
|
Reference in New Issue
Block a user