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
6aa6e966
Commit
6aa6e966
authored
Jan 23, 2008
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
parents
55b09d63
1c1a17e2
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
408 additions
and
31 deletions
+408
-31
mysql-test/r/view.result
mysql-test/r/view.result
+4
-4
mysql-test/suite/ndb/r/ndb_autoinc.result
mysql-test/suite/ndb/r/ndb_autoinc.result
+37
-0
mysql-test/suite/ndb/t/ndb_autoinc.test
mysql-test/suite/ndb/t/ndb_autoinc.test
+45
-0
mysql-test/suite/stress/t/ddl_ndb.test
mysql-test/suite/stress/t/ddl_ndb.test
+2
-0
storage/ndb/include/kernel/ndb_limits.h
storage/ndb/include/kernel/ndb_limits.h
+11
-0
storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp
...age/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp
+2
-1
storage/ndb/include/mgmapi/ndb_logevent.h
storage/ndb/include/mgmapi/ndb_logevent.h
+7
-1
storage/ndb/src/kernel/blocks/ERROR_codes.txt
storage/ndb/src/kernel/blocks/ERROR_codes.txt
+11
-0
storage/ndb/src/kernel/blocks/backup/Backup.cpp
storage/ndb/src/kernel/blocks/backup/Backup.cpp
+57
-2
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
+6
-0
storage/ndb/src/kernel/blocks/lgman.cpp
storage/ndb/src/kernel/blocks/lgman.cpp
+16
-0
storage/ndb/src/kernel/blocks/tsman.cpp
storage/ndb/src/kernel/blocks/tsman.cpp
+16
-0
storage/ndb/src/mgmapi/ndb_logevent.cpp
storage/ndb/src/mgmapi/ndb_logevent.cpp
+1
-1
storage/ndb/src/mgmsrv/ConfigInfo.cpp
storage/ndb/src/mgmsrv/ConfigInfo.cpp
+6
-6
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
+16
-15
storage/ndb/src/ndbapi/ndberror.c
storage/ndb/src/ndbapi/ndberror.c
+3
-0
storage/ndb/test/ndbapi/testDict.cpp
storage/ndb/test/ndbapi/testDict.cpp
+166
-0
storage/ndb/test/src/NdbBackup.cpp
storage/ndb/test/src/NdbBackup.cpp
+2
-1
No files found.
mysql-test/r/view.result
View file @
6aa6e966
...
@@ -2715,12 +2715,12 @@ View Create View character_set_client collation_connection
...
@@ -2715,12 +2715,12 @@ View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(`t1`.`test_date`) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(`t1`.`test_date`) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
Age
Age
4
3
4
4
39
40
SELECT * FROM v1;
SELECT * FROM v1;
Age
Age
4
3
4
4
39
40
DROP VIEW v1;
DROP VIEW v1;
DROP TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
...
...
mysql-test/suite/ndb/r/ndb_autoinc.result
0 → 100644
View file @
6aa6e966
DROP TABLE IF EXISTS t1,t2,t3;
USE test;
CREATE TABLE t1 (
id INT AUTO_INCREMENT,
PRIMARY KEY(id)
) ENGINE=NDBCLUSTER;
CREATE TABLE t2 (
id INT AUTO_INCREMENT,
KEY(id)
) ENGINE=NDBCLUSTER;
ERROR HY000: Can't create table 'test.t2' (errno: 4335)
SHOW TABLES;
Tables_in_test
t1
CREATE TABLE t3 (
id INT AUTO_INCREMENT,
KEY(id)
) ENGINE=MYISAM;
ALTER TABLE t3
ENGINE NDBCLUSTER;
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
ALTER TABLE t3
ADD PRIMARY KEY (id);
SHOW CREATE TABLE t3;
Table Create Table
t3 CREATE TABLE `t3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t3;
End of 5.1 tests
mysql-test/suite/ndb/t/ndb_autoinc.test
0 → 100644
View file @
6aa6e966
--
source
include
/
have_ndb
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
,
t2
,
t3
;
--
enable_warnings
USE
test
;
CREATE
TABLE
t1
(
id
INT
AUTO_INCREMENT
,
PRIMARY
KEY
(
id
)
)
ENGINE
=
NDBCLUSTER
;
# Test For bug#30417
--
error
1005
CREATE
TABLE
t2
(
id
INT
AUTO_INCREMENT
,
KEY
(
id
)
)
ENGINE
=
NDBCLUSTER
;
SHOW
TABLES
;
CREATE
TABLE
t3
(
id
INT
AUTO_INCREMENT
,
KEY
(
id
)
)
ENGINE
=
MYISAM
;
--
disable_result_log
--
error
1005
ALTER
TABLE
t3
ENGINE
NDBCLUSTER
;
--
enable_result_log
SHOW
CREATE
TABLE
t3
;
ALTER
TABLE
t3
ADD
PRIMARY
KEY
(
id
);
SHOW
CREATE
TABLE
t3
;
DROP
TABLE
t1
,
t3
;
--
echo
End
of
5.1
tests
mysql-test/suite/stress/t/ddl_ndb.test
View file @
6aa6e966
...
@@ -10,6 +10,8 @@
...
@@ -10,6 +10,8 @@
# Storage engine to be used in CREATE TABLE
# Storage engine to be used in CREATE TABLE
--
source
include
/
have_ndb
.
inc
--
source
include
/
have_ndb
.
inc
connection
default
;
let
$engine_type
=
NDB
;
let
$engine_type
=
NDB
;
...
...
storage/ndb/include/kernel/ndb_limits.h
View file @
6aa6e966
...
@@ -28,6 +28,17 @@
...
@@ -28,6 +28,17 @@
#define MAX_NODES 64
#define MAX_NODES 64
#define UNDEF_NODEGROUP 0xFFFF
#define UNDEF_NODEGROUP 0xFFFF
/**************************************************************************
* IT SHOULD BE (MAX_NDB_NODES - 1).
* WHEN MAX_NDB_NODE IS CHANGED, IT SHOULD BE CHANGED ALSO
**************************************************************************/
#define MAX_DATA_NODE_ID 48
/**************************************************************************
* IT SHOULD BE (MAX_NODES - 1).
* WHEN MAX_NODES IS CHANGED, IT SHOULD BE CHANGED ALSO
**************************************************************************/
#define MAX_NODES_ID 63
/**
/**
* MAX_API_NODES = MAX_NODES - No of NDB Nodes in use
* MAX_API_NODES = MAX_NODES - No of NDB Nodes in use
*/
*/
...
...
storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp
View file @
6aa6e966
...
@@ -163,7 +163,8 @@ struct CreateFileImplRef {
...
@@ -163,7 +163,8 @@ struct CreateFileImplRef {
InvalidFileMetadata
=
1510
,
InvalidFileMetadata
=
1510
,
OutOfMemory
=
1511
,
OutOfMemory
=
1511
,
FileReadError
=
1512
,
FileReadError
=
1512
,
FilegroupNotOnline
=
1513
FilegroupNotOnline
=
1513
,
FileSizeTooLarge
=
1515
};
};
Uint32
senderData
;
Uint32
senderData
;
...
...
storage/ndb/include/mgmapi/ndb_logevent.h
View file @
6aa6e966
...
@@ -553,7 +553,13 @@ extern "C" {
...
@@ -553,7 +553,13 @@ extern "C" {
/** Log event specific data for for corresponding NDB_LE_ log event */
/** Log event specific data for for corresponding NDB_LE_ log event */
struct
{
struct
{
int
gth
;
int
gth
;
unsigned
page_size_kb
;
/* union is for compatibility backward.
* page_size_kb member variable should be removed in the future
*/
union
{
unsigned
page_size_kb
;
unsigned
page_size_bytes
;
};
unsigned
pages_used
;
unsigned
pages_used
;
unsigned
pages_total
;
unsigned
pages_total
;
unsigned
block
;
unsigned
block
;
...
...
storage/ndb/src/kernel/blocks/ERROR_codes.txt
View file @
6aa6e966
...
@@ -11,7 +11,10 @@ Next CMVMI 9000
...
@@ -11,7 +11,10 @@ Next CMVMI 9000
Next BACKUP 10038
Next BACKUP 10038
Next DBUTIL 11002
Next DBUTIL 11002
Next DBTUX 12008
Next DBTUX 12008
Next SUMA 13034
Next SUMA 13036
Next SUMA 13036
Next LGMAN 15001
Next TSMAN 16001
TESTING NODE FAILURE, ARBITRATION
TESTING NODE FAILURE, ARBITRATION
---------------------------------
---------------------------------
...
@@ -547,3 +550,11 @@ NDBCNTR:
...
@@ -547,3 +550,11 @@ NDBCNTR:
1000: Crash insertion on SystemError::CopyFragRef
1000: Crash insertion on SystemError::CopyFragRef
1001: Delay sending NODE_FAILREP (to own node), until error is cleared
1001: Delay sending NODE_FAILREP (to own node), until error is cleared
LGMAN:
-----
15000: Fail to create log file
TSMAN:
-----
16000: Fail to create data file
storage/ndb/src/kernel/blocks/backup/Backup.cpp
View file @
6aa6e966
...
@@ -967,6 +967,7 @@ Backup::checkNodeFail(Signal* signal,
...
@@ -967,6 +967,7 @@ Backup::checkNodeFail(Signal* signal,
ref
->
backupPtr
=
ptr
.
i
;
ref
->
backupPtr
=
ptr
.
i
;
ref
->
backupId
=
ptr
.
p
->
backupId
;
ref
->
backupId
=
ptr
.
p
->
backupId
;
ref
->
errorCode
=
AbortBackupOrd
::
BackupFailureDueToNodeFail
;
ref
->
errorCode
=
AbortBackupOrd
::
BackupFailureDueToNodeFail
;
ref
->
nodeId
=
getOwnNodeId
();
gsn
=
GSN_STOP_BACKUP_REF
;
gsn
=
GSN_STOP_BACKUP_REF
;
len
=
StopBackupRef
::
SignalLength
;
len
=
StopBackupRef
::
SignalLength
;
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
...
@@ -2081,6 +2082,15 @@ Backup::sendDropTrig(Signal* signal, BackupRecordPtr ptr)
...
@@ -2081,6 +2082,15 @@ Backup::sendDropTrig(Signal* signal, BackupRecordPtr ptr)
/**
/**
* Insert footers
* Insert footers
*/
*/
//if backup error, we needn't insert footers
if
(
ptr
.
p
->
checkError
())
{
jam
();
closeFiles
(
signal
,
ptr
);
ptr
.
p
->
errorCode
=
0
;
return
;
}
{
{
BackupFilePtr
filePtr
LINT_SET_PTR
;
BackupFilePtr
filePtr
LINT_SET_PTR
;
ptr
.
p
->
files
.
getPtr
(
filePtr
,
ptr
.
p
->
logFilePtr
);
ptr
.
p
->
files
.
getPtr
(
filePtr
,
ptr
.
p
->
logFilePtr
);
...
@@ -4187,6 +4197,37 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr)
...
@@ -4187,6 +4197,37 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr)
#if 0
#if 0
ndbout << "Ptr to data = " << hex << tmp << endl;
ndbout << "Ptr to data = " << hex << tmp << endl;
#endif
#endif
BackupRecordPtr
ptr
LINT_SET_PTR
;
c_backupPool
.
getPtr
(
ptr
,
filePtr
.
p
->
backupPtr
);
if
(
ERROR_INSERTED
(
10036
))
{
jam
();
filePtr
.
p
->
m_flags
&=
~
(
Uint32
)
BackupFile
::
BF_FILE_THREAD
;
filePtr
.
p
->
errorCode
=
2810
;
ptr
.
p
->
setErrorCode
(
2810
);
if
(
ptr
.
p
->
m_gsn
==
GSN_STOP_BACKUP_REQ
)
{
jam
();
closeFile
(
signal
,
ptr
,
filePtr
);
}
return
;
}
if
(
filePtr
.
p
->
errorCode
!=
0
)
{
jam
();
ptr
.
p
->
setErrorCode
(
filePtr
.
p
->
errorCode
);
if
(
ptr
.
p
->
m_gsn
==
GSN_STOP_BACKUP_REQ
)
{
jam
();
closeFile
(
signal
,
ptr
,
filePtr
);
}
return
;
}
if
(
!
ready_to_write
(
ready
,
sz
,
eof
,
filePtr
.
p
))
if
(
!
ready_to_write
(
ready
,
sz
,
eof
,
filePtr
.
p
))
{
{
jam
();
jam
();
...
@@ -4218,8 +4259,6 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr)
...
@@ -4218,8 +4259,6 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr)
ndbrequire
(
flags
&
BackupFile
::
BF_OPEN
);
ndbrequire
(
flags
&
BackupFile
::
BF_OPEN
);
ndbrequire
(
flags
&
BackupFile
::
BF_FILE_THREAD
);
ndbrequire
(
flags
&
BackupFile
::
BF_FILE_THREAD
);
BackupRecordPtr
ptr
LINT_SET_PTR
;
c_backupPool
.
getPtr
(
ptr
,
filePtr
.
p
->
backupPtr
);
closeFile
(
signal
,
ptr
,
filePtr
);
closeFile
(
signal
,
ptr
,
filePtr
);
}
}
...
@@ -4582,6 +4621,22 @@ Backup::closeFilesDone(Signal* signal, BackupRecordPtr ptr)
...
@@ -4582,6 +4621,22 @@ Backup::closeFilesDone(Signal* signal, BackupRecordPtr ptr)
jam
();
jam
();
//error when do insert footer or close file
if
(
ptr
.
p
->
checkError
())
{
StopBackupRef
*
ref
=
(
StopBackupRef
*
)
signal
->
getDataPtr
();
ref
->
backupPtr
=
ptr
.
i
;
ref
->
backupId
=
ptr
.
p
->
backupId
;
ref
->
errorCode
=
ptr
.
p
->
errorCode
;
ref
->
nodeId
=
getOwnNodeId
();
sendSignal
(
ptr
.
p
->
masterRef
,
GSN_STOP_BACKUP_REF
,
signal
,
StopBackupConf
::
SignalLength
,
JBB
);
ptr
.
p
->
m_gsn
=
GSN_STOP_BACKUP_REF
;
ptr
.
p
->
slaveState
.
setState
(
CLEANING
);
return
;
}
StopBackupConf
*
conf
=
(
StopBackupConf
*
)
signal
->
getDataPtrSend
();
StopBackupConf
*
conf
=
(
StopBackupConf
*
)
signal
->
getDataPtrSend
();
conf
->
backupId
=
ptr
.
p
->
backupId
;
conf
->
backupId
=
ptr
.
p
->
backupId
;
conf
->
backupPtr
=
ptr
.
i
;
conf
->
backupPtr
=
ptr
.
i
;
...
...
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
View file @
6aa6e966
...
@@ -8464,6 +8464,12 @@ void Dbdih::execDIHNDBTAMPER(Signal* signal)
...
@@ -8464,6 +8464,12 @@ void Dbdih::execDIHNDBTAMPER(Signal* signal)
}
else
if
(
tuserpointer
<
15000
)
{
}
else
if
(
tuserpointer
<
15000
)
{
jam
();
jam
();
tuserblockref
=
DBDICT_REF
;
tuserblockref
=
DBDICT_REF
;
}
else
if
(
tuserpointer
<
16000
)
{
jam
();
tuserblockref
=
LGMAN_REF
;
}
else
if
(
tuserpointer
<
17000
)
{
jam
();
tuserblockref
=
TSMAN_REF
;
}
else
if
(
tuserpointer
<
30000
)
{
}
else
if
(
tuserpointer
<
30000
)
{
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
// Ignore errors in the 20000-range.
// Ignore errors in the 20000-range.
...
...
storage/ndb/src/kernel/blocks/lgman.cpp
View file @
6aa6e966
...
@@ -547,6 +547,22 @@ Lgman::execCREATE_FILE_REQ(Signal* signal)
...
@@ -547,6 +547,22 @@ Lgman::execCREATE_FILE_REQ(Signal* signal)
break
;
break
;
}
}
if
(
ERROR_INSERTED
(
15000
)
||
(
sizeof
(
void
*
)
==
4
&&
req
->
file_size_hi
&
0xFFFFFFFF
))
{
jam
();
if
(
signal
->
getNoOfSections
())
releaseSections
(
signal
);
CreateFileImplRef
*
ref
=
(
CreateFileImplRef
*
)
signal
->
getDataPtr
();
ref
->
senderData
=
senderData
;
ref
->
senderRef
=
reference
();
ref
->
errorCode
=
CreateFileImplRef
::
FileSizeTooLarge
;
sendSignal
(
senderRef
,
GSN_CREATE_FILE_REF
,
signal
,
CreateFileImplRef
::
SignalLength
,
JBB
);
return
;
}
new
(
file_ptr
.
p
)
Undofile
(
req
,
ptr
.
i
);
new
(
file_ptr
.
p
)
Undofile
(
req
,
ptr
.
i
);
Local_undofile_list
tmp
(
m_file_pool
,
ptr
.
p
->
m_meta_files
);
Local_undofile_list
tmp
(
m_file_pool
,
ptr
.
p
->
m_meta_files
);
...
...
storage/ndb/src/kernel/blocks/tsman.cpp
View file @
6aa6e966
...
@@ -537,6 +537,22 @@ Tsman::execCREATE_FILE_REQ(Signal* signal){
...
@@ -537,6 +537,22 @@ Tsman::execCREATE_FILE_REQ(Signal* signal){
break
;
break
;
}
}
if
(
ERROR_INSERTED
(
16000
)
||
(
sizeof
(
void
*
)
==
4
&&
req
->
file_size_hi
&
0xFFFFFFFF
))
{
jam
();
if
(
signal
->
getNoOfSections
())
releaseSections
(
signal
);
CreateFileImplRef
*
ref
=
(
CreateFileImplRef
*
)
signal
->
getDataPtr
();
ref
->
senderData
=
senderData
;
ref
->
senderRef
=
reference
();
ref
->
errorCode
=
CreateFileImplRef
::
FileSizeTooLarge
;
sendSignal
(
senderRef
,
GSN_CREATE_FILE_REF
,
signal
,
CreateFileImplRef
::
SignalLength
,
JBB
);
return
;
}
new
(
file_ptr
.
p
)
Datafile
(
req
);
new
(
file_ptr
.
p
)
Datafile
(
req
);
Local_datafile_list
tmp
(
m_file_pool
,
ptr
.
p
->
m_meta_files
);
Local_datafile_list
tmp
(
m_file_pool
,
ptr
.
p
->
m_meta_files
);
tmp
.
add
(
file_ptr
);
tmp
.
add
(
file_ptr
);
...
...
storage/ndb/src/mgmapi/ndb_logevent.cpp
View file @
6aa6e966
...
@@ -256,7 +256,7 @@ struct Ndb_logevent_body_row ndb_logevent_body[]= {
...
@@ -256,7 +256,7 @@ struct Ndb_logevent_body_row ndb_logevent_body[]= {
ROW
(
ReceiveBytesStatistic
,
"mean_received_bytes"
,
2
,
mean_received_bytes
),
ROW
(
ReceiveBytesStatistic
,
"mean_received_bytes"
,
2
,
mean_received_bytes
),
ROW
(
MemoryUsage
,
"gth"
,
1
,
gth
),
ROW
(
MemoryUsage
,
"gth"
,
1
,
gth
),
ROW
(
MemoryUsage
,
"page_size_
kb"
,
2
,
page_size_kb
),
ROW
(
MemoryUsage
,
"page_size_
bytes"
,
2
,
page_size_bytes
),
ROW
(
MemoryUsage
,
"pages_used"
,
3
,
pages_used
),
ROW
(
MemoryUsage
,
"pages_used"
,
3
,
pages_used
),
ROW
(
MemoryUsage
,
"pages_total"
,
4
,
pages_total
),
ROW
(
MemoryUsage
,
"pages_total"
,
4
,
pages_total
),
ROW
(
MemoryUsage
,
"block"
,
5
,
block
),
ROW
(
MemoryUsage
,
"block"
,
5
,
block
),
...
...
storage/ndb/src/mgmsrv/ConfigInfo.cpp
View file @
6aa6e966
...
@@ -397,7 +397,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -397,7 +397,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_
NODES
)
},
STR_VALUE
(
MAX_
DATA_NODE_ID
)
},
{
{
CFG_NODE_ID
,
CFG_NODE_ID
,
...
@@ -409,7 +409,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -409,7 +409,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_
NODES
)
},
STR_VALUE
(
MAX_
DATA_NODE_ID
)
},
{
{
KEY_INTERNAL
,
KEY_INTERNAL
,
...
@@ -1404,7 +1404,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1404,7 +1404,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_NODES
)
},
STR_VALUE
(
MAX_NODES
_ID
)
},
{
{
CFG_NODE_ID
,
CFG_NODE_ID
,
...
@@ -1416,7 +1416,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1416,7 +1416,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_NODES
)
},
STR_VALUE
(
MAX_NODES
_ID
)
},
{
{
KEY_INTERNAL
,
KEY_INTERNAL
,
...
@@ -1547,7 +1547,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1547,7 +1547,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_NODES
)
},
STR_VALUE
(
MAX_NODES
_ID
)
},
{
{
CFG_NODE_ID
,
CFG_NODE_ID
,
...
@@ -1559,7 +1559,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
...
@@ -1559,7 +1559,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = {
ConfigInfo
::
CI_INT
,
ConfigInfo
::
CI_INT
,
MANDATORY
,
MANDATORY
,
"1"
,
"1"
,
STR_VALUE
(
MAX_NODES
)
},
STR_VALUE
(
MAX_NODES
_ID
)
},
{
{
CFG_LOG_DESTINATION
,
CFG_LOG_DESTINATION
,
...
...
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp
View file @
6aa6e966
...
@@ -2340,6 +2340,22 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
...
@@ -2340,6 +2340,22 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
{
{
DBUG_ENTER
(
"NdbDictionaryImpl::createTable"
);
DBUG_ENTER
(
"NdbDictionaryImpl::createTable"
);
bool
autoIncrement
=
false
;
Uint64
initialValue
=
0
;
for
(
Uint32
i
=
0
;
i
<
t
.
m_columns
.
size
();
i
++
)
{
const
NdbColumnImpl
*
c
=
t
.
m_columns
[
i
];
assert
(
c
!=
NULL
);
if
(
c
->
m_autoIncrement
)
{
if
(
autoIncrement
)
{
m_error
.
code
=
4335
;
DBUG_RETURN
(
-
1
);
}
autoIncrement
=
true
;
initialValue
=
c
->
m_autoIncrementInitialValue
;
}
}
// if the new name has not been set, use the copied name
// if the new name has not been set, use the copied name
if
(
t
.
m_newExternalName
.
empty
())
if
(
t
.
m_newExternalName
.
empty
())
{
{
...
@@ -2377,21 +2393,6 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
...
@@ -2377,21 +2393,6 @@ NdbDictionaryImpl::createTable(NdbTableImpl &t)
// auto-increment - use "t" because initial value is not in DICT
// auto-increment - use "t" because initial value is not in DICT
{
{
bool
autoIncrement
=
false
;
Uint64
initialValue
=
0
;
for
(
Uint32
i
=
0
;
i
<
t
.
m_columns
.
size
();
i
++
)
{
const
NdbColumnImpl
*
c
=
t
.
m_columns
[
i
];
assert
(
c
!=
NULL
);
if
(
c
->
m_autoIncrement
)
{
if
(
autoIncrement
)
{
m_error
.
code
=
4335
;
delete
t2
;
DBUG_RETURN
(
-
1
);
}
autoIncrement
=
true
;
initialValue
=
c
->
m_autoIncrementInitialValue
;
}
}
if
(
autoIncrement
)
{
if
(
autoIncrement
)
{
// XXX unlikely race condition - t.m_id may no longer be same table
// XXX unlikely race condition - t.m_id may no longer be same table
// the tuple id range is not used on input
// the tuple id range is not used on input
...
...
storage/ndb/src/ndbapi/ndberror.c
View file @
6aa6e966
...
@@ -426,6 +426,7 @@ ErrorBundle ErrorCodes[] = {
...
@@ -426,6 +426,7 @@ ErrorBundle ErrorCodes[] = {
{
1512
,
DMEC
,
SE
,
"File read error"
},
{
1512
,
DMEC
,
SE
,
"File read error"
},
{
1513
,
DMEC
,
IE
,
"Filegroup not online"
},
{
1513
,
DMEC
,
IE
,
"Filegroup not online"
},
{
1514
,
DMEC
,
SE
,
"Currently there is a limit of one logfile group"
},
{
1514
,
DMEC
,
SE
,
"Currently there is a limit of one logfile group"
},
{
1515
,
DMEC
,
SE
,
"Currently there is a 4G limit of one undo/data-file in 32-bit host"
},
{
773
,
DMEC
,
SE
,
"Out of string memory, please modify StringMemory config parameter"
},
{
773
,
DMEC
,
SE
,
"Out of string memory, please modify StringMemory config parameter"
},
{
775
,
DMEC
,
SE
,
"Create file is not supported when Diskless=1"
},
{
775
,
DMEC
,
SE
,
"Create file is not supported when Diskless=1"
},
...
@@ -625,6 +626,8 @@ ErrorBundle ErrorCodes[] = {
...
@@ -625,6 +626,8 @@ ErrorBundle ErrorCodes[] = {
{
4274
,
DMEC
,
IE
,
"Corrupted main table PK in blob operation"
},
{
4274
,
DMEC
,
IE
,
"Corrupted main table PK in blob operation"
},
{
4275
,
DMEC
,
AE
,
"The blob method is incompatible with operation type or lock mode"
},
{
4275
,
DMEC
,
AE
,
"The blob method is incompatible with operation type or lock mode"
},
{
4294
,
DMEC
,
AE
,
"Scan filter is too large, discarded"
},
{
4294
,
DMEC
,
AE
,
"Scan filter is too large, discarded"
},
{
2810
,
DMEC
,
TR
,
"No space left on the device"
},
{
2815
,
DMEC
,
TR
,
"Error in reading files, please check file system"
},
{
NO_CONTACT_WITH_PROCESS
,
DMEC
,
AE
,
{
NO_CONTACT_WITH_PROCESS
,
DMEC
,
AE
,
"No contact with the process (dead ?)."
},
"No contact with the process (dead ?)."
},
...
...
storage/ndb/test/ndbapi/testDict.cpp
View file @
6aa6e966
...
@@ -2357,6 +2357,168 @@ runBug24631(NDBT_Context* ctx, NDBT_Step* step)
...
@@ -2357,6 +2357,168 @@ runBug24631(NDBT_Context* ctx, NDBT_Step* step)
return
NDBT_OK
;
return
NDBT_OK
;
}
}
int
runBug29186
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
)
{
int
lgError
=
15000
;
int
tsError
=
16000
;
int
res
;
char
lgname
[
256
];
char
ufname
[
256
];
char
tsname
[
256
];
char
dfname
[
256
];
NdbRestarter
restarter
;
if
(
restarter
.
getNumDbNodes
()
<
2
){
ctx
->
stopTest
();
return
NDBT_OK
;
}
Ndb
*
pNdb
=
GETNDB
(
step
);
NdbDictionary
::
Dictionary
*
pDict
=
pNdb
->
getDictionary
();
NdbDictionary
::
Dictionary
::
List
list
;
if
(
pDict
->
listObjects
(
list
)
==
-
1
)
return
NDBT_FAILED
;
// 1.create logfile group
const
char
*
lgfound
=
0
;
for
(
Uint32
i
=
0
;
i
<
list
.
count
;
i
++
)
{
switch
(
list
.
elements
[
i
].
type
){
case
NdbDictionary
:
:
Object
::
LogfileGroup
:
lgfound
=
list
.
elements
[
i
].
name
;
break
;
default:
break
;
}
if
(
lgfound
)
break
;
}
if
(
lgfound
==
0
)
{
BaseString
::
snprintf
(
lgname
,
sizeof
(
lgname
),
"LG-%u"
,
rand
());
NdbDictionary
::
LogfileGroup
lg
;
lg
.
setName
(
lgname
);
lg
.
setUndoBufferSize
(
8
*
1024
*
1024
);
if
(
pDict
->
createLogfileGroup
(
lg
)
!=
0
)
{
g_err
<<
"Failed to create logfilegroup:"
<<
endl
<<
pDict
->
getNdbError
()
<<
endl
;
return
NDBT_FAILED
;
}
}
else
{
BaseString
::
snprintf
(
lgname
,
sizeof
(
lgname
),
"%s"
,
lgfound
);
}
if
(
restarter
.
waitClusterStarted
(
60
)){
g_err
<<
"waitClusterStarted failed"
<<
endl
;
return
NDBT_FAILED
;
}
if
(
restarter
.
insertErrorInAllNodes
(
lgError
)
!=
0
){
g_err
<<
"failed to set error insert"
<<
endl
;
return
NDBT_FAILED
;
}
g_info
<<
"error inserted"
<<
endl
;
g_info
<<
"waiting some before add log file"
<<
endl
;
g_info
<<
"starting create log file group"
<<
endl
;
NdbDictionary
::
Undofile
uf
;
BaseString
::
snprintf
(
ufname
,
sizeof
(
ufname
),
"%s-%u"
,
lgname
,
rand
());
uf
.
setPath
(
ufname
);
uf
.
setSize
(
2
*
1024
*
1024
);
uf
.
setLogfileGroup
(
lgname
);
if
(
pDict
->
createUndofile
(
uf
)
==
0
)
{
g_err
<<
"Create log file group should fail on error_insertion "
<<
lgError
<<
endl
;
return
NDBT_FAILED
;
}
//clear lg error
if
(
restarter
.
insertErrorInAllNodes
(
15099
)
!=
0
){
g_err
<<
"failed to set error insert"
<<
endl
;
return
NDBT_FAILED
;
}
NdbSleep_SecSleep
(
5
);
//lg error has been cleared, so we can add undo file
if
(
pDict
->
createUndofile
(
uf
)
!=
0
)
{
g_err
<<
"Failed to create undofile:"
<<
endl
<<
pDict
->
getNdbError
()
<<
endl
;
return
NDBT_FAILED
;
}
if
(
restarter
.
waitClusterStarted
(
60
)){
g_err
<<
"waitClusterStarted failed"
<<
endl
;
return
NDBT_FAILED
;
}
if
(
restarter
.
insertErrorInAllNodes
(
tsError
)
!=
0
){
g_err
<<
"failed to set error insert"
<<
endl
;
return
NDBT_FAILED
;
}
g_info
<<
"error inserted"
<<
endl
;
g_info
<<
"waiting some before create table space"
<<
endl
;
g_info
<<
"starting create table space"
<<
endl
;
//r = runCreateTablespace(ctx, step);
BaseString
::
snprintf
(
tsname
,
sizeof
(
tsname
),
"TS-%u"
,
rand
());
BaseString
::
snprintf
(
dfname
,
sizeof
(
dfname
),
"%s-%u-1.dat"
,
tsname
,
rand
());
NdbDictionary
::
Tablespace
ts
;
ts
.
setName
(
tsname
);
ts
.
setExtentSize
(
1024
*
1024
);
ts
.
setDefaultLogfileGroup
(
lgname
);
if
(
pDict
->
createTablespace
(
ts
)
!=
0
)
{
g_err
<<
"Failed to create tablespace:"
<<
endl
<<
pDict
->
getNdbError
()
<<
endl
;
return
NDBT_FAILED
;
}
NdbDictionary
::
Datafile
df
;
df
.
setPath
(
dfname
);
df
.
setSize
(
1
*
1024
*
1024
);
df
.
setTablespace
(
tsname
);
if
(
pDict
->
createDatafile
(
df
)
==
0
)
{
g_err
<<
"Create table space should fail on error_insertion "
<<
tsError
<<
endl
;
return
NDBT_FAILED
;
}
//Clear the inserted error
if
(
restarter
.
insertErrorInAllNodes
(
16099
)
!=
0
){
g_err
<<
"failed to set error insert"
<<
endl
;
return
NDBT_FAILED
;
}
NdbSleep_SecSleep
(
5
);
if
(
pDict
->
dropTablespace
(
pDict
->
getTablespace
(
tsname
))
!=
0
)
{
g_err
<<
"Failed to drop tablespace: "
<<
pDict
->
getNdbError
()
<<
endl
;
return
NDBT_FAILED
;
}
if
(
lgfound
==
0
)
{
if
(
pDict
->
dropLogfileGroup
(
pDict
->
getLogfileGroup
(
lgname
))
!=
0
)
return
NDBT_FAILED
;
}
return
NDBT_OK
;
}
struct
RandSchemaOp
struct
RandSchemaOp
{
{
struct
Obj
struct
Obj
...
@@ -3123,6 +3285,10 @@ TESTCASE("Bug24631",
...
@@ -3123,6 +3285,10 @@ TESTCASE("Bug24631",
""
){
""
){
INITIALIZER
(
runBug24631
);
INITIALIZER
(
runBug24631
);
}
}
TESTCASE
(
"Bug29186"
,
""
){
INITIALIZER
(
runBug29186
);
}
NDBT_TESTSUITE_END
(
testDict
);
NDBT_TESTSUITE_END
(
testDict
);
int
main
(
int
argc
,
const
char
**
argv
){
int
main
(
int
argc
,
const
char
**
argv
){
...
...
storage/ndb/test/src/NdbBackup.cpp
View file @
6aa6e966
...
@@ -350,7 +350,8 @@ FailS_codes[] = {
...
@@ -350,7 +350,8 @@ FailS_codes[] = {
10025
,
10025
,
10027
,
10027
,
10033
,
10033
,
10035
10035
,
10036
};
};
int
int
...
...
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