summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-05-09 05:30:11 -0700
committerunknown <jimw@mysql.com>2005-05-09 05:30:11 -0700
commit2e9ce665b3d48dc09967c28ec83155a9539bea79 (patch)
tree1eaae9230ec4cdfcc2c7410717fb01c7058410b1
parenta91c804054273a3a645888573c9795d7aa42ac5f (diff)
parenta028af08725e3deeb7ce66b2bbe8720e1617a236 (diff)
downloadmariadb-git-2e9ce665b3d48dc09967c28ec83155a9539bea79.tar.gz
Merge bk-internal:/home/bk/mysql-4.1
into mysql.com:/home/jimw/my/mysql-4.1-clean
-rw-r--r--sql/table.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/sql/table.cc b/sql/table.cc
index cdcd5148787..012defa116d 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -59,6 +59,7 @@ static byte* get_field_name(Field **buff,uint *length,
3 Wrong data in .frm file
4 Error (see frm_error)
5 Error (see frm_error: charset unavailable)
+ 6 Unknown .frm version
*/
int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
@@ -118,9 +119,13 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
*fn_ext(outparam->path)='\0'; // Remove extension
if (my_read(file,(byte*) head,64,MYF(MY_NABP))) goto err_not_open;
- if (head[0] != (uchar) 254 || head[1] != 1 ||
- (head[2] != FRM_VER && head[2] != FRM_VER+1 && head[2] != FRM_VER+3))
+ if (head[0] != (uchar) 254 || head[1] != 1)
+ goto err_not_open; /* purecov: inspected */
+ if (head[2] != FRM_VER && head[2] != FRM_VER+1 && head[2] != FRM_VER+3)
+ {
+ error= 6;
goto err_not_open; /* purecov: inspected */
+ }
new_field_pack_flag=head[27];
new_frm_ver= (head[2] - FRM_VER);
field_pack_length= new_frm_ver < 2 ? 11 : 17;
@@ -1033,6 +1038,12 @@ static void frm_error(int error, TABLE *form, const char *name,
MYF(0), csname, form->real_name);
break;
}
+ case 6:
+ my_printf_error(ER_NOT_FORM_FILE,
+ "Table '%-.64s' was created with a different version "
+ "of MySQL and cannot be read",
+ MYF(0), name);
+ break;
default: /* Better wrong error than none */
case 4:
my_error(ER_NOT_FORM_FILE,errortype,