summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-03-19 15:45:21 +0100
committerOlivier Bertrand <bertrandop@gmail.com>2014-03-19 15:45:21 +0100
commit31560c448a62514f244b67d0925cd3837188e4c9 (patch)
treef70e0b477d8e41b2daa05297e8544b69c359e5b0 /storage
parentdb77e64351310ce76c51f80c00a061cdc777232a (diff)
downloadmariadb-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.cpp4
-rw-r--r--storage/connect/ha_connect.cc20
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