Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
65a0ee5f
Commit
65a0ee5f
authored
Mar 02, 2007
by
tomas@poseidon.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge poseidon.mysql.com:/home/tomas/mysql-5.0
into poseidon.mysql.com:/home/tomas/mysql-5.0-ndb
parents
2f5a2b24
4fed7eb8
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
91 additions
and
30 deletions
+91
-30
ndb/include/kernel/signaldata/AlterTable.hpp
ndb/include/kernel/signaldata/AlterTable.hpp
+2
-1
ndb/include/kernel/signaldata/CreateIndx.hpp
ndb/include/kernel/signaldata/CreateIndx.hpp
+2
-1
ndb/include/kernel/signaldata/CreateTable.hpp
ndb/include/kernel/signaldata/CreateTable.hpp
+2
-1
ndb/include/kernel/signaldata/DropIndx.hpp
ndb/include/kernel/signaldata/DropIndx.hpp
+2
-1
ndb/include/kernel/signaldata/DropTable.hpp
ndb/include/kernel/signaldata/DropTable.hpp
+2
-1
ndb/src/common/debugger/EventLogger.cpp
ndb/src/common/debugger/EventLogger.cpp
+1
-1
ndb/src/common/debugger/signaldata/PackedSignal.cpp
ndb/src/common/debugger/signaldata/PackedSignal.cpp
+2
-0
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
+41
-0
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+11
-4
ndb/src/ndbapi/NdbRecAttr.cpp
ndb/src/ndbapi/NdbRecAttr.cpp
+19
-19
ndb/src/ndbapi/ndberror.c
ndb/src/ndbapi/ndberror.c
+1
-0
ndb/tools/restore/Restore.cpp
ndb/tools/restore/Restore.cpp
+6
-1
No files found.
ndb/include/kernel/signaldata/AlterTable.hpp
View file @
65a0ee5f
...
...
@@ -130,7 +130,8 @@ public:
NullablePrimaryKey
=
740
,
UnsupportedChange
=
741
,
BackupInProgress
=
762
,
IncompatibleVersions
=
763
IncompatibleVersions
=
763
,
SingleUser
=
299
};
private:
...
...
ndb/include/kernel/signaldata/CreateIndx.hpp
View file @
65a0ee5f
...
...
@@ -206,7 +206,8 @@ public:
NotUnique
=
4251
,
AllocationError
=
4252
,
CreateIndexTableFailed
=
4253
,
DuplicateAttributes
=
4258
DuplicateAttributes
=
4258
,
SingleUser
=
299
};
CreateIndxConf
m_conf
;
...
...
ndb/include/kernel/signaldata/CreateTable.hpp
View file @
65a0ee5f
...
...
@@ -91,7 +91,8 @@ public:
RecordTooBig
=
738
,
InvalidPrimaryKeySize
=
739
,
NullablePrimaryKey
=
740
,
InvalidCharset
=
743
InvalidCharset
=
743
,
SingleUser
=
299
};
private:
...
...
ndb/include/kernel/signaldata/DropIndx.hpp
View file @
65a0ee5f
...
...
@@ -172,7 +172,8 @@ public:
IndexNotFound
=
4243
,
BadRequestType
=
4247
,
InvalidName
=
4248
,
NotAnIndex
=
4254
NotAnIndex
=
4254
,
SingleUser
=
299
};
STATIC_CONST
(
SignalLength
=
DropIndxConf
::
SignalLength
+
3
);
...
...
ndb/include/kernel/signaldata/DropTable.hpp
View file @
65a0ee5f
...
...
@@ -58,7 +58,8 @@ public:
InvalidTableVersion
=
241
,
DropInProgress
=
283
,
NoDropTableRecordAvailable
=
1229
,
BackupInProgress
=
761
BackupInProgress
=
761
,
SingleUser
=
299
};
};
...
...
ndb/src/common/debugger/EventLogger.cpp
View file @
65a0ee5f
...
...
@@ -926,7 +926,7 @@ const EventLoggerBase::EventRepLogLevelMatrix EventLoggerBase::matrix[] = {
ROW
(
NDBStopCompleted
,
LogLevel
::
llStartUp
,
1
,
Logger
::
LL_INFO
),
ROW
(
NDBStopForced
,
LogLevel
::
llStartUp
,
1
,
Logger
::
LL_ALERT
),
ROW
(
NDBStopAborted
,
LogLevel
::
llStartUp
,
1
,
Logger
::
LL_INFO
),
ROW
(
StartREDOLog
,
LogLevel
::
llStartUp
,
10
,
Logger
::
LL_INFO
),
ROW
(
StartREDOLog
,
LogLevel
::
llStartUp
,
4
,
Logger
::
LL_INFO
),
ROW
(
StartLog
,
LogLevel
::
llStartUp
,
10
,
Logger
::
LL_INFO
),
ROW
(
UNDORecordsExecuted
,
LogLevel
::
llStartUp
,
15
,
Logger
::
LL_INFO
),
ROW
(
StartReport
,
LogLevel
::
llStartUp
,
4
,
Logger
::
LL_INFO
),
...
...
ndb/src/common/debugger/signaldata/PackedSignal.cpp
View file @
65a0ee5f
...
...
@@ -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
"
);
...
...
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
View file @
65a0ee5f
...
...
@@ -2910,6 +2910,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
);
...
...
@@ -3072,6 +3081,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
){
...
...
@@ -5396,6 +5414,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
){
...
...
@@ -6526,6 +6553,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
;
...
...
@@ -7096,6 +7130,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
;
...
...
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
65a0ee5f
...
...
@@ -456,6 +456,7 @@ void Dblqh::execCONTINUEB(Signal* signal)
else
{
jam
();
cstartRecReq
=
2
;
StartRecConf
*
conf
=
(
StartRecConf
*
)
signal
->
getDataPtrSend
();
conf
->
startingNodeId
=
getOwnNodeId
();
sendSignal
(
cmasterDihBlockref
,
GSN_START_RECCONF
,
signal
,
...
...
@@ -11665,7 +11666,7 @@ void Dblqh::execGCP_SAVEREQ(Signal* signal)
return
;
}
if
(
getNodeState
().
getNodeRestartInProgress
()
&&
cstartRecReq
==
ZFALSE
)
if
(
getNodeState
().
getNodeRestartInProgress
()
&&
cstartRecReq
<
2
)
{
GCPSaveRef
*
const
saveRef
=
(
GCPSaveRef
*
)
&
signal
->
theData
[
0
];
saveRef
->
dihPtr
=
dihPtr
;
...
...
@@ -11942,6 +11943,10 @@ void Dblqh::execFSCLOSECONF(Signal* signal)
// Set the prev file to check if we shall close it.
logFilePtr
.
i
=
logFilePtr
.
p
->
prevLogFile
;
ptrCheckGuard
(
logFilePtr
,
clogFileFileSize
,
logFileRecord
);
logPartPtr
.
i
=
logFilePtr
.
p
->
logPartRec
;
ptrCheckGuard
(
logPartPtr
,
clogPartFileSize
,
logPartRecord
);
exitFromInvalidate
(
signal
);
return
;
case
LogFileRecord
:
:
CLOSING_INIT
:
...
...
@@ -13810,7 +13815,7 @@ void Dblqh::srCompletedLab(Signal* signal)
* NO MORE FRAGMENTS ARE WAITING FOR SYSTEM RESTART.
* -------------------------------------------------------------------- */
lcpPtr
.
p
->
lcpState
=
LcpRecord
::
LCP_IDLE
;
if
(
cstartRecReq
==
ZTRUE
)
{
if
(
cstartRecReq
==
1
)
{
jam
();
/* ----------------------------------------------------------------
* WE HAVE ALSO RECEIVED AN INDICATION THAT NO MORE FRAGMENTS
...
...
@@ -13880,7 +13885,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal)
ndbrequire
(
req
->
receivingNodeId
==
cownNodeid
);
cnewestCompletedGci
=
cnewestGci
;
cstartRecReq
=
ZTRUE
;
cstartRecReq
=
1
;
for
(
logPartPtr
.
i
=
0
;
logPartPtr
.
i
<
4
;
logPartPtr
.
i
++
)
{
ptrAss
(
logPartPtr
,
logPartRecord
);
logPartPtr
.
p
->
logPartNewestCompletedGCI
=
cnewestCompletedGci
;
...
...
@@ -13901,6 +13906,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal)
}
//if
if
(
cstartType
==
NodeState
::
ST_INITIAL_NODE_RESTART
){
jam
();
cstartRecReq
=
2
;
StartRecConf
*
conf
=
(
StartRecConf
*
)
signal
->
getDataPtrSend
();
conf
->
startingNodeId
=
getOwnNodeId
();
sendSignal
(
cmasterDihBlockref
,
GSN_START_RECCONF
,
signal
,
...
...
@@ -15719,6 +15725,7 @@ void Dblqh::srFourthComp(Signal* signal)
else
{
jam
();
cstartRecReq
=
2
;
StartRecConf
*
conf
=
(
StartRecConf
*
)
signal
->
getDataPtrSend
();
conf
->
startingNodeId
=
getOwnNodeId
();
sendSignal
(
cmasterDihBlockref
,
GSN_START_RECCONF
,
signal
,
...
...
@@ -16685,7 +16692,7 @@ void Dblqh::initialiseRecordsLab(Signal* signal, Uint32 data,
cCommitBlocked
=
false
;
ccurrentGcprec
=
RNIL
;
caddNodeState
=
ZFALSE
;
cstartRecReq
=
ZFALSE
;
cstartRecReq
=
0
;
cnewestGci
=
(
UintR
)
-
1
;
cnewestCompletedGci
=
(
UintR
)
-
1
;
crestartOldestGci
=
0
;
...
...
ndb/src/ndbapi/NdbRecAttr.cpp
View file @
65a0ee5f
...
...
@@ -346,27 +346,27 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
}
break
;
case
NdbDictionary
:
:
Column
::
Blob
:
{
const
NdbBlob
::
Head
*
h
=
(
const
NdbBlob
::
Head
*
)
r
.
aRef
();
out
<<
h
->
length
<<
":"
;
const
unsigned
char
*
p
=
(
const
unsigned
char
*
)(
h
+
1
);
unsigned
n
=
r
.
arraySize
()
-
sizeof
(
*
h
);
for
(
unsigned
k
=
0
;
k
<
n
&&
k
<
h
->
length
;
k
++
)
out
.
print
(
"%02X"
,
(
int
)
p
[
k
]);
j
=
length
;
}
break
;
case
NdbDictionary
:
:
Column
::
Text
:
{
const
NdbBlob
::
Head
*
h
=
(
const
NdbBlob
::
Head
*
)
r
.
aRef
();
out
<<
h
->
length
<<
":"
;
const
unsigned
char
*
p
=
(
const
unsigned
char
*
)(
h
+
1
);
unsigned
n
=
r
.
arraySize
()
-
sizeof
(
*
h
);
for
(
unsigned
k
=
0
;
k
<
n
&&
k
<
h
->
length
;
k
++
)
out
.
print
(
"%c"
,
(
int
)
p
[
k
]);
j
=
length
;
{
// user defined aRef() may not be aligned to Uint64
NdbBlob
::
Head
head
;
memcpy
(
&
head
,
r
.
aRef
(),
sizeof
(
head
));
out
<<
head
.
length
<<
":"
;
const
unsigned
char
*
p
=
(
const
unsigned
char
*
)
r
.
aRef
()
+
sizeof
(
head
);
if
(
r
.
arraySize
()
<
sizeof
(
head
))
out
<<
"***error***"
;
// really cannot happen
else
{
unsigned
n
=
r
.
arraySize
()
-
sizeof
(
head
);
for
(
unsigned
k
=
0
;
k
<
n
&&
k
<
head
.
length
;
k
++
)
{
if
(
r
.
getType
()
==
NdbDictionary
::
Column
::
Blob
)
out
.
print
(
"%02X"
,
(
int
)
p
[
k
]);
else
out
.
print
(
"%c"
,
(
int
)
p
[
k
]);
}
}
break
;
j
=
length
;
}
break
;
case
NdbDictionary
:
:
Column
::
Longvarchar
:
{
unsigned
len
=
uint2korr
(
r
.
aRef
());
...
...
ndb/src/ndbapi/ndberror.c
View file @
65a0ee5f
...
...
@@ -264,6 +264,7 @@ ErrorBundle ErrorCodes[] = {
/**
* Application error
*/
{
299
,
AE
,
"Operation not allowed or aborted due to single user mode"
},
{
763
,
AE
,
"Alter table requires cluster nodes to have exact same version"
},
{
823
,
AE
,
"Too much attrinfo from application in tuple manager"
},
{
831
,
AE
,
"Too many nullable/bitfields in table definition"
},
...
...
ndb/tools/restore/Restore.cpp
View file @
65a0ee5f
...
...
@@ -54,7 +54,12 @@ BackupFile::Twiddle(const AttributeDesc* attr_desc, AttributeData* attr_data, Ui
return
true
;
case
64
:
for
(
i
=
0
;
i
<
arraySize
;
i
++
){
attr_data
->
u_int64_value
[
i
]
=
Twiddle64
(
attr_data
->
u_int64_value
[
i
]);
// allow unaligned
char
*
p
=
(
char
*
)
&
attr_data
->
u_int64_value
[
i
];
Uint64
x
;
memcpy
(
&
x
,
p
,
sizeof
(
Uint64
));
x
=
Twiddle64
(
x
);
memcpy
(
p
,
&
x
,
sizeof
(
Uint64
));
}
return
true
;
default:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment