diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2014-03-19 15:45:21 +0100 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2014-03-19 15:45:21 +0100 |
commit | 31560c448a62514f244b67d0925cd3837188e4c9 (patch) | |
tree | f70e0b477d8e41b2daa05297e8544b69c359e5b0 /storage | |
parent | db77e64351310ce76c51f80c00a061cdc777232a (diff) | |
download | mariadb-git-31560c448a62514f244b67d0925cd3837188e4c9.tar.gz |
- FIX MDEV-5890 and MDEV-5900
modified:
storage/connect/filamtxt.cpp
storage/connect/ha_connect.cc
Diffstat (limited to 'storage')
-rw-r--r-- | storage/connect/filamtxt.cpp | 4 | ||||
-rw-r--r-- | storage/connect/ha_connect.cc | 20 |
2 files changed, 16 insertions, 8 deletions
diff --git a/storage/connect/filamtxt.cpp b/storage/connect/filamtxt.cpp index b700ae182a0..114b0433b01 100644 --- a/storage/connect/filamtxt.cpp +++ b/storage/connect/filamtxt.cpp @@ -948,7 +948,9 @@ void DOSFAM::CloseTableFile(PGLOBAL g) /***********************************************************************/ void DOSFAM::Rewind(void) { - rewind(Stream); + if (Stream) // Can be NULL when making index on void table + rewind(Stream); + Rows = 0; OldBlk = CurBlk = -1; } // end of Rewind diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index ec8ed16af72..2670da10322 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -4555,15 +4555,23 @@ int ha_connect::create(const char *name, TABLE *table_arg, case MYSQL_TYPE_DATETIME: case MYSQL_TYPE_YEAR: case MYSQL_TYPE_NEWDATE: - case MYSQL_TYPE_VARCHAR: case MYSQL_TYPE_LONGLONG: case MYSQL_TYPE_TINY: - break; // Ok - case MYSQL_TYPE_VAR_STRING: - case MYSQL_TYPE_STRING: case MYSQL_TYPE_DECIMAL: case MYSQL_TYPE_NEWDECIMAL: case MYSQL_TYPE_INT24: + break; // Ok + case MYSQL_TYPE_VARCHAR: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_STRING: + if (!fp->field_length) { + sprintf(g->Message, "Unsupported 0 length for column %s", + fp->field_name); + rc= HA_ERR_INTERNAL_ERROR; + my_printf_error(ER_UNKNOWN_ERROR, g->Message, MYF(0)); + DBUG_RETURN(rc); + } // endif fp + break; // To be checked case MYSQL_TYPE_BIT: case MYSQL_TYPE_NULL: @@ -4579,9 +4587,7 @@ int ha_connect::create(const char *name, TABLE *table_arg, sprintf(g->Message, "Unsupported type for column %s", fp->field_name); rc= HA_ERR_INTERNAL_ERROR; - my_printf_error(ER_UNKNOWN_ERROR, - "Unsupported type for column '%s'", - MYF(0), fp->field_name); + my_printf_error(ER_UNKNOWN_ERROR, g->Message, MYF(0)); DBUG_RETURN(rc); break; } // endswitch type |