Commit cab9ea34 authored by serg@serg.mysql.com's avatar serg@serg.mysql.com

merged

parents ed2a5419 565fe180
...@@ -222,4 +222,5 @@ ...@@ -222,4 +222,5 @@
#define ER_CANT_UPDATE_WITH_READLOCK 1219 #define ER_CANT_UPDATE_WITH_READLOCK 1219
#define ER_MIXING_NOT_ALLOWED 1220 #define ER_MIXING_NOT_ALLOWED 1220
#define ER_DUP_ARGUMENT 1221 #define ER_DUP_ARGUMENT 1221
#define ER_ERROR_MESSAGES 222 #define ER_TABLE_CANT_HANDLE_FULLTEXT 1222
#define ER_ERROR_MESSAGES 223
...@@ -90,7 +90,7 @@ class ha_berkeley: public handler ...@@ -90,7 +90,7 @@ class ha_berkeley: public handler
HA_REC_NOT_IN_SEQ | HA_REC_NOT_IN_SEQ |
HA_KEYPOS_TO_RNDPOS | HA_READ_ORDER | HA_LASTKEY_ORDER | HA_KEYPOS_TO_RNDPOS | HA_READ_ORDER | HA_LASTKEY_ORDER |
HA_LONGLONG_KEYS | HA_NULL_KEY | HA_HAVE_KEY_READ_ONLY | HA_LONGLONG_KEYS | HA_NULL_KEY | HA_HAVE_KEY_READ_ONLY |
HA_BLOB_KEY | HA_NOT_EXACT_COUNT | HA_BLOB_KEY | HA_NOT_EXACT_COUNT | HA_NO_FULLTEXT_KEY |
HA_PRIMARY_KEY_IN_READ_INDEX | HA_DROP_BEFORE_CREATE | HA_PRIMARY_KEY_IN_READ_INDEX | HA_DROP_BEFORE_CREATE |
HA_AUTO_PART_KEY), HA_AUTO_PART_KEY),
changed_rows(0),last_dup_key((uint) -1),version(0),using_ignore(0) changed_rows(0),last_dup_key((uint) -1),version(0),using_ignore(0)
......
...@@ -35,7 +35,7 @@ class ha_heap: public handler ...@@ -35,7 +35,7 @@ class ha_heap: public handler
ulong option_flag() const ulong option_flag() const
{ return (HA_READ_RND_SAME | HA_NO_INDEX | HA_ONLY_WHOLE_INDEX | { return (HA_READ_RND_SAME | HA_NO_INDEX | HA_ONLY_WHOLE_INDEX |
HA_WRONG_ASCII_ORDER | HA_KEYPOS_TO_RNDPOS | HA_NO_BLOBS | HA_WRONG_ASCII_ORDER | HA_KEYPOS_TO_RNDPOS | HA_NO_BLOBS |
HA_REC_NOT_IN_SEQ); } HA_REC_NOT_IN_SEQ | HA_NO_FULLTEXT_KEY); }
uint max_record_length() const { return HA_MAX_REC_LENGTH; } uint max_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_keys() const { return MAX_KEY; } uint max_keys() const { return MAX_KEY; }
uint max_key_parts() const { return MAX_REF_PARTS; } uint max_key_parts() const { return MAX_REF_PARTS; }
......
...@@ -79,7 +79,7 @@ class ha_innobase: public handler ...@@ -79,7 +79,7 @@ class ha_innobase: public handler
HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER | HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER |
HA_HAVE_KEY_READ_ONLY | HA_READ_NOT_EXACT_KEY | HA_HAVE_KEY_READ_ONLY | HA_READ_NOT_EXACT_KEY |
HA_LONGLONG_KEYS | HA_NULL_KEY | HA_LONGLONG_KEYS | HA_NULL_KEY |
HA_NOT_EXACT_COUNT | HA_NOT_EXACT_COUNT | HA_NO_FULLTEXT_KEY |
HA_NO_WRITE_DELAYED | HA_NO_WRITE_DELAYED |
HA_PRIMARY_KEY_IN_READ_INDEX | HA_PRIMARY_KEY_IN_READ_INDEX |
HA_DROP_BEFORE_CREATE | HA_DROP_BEFORE_CREATE |
......
...@@ -30,11 +30,11 @@ class ha_isam: public handler ...@@ -30,11 +30,11 @@ class ha_isam: public handler
public: public:
ha_isam(TABLE *table): handler(table), file(0), ha_isam(TABLE *table): handler(table), file(0),
int_option_flag(HA_READ_NEXT+HA_READ_PREV+HA_READ_RND_SAME+ int_option_flag(HA_READ_NEXT | HA_READ_PREV | HA_READ_RND_SAME |
HA_KEYPOS_TO_RNDPOS+ HA_READ_ORDER+ HA_LASTKEY_ORDER+ HA_KEYPOS_TO_RNDPOS | HA_READ_ORDER | HA_LASTKEY_ORDER |
HA_HAVE_KEY_READ_ONLY+HA_READ_NOT_EXACT_KEY+ HA_HAVE_KEY_READ_ONLY | HA_READ_NOT_EXACT_KEY |
HA_LONGLONG_KEYS+HA_KEY_READ_WRONG_STR + HA_DUPP_POS + HA_LONGLONG_KEYS | HA_KEY_READ_WRONG_STR | HA_DUPP_POS |
HA_NOT_DELETE_WITH_CACHE) HA_NOT_DELETE_WITH_CACHE | HA_NO_FULLTEXT_KEY)
{} {}
~ha_isam() {} ~ha_isam() {}
const char *table_type() const { return "ISAM"; } const char *table_type() const { return "ISAM"; }
......
...@@ -32,7 +32,8 @@ class ha_isammrg: public handler ...@@ -32,7 +32,8 @@ class ha_isammrg: public handler
~ha_isammrg() {} ~ha_isammrg() {}
const char *table_type() const { return "MRG_ISAM"; } const char *table_type() const { return "MRG_ISAM"; }
const char **bas_ext() const; const char **bas_ext() const;
ulong option_flag() const { return HA_READ_RND_SAME+HA_KEYPOS_TO_RNDPOS+HA_REC_NOT_IN_SEQ;} ulong option_flag() const { return HA_READ_RND_SAME | HA_KEYPOS_TO_RNDPOS
| HA_REC_NOT_IN_SEQ | HA_NO_FULLTEXT_KEY;}
uint max_record_length() const { return HA_MAX_REC_LENGTH; } uint max_record_length() const { return HA_MAX_REC_LENGTH; }
uint max_keys() const { return 0; } uint max_keys() const { return 0; }
uint max_key_parts() const { return 0; } uint max_key_parts() const { return 0; }
......
...@@ -35,7 +35,7 @@ class ha_myisammrg: public handler ...@@ -35,7 +35,7 @@ class ha_myisammrg: public handler
ulong option_flag() const ulong option_flag() const
{ return (HA_REC_NOT_IN_SEQ | HA_READ_NEXT | { return (HA_REC_NOT_IN_SEQ | HA_READ_NEXT |
HA_READ_PREV | HA_READ_RND_SAME | HA_READ_PREV | HA_READ_RND_SAME |
HA_HAVE_KEY_READ_ONLY | HA_HAVE_KEY_READ_ONLY | HA_NO_FULLTEXT_KEY |
HA_KEYPOS_TO_RNDPOS | HA_READ_ORDER | HA_KEYPOS_TO_RNDPOS | HA_READ_ORDER |
HA_LASTKEY_ORDER | HA_READ_NOT_EXACT_KEY | HA_LASTKEY_ORDER | HA_READ_NOT_EXACT_KEY |
HA_LONGLONG_KEYS | HA_NULL_KEY | HA_BLOB_KEY); } HA_LONGLONG_KEYS | HA_NULL_KEY | HA_BLOB_KEY); }
......
...@@ -232,3 +232,4 @@ ...@@ -232,3 +232,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -226,3 +226,4 @@ ...@@ -226,3 +226,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -229,3 +229,4 @@ ...@@ -229,3 +229,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -227,3 +227,4 @@ ...@@ -227,3 +227,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -226,3 +226,4 @@ ...@@ -226,3 +226,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"Der verwendete Tabellentyp unterstützt keine FULLTEXT-Indexe",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -225,3 +225,4 @@ ...@@ -225,3 +225,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -225,3 +225,4 @@ ...@@ -225,3 +225,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -225,3 +225,4 @@ ...@@ -225,3 +225,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -225,3 +225,4 @@ ...@@ -225,3 +225,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -227,3 +227,4 @@ ...@@ -227,3 +227,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -227,3 +227,4 @@ ...@@ -227,3 +227,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -208,21 +208,22 @@ ...@@ -208,21 +208,22 @@
" master info, persmissions master.info", " master info, persmissions master.info",
" SLAVE, ", " SLAVE, ",
"User %-.64s has already more than 'max_user_connections' active connections", "User %-.64s has already more than 'max_user_connections' active connections",
"You may only use constant expressions with SET", " SET ",
"Lock wait timeout exceeded", "Lock wait timeout exceeded",
"The total number of locks exceeds the lock table size", "The total number of locks exceeds the lock table size",
"Update locks cannot be acquired during a READ UNCOMMITTED transaction", "Update locks cannot be acquired during a READ UNCOMMITTED transaction",
"DROP DATABASE not allowed while thread is holding global read lock", "DROP DATABASE not allowed while thread is holding global read lock",
"CREATE DATABASE not allowed while thread is holding global read lock", "CREATE DATABASE not allowed while thread is holding global read lock",
"Wrong arguments to %s", " %s",
"%-.32s@%-.64s is not allowed to create new users", "%-.32s@%-.64s ",
"Incorrect table definition; All MERGE tables must be in the same database", " ; MERGE ",
"Deadlock found when trying to get lock; Try restarting transaction", "Deadlock found when trying to get lock; Try restarting transaction",
"Error connecting to master: %-.128s", "Error connecting to master: %-.128s",
"Error running query on master: %-.128s", "Error running query on master: %-.128s",
"Error when executing command %s: %-.128s", " %s: %-.128s",
"Wrong usage of %s and %s", " %s %s",
"The used SELECT statements have a different number of columns", " SELECT' ",
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
" FULLTEXT ",
...@@ -231,3 +231,4 @@ ...@@ -231,3 +231,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -224,3 +224,4 @@ ...@@ -224,3 +224,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
"The used table type doesn't support FULLTEXT indexes",
...@@ -223,3 +223,4 @@ ...@@ -223,3 +223,4 @@
"Kan inte utföra kommandot emedan du har ett READ lås", "Kan inte utföra kommandot emedan du har ett READ lås",
"Blandning av transaktionella och icke-transaktionella tabeller är inaktiverat", "Blandning av transaktionella och icke-transaktionella tabeller är inaktiverat",
"Option '%s' användes två gånger", "Option '%s' användes två gånger",
"The used table type doesn't support FULLTEXT indexes",
...@@ -228,3 +228,4 @@ ...@@ -228,3 +228,4 @@
"Can't execute the query because you have a conflicting read lock", "Can't execute the query because you have a conflicting read lock",
"Mixing of transactional and non-transactional tables is disabled", "Mixing of transactional and non-transactional tables is disabled",
"Option '%s' used twice in statement", "Option '%s' used twice in statement",
" æ Цդ FULLTEXT Ӧ",
...@@ -424,6 +424,15 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -424,6 +424,15 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
key_info->key_parts=(uint8) key->columns.elements; key_info->key_parts=(uint8) key->columns.elements;
key_info->key_part=key_part_info; key_info->key_part=key_part_info;
if (key->type == Key::FULLTEXT)
{
if (file->option_flag() & HA_NO_FULLTEXT_KEY)
{
my_error(ER_TABLE_CANT_HANDLE_FULLTEXT, MYF(0));
DBUG_RETURN(-1);
}
}
List_iterator<key_part_spec> cols(key->columns); List_iterator<key_part_spec> cols(key->columns);
for (uint column_nr=0 ; (column=cols++) ; column_nr++) for (uint column_nr=0 ; (column=cols++) ; column_nr++)
{ {
...@@ -439,13 +448,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -439,13 +448,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
column->field_name); column->field_name);
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
if (key->type == Key::FULLTEXT && if (key->type == Key::FULLTEXT)
(file->option_flag() & HA_NO_FULLTEXT_KEY)) column->length=1; /* ft-code ignores it anyway :-) */
{
my_printf_error(ER_WRONG_KEY_COLUMN, ER(ER_WRONG_KEY_COLUMN), MYF(0),
column->field_name);
DBUG_RETURN(-1);
}
if (f_is_blob(sql_field->pack_flag)) if (f_is_blob(sql_field->pack_flag))
{ {
if (!(file->option_flag() & HA_BLOB_KEY)) if (!(file->option_flag() & HA_BLOB_KEY))
...@@ -455,10 +459,6 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -455,10 +459,6 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
if (!column->length) if (!column->length)
{
if (key->type == Key::FULLTEXT)
column->length=1; /* ft-code ignores it anyway :-) */
else
{ {
my_printf_error(ER_BLOB_KEY_WITHOUT_LENGTH, my_printf_error(ER_BLOB_KEY_WITHOUT_LENGTH,
ER(ER_BLOB_KEY_WITHOUT_LENGTH),MYF(0), ER(ER_BLOB_KEY_WITHOUT_LENGTH),MYF(0),
...@@ -466,7 +466,6 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -466,7 +466,6 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
DBUG_RETURN(-1); DBUG_RETURN(-1);
} }
} }
}
if (!(sql_field->flags & NOT_NULL_FLAG)) if (!(sql_field->flags & NOT_NULL_FLAG))
{ {
if (key->type == Key::PRIMARY) if (key->type == Key::PRIMARY)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment