- add azio to NDB
- add config option for CompressedBackup
- add ability to change CompressedBackup (per-node) online using DUMP
interface
- add test for mysql-test-run for compressed backups
(NOTE: won't pass unless read compressed backups patch also applied)
Part of the design here is to by default (i.e. without any of the compressed
options enabled) - NOT futz with the code paths for normal IO. So if
any bug/problem is found - disabling the compression options means
none of that code is run.
Index: telco-6.2/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp
===================================================================
--- telco-6.2.orig/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp 2007-10-11
18:20:06.840816095 +1000
+++ telco-6.2/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp 2007-10-11
18:20:29.865945400 +1000
@@ -87,6 +87,7 @@ private:
STATIC_CONST( OM_INIT = 0x1000 ); //
STATIC_CONST( OM_CHECK_SIZE = 0x2000 );
STATIC_CONST( OM_DIRECT = 0x4000 );
+ STATIC_CONST( OM_GZ = 0x8000 );
enum Suffixes {
S_DATA = 0,
Index: telco-6.2/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp 2007-10-11
18:20:06.952821589 +1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp 2007-10-11
18:20:29.901947165 +1000
@@ -94,6 +94,7 @@ AsyncFile::AsyncFile(SimulatedBlock& fs)
theFd(-1),
#endif
theReportTo(0),
+ use_gz(0),
theMemoryChannelPtr(NULL),
m_fs(fs)
{
@@ -450,6 +451,8 @@ void AsyncFile::openReq(Request* request
break;
return;
}
+ if(flags & FsOpenReq::OM_GZ)
+ use_gz= 1;
// allow for user to choose any permissionsa with umask
const int mode = S_IRUSR | S_IWUSR |
@@ -471,13 +474,15 @@ void AsyncFile::openReq(Request* request
}
no_odirect:
- if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
+ theFd = ::open(theFileName.c_str(), new_flags, mode);
+ if (-1 == theFd)
{
PRINT_ERRORANDFLAGS(new_flags);
if ((errno == ENOENT) && (new_flags & O_CREAT))
{
createDirectories();
- if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
+ theFd = ::open(theFileName.c_str(), new_flags, mode);
+ if (-1 == theFd)
{
#ifdef O_DIRECT
if (new_flags & O_DIRECT)
@@ -561,7 +566,11 @@ no_odirect:
Uint32 size = request->par.open.page_size;
char* buf = (char*)m_page_ptr.p;
while(size > 0){
- const int n = write(theFd, buf, size);
+ int n;
+ if(use_gz)
+ n= azwrite(&azf,buf,size);
+ else
+ n= write(theFd, buf, size);
if(n == -1 && errno == EINTR)
{
continue;
@@ -643,6 +652,12 @@ no_odirect:
#endif
}
#endif
+ if(use_gz)
+ if(!azdopen(&azf, theFd, O_CREAT|O_RDWR|O_BINARY))
+ {
+ ndbout_c("Stewart's brain broke");
+ abort();
+ }
}
int
@@ -790,9 +805,14 @@ AsyncFile::extendfile(Request* request)
ndbd_free(pbuf,maxSize);
return -1;
}
- return_value = ::write(theFd,
- pbuf,
- maxSize);
+ if(use_gz)
+ return_value = azwrite(&azf,
+ pbuf,
+ maxSize);
+ else
+ return_value = ::write(theFd,
+ pbuf,
+ maxSize);
if ((return_value == -1) || (return_value != maxSize)) {
ndbd_free(pbuf,maxSize);
return -1;
@@ -913,9 +933,15 @@ AsyncFile::writeBuffer(const char * buf,
}
#elif ! defined(HAVE_PWRITE)
- return_value = ::write(theFd, buf, bytes_to_write);
+ if(use_gz)
+ return_value= azwrite(&azf, buf, bytes_to_write);
+ else
+ return_value = ::write(theFd, buf, bytes_to_write);
#else // UNIX
- return_value = ::pwrite(theFd, buf, bytes_to_write, offset);
+ if(use_gz)
+ return_value= azwrite(&azf, buf, bytes_to_write);
+ else
+ return_value = ::pwrite(theFd, buf, bytes_to_write, offset);
#endif
#ifndef NDB_WIN32
if (return_value == -1 && errno == EINTR) {
@@ -968,7 +994,13 @@ AsyncFile::closeReq(Request * request)
}
hFile = INVALID_HANDLE_VALUE;
#else
- if (-1 == ::close(theFd)) {
+ int r;
+ if(use_gz)
+ r= azclose(&azf);
+ else
+ ::close(theFd);
+ use_gz= 0;
+ if (-1 == r) {
#ifndef DBUG_OFF
if (theFd == -1) {
DEBUG(ndbout_c("close on fd = -1"));
@@ -1031,7 +1063,11 @@ AsyncFile::appendReq(Request * request){
}
#else
while(size > 0){
- const int n = write(theFd, buf, size);
+ int n;
+ if(use_gz)
+ n= azwrite(&azf,buf,size);
+ else
+ n= write(theFd, buf, size);
if(n == -1 && errno == EINTR){
continue;
}
Index: telco-6.2/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp 2007-10-11
18:20:06.960821981 +1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp 2007-10-11
18:20:30.025953247 +1000
@@ -97,6 +97,8 @@
#include "MemoryChannel.hpp"
#include "Filename.hpp"
+#include <azlib.h>
+
const int ERR_ReadUnderflow = 1000;
const int WRITECHUNK = 262144;
@@ -226,7 +228,10 @@ private:
#endif
Uint32 m_open_flags; // OM_ flags from request to open file
-
+
+ int use_gz;
+ azio_stream azf;
+
MemoryChannel<Request> *theReportTo;
MemoryChannel<Request>* theMemoryChannelPtr;
Index: telco-6.2/storage/ndb/src/kernel/blocks/backup/Backup.cpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/backup/Backup.cpp 2007-10-11
18:20:06.968822373 +1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/backup/Backup.cpp 2007-10-11
18:20:30.033953640 +1000
@@ -54,6 +54,7 @@
#include <signaldata/WaitGCP.hpp>
#include <signaldata/LCP.hpp>
+#include <signaldata/DumpStateOrd.hpp>
#include <signaldata/DumpStateOrd.hpp>
@@ -550,6 +551,18 @@ Backup::execDUMP_STATE_ORD(Signal* signa
lcp_file.p->pages.getSize());
}
}
+
+ if(signal->theData[0] == DumpStateOrd::DumpBackup)
+ {
+ /* Display a bunch of stuff about Backup defaults */
+ infoEvent("Compressed Backup: %d", c_defaults.m_compressed_backup);
+ }
+
+ if(signal->theData[0] == DumpStateOrd::DumpBackupSetCompressed)
+ {
+ c_defaults.m_compressed_backup= signal->theData[1];
+ infoEvent("Compressed Backup: %d", c_defaults.m_compressed_backup);
+ }
}
bool
@@ -2876,6 +2889,10 @@ Backup::openFiles(Signal* signal, Backup
FsOpenReq::OM_CREATE |
FsOpenReq::OM_APPEND |
FsOpenReq::OM_AUTOSYNC;
+
+ if (c_defaults.m_compressed_backup)
+ req->fileFlags |= FsOpenReq::OM_GZ;
+
FsOpenReq::v2_setCount(req->fileNumber, 0xFFFFFFFF);
req->auto_sync_size = c_defaults.m_disk_synch_size;
/**
Index: telco-6.2/storage/ndb/src/kernel/blocks/Makefile.am
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/Makefile.am 2007-10-11 18:20:07.048826297
+1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/Makefile.am 2007-10-11 18:20:30.109957367
+1000
@@ -22,7 +22,8 @@ SUBDIRS = \
noinst_LIBRARIES = libblocks.a
-INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dblqh
+INCLUDES_LOC = -I$(top_srcdir)/storage/ndb/src/kernel/blocks/dblqh \
+ @ZLIB_INCLUDES@
libblocks_a_SOURCES = tsman.cpp lgman.cpp pgman.cpp diskpage.cpp restore.cpp\
cmvmi/Cmvmi.cpp \
dbacc/DbaccInit.cpp dbacc/DbaccMain.cpp \
Index: telco-6.2/storage/ndb/include/mgmapi/mgmapi_config_parameters.h
===================================================================
--- telco-6.2.orig/storage/ndb/include/mgmapi/mgmapi_config_parameters.h 2007-10-11
18:20:06.864817272 +1000
+++ telco-6.2/storage/ndb/include/mgmapi/mgmapi_config_parameters.h 2007-10-11
18:20:47.494810035 +1000
@@ -123,6 +123,8 @@
#define CFG_DB_MICRO_GCP_INTERVAL 170 /* micro gcp */
#define CFG_DB_MICRO_GCP_TIMEOUT 171
+#define CFG_DB_COMPRESSED_BACKUP 172
+
#define CFG_DB_SGA 198 /* super pool mem */
#define CFG_DB_DATA_MEM_2 199 /* used in special build in 5.1 */
Index: telco-6.2/storage/ndb/src/kernel/blocks/backup/Backup.hpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/backup/Backup.hpp 2007-10-11
18:20:06.976822766 +1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/backup/Backup.hpp 2007-10-11
18:20:30.289966196 +1000
@@ -551,6 +551,7 @@ public:
Uint32 m_disk_synch_size;
Uint32 m_diskless;
Uint32 m_o_direct;
+ Uint32 m_compressed_backup;
};
/**
Index: telco-6.2/storage/ndb/src/mgmsrv/ConfigInfo.cpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/mgmsrv/ConfigInfo.cpp 2007-10-11 18:20:07.072827475
+1000
+++ telco-6.2/storage/ndb/src/mgmsrv/ConfigInfo.cpp 2007-10-11 18:20:30.397971494 +1000
@@ -1405,6 +1405,17 @@ const ConfigInfo::ParamInfo ConfigInfo::
"false",
"false",
"true"},
+ {
+ CFG_DB_COMPRESSED_BACKUP,
+ "CompressedBackup",
+ DB_TOKEN,
+ "Use zlib to compress BACKUPs as they are written",
+ ConfigInfo::CI_USED,
+ true,
+ ConfigInfo::CI_BOOL,
+ "false",
+ "false",
+ "true"},
/***************************************************************************
* API
Index: telco-6.2/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp
===================================================================
--- telco-6.2.orig/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp 2007-10-11
18:20:07.004824139 +1000
+++ telco-6.2/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp 2007-10-11
18:20:30.477975418 +1000
@@ -161,6 +161,8 @@ Backup::execREAD_CONFIG_REQ(Signal* sign
&c_defaults.m_disk_write_speed);
ndb_mgm_get_int_parameter(p, CFG_DB_DISK_SYNCH_SIZE,
&c_defaults.m_disk_synch_size);
+ ndb_mgm_get_int_parameter(p, CFG_DB_COMPRESSED_BACKUP,
+ &c_defaults.m_compressed_backup);
m_backup_report_frequency = 0;
ndb_mgm_get_int_parameter(p, CFG_DB_BACKUP_REPORT_FREQUENCY,
Index: telco-6.2/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp
===================================================================
--- telco-6.2.orig/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp 2007-10-11
18:20:06.844816291 +1000
+++ telco-6.2/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp 2007-10-11
18:20:30.533978164 +1000
@@ -156,7 +156,9 @@ public:
DumpTsman = 9800,
DumpLgman = 10000,
- DumpPgman = 11000
+ DumpPgman = 11000,
+ DumpBackup = 13000,
+ DumpBackupSetCompressed = 13001
};
public:
Index: telco-6.2/mysql-test/suite/ndb/r/ndb_restore_compressed.result
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ telco-6.2/mysql-test/suite/ndb/r/ndb_restore_compressed.result 2007-10-11
18:20:31.154008575 +1000
@@ -0,0 +1,490 @@
+use test;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+drop table if exists t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+CREATE TABLE `t1_c` (
+`capgoaledatta` mediumint(5) unsigned NOT NULL auto_increment,
+`goaledatta` char(2) NOT NULL default '',
+`maturegarbagefa` varchar(32) NOT NULL default '',
+PRIMARY KEY (`capgoaledatta`,`goaledatta`,`maturegarbagefa`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t1_c` VALUES
(2,'3','q3plus.qt'),(400,'4','q3plus.qt'),(1,'3','q3.net'),(3,'4','q3.net'),(3000,'20','threetrees.qt');
+CREATE TABLE `t2_c` (
+`capgotod` smallint(5) unsigned NOT NULL auto_increment,
+`gotod` smallint(5) unsigned NOT NULL default '0',
+`goaledatta` char(2) default NULL,
+`maturegarbagefa` varchar(32) default NULL,
+`descrpooppo` varchar(64) default NULL,
+`svcutonsa` varchar(64) NOT NULL default '',
+PRIMARY KEY (`capgotod`),
+KEY `i quadaddsvr` (`gotod`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t2_c` VALUES (500,4,'','q3.net','addavp:MK_CASELECTOR=1','postorod
rattoaa'),(2,1,'4','','addavp:MK_BRANDTAD=345','REDS
Brandtad'),(3,2,'4','q3.net','execorder','fixedRatediPO
REDS'),(1,1,'3','','addavp:MK_BRANDTAD=123','TEST
Brandtad'),(6,5,'','told.q3.net','addavp:MK_BRANDTAD=123','Brandtad
Toldzone'),(4,3,'3','q3.net','addavp:MK_POOLHINT=2','ratedi PO
TEST'),(5,0,'',NULL,NULL,'');
+CREATE TABLE `t3_c` (
+`CapGoaledatta` smallint(5) unsigned NOT NULL default '0',
+`capgotod` smallint(5) unsigned NOT NULL default '0',
+PRIMARY KEY (`capgotod`,`CapGoaledatta`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;
+INSERT INTO `t3_c` VALUES (5,3),(2,4),(5,4),(1,3);
+CREATE TABLE `t4_c` (
+`capfa` bigint(20) unsigned NOT NULL auto_increment,
+`realm` varchar(32) NOT NULL default '',
+`authpwchap` varchar(32) default NULL,
+`fa` varchar(32) NOT NULL default '',
+`payyingatta` tinyint(4) NOT NULL default '0',
+`status` char(1) default NULL,
+PRIMARY KEY (`fa`,`realm`),
+KEY `capfa` (`capfa`),
+KEY `i_quadentity` (`fa`,`realm`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t4_c` VALUES
(18,'john.smith','q3.net','dessjohn.smith',0,NULL),(21,'quad_katt_with_brandtad','q3.net','acne',0,NULL),(2200,'quad_katt_carattoaa','q3.net','acne',0,NULL),(26,'436462612809','sqasdt.q3.net','N/A',0,'6'),(19,'john','smith.qt','dessjohn',0,NULL),(33,'436643196120','sqasdt.q3.net','N/A',1,'6'),(28,'436642900019','sqasdt.q3.net','N/A',0,'6'),(30,'436462900209','sqasdt.q3.net','N/A',0,'6'),(16,'436640006666','sqasdt.q3.net','',0,NULL),(19,'dette','el-redun.com','dessdette',0,NULL),(12,'quad_kattPP','q3.net','acne',2,NULL),(14,'436640008888','sqasdt.q3.net','',0,NULL),(29,'463624900028','sqasdt.q3.net','N/A',0,'6'),(15,'436640099099','sqasdt.q3.net','',0,NULL),(13,'pap','q3plus.qt','acne',1,NULL),(19,'436642612091','sqasdt.q3.net','N/A',0,'6'),(12,'quad_katt','q3.net','acne',0,NULL),(11,'quad_kattVK','q3.net','acne',1,NULL),(32000,'463641969502','sqasdt.q3.net','N/A',1,'6'),(20,'joe','q3.net','joedesswd',0,NULL),(290000000,'436642900034','sqasdt.q3.net','N/A',0,'6'),(25,'contind','armerde.qt','acne',1,NULL);
+CREATE TABLE `t5_c` (
+`capfa` bigint(20) unsigned NOT NULL default '0',
+`gotod` smallint(5) unsigned NOT NULL default '0',
+`orderutonsa` varchar(64) NOT NULL default '',
+PRIMARY KEY (`capfa`,`gotod`,`orderutonsa`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t5_c` VALUES (21,2,''),(21,1,''),(22,4,'');
+CREATE TABLE `t6_c` (
+`capfa_parent` bigint(20) unsigned NOT NULL default '0',
+`capfa_child` bigint(20) unsigned NOT NULL default '0',
+`relatta` smallint(5) unsigned NOT NULL default '0',
+PRIMARY KEY (`capfa_child`,`capfa_parent`,`relatta`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t6_c` VALUES
(15,16,0),(19,20,0),(18326932092909551615,30,0),(26,29,0),(18326932092909551615,29,0),(19,18,0),(26,28,0),(12,14,0);
+CREATE TABLE `t7_c` (
+`dardpo` char(15) NOT NULL default '',
+`dardtestard` tinyint(3) unsigned NOT NULL auto_increment,
+`FastFA` char(5) NOT NULL default '',
+`FastCode` char(6) NOT NULL default '',
+`Fastca` char(1) NOT NULL default '',
+`Fastmag` char(1) NOT NULL default '',
+`Beareratta` char(2) NOT NULL default '',
+PRIMARY KEY (`dardpo`,`dardtestard`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t7_c` VALUES
('2.6.2.4',24,'CECHP','54545','0','0','5'),('2.2.5.4',26,'CANFA','33223','1','1','4'),('4.3.2.4',28,'ITALD','54222','1','0','5'),('129..0.0.eins',28,'G','99999','1','1','5'),('1.1.1.1',24,'AUTPT','32323','0','1','3');
+CREATE TABLE `t8_c` (
+`kattjame` varchar(32) NOT NULL default '',
+`realm` varchar(32) NOT NULL default '',
+`realm_entered` varchar(32) NOT NULL default '',
+`maturegarbagefa` varchar(32) NOT NULL default '',
+`hunderaaarbagefa_parent` varchar(32) NOT NULL default '',
+`kattjame_entered` varchar(32) NOT NULL default '',
+`hunderaaarbagefa` varchar(32) NOT NULL default '',
+`gest` varchar(16) default NULL,
+`hassetino` varchar(16) NOT NULL default '',
+`aaaproxysessfa` varchar(255) default NULL,
+`autologonallowed` char(1) default NULL,
+`squardporoot` varchar(15) NOT NULL default '',
+`naspo` varchar(15) default NULL,
+`beareratta` char(2) default NULL,
+`fastCode` varchar(6) default NULL,
+`fastFA` varchar(5) default NULL,
+`fastca` char(1) default NULL,
+`fastmag` char(1) default NULL,
+`lastupdate` datetime default NULL,
+`hassetistart` datetime NOT NULL default '0000-00-00 00:00:00',
+`accthassetitime` int(10) unsigned default NULL,
+`acctoutputoctets` bigint(20) unsigned default NULL,
+`acctinputoctets` bigint(20) unsigned default NULL,
+PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`),
+KEY `squardporoot` (`squardporoot`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t8_c` VALUES
('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643196120','436643196929','8956234534568968','5524595699','uxasmt21.net.acne.qt/481889229462692422','','1.1.1.1','2.2.4.6','4','86989','34','x','x','2012-03-12
12:55:34','2012-12-05
11:20:04',3223433,3369,9565),('4545435545','john','q3.net','q3.net','acne.li','436643196120','436643196929','45345234568968','995696699','uxasmt21.net.acne.qt/481889229462692423','','1.1.1.1','2.2.9.8','2','86989','34','x','x','2012-03-12
11:35:03','2012-12-05
08:50:04',8821923,169,3565),('versteckter_q3net_katt','joe','q3.net','elredun.com','q3.net','436643196120','436643196939','91341234568968','695595699','uxasmt21.net.acne.qt/481889229462692421','','1.1.1.1','2.5.2.5','3','86989','34','x','x','2012-03-12
18:35:04','2012-12-05 12:35:04',1923123,9569,6565);
+CREATE TABLE `t9_c` (
+`kattjame` varchar(32) NOT NULL default '',
+`kattjame_entered` varchar(32) NOT NULL default '',
+`realm` varchar(32) NOT NULL default '',
+`realm_entered` varchar(32) NOT NULL default '',
+`maturegarbagefa` varchar(32) NOT NULL default '',
+`hunderaaarbagefa` varchar(32) NOT NULL default '',
+`hunderaaarbagefa_parent` varchar(32) NOT NULL default '',
+`gest` varchar(16) default NULL,
+`hassetino` varchar(16) NOT NULL default '',
+`squardporoot` varchar(15) NOT NULL default '',
+`naspo` varchar(15) default NULL,
+`beareratta` char(2) default NULL,
+`fastCode` varchar(6) default NULL,
+`fastFA` varchar(5) default NULL,
+`fastca` char(1) default NULL,
+`fastmag` char(1) default NULL,
+`lastupdate` datetime default NULL,
+`hassetistart` datetime NOT NULL default '0000-00-00 00:00:00',
+`accthassetitime` int(10) unsigned default NULL,
+`actcoutpuocttets` bigint(20) unsigned default NULL,
+`actinputocctets` bigint(20) unsigned default NULL,
+`terminateraste` tinyint(3) unsigned default NULL,
+PRIMARY KEY (`kattjame`,`hunderaaarbagefa`,`hassetistart`,`hassetino`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO `t9_c` VALUES
('3g4jh8gar2t','joe','q3.net','elredun.com','q3.net','436643316120','436643316939','91341234568968','695595699','1.1.1.1','2.2.6.2','3','86989','34','x','x','2012-03-12
18:35:04','2012-12-05
12:35:04',3123123,9569,6565,1),('4tt45345235','pap','q3plus.qt','q3plus.qt','q3.net','436643316120','436643316939','8956234534568968','5254595969','1.1.1.1','8.6.2.2','4','86989','34','x','x','2012-03-12
12:55:34','2012-12-05
11:20:04',3223433,3369,9565,2),('4545435545','john','q3.net','q3.net','acne.li','436643316120','436643316939','45345234568968','995696699','1.1.1.1','2.9.9.2','2','86998','34','x','x','2012-03-12
11:35:03','2012-12-05 08:50:04',8823123,169,3565,3);
+CREATE TABLE t10_c (a INT AUTO_INCREMENT KEY) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
+INSERT INTO t10_c VALUES (1),(2),(3);
+insert into t10_c values (10000),(2000),(3000);
+create table t1 engine=myisam as select * from t1_c;
+create table t2 engine=myisam as select * from t2_c;
+create table t3 engine=myisam as select * from t3_c;
+create table t4 engine=myisam as select * from t4_c;
+create table t5 engine=myisam as select * from t5_c;
+create table t6 engine=myisam as select * from t6_c;
+create table t7 engine=myisam as select * from t7_c;
+create table t8 engine=myisam as select * from t8_c;
+create table t9 engine=myisam as select * from t9_c;
+create table t10 engine=myisam as select * from t10_c;
+ForceVarPart: 0
+ForceVarPart: 1
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE =
HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+ForceVarPart: 0
+ForceVarPart: 1
+select * from information_schema.columns where table_name = "t1_c";
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
+NULL test t1_c capgoaledatta 1 NULL NO mediumint NULL NULL 7 0 NULL NULL mediumint(5)
unsigned PRI auto_increment select,insert,update,references
+NULL test t1_c goaledatta 2 NO char 2 2 NULL NULL latin1 latin1_swedish_ci char(2) PRI select,insert,update,references
+NULL test t1_c maturegarbagefa 3 NO varchar 32 32 NULL NULL latin1 latin1_swedish_ci varchar(32) PRI select,insert,update,references
+select count(*) from t1;
+count(*)
+5
+select count(*) from t1_c;
+count(*)
+5
+select count(*)
+from (select * from t1 union
+select * from t1_c) a;
+count(*)
+5
+select count(*) from t2;
+count(*)
+7
+select count(*) from t2_c;
+count(*)
+7
+select count(*)
+from (select * from t2 union
+select * from t2_c) a;
+count(*)
+7
+select count(*) from t3;
+count(*)
+4
+select count(*) from t3_c;
+count(*)
+4
+select count(*)
+from (select * from t3 union
+select * from t3_c) a;
+count(*)
+4
+select count(*) from t4;
+count(*)
+22
+select count(*) from t4_c;
+count(*)
+22
+select count(*)
+from (select * from t4 union
+select * from t4_c) a;
+count(*)
+22
+select count(*) from t5;
+count(*)
+3
+select count(*) from t5_c;
+count(*)
+3
+select count(*)
+from (select * from t5 union
+select * from t5_c) a;
+count(*)
+3
+select count(*) from t6;
+count(*)
+8
+select count(*) from t6_c;
+count(*)
+8
+select count(*)
+from (select * from t6 union
+select * from t6_c) a;
+count(*)
+8
+select count(*) from t7;
+count(*)
+5
+select count(*) from t7_c;
+count(*)
+5
+select count(*)
+from (select * from t7 union
+select * from t7_c) a;
+count(*)
+5
+select count(*) from t8;
+count(*)
+3
+select count(*) from t8_c;
+count(*)
+3
+select count(*)
+from (select * from t8 union
+select * from t8_c) a;
+count(*)
+3
+select count(*) from t9;
+count(*)
+3
+select count(*) from t9_c;
+count(*)
+3
+select count(*)
+from (select * from t9 union
+select * from t9_c) a;
+count(*)
+3
+select * from t10_c order by a;
+a
+1
+2
+3
+2000
+3000
+10000
+show table status like 't1_c';
+Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+X X X X X X X X X X 3001 X X X X X X X
+show table status like 't2_c';
+Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+X X X X X X X X X X 501 X X X X X X X
+show table status like 't4_c';
+Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+X X X X X X X X X X 290000001 X X X X X X X
+show table status like 't7_c';
+Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+X X X X X X X X X X 29 X X X X X X X
+show table status like 't10_c';
+Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
+X X X X X X X X X X 10001 X X X X X X X
+ALTER TABLE t7_c
+PARTITION BY LINEAR KEY (`dardtestard`);
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE =
HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+select count(*) from t1;
+count(*)
+5
+select count(*) from t1_c;
+count(*)
+5
+select count(*)
+from (select * from t1 union
+select * from t1_c) a;
+count(*)
+5
+select count(*) from t2;
+count(*)
+7
+select count(*) from t2_c;
+count(*)
+7
+select count(*)
+from (select * from t2 union
+select * from t2_c) a;
+count(*)
+7
+select count(*) from t3;
+count(*)
+4
+select count(*) from t3_c;
+count(*)
+4
+select count(*)
+from (select * from t3 union
+select * from t3_c) a;
+count(*)
+4
+select count(*) from t4;
+count(*)
+22
+select count(*) from t4_c;
+count(*)
+22
+select count(*)
+from (select * from t4 union
+select * from t4_c) a;
+count(*)
+22
+select count(*) from t5;
+count(*)
+3
+select count(*) from t5_c;
+count(*)
+3
+select count(*)
+from (select * from t5 union
+select * from t5_c) a;
+count(*)
+3
+select count(*) from t6;
+count(*)
+8
+select count(*) from t6_c;
+count(*)
+8
+select count(*)
+from (select * from t6 union
+select * from t6_c) a;
+count(*)
+8
+select count(*) from t7;
+count(*)
+5
+select count(*) from t7_c;
+count(*)
+5
+select count(*)
+from (select * from t7 union
+select * from t7_c) a;
+count(*)
+5
+select count(*) from t8;
+count(*)
+3
+select count(*) from t8_c;
+count(*)
+3
+select count(*)
+from (select * from t8 union
+select * from t8_c) a;
+count(*)
+3
+select count(*) from t9;
+count(*)
+3
+select count(*) from t9_c;
+count(*)
+3
+select count(*)
+from (select * from t9 union
+select * from t9_c) a;
+count(*)
+3
+drop table t1_c,t2_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+select count(*) from t1;
+count(*)
+5
+select count(*) from t1_c;
+count(*)
+5
+select count(*)
+from (select * from t1 union
+select * from t1_c) a;
+count(*)
+5
+select count(*) from t2;
+count(*)
+7
+select count(*) from t2_c;
+count(*)
+7
+select count(*)
+from (select * from t2 union
+select * from t2_c) a;
+count(*)
+7
+select count(*) from t3;
+count(*)
+4
+select count(*) from t3_c;
+count(*)
+4
+select count(*)
+from (select * from t3 union
+select * from t3_c) a;
+count(*)
+4
+select count(*) from t4;
+count(*)
+22
+select count(*) from t4_c;
+count(*)
+22
+select count(*)
+from (select * from t4 union
+select * from t4_c) a;
+count(*)
+22
+select count(*) from t5;
+count(*)
+3
+select count(*) from t5_c;
+count(*)
+3
+select count(*)
+from (select * from t5 union
+select * from t5_c) a;
+count(*)
+3
+select count(*) from t6;
+count(*)
+8
+select count(*) from t6_c;
+count(*)
+8
+select count(*)
+from (select * from t6 union
+select * from t6_c) a;
+count(*)
+8
+select count(*) from t7;
+count(*)
+5
+select count(*) from t7_c;
+count(*)
+5
+select count(*)
+from (select * from t7 union
+select * from t7_c) a;
+count(*)
+5
+select count(*) from t8;
+count(*)
+3
+select count(*) from t8_c;
+count(*)
+3
+select count(*)
+from (select * from t8 union
+select * from t8_c) a;
+count(*)
+3
+select count(*) from t9;
+count(*)
+3
+select count(*) from t9_c;
+count(*)
+3
+select count(*)
+from (select * from t9 union
+select * from t9_c) a;
+count(*)
+3
+drop table t1_c,t3_c,t4_c,t5_c,t6_c,t7_c,t8_c,t9_c,t10_c;
+CREATE TEMPORARY TABLE IF NOT EXISTS test.backup_info (id INT, backup_id INT) ENGINE =
HEAP;
+DELETE FROM test.backup_info;
+LOAD DATA INFILE '../tmp.dat' INTO TABLE test.backup_info FIELDS TERMINATED BY ',';
+SELECT @the_backup_id:=backup_id FROM test.backup_info;
+@the_backup_id:=backup_id
+<the_backup_id>
+DROP TABLE test.backup_info;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
+drop table if exists t2_c;
+520093696,<the_backup_id>
Index: telco-6.2/mysql-test/suite/ndb/t/ndb_restore_compressed.test
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ telco-6.2/mysql-test/suite/ndb/t/ndb_restore_compressed.test 2007-10-11
18:20:31.274014461 +1000
@@ -0,0 +1,3 @@
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "all
dump 13001 1" >> $NDB_TOOLS_OUTPUT
+-- source suite/ndb/t/ndb_restore.test
+--exec $NDB_MGM --no-defaults --ndb-connectstring="localhost:$NDBCLUSTER_PORT" -e "all
dump 13001 0" >> $NDB_TOOLS_OUTPUT
--
Stewart Smith