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
6d715dea
Commit
6d715dea
authored
Sep 03, 2006
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb -
gcc-4.1.1 work-around for bug in strict-aliasing
parent
7fc7ef51
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
21 deletions
+19
-21
storage/ndb/src/kernel/blocks/restore.cpp
storage/ndb/src/kernel/blocks/restore.cpp
+19
-21
No files found.
storage/ndb/src/kernel/blocks/restore.cpp
View file @
6d715dea
...
@@ -57,6 +57,8 @@ Restore::Restore(Block_context& ctx) :
...
@@ -57,6 +57,8 @@ Restore::Restore(Block_context& ctx) :
addRecSignal
(
GSN_LQHKEYREF
,
&
Restore
::
execLQHKEYREF
);
addRecSignal
(
GSN_LQHKEYREF
,
&
Restore
::
execLQHKEYREF
);
addRecSignal
(
GSN_LQHKEYCONF
,
&
Restore
::
execLQHKEYCONF
);
addRecSignal
(
GSN_LQHKEYCONF
,
&
Restore
::
execLQHKEYCONF
);
ndbrequire
(
sizeof
(
Column
)
==
8
);
}
}
Restore
::~
Restore
()
Restore
::~
Restore
()
...
@@ -794,10 +796,10 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -794,10 +796,10 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
return
;
return
;
}
}
DataBuffer
<
15
>
variable
(
m_databuffer_pool
);
Uint32
null_offset
=
0
;
Uint32
null_offset
=
0
;
union
{
Column
c
;
Uint32
_align
[
2
];};
Column
c
;
Uint32
colstore
[
sizeof
(
Column
)
/
sizeof
(
Uint32
)];
for
(
Uint32
i
=
0
;
i
<
tmpTab
.
NoOfAttributes
;
i
++
)
{
for
(
Uint32
i
=
0
;
i
<
tmpTab
.
NoOfAttributes
;
i
++
)
{
jam
();
jam
();
DictTabInfo
::
Attribute
tmp
;
tmp
.
init
();
DictTabInfo
::
Attribute
tmp
;
tmp
.
init
();
...
@@ -814,10 +816,6 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -814,10 +816,6 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
const
Uint32
sz32
=
(
sz
*
arr
+
31
)
>>
5
;
const
Uint32
sz32
=
(
sz
*
arr
+
31
)
>>
5
;
const
bool
varsize
=
tmp
.
AttributeArrayType
!=
NDB_ARRAYTYPE_FIXED
;
const
bool
varsize
=
tmp
.
AttributeArrayType
!=
NDB_ARRAYTYPE_FIXED
;
union
{
Column
c
;
Uint32
_align
[
2
];
};
c
.
m_id
=
tmp
.
AttributeId
;
c
.
m_id
=
tmp
.
AttributeId
;
c
.
m_size
=
sz32
;
c
.
m_size
=
sz32
;
c
.
m_flags
=
(
tmp
.
AttributeKeyFlag
?
Column
::
COL_KEY
:
0
);
c
.
m_flags
=
(
tmp
.
AttributeKeyFlag
?
Column
::
COL_KEY
:
0
);
...
@@ -836,22 +834,19 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -836,22 +834,19 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
if
(
!
tmp
.
AttributeNullableFlag
&&
!
varsize
)
if
(
!
tmp
.
AttributeNullableFlag
&&
!
varsize
)
{
{
if
(
!
columns
.
append
(
_align
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
i
);
return
;
}
}
}
else
if
(
true
)
// null mask dropped in 5.1
else
if
(
true
)
// null mask dropped in 5.1
{
{
c
.
m_flags
|=
(
varsize
?
Column
::
COL_VAR
:
0
);
c
.
m_flags
|=
(
varsize
?
Column
::
COL_VAR
:
0
);
c
.
m_flags
|=
(
tmp
.
AttributeNullableFlag
?
Column
::
COL_NULL
:
0
);
c
.
m_flags
|=
(
tmp
.
AttributeNullableFlag
?
Column
::
COL_NULL
:
0
);
if
(
!
columns
.
append
(
_align
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
i
);
return
;
}
}
}
memcpy
(
colstore
,
&
c
,
sizeof
(
Column
));
if
(
!
columns
.
append
(
colstore
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
i
);
return
;
}
}
}
if
(
lcp
)
if
(
lcp
)
...
@@ -861,7 +856,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -861,7 +856,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
c
.
m_id
=
AttributeHeader
::
DISK_REF
;
c
.
m_id
=
AttributeHeader
::
DISK_REF
;
c
.
m_size
=
2
;
c
.
m_size
=
2
;
c
.
m_flags
=
0
;
c
.
m_flags
=
0
;
if
(
!
columns
.
append
(
_align
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
memcpy
(
colstore
,
&
c
,
sizeof
(
Column
));
if
(
!
columns
.
append
(
colstore
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
return
;
return
;
...
@@ -872,7 +868,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -872,7 +868,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
c
.
m_id
=
AttributeHeader
::
ROWID
;
c
.
m_id
=
AttributeHeader
::
ROWID
;
c
.
m_size
=
2
;
c
.
m_size
=
2
;
c
.
m_flags
=
0
;
c
.
m_flags
=
0
;
if
(
!
columns
.
append
(
_align
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
memcpy
(
colstore
,
&
c
,
sizeof
(
Column
));
if
(
!
columns
.
append
(
colstore
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
return
;
return
;
...
@@ -884,7 +881,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
...
@@ -884,7 +881,8 @@ Restore::parse_table_description(Signal* signal, FilePtr file_ptr,
c
.
m_id
=
AttributeHeader
::
ROW_GCI
;
c
.
m_id
=
AttributeHeader
::
ROW_GCI
;
c
.
m_size
=
2
;
c
.
m_size
=
2
;
c
.
m_flags
=
0
;
c
.
m_flags
=
0
;
if
(
!
columns
.
append
(
_align
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
memcpy
(
colstore
,
&
c
,
sizeof
(
Column
));
if
(
!
columns
.
append
(
colstore
,
sizeof
(
Column
)
/
sizeof
(
Uint32
)))
{
{
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
parse_error
(
signal
,
file_ptr
,
__LINE__
,
0
);
return
;
return
;
...
@@ -942,7 +940,7 @@ Restore::parse_record(Signal* signal, FilePtr file_ptr,
...
@@ -942,7 +940,7 @@ Restore::parse_record(Signal* signal, FilePtr file_ptr,
Uint32
*
attrData
=
attr_start
;
Uint32
*
attrData
=
attr_start
;
union
{
union
{
Column
c
;
Column
c
;
Uint32
_align
[
2
];
Uint32
_align
[
sizeof
(
Column
)
/
sizeof
(
Uint32
)
];
};
};
bool
disk
=
false
;
bool
disk
=
false
;
bool
rowid
=
false
;
bool
rowid
=
false
;
...
...
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