diff options
author | unknown <monty@donna.mysql.fi> | 2001-03-06 15:24:08 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.fi> | 2001-03-06 15:24:08 +0200 |
commit | 869c89feaaf82d0f44b2a48db0099aae87b4732f (patch) | |
tree | 54c7bf220f9e21e9f04e2ff2e8a018cf4e33e837 /sql/table.cc | |
parent | ec5e2f589f09e9c261487a577dcddef3cdb994a5 (diff) | |
download | mariadb-git-869c89feaaf82d0f44b2a48db0099aae87b4732f.tar.gz |
Merged some functions and removed some unused client functions.
Remember UNION for ALTER TABLE
Added test for if we are supporting transactions.
Don't allow REPLACE to replace a row when we have generated an auto_increment key
Fixed bug when using BLOB keys
Fixed bug in SET @variable=user.
Docs/manual.texi:
Added some examples and moved the Error access denied section to the
error section.
client/mysqltest.c:
Changed to use the new mysql_send_query()
include/mysql.h:
Changed mysql_reap_query() to mysql_send_query().
libmysql/libmysql.c:
Changed mysql_reap_query() to mysql_send_query()
Merged some functions and removed some unused functions.
mysql-test/r/bdb.result:
New test case
mysql-test/r/distinct.result:
New test case
mysql-test/r/key.result:
New test case
mysql-test/r/merge.result:
New test case
mysql-test/r/replace.result:
New test case
mysql-test/t/bdb.test:
New test case
mysql-test/t/key.test:
New test case
mysql-test/t/merge.test:
New test case
mysql-test/t/replace.test:
New test case
mysys/my_lock.c:
Moved global lock variable to static
sql-bench/test-insert.sh:
Added test case for index-read only
sql/field.h:
Fixed that one can optimize ORDER BY with ISAM and GEMINI
sql/ha_berkeley.cc:
Added type casts needed for Windows
sql/ha_innobase.cc:
Removed reference to manual from comment.
sql/ha_myisammrg.cc:
Remember UNION for ALTER TABLE
sql/ha_myisammrg.h:
Remember UNION for ALTER TABLE
sql/handler.cc:
Added test for if we are supporting transactions.
Don't allow REPLACE to replace a row when we have generated an auto_increment key.
sql/handler.h:
Remember UNION for ALTER TABLE
sql/key.cc:
Fixed bug when using BLOB keys
sql/mysql_priv.h:
Added new variables
sql/mysqld.cc:
Added new variables
sql/opt_range.cc:
Fixed problem with BLOB keys
sql/opt_sum.cc:
Fix for BLOB keys
sql/sql_class.cc:
Added test if we need to init/clean transaction variables
sql/sql_insert.cc:
Fix for REPLACE and auto_increment keys
sql/sql_parse.cc:
Fixed bug in max_user_connections
sql/sql_select.cc:
Fixed problem with key on BLOB
sql/sql_yacc.yy:
Fixed bug in SET @variable=user.
sql/table.cc:
Fixed problem with keys on BLOB
Diffstat (limited to 'sql/table.cc')
-rw-r--r-- | sql/table.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sql/table.cc b/sql/table.cc index b6fde659cd9..a6d524840d9 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -153,7 +153,6 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, for (i=0 ; i < keys ; i++, keyinfo++) { - uint null_parts=0; keyinfo->flags= ((uint) strpos[0]) ^ HA_NOSAME; keyinfo->key_length= (uint) uint2korr(strpos+1); keyinfo->key_parts= (uint) strpos[3]; strpos+=4; @@ -185,7 +184,6 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, } key_part->store_length=key_part->length; } - keyinfo->key_length+=null_parts; set_if_bigger(outparam->max_key_length,keyinfo->key_length+ keyinfo->key_parts); if (keyinfo->flags & HA_NOSAME) @@ -420,6 +418,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, key_part->store_length+=HA_KEY_NULL_LENGTH; keyinfo->flags|=HA_NULL_PART_KEY; keyinfo->extra_length+= HA_KEY_NULL_LENGTH; + keyinfo->key_length+= HA_KEY_NULL_LENGTH; } if (field->type() == FIELD_TYPE_BLOB || field->real_type() == FIELD_TYPE_VAR_STRING) @@ -428,6 +427,7 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, key_part->key_part_flag|= HA_BLOB_PART; keyinfo->extra_length+=HA_KEY_BLOB_LENGTH; key_part->store_length+=HA_KEY_BLOB_LENGTH; + keyinfo->key_length+= HA_KEY_BLOB_LENGTH; } if (i == 0 && key != primary_key) field->flags |= @@ -438,11 +438,16 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag, field->key_start|= ((key_map) 1 << key); if ((ha_option & HA_HAVE_KEY_READ_ONLY) && field->key_length() == key_part->length && - field->type() != FIELD_TYPE_BLOB && - (field->key_type() != HA_KEYTYPE_TEXT || - (!(ha_option & HA_KEY_READ_WRONG_STR) && - !(keyinfo->flags & HA_FULLTEXT)))) - field->part_of_key|= ((key_map) 1 << key); + field->type() != FIELD_TYPE_BLOB) + { + if (field->key_type() != HA_KEYTYPE_TEXT || + (!(ha_option & HA_KEY_READ_WRONG_STR) && + !(keyinfo->flags & HA_FULLTEXT))) + field->part_of_key|= ((key_map) 1 << key); + if (field->key_type() != HA_KEYTYPE_TEXT || + !(keyinfo->flags & HA_FULLTEXT)) + field->part_of_sortkey|= ((key_map) 1 << key); + } if (!(key_part->key_part_flag & HA_REVERSE_SORT) && usable_parts == i) usable_parts++; // For FILESORT |