mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge bk-internal:/home/bk/mysql-5.0-engines
into rama.(none):/home/jimw/my/mysql-5.0-17608 include/my_base.h: Auto merged mysql-test/r/merge.result: Auto merged mysql-test/t/merge.test: Auto merged sql/ha_myisammrg.cc: Auto merged sql/handler.cc: Auto merged
This commit is contained in:
@ -356,8 +356,9 @@ enum ha_base_keytype {
|
|||||||
#define HA_ERR_NULL_IN_SPATIAL 158 /* NULLs are not supported in spatial index */
|
#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_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_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. */
|
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
|
||||||
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
|
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
|
||||||
|
|
||||||
|
@ -774,3 +774,15 @@ create table tm (b bit(1)) engine = merge union = (t1,t2);
|
|||||||
select * from tm;
|
select * from tm;
|
||||||
b
|
b
|
||||||
drop table tm, t1, t2;
|
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
|
||||||
|
@ -389,4 +389,19 @@ create table tm (b bit(1)) engine = merge union = (t1,t2);
|
|||||||
select * from tm;
|
select * from tm;
|
||||||
drop table tm, t1, t2;
|
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
|
||||||
|
@ -132,6 +132,10 @@ int ha_myisammrg::close(void)
|
|||||||
int ha_myisammrg::write_row(byte * buf)
|
int ha_myisammrg::write_row(byte * buf)
|
||||||
{
|
{
|
||||||
statistic_increment(table->in_use->status_var.ha_write_count,&LOCK_status);
|
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)
|
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
||||||
table->timestamp_field->set_time();
|
table->timestamp_field->set_time();
|
||||||
if (table->next_number_field && buf == table->record[0])
|
if (table->next_number_field && buf == table->record[0])
|
||||||
|
@ -426,6 +426,7 @@ static int ha_init_errors(void)
|
|||||||
SETMSG(HA_ERR_NO_CONNECTION, "Could not connect to storage engine");
|
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_DEF_CHANGED, ER(ER_TABLE_DEF_CHANGED));
|
||||||
SETMSG(HA_ERR_TABLE_NEEDS_UPGRADE, ER(ER_TABLE_NEEDS_UPGRADE));
|
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(). */
|
/* Register the error messages for use with my_error(). */
|
||||||
return my_error_register(errmsgs, HA_ERR_FIRST, HA_ERR_LAST);
|
return my_error_register(errmsgs, HA_ERR_FIRST, HA_ERR_LAST);
|
||||||
@ -1858,6 +1859,9 @@ void handler::print_error(int error, myf errflag)
|
|||||||
case HA_ERR_TABLE_NEEDS_UPGRADE:
|
case HA_ERR_TABLE_NEEDS_UPGRADE:
|
||||||
textno=ER_TABLE_NEEDS_UPGRADE;
|
textno=ER_TABLE_NEEDS_UPGRADE;
|
||||||
break;
|
break;
|
||||||
|
case HA_ERR_TABLE_READONLY:
|
||||||
|
textno= ER_OPEN_AS_READONLY;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* The error was "unknown" to this function.
|
/* The error was "unknown" to this function.
|
||||||
|
Reference in New Issue
Block a user