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
821cd17c
Commit
821cd17c
authored
Nov 16, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
DbtupRoutines.cpp:
Auto merged ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: Auto merged
parents
9de8e3b0
563e5c8d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
1 deletion
+22
-1
ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
+22
-1
No files found.
ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp
View file @
821cd17c
...
@@ -684,6 +684,27 @@ Dbtup::checkUpdateOfPrimaryKey(Uint32* updateBuffer, Tablerec* const regTabPtr)
...
@@ -684,6 +684,27 @@ Dbtup::checkUpdateOfPrimaryKey(Uint32* updateBuffer, Tablerec* const regTabPtr)
Uint32
attrDescriptorIndex
=
regTabPtr
->
tabDescriptor
+
(
attributeId
<<
ZAD_LOG_SIZE
);
Uint32
attrDescriptorIndex
=
regTabPtr
->
tabDescriptor
+
(
attributeId
<<
ZAD_LOG_SIZE
);
Uint32
attrDescriptor
=
tableDescriptor
[
attrDescriptorIndex
].
tabDescr
;
Uint32
attrDescriptor
=
tableDescriptor
[
attrDescriptorIndex
].
tabDescr
;
Uint32
attributeOffset
=
tableDescriptor
[
attrDescriptorIndex
+
1
].
tabDescr
;
Uint32
attributeOffset
=
tableDescriptor
[
attrDescriptorIndex
+
1
].
tabDescr
;
Uint32
xfrmBuffer
[
1
+
MAX_KEY_SIZE_IN_WORDS
*
1
];
// strxfrm_multiply == 1
Uint32
charsetFlag
=
AttributeOffset
::
getCharsetFlag
(
attributeOffset
);
if
(
charsetFlag
)
{
Uint32
csPos
=
AttributeOffset
::
getCharsetPos
(
attributeOffset
);
CHARSET_INFO
*
cs
=
regTabPtr
->
charsetArray
[
csPos
];
Uint32
sizeInBytes
=
AttributeDescriptor
::
getSizeInBytes
(
attrDescriptor
);
Uint32
sizeInWords
=
AttributeDescriptor
::
getSizeInWords
(
attrDescriptor
);
const
uchar
*
srcPtr
=
(
uchar
*
)
&
updateBuffer
[
1
];
uchar
*
dstPtr
=
(
uchar
*
)
&
xfrmBuffer
[
1
];
Uint32
n
=
(
*
cs
->
coll
->
strnxfrm
)(
cs
,
dstPtr
,
sizeInBytes
,
srcPtr
,
sizeInBytes
);
// pad with blanks (unlikely) and zeroes to match NDB API behaviour
while
(
n
<
sizeInBytes
)
dstPtr
[
n
++
]
=
0x20
;
while
(
n
<
4
*
sizeInWords
)
dstPtr
[
n
++
]
=
0
;
xfrmBuffer
[
0
]
=
ahIn
.
m_value
;
updateBuffer
=
xfrmBuffer
;
}
ReadFunction
f
=
regTabPtr
->
readFunctionArray
[
attributeId
];
ReadFunction
f
=
regTabPtr
->
readFunctionArray
[
attributeId
];
AttributeHeader
::
init
(
&
attributeHeader
,
attributeId
,
0
);
AttributeHeader
::
init
(
&
attributeHeader
,
attributeId
,
0
);
...
@@ -691,7 +712,7 @@ Dbtup::checkUpdateOfPrimaryKey(Uint32* updateBuffer, Tablerec* const regTabPtr)
...
@@ -691,7 +712,7 @@ Dbtup::checkUpdateOfPrimaryKey(Uint32* updateBuffer, Tablerec* const regTabPtr)
tMaxRead
=
MAX_KEY_SIZE_IN_WORDS
;
tMaxRead
=
MAX_KEY_SIZE_IN_WORDS
;
bool
tmp
=
tXfrmFlag
;
bool
tmp
=
tXfrmFlag
;
tXfrmFlag
=
fals
e
;
tXfrmFlag
=
tru
e
;
ndbrequire
((
this
->*
f
)(
&
keyReadBuffer
[
0
],
ahOut
,
attrDescriptor
,
attributeOffset
));
ndbrequire
((
this
->*
f
)(
&
keyReadBuffer
[
0
],
ahOut
,
attrDescriptor
,
attributeOffset
));
tXfrmFlag
=
tmp
;
tXfrmFlag
=
tmp
;
ndbrequire
(
tOutBufIndex
==
ahOut
->
getDataSize
());
ndbrequire
(
tOutBufIndex
==
ahOut
->
getDataSize
());
...
...
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