List:Commits« Previous MessageNext Message »
From:Jim Winstead Date:July 18 2006 5:25pm
Subject:bk commit into 5.0 tree (jimw:1.2235)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of jimw. When jimw does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-07-18 10:25:04-07:00, jimw@rama.(none) +5 -0
  Merge bk-internal:/home/bk/mysql-5.0-engines
  into  rama.(none):/home/jimw/my/mysql-5.0-17608
  MERGE: 1.2210.1.5

  include/my_base.h@stripped, 2006-07-18 10:25:01-07:00, jimw@rama.(none) +0 -0
    Auto merged
    MERGE: 1.77.1.1

  mysql-test/r/merge.result@stripped, 2006-07-18 10:25:01-07:00, jimw@rama.(none) +0 -0
    Auto merged
    MERGE: 1.48.1.1

  mysql-test/t/merge.test@stripped, 2006-07-18 10:25:02-07:00, jimw@rama.(none) +0 -0
    Auto merged
    MERGE: 1.41.1.1

  sql/ha_myisammrg.cc@stripped, 2006-07-18 10:25:02-07:00, jimw@rama.(none) +0 -0
    Auto merged
    MERGE: 1.77.1.1

  sql/handler.cc@stripped, 2006-07-18 10:25:02-07:00, jimw@rama.(none) +0 -0
    Auto merged
    MERGE: 1.212.2.1

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jimw
# Host:	rama.(none)
# Root:	/home/jimw/my/mysql-5.0-17608/RESYNC

--- 1.78/include/my_base.h	2006-07-18 10:25:08 -07:00
+++ 1.79/include/my_base.h	2006-07-18 10:25:08 -07:00
@@ -356,8 +356,9 @@
 #define HA_ERR_NULL_IN_SPATIAL   158  /* NULLs are not supported in spatial index */
 #define HA_ERR_TABLE_DEF_CHANGED 159  /* The table changed in storage engine */
 #define HA_ERR_TABLE_NEEDS_UPGRADE 160  /* The table changed in storage engine */
+#define HA_ERR_TABLE_READONLY    161  /* The table is not writable */
 
-#define HA_ERR_LAST              160  /*Copy last error nr.*/
+#define HA_ERR_LAST              161  /*Copy last error nr.*/
 /* Add error numbers before HA_ERR_LAST and change it accordingly. */
 #define HA_ERR_ERRORS            (HA_ERR_LAST - HA_ERR_FIRST + 1)
 

--- 1.78/sql/ha_myisammrg.cc	2006-07-18 10:25:08 -07:00
+++ 1.79/sql/ha_myisammrg.cc	2006-07-18 10:25:08 -07:00
@@ -132,6 +132,10 @@
 int ha_myisammrg::write_row(byte * buf)
 {
   statistic_increment(table->in_use->status_var.ha_write_count,&LOCK_status);
+
+  if (file->merge_insert_method == MERGE_INSERT_DISABLED || !file->tables)
+    return (HA_ERR_TABLE_READONLY);
+
   if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
     table->timestamp_field->set_time();
   if (table->next_number_field && buf == table->record[0])

--- 1.214/sql/handler.cc	2006-07-18 10:25:08 -07:00
+++ 1.215/sql/handler.cc	2006-07-18 10:25:08 -07:00
@@ -426,6 +426,7 @@
   SETMSG(HA_ERR_NO_CONNECTION,          "Could not connect to storage engine");
   SETMSG(HA_ERR_TABLE_DEF_CHANGED,      ER(ER_TABLE_DEF_CHANGED));
   SETMSG(HA_ERR_TABLE_NEEDS_UPGRADE,    ER(ER_TABLE_NEEDS_UPGRADE));
+  SETMSG(HA_ERR_TABLE_READONLY,         ER(ER_OPEN_AS_READONLY));
 
   /* Register the error messages for use with my_error(). */
   return my_error_register(errmsgs, HA_ERR_FIRST, HA_ERR_LAST);
@@ -1857,6 +1858,9 @@
   }
   case HA_ERR_TABLE_NEEDS_UPGRADE:
     textno=ER_TABLE_NEEDS_UPGRADE;
+    break;
+  case HA_ERR_TABLE_READONLY:
+    textno= ER_OPEN_AS_READONLY;
     break;
   default:
     {

--- 1.49/mysql-test/r/merge.result	2006-07-18 10:25:08 -07:00
+++ 1.50/mysql-test/r/merge.result	2006-07-18 10:25:08 -07:00
@@ -774,3 +774,15 @@
 select * from tm;
 b
 drop table tm, t1, t2;
+create table t1 (a int) insert_method = last engine = merge;
+insert into t1 values (1);
+ERROR HY000: Table 't1' is read only
+create table t2 (a int) engine = myisam;
+alter table t1 union (t2);
+insert into t1 values (1);
+alter table t1 insert_method = no;
+insert into t1 values (1);
+ERROR HY000: Table 't1' is read only
+drop table t2;
+drop table t1;
+End of 5.0 tests

--- 1.42/mysql-test/t/merge.test	2006-07-18 10:25:08 -07:00
+++ 1.43/mysql-test/t/merge.test	2006-07-18 10:25:08 -07:00
@@ -389,4 +389,19 @@
 select * from tm;
 drop table tm, t1, t2;
 
-# End of 5.0 tests
+#
+# Bug #17766: The server accepts to create MERGE tables which cannot work
+#
+create table t1 (a int) insert_method = last engine = merge;
+--error ER_OPEN_AS_READONLY
+insert into t1 values (1);
+create table t2 (a int) engine = myisam;
+alter table t1 union (t2);
+insert into t1 values (1);
+alter table t1 insert_method = no;
+--error ER_OPEN_AS_READONLY
+insert into t1 values (1);
+drop table t2;
+drop table t1;
+
+--echo End of 5.0 tests
Thread
bk commit into 5.0 tree (jimw:1.2235)Jim Winstead18 Jul