summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <ramil@mysql.com>2005-08-31 10:25:00 +0500
committerunknown <ramil@mysql.com>2005-08-31 10:25:00 +0500
commitf0535166243ba0a572c11ca10e8f530a9f07cdb5 (patch)
tree362fedc1c7bc244cd193620869e0a203d37434e8
parent588054be62558b26f4f02369e2d497cbec0da48d (diff)
parent26b9da7ee346869142004758b53d21ae2c7ca02d (diff)
downloadmariadb-git-f0535166243ba0a572c11ca10e8f530a9f07cdb5.tar.gz
Merge mysql.com:/usr/home/ram/work/4.1.b9613
into mysql.com:/usr/home/ram/work/mysql-5.0 sql/ha_blackhole.cc: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged mysql-test/r/variables.result: merging mysql-test/t/variables.test: merging
-rw-r--r--mysql-test/r/variables.result3
-rw-r--r--mysql-test/t/variables.test9
-rw-r--r--ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp4
-rw-r--r--ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp4
-rw-r--r--ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp11
-rw-r--r--sql/set_var.cc10
6 files changed, 37 insertions, 4 deletions
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index a7c96d89f0d..4983e0ae3e8 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -537,3 +537,6 @@ set @@max_heap_table_size= 4294967296;
select @@max_heap_table_size > 0;
@@max_heap_table_size > 0
1
+select @@have_innodb;
+@@have_innodb
+#
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 9d68b7c8172..7ce2cf22db0 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -395,6 +395,7 @@ SET GLOBAL table_cache=DEFAULT;
#
# Bug#6282 Packet error with SELECT INTO
#
+
create table t1 (a int);
select a into @x from t1;
show warnings;
@@ -412,9 +413,17 @@ set @@global.error_count=1;
#
# Bug #10351: Setting ulong variable to > MAX_ULONG fails on 32-bit platform
#
+
set @@max_heap_table_size= 4294967296;
select @@max_heap_table_size > 0;
set global max_heap_table_size= 4294967296;
select @@max_heap_table_size > 0;
set @@max_heap_table_size= 4294967296;
select @@max_heap_table_size > 0;
+
+#
+# Bug #9613: @@have_innodb
+#
+
+--replace_column 1 #
+select @@have_innodb;
diff --git a/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp b/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp
index 092b7840c20..63c271d6b80 100644
--- a/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp
+++ b/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp
@@ -79,6 +79,7 @@ NdbOut& operator<<(NdbOut& no, const CommitTransactionRecord& ctr) {
no << "----------COMMIT TRANSACTION RECORD------------" << endl << endl;
printOut("Record type:", ctr.m_recordType);
printOut("TableId", ctr.m_tableId);
+ printOut("SchemaVersion:", ctr.m_schemaVersion);
printOut("FfragmentId", ctr.m_fragmentId);
printOut("File no. of Prep. Op.", ctr.m_fileNumberOfPrepareOperation);
printOut("Start page no. of Prep. Op.", ctr.m_startPageNumberOfPrepareOperation);
@@ -127,7 +128,7 @@ bool PrepareOperationRecord::check() {
if (m_operationType == 3 && m_attributeLength != 0)
return false;
- if (m_logRecordSize != (m_attributeLength + m_keyLength + 7))
+ if (m_logRecordSize != (m_attributeLength + m_keyLength + 6))
return false;
return true;
@@ -142,7 +143,6 @@ NdbOut& operator<<(NdbOut& no, const PrepareOperationRecord& por) {
printOut("Record type:", por.m_recordType);
printOut("logRecordSize:", por.m_logRecordSize);
printOut("hashValue:", por.m_hashValue);
- printOut("schemaVersion:", por.m_schemaVersion);
switch (por.m_operationType) {
case 0:
ndbout_c("%-30s%-12u%-6s", "operationType:",
diff --git a/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp b/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
index e73986e4d73..27f2399abbe 100644
--- a/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
+++ b/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp
@@ -36,7 +36,7 @@
#define NO_PAGES_IN_MBYTE 32
#define NO_MBYTE_IN_FILE 16
-#define COMMITTRANSACTIONRECORDSIZE 8
+#define COMMITTRANSACTIONRECORDSIZE 9
#define COMPLETEDGCIRECORDSIZE 2
#define PAGEHEADERSIZE 32
#define FILEDESCRIPTORHEADERSIZE 3
@@ -89,7 +89,6 @@ protected:
Uint32 m_recordType;
Uint32 m_logRecordSize;
Uint32 m_hashValue;
- Uint32 m_schemaVersion;
Uint32 m_operationType; // 0 READ, 1 UPDATE, 2 INSERT, 3 DELETE
Uint32 m_attributeLength;
Uint32 m_keyLength;
@@ -190,6 +189,7 @@ public:
protected:
Uint32 m_recordType;
Uint32 m_tableId;
+ Uint32 m_schemaVersion;
Uint32 m_fragmentId;
Uint32 m_fileNumberOfPrepareOperation;
Uint32 m_startPageNumberOfPrepareOperation;
diff --git a/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp b/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp
index 67e59c48ea6..cea05aebc64 100644
--- a/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp
+++ b/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp
@@ -105,6 +105,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*thePageHeader);
if (theCheckFlag) {
if(!thePageHeader->check()) {
+ ndbout << "Error in thePageHeader->check()" << endl;
doExit();
}
@@ -146,6 +147,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*fdRecord);
if (theCheckFlag) {
if(!fdRecord->check()) {
+ ndbout << "Error in fdRecord->check()" << endl;
doExit();
}
}
@@ -163,6 +165,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*nlRecord);
if (theCheckFlag) {
if(!nlRecord->check()) {
+ ndbout << "Error in nlRecord->check()" << endl;
doExit();
}
}
@@ -176,6 +179,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*cGCIrecord);
if (theCheckFlag) {
if(!cGCIrecord->check()) {
+ ndbout << "Error in cGCIrecord->check()" << endl;
doExit();
}
}
@@ -189,6 +193,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*poRecord);
if (theCheckFlag) {
if(!poRecord->check()) {
+ ndbout << "Error in poRecord->check()" << endl;
doExit();
}
}
@@ -205,6 +210,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*ctRecord);
if (theCheckFlag) {
if(!ctRecord->check()) {
+ ndbout << "Error in ctRecord->check()" << endl;
doExit();
}
}
@@ -221,6 +227,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*ictRecord);
if (theCheckFlag) {
if(!ictRecord->check()) {
+ ndbout << "Error in ictRecord->check()" << endl;
doExit();
}
}
@@ -243,6 +250,7 @@ NDB_COMMAND(redoLogFileReader, "redoLogFileReader", "redoLogFileReader", "Read
if (thePrintFlag) ndbout << (*atRecord);
if (theCheckFlag) {
if(!atRecord->check()) {
+ ndbout << "Error in atRecord->check()" << endl;
doExit();
}
}
@@ -329,6 +337,7 @@ Uint32 readRecordOverPageBoundary(Uint32 *pagePtr, Uint32 pageIndex, Uint32 old
if (recordSize < (PAGESIZE - PAGEHEADERSIZE)) {
if (theCheckFlag) {
if(!poRecord->check()) {
+ ndbout << "Error in poRecord->check() (readRecordOverPageBoundary)" << endl;
doExit();
}
}
@@ -344,6 +353,7 @@ Uint32 readRecordOverPageBoundary(Uint32 *pagePtr, Uint32 pageIndex, Uint32 old
if (recordSize < (PAGESIZE - PAGEHEADERSIZE)) {
if (theCheckFlag) {
if(!ctRecord->check()) {
+ ndbout << "Error in ctRecord->check() (readRecordOverPageBoundary)" << endl;
doExit();
}
}
@@ -359,6 +369,7 @@ Uint32 readRecordOverPageBoundary(Uint32 *pagePtr, Uint32 pageIndex, Uint32 old
if (recordSize < (PAGESIZE - PAGEHEADERSIZE)) {
if (theCheckFlag) {
if(!ictRecord->check()) {
+ ndbout << "Error in ictRecord->check() (readRecordOverPageBoundary)" << endl;
doExit();
}
}
diff --git a/sql/set_var.cc b/sql/set_var.cc
index b22ffe69095..26912becc81 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -120,6 +120,7 @@ static KEY_CACHE *create_key_cache(const char *name, uint length);
void fix_sql_mode_var(THD *thd, enum_var_type type);
static byte *get_error_count(THD *thd);
static byte *get_warning_count(THD *thd);
+static byte *get_have_innodb(THD *thd);
/*
Variable definition list
@@ -537,6 +538,8 @@ sys_var_thd_time_zone sys_time_zone("time_zone");
/* Read only variables */
sys_var_const_str sys_os("version_compile_os", SYSTEM_TYPE);
+sys_var_readonly sys_have_innodb("have_innodb", OPT_GLOBAL,
+ SHOW_CHAR, get_have_innodb);
/* Global read-only variable describing server license */
sys_var_const_str sys_license("license", STRINGIFY_ARG(LICENSE));
@@ -587,6 +590,7 @@ sys_var *sys_variables[]=
&sys_ft_boolean_syntax,
&sys_foreign_key_checks,
&sys_group_concat_max_len,
+ &sys_have_innodb,
&sys_identity,
&sys_init_connect,
&sys_init_slave,
@@ -2776,6 +2780,12 @@ static byte *get_error_count(THD *thd)
}
+static byte *get_have_innodb(THD *thd)
+{
+ return (byte*) show_comp_option_name[have_innodb];
+}
+
+
/****************************************************************************
Main handling of variables:
- Initialisation