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
6b9f1ef2
Commit
6b9f1ef2
authored
Mar 09, 2007
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge poseidon.mysql.com:/home/tomas/mysql-5.0-ndb-clean
into poseidon.mysql.com:/home/tomas/mysql-5.0
parents
d6bd171f
9565e8cd
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
227 additions
and
205 deletions
+227
-205
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
+21
-15
ndb/src/kernel/blocks/dbdict/Dbdict.hpp
ndb/src/kernel/blocks/dbdict/Dbdict.hpp
+2
-0
ndb/src/ndbapi/NdbRecAttr.cpp
ndb/src/ndbapi/NdbRecAttr.cpp
+193
-189
ndb/tools/waiter.cpp
ndb/tools/waiter.cpp
+11
-1
No files found.
ndb/src/kernel/blocks/dbdict/Dbdict.cpp
View file @
6b9f1ef2
...
@@ -2910,9 +2910,7 @@ Dbdict::execCREATE_TABLE_REQ(Signal* signal){
...
@@ -2910,9 +2910,7 @@ Dbdict::execCREATE_TABLE_REQ(Signal* signal){
break;
break;
}
}
if
(
getNodeState
().
getSingleUserMode
()
&&
if (checkSingleUserMode(signal->getSendersBlockRef()))
(
refToNode
(
signal
->
getSendersBlockRef
())
!=
getNodeState
().
getSingleUserApi
()))
{
{
jam();
jam();
parseRecord.errorCode = CreateTableRef::SingleUser;
parseRecord.errorCode = CreateTableRef::SingleUser;
...
@@ -3081,9 +3079,7 @@ Dbdict::execALTER_TABLE_REQ(Signal* signal)
...
@@ -3081,9 +3079,7 @@ Dbdict::execALTER_TABLE_REQ(Signal* signal)
return;
return;
}
}
if
(
getNodeState
().
getSingleUserMode
()
&&
if (checkSingleUserMode(signal->getSendersBlockRef()))
(
refToNode
(
signal
->
getSendersBlockRef
())
!=
getNodeState
().
getSingleUserApi
()))
{
{
jam();
jam();
alterTableRef(signal, req, AlterTableRef::SingleUser);
alterTableRef(signal, req, AlterTableRef::SingleUser);
...
@@ -5414,9 +5410,7 @@ Dbdict::execDROP_TABLE_REQ(Signal* signal){
...
@@ -5414,9 +5410,7 @@ Dbdict::execDROP_TABLE_REQ(Signal* signal){
return;
return;
}
}
if
(
getNodeState
().
getSingleUserMode
()
&&
if (checkSingleUserMode(signal->getSendersBlockRef()))
(
refToNode
(
signal
->
getSendersBlockRef
())
!=
getNodeState
().
getSingleUserApi
()))
{
{
jam();
jam();
dropTableRef(signal, req, DropTableRef::SingleUser);
dropTableRef(signal, req, DropTableRef::SingleUser);
...
@@ -6553,9 +6547,7 @@ Dbdict::execCREATE_INDX_REQ(Signal* signal)
...
@@ -6553,9 +6547,7 @@ Dbdict::execCREATE_INDX_REQ(Signal* signal)
jam();
jam();
tmperr = CreateIndxRef::Busy;
tmperr = CreateIndxRef::Busy;
}
}
else
if
(
getNodeState
().
getSingleUserMode
()
&&
else if (checkSingleUserMode(senderRef))
(
refToNode
(
senderRef
)
!=
getNodeState
().
getSingleUserApi
()))
{
{
jam();
jam();
tmperr = CreateIndxRef::SingleUser;
tmperr = CreateIndxRef::SingleUser;
...
@@ -7130,9 +7122,7 @@ Dbdict::execDROP_INDX_REQ(Signal* signal)
...
@@ -7130,9 +7122,7 @@ Dbdict::execDROP_INDX_REQ(Signal* signal)
jam();
jam();
tmperr = DropIndxRef::Busy;
tmperr = DropIndxRef::Busy;
}
}
else
if
(
getNodeState
().
getSingleUserMode
()
&&
else if (checkSingleUserMode(senderRef))
(
refToNode
(
senderRef
)
!=
getNodeState
().
getSingleUserApi
()))
{
{
jam();
jam();
tmperr = DropIndxRef::SingleUser;
tmperr = DropIndxRef::SingleUser;
...
@@ -10574,4 +10564,20 @@ Dbdict::getMetaAttribute(MetaData::Attribute& attr, const MetaData::Table& table
...
@@ -10574,4 +10564,20 @@ Dbdict::getMetaAttribute(MetaData::Attribute& attr, const MetaData::Table& table
return 0;
return 0;
}
}
/*
return 1 if all of the below is true
a) node in single user mode
b) senderRef is not a db node
c) senderRef nodeid is not the singleUserApi
*/
int Dbdict::checkSingleUserMode(Uint32 senderRef)
{
Uint32 nodeId = refToNode(senderRef);
return
getNodeState().getSingleUserMode() &&
(getNodeInfo(nodeId).m_type != NodeInfo::DB) &&
(nodeId != getNodeState().getSingleUserApi());
}
CArray<KeyDescriptor> g_key_descriptor_pool;
CArray<KeyDescriptor> g_key_descriptor_pool;
ndb/src/kernel/blocks/dbdict/Dbdict.hpp
View file @
6b9f1ef2
...
@@ -2003,6 +2003,8 @@ private:
...
@@ -2003,6 +2003,8 @@ private:
int
getMetaTable
(
MetaData
::
Table
&
table
,
const
char
*
tableName
);
int
getMetaTable
(
MetaData
::
Table
&
table
,
const
char
*
tableName
);
int
getMetaAttribute
(
MetaData
::
Attribute
&
attribute
,
const
MetaData
::
Table
&
table
,
Uint32
attributeId
);
int
getMetaAttribute
(
MetaData
::
Attribute
&
attribute
,
const
MetaData
::
Table
&
table
,
Uint32
attributeId
);
int
getMetaAttribute
(
MetaData
::
Attribute
&
attribute
,
const
MetaData
::
Table
&
table
,
const
char
*
attributeName
);
int
getMetaAttribute
(
MetaData
::
Attribute
&
attribute
,
const
MetaData
::
Table
&
table
,
const
char
*
attributeName
);
int
checkSingleUserMode
(
Uint32
senderRef
);
};
};
#endif
#endif
ndb/src/ndbapi/NdbRecAttr.cpp
View file @
6b9f1ef2
...
@@ -192,8 +192,7 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
...
@@ -192,8 +192,7 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
if
(
j
>
0
)
if
(
j
>
0
)
out
<<
" "
;
out
<<
" "
;
switch
(
r
.
getType
())
switch
(
r
.
getType
()){
{
case
NdbDictionary
:
:
Column
::
Bigunsigned
:
case
NdbDictionary
:
:
Column
::
Bigunsigned
:
out
<<
r
.
u_64_value
();
out
<<
r
.
u_64_value
();
break
;
break
;
...
@@ -222,12 +221,12 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
...
@@ -222,12 +221,12 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
out
<<
(
int
)
r
.
char_value
();
out
<<
(
int
)
r
.
char_value
();
break
;
break
;
case
NdbDictionary
:
:
Column
::
Binary
:
case
NdbDictionary
:
:
Column
::
Binary
:
ndbrecattr_print_string
(
out
,
"Binary"
,
r
.
aRef
(),
r
.
arraySize
());
j
=
r
.
arraySize
();
j
=
r
.
arraySize
();
ndbrecattr_print_string
(
out
,
"Binary"
,
r
.
aRef
(),
j
);
break
;
break
;
case
NdbDictionary
:
:
Column
::
Char
:
case
NdbDictionary
:
:
Column
::
Char
:
ndbrecattr_print_string
(
out
,
"Char"
,
r
.
aRef
(),
r
.
arraySize
());
j
=
length
;
j
=
length
;
ndbrecattr_print_string
(
out
,
"Char"
,
r
.
aRef
(),
r
.
arraySize
());
break
;
break
;
case
NdbDictionary
:
:
Column
::
Varchar
:
case
NdbDictionary
:
:
Column
::
Varchar
:
{
{
...
@@ -374,8 +373,13 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
...
@@ -374,8 +373,13 @@ NdbOut& operator<<(NdbOut& out, const NdbRecAttr &r)
j
=
length
;
j
=
length
;
}
}
break
;
break
;
case
NdbDictionary
:
:
Column
::
Undefined
:
case
NdbDictionary
:
:
Column
::
Mediumint
:
case
NdbDictionary
:
:
Column
::
Mediumunsigned
:
case
NdbDictionary
:
:
Column
::
Longvarbinary
:
unknown:
unknown:
default:
/* no print functions for the rest, just print type */
//
default: /* no print functions for the rest, just print type */
out
<<
(
int
)
r
.
getType
();
out
<<
(
int
)
r
.
getType
();
j
=
length
;
j
=
length
;
if
(
j
>
1
)
if
(
j
>
1
)
...
...
ndb/tools/waiter.cpp
View file @
6b9f1ef2
...
@@ -30,12 +30,14 @@ waitClusterStatus(const char* _addr, ndb_mgm_node_status _status,
...
@@ -30,12 +30,14 @@ waitClusterStatus(const char* _addr, ndb_mgm_node_status _status,
unsigned
int
_timeout
);
unsigned
int
_timeout
);
enum
ndb_waiter_options
{
enum
ndb_waiter_options
{
OPT_WAIT_STATUS_NOT_STARTED
=
NDB_STD_OPTIONS_LAST
OPT_WAIT_STATUS_NOT_STARTED
=
NDB_STD_OPTIONS_LAST
,
OPT_WAIT_STATUS_SINGLE_USER
};
};
NDB_STD_OPTS_VARS
;
NDB_STD_OPTS_VARS
;
static
int
_no_contact
=
0
;
static
int
_no_contact
=
0
;
static
int
_not_started
=
0
;
static
int
_not_started
=
0
;
static
int
_single_user
=
0
;
static
int
_timeout
=
120
;
static
int
_timeout
=
120
;
const
char
*
load_default_groups
[]
=
{
"mysql_cluster"
,
0
};
const
char
*
load_default_groups
[]
=
{
"mysql_cluster"
,
0
};
...
@@ -49,6 +51,10 @@ static struct my_option my_long_options[] =
...
@@ -49,6 +51,10 @@ static struct my_option my_long_options[] =
{
"not-started"
,
OPT_WAIT_STATUS_NOT_STARTED
,
"Wait for cluster not started"
,
{
"not-started"
,
OPT_WAIT_STATUS_NOT_STARTED
,
"Wait for cluster not started"
,
(
gptr
*
)
&
_not_started
,
(
gptr
*
)
&
_not_started
,
0
,
(
gptr
*
)
&
_not_started
,
(
gptr
*
)
&
_not_started
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"single-user"
,
OPT_WAIT_STATUS_SINGLE_USER
,
"Wait for cluster to enter single user mode"
,
(
gptr
*
)
&
_single_user
,
(
gptr
*
)
&
_single_user
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"timeout"
,
't'
,
"Timeout to wait"
,
{
"timeout"
,
't'
,
"Timeout to wait"
,
(
gptr
*
)
&
_timeout
,
(
gptr
*
)
&
_timeout
,
0
,
(
gptr
*
)
&
_timeout
,
(
gptr
*
)
&
_timeout
,
0
,
GET_INT
,
REQUIRED_ARG
,
120
,
0
,
0
,
0
,
0
,
0
},
GET_INT
,
REQUIRED_ARG
,
120
,
0
,
0
,
0
,
0
,
0
},
...
@@ -90,6 +96,10 @@ int main(int argc, char** argv){
...
@@ -90,6 +96,10 @@ int main(int argc, char** argv){
{
{
wait_status
=
NDB_MGM_NODE_STATUS_NOT_STARTED
;
wait_status
=
NDB_MGM_NODE_STATUS_NOT_STARTED
;
}
}
else
if
(
_single_user
)
{
wait_status
=
NDB_MGM_NODE_STATUS_SINGLEUSER
;
}
else
else
{
{
wait_status
=
NDB_MGM_NODE_STATUS_STARTED
;
wait_status
=
NDB_MGM_NODE_STATUS_STARTED
;
...
...
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