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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
24422153
Commit
24422153
authored
Sep 15, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#21535
review, Fix also master being "old" version
parent
80c7b702
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
17 deletions
+22
-17
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+22
-17
No files found.
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
View file @
24422153
...
@@ -9098,6 +9098,7 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
...
@@ -9098,6 +9098,7 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
const
CopyFragReq
*
const
copyFragReq
=
(
CopyFragReq
*
)
&
signal
->
theData
[
0
];
const
CopyFragReq
*
const
copyFragReq
=
(
CopyFragReq
*
)
&
signal
->
theData
[
0
];
tabptr
.
i
=
copyFragReq
->
tableId
;
tabptr
.
i
=
copyFragReq
->
tableId
;
ptrCheckGuard
(
tabptr
,
ctabrecFileSize
,
tablerec
);
ptrCheckGuard
(
tabptr
,
ctabrecFileSize
,
tablerec
);
Uint32
i
;
const
Uint32
fragId
=
copyFragReq
->
fragId
;
const
Uint32
fragId
=
copyFragReq
->
fragId
;
const
Uint32
copyPtr
=
copyFragReq
->
userPtr
;
const
Uint32
copyPtr
=
copyFragReq
->
userPtr
;
const
Uint32
userRef
=
copyFragReq
->
userRef
;
const
Uint32
userRef
=
copyFragReq
->
userRef
;
...
@@ -9111,11 +9112,18 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
...
@@ -9111,11 +9112,18 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
Uint32
key
=
fragptr
.
p
->
fragDistributionKey
=
copyFragReq
->
distributionKey
;
Uint32
key
=
fragptr
.
p
->
fragDistributionKey
=
copyFragReq
->
distributionKey
;
Uint32
checkversion
=
NDB_VERSION
>=
MAKE_VERSION
(
5
,
1
,
0
)
?
NDBD_UPDATE_FRAG_DIST_KEY_51
:
NDBD_UPDATE_FRAG_DIST_KEY_50
;
Uint32
nodeCount
=
copyFragReq
->
nodeCount
;
Uint32
nodeCount
=
copyFragReq
->
nodeCount
;
Uint32
nodeList
[
MAX_REPLICAS
];
NdbNodeBitmask
nodemask
;
ndbrequire
(
nodeCount
<=
MAX_REPLICAS
);
if
(
getNodeInfo
(
refToNode
(
userRef
)).
m_version
>=
checkversion
)
memcpy
(
nodeList
,
copyFragReq
->
nodeList
,
4
*
nodeCount
);
{
ndbrequire
(
nodeCount
<=
MAX_REPLICAS
);
for
(
i
=
0
;
i
<
nodeCount
;
i
++
)
nodemask
.
set
(
copyFragReq
->
nodeList
[
i
]);
}
if
(
DictTabInfo
::
isOrderedIndex
(
tabptr
.
p
->
tableType
))
{
if
(
DictTabInfo
::
isOrderedIndex
(
tabptr
.
p
->
tableType
))
{
jam
();
jam
();
/**
/**
...
@@ -9189,25 +9197,22 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
...
@@ -9189,25 +9197,22 @@ void Dblqh::execCOPY_FRAGREQ(Signal* signal)
req
->
savePointId
=
tcConnectptr
.
p
->
savePointId
;
req
->
savePointId
=
tcConnectptr
.
p
->
savePointId
;
sendSignal
(
tcConnectptr
.
p
->
tcAccBlockref
,
GSN_ACC_SCANREQ
,
signal
,
sendSignal
(
tcConnectptr
.
p
->
tcAccBlockref
,
GSN_ACC_SCANREQ
,
signal
,
AccScanReq
::
SignalLength
,
JBB
);
AccScanReq
::
SignalLength
,
JBB
);
Uint32
i
;
if
(
!
nodemask
.
isclear
())
NdbNodeBitmask
mask
;
ndbrequire
(
mask
.
get
(
getOwnNodeId
()));
ndbrequire
(
mask
.
get
(
nodeId
));
// cpy dest
if
(
!
mask
.
isclear
())
{
{
UpdateFragDistKeyOrd
*
ord
=
(
UpdateFragDistKeyOrd
*
)
signal
->
getDataPtrSend
();
ndbrequire
(
nodemask
.
get
(
getOwnNodeId
()));
ndbrequire
(
nodemask
.
get
(
nodeId
));
// cpy dest
nodemask
.
clear
(
getOwnNodeId
());
nodemask
.
clear
(
nodeId
);
UpdateFragDistKeyOrd
*
ord
=
(
UpdateFragDistKeyOrd
*
)
signal
->
getDataPtrSend
();
ord
->
tableId
=
tabptr
.
i
;
ord
->
tableId
=
tabptr
.
i
;
ord
->
fragId
=
fragId
;
ord
->
fragId
=
fragId
;
ord
->
fragDistributionKey
=
key
;
ord
->
fragDistributionKey
=
key
;
i
=
0
;
i
=
0
;
while
((
i
=
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
)
while
((
i
=
node
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
)
{
{
#ifdef NDB_VERSION >= MAKE_VERSION(5,1,0)
Uint32
checkversion
=
NDBD_UPDATE_FRAG_DIST_KEY_51
;
#elif NDB_VERSION >= MAKE_VERSION(5,0,0)
Uint32
checkversion
=
NDBD_UPDATE_FRAG_DIST_KEY_50
;
#endif
if
(
getNodeInfo
(
i
).
m_version
>=
checkversion
)
if
(
getNodeInfo
(
i
).
m_version
>=
checkversion
)
sendSignal
(
calcLqhBlockRef
(
i
),
GSN_UPDATE_FRAG_DIST_KEY_ORD
,
sendSignal
(
calcLqhBlockRef
(
i
),
GSN_UPDATE_FRAG_DIST_KEY_ORD
,
signal
,
UpdateFragDistKeyOrd
::
SignalLength
,
JBB
);
signal
,
UpdateFragDistKeyOrd
::
SignalLength
,
JBB
);
...
...
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