Bug #3152931 ENUM and SET cannot have 'Binary' option. Avoid wrong categorization to binary, blob and char types.

This commit is contained in:
Madhura Jayaratne
2011-02-01 11:37:51 +05:30
parent 9ff2452f2b
commit 36e8a23b87

View File

@@ -370,10 +370,31 @@ foreach ($rows as $row_id => $vrow) {
$table_fields[$i]['Field_title'] = $table_fields[$i]['Field_html'];
}
// The type column
// The type column.
// Fix for bug #3152931 'ENUM and SET cannot have "Binary" option'
// If check to ensure types such as "enum('one','two','binary',..)" or
// "enum('one','two','varbinary',..)" are not categorized as binary.
if (stripos($table_fields[$i]['Type'], 'binary') === 0
|| stripos($table_fields[$i]['Type'], 'varbinary') === 0) {
$table_fields[$i]['is_binary'] = stristr($table_fields[$i]['Type'], 'binary');
}
// If check to ensure types such as "enum('one','two','blob',..)" or
// "enum('one','two','tinyblob',..)" etc. are not categorized as blob.
if (stripos($table_fields[$i]['Type'], 'blob') === 0
|| stripos($table_fields[$i]['Type'], 'tinyblob') === 0
|| stripos($table_fields[$i]['Type'], 'mediumblob') === 0
|| stripos($table_fields[$i]['Type'], 'longblob') === 0) {
$table_fields[$i]['is_blob'] = stristr($table_fields[$i]['Type'], 'blob');
}
// If check to ensure types such as "enum('one','two','char',..)" or
// "enum('one','two','varchar',..)" are not categorized as char.
if (stripos($table_fields[$i]['Type'], 'char') === 0
|| stripos($table_fields[$i]['Type'], 'varchar') === 0) {
$table_fields[$i]['is_char'] = stristr($table_fields[$i]['Type'], 'char');
}
$table_fields[$i]['first_timestamp'] = false;
switch ($table_fields[$i]['True_Type']) {
case 'set':