diff options
author | unknown <ramil@mysql.com> | 2005-05-12 15:56:04 +0500 |
---|---|---|
committer | unknown <ramil@mysql.com> | 2005-05-12 15:56:04 +0500 |
commit | 362a340de34628ad38837a57ab85242540147de4 (patch) | |
tree | 74fb1f2fcec48922e11ae91e1bf428a2256752c8 /sql/sql_table.cc | |
parent | c572e469802943af9b30cdf1ab1908dd0d61be5d (diff) | |
download | mariadb-git-362a340de34628ad38837a57ab85242540147de4.tar.gz |
fix (Bug #8295 and #8296: varchar and varbinary conversion)
select, gis & gis-tree tests fails at the moment, but
I will push this CS because it was tested before and I'm absolutely
sure it's right.
mysql-test/r/strict.result:
fix (Bugs #8295 and #8296: varchar and varbinary conversion)
mysql-test/r/type_blob.result:
fix (Bugs #8295 and #8296: varchar and varbinary conversion)
mysql-test/t/strict.test:
fix (Bugs #8295 and #8296: varchar and varbinary conversion)
sql/sql_table.cc:
fix (Bugs #8295 and #8296: varchar and varbinary conversion):
1. fon't convert datatypes if it's strict mode;
2. better warning.
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index bbe7c53147b..ad0a0baae2d 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1345,7 +1345,8 @@ static bool prepare_blob_field(THD *thd, create_field *sql_field) /* Convert long VARCHAR columns to TEXT or BLOB */ char warn_buff[MYSQL_ERRMSG_SIZE]; - if (sql_field->def) + if (sql_field->def || (thd->variables.sql_mode & (MODE_STRICT_TRANS_TABLES | + MODE_STRICT_ALL_TABLES))) { my_error(ER_TOO_BIG_FIELDLENGTH, MYF(0), sql_field->field_name, MAX_FIELD_VARCHARLENGTH / sql_field->charset->mbmaxlen); @@ -1354,7 +1355,7 @@ static bool prepare_blob_field(THD *thd, create_field *sql_field) sql_field->sql_type= FIELD_TYPE_BLOB; sql_field->flags|= BLOB_FLAG; sprintf(warn_buff, ER(ER_AUTO_CONVERT), sql_field->field_name, - "VARCHAR", + (sql_field->charset == &my_charset_bin) ? "VARBINARY" : "VARCHAR", (sql_field->charset == &my_charset_bin) ? "BLOB" : "TEXT"); push_warning(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, ER_AUTO_CONVERT, warn_buff); |