diff options
author | unknown <monty@donna.mysql.com> | 2001-01-08 00:04:30 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2001-01-08 00:04:30 +0200 |
commit | fc4a3ef7c11446ba1159e4873c3323d6fa2fcc60 (patch) | |
tree | 500feaf42e43ee02e3822a280b03319bcd8f3abe /myisam/mi_create.c | |
parent | 92a3aedc05dd07e1d00986f237a2097af595e584 (diff) | |
download | mariadb-git-fc4a3ef7c11446ba1159e4873c3323d6fa2fcc60.tar.gz |
Fixed bug when having many binary log files
Fixed bug when deleting keys with possible NULL values
many changes to mysqltest
Docs/Makefile.am:
Don't print warnings when making ..dvi
Docs/manual.texi:
Documented changes
acinclude.m4:
Fixed bug in detecting BDB version 3.2.3g
client/mysqltest.c:
Added TODO
Cleanups
Free all memory and close all files on exit
configure.in:
New release
include/my_sys.h:
Added new function needed for mysqltest.c
myisam/mi_create.c:
Cleanup
myisam/mi_delete.c:
Fixed bug when deleting keys with NULL
myisam/mi_search.c:
cleanup
myisam/myisamchk.c:
Added info about fulltext to -D
mysql-test/mysql-test-run.sh:
Use less memory for mysqld
Don't remove timefile if only testing one test
Send option --debug to mysqltest
mysql-test/r/fulltext.result:
New tests
mysql-test/r/func_math.result:
Make test portable
mysql-test/t/fulltext.test:
New tests
mysql-test/t/func_math.test:
Make test portable
mysys/mf_iocache2.c:
Fixed bug when reading over buffers
mysys/string.c:
Added new function needed for mysqltest.c
mysys/typelib.c:
cleanup
scripts/make_binary_distribution.sh:
Added option suffix
Removed some warnings for missing files
scripts/mysql_install_db.sh:
Fixed type
scripts/safe_mysqld.sh:
Also read options from 'server' group
sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha:
New benchmark run
sql-bench/bench-init.pl.sh:
Added missing option '--silent'
sql/mysqld.cc:
Added warnings
Print backtraces even if 'current_thd' is not active
support-files/mysql.spec.sh:
Removed duplicate entry
Diffstat (limited to 'myisam/mi_create.c')
-rw-r--r-- | myisam/mi_create.c | 146 |
1 files changed, 73 insertions, 73 deletions
diff --git a/myisam/mi_create.c b/myisam/mi_create.c index 38573951468..6de13f8f84a 100644 --- a/myisam/mi_create.c +++ b/myisam/mi_create.c @@ -274,86 +274,86 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, } else { - /* Test if prefix compression */ - if (keydef->flag & HA_PACK_KEY) - { - /* Can't use space_compression on number keys */ - if ((keydef->seg[0].flag & HA_SPACE_PACK) && - keydef->seg[0].type == (int) HA_KEYTYPE_NUM) - keydef->seg[0].flag&= ~HA_SPACE_PACK; - - /* Only use HA_PACK_KEY if the first segment is a variable length key */ - if (!(keydef->seg[0].flag & (HA_SPACE_PACK | HA_BLOB_PART | - HA_VAR_LENGTH))) + /* Test if prefix compression */ + if (keydef->flag & HA_PACK_KEY) { - /* pack relative to previous key */ - keydef->flag&= ~HA_PACK_KEY; - keydef->flag|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; + /* Can't use space_compression on number keys */ + if ((keydef->seg[0].flag & HA_SPACE_PACK) && + keydef->seg[0].type == (int) HA_KEYTYPE_NUM) + keydef->seg[0].flag&= ~HA_SPACE_PACK; + + /* Only use HA_PACK_KEY if the first segment is a variable length key */ + if (!(keydef->seg[0].flag & (HA_SPACE_PACK | HA_BLOB_PART | + HA_VAR_LENGTH))) + { + /* pack relative to previous key */ + keydef->flag&= ~HA_PACK_KEY; + keydef->flag|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; + } + else + { + keydef->seg[0].flag|=HA_PACK_KEY; /* for easyer intern test */ + keydef->flag|=HA_VAR_LENGTH_KEY; + options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ + } } - else - { - keydef->seg[0].flag|=HA_PACK_KEY; /* for easyer intern test */ - keydef->flag|=HA_VAR_LENGTH_KEY; + if (keydef->flag & HA_BINARY_PACK_KEY) options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ - } - } - if (keydef->flag & HA_BINARY_PACK_KEY) - options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ - if (keydef->flag & HA_AUTO_KEY) - share.base.auto_key=i+1; - for (j=0, keyseg=keydef->seg ; j < keydef->keysegs ; j++, keyseg++) - { - /* numbers are stored with high by first to make compression easier */ - switch (keyseg->type) { - case HA_KEYTYPE_SHORT_INT: - case HA_KEYTYPE_LONG_INT: - case HA_KEYTYPE_FLOAT: - case HA_KEYTYPE_DOUBLE: - case HA_KEYTYPE_USHORT_INT: - case HA_KEYTYPE_ULONG_INT: - case HA_KEYTYPE_LONGLONG: - case HA_KEYTYPE_ULONGLONG: - case HA_KEYTYPE_INT24: - case HA_KEYTYPE_UINT24: - case HA_KEYTYPE_INT8: - keyseg->flag|= HA_SWAP_KEY; - /* fall through */ - default: - break; - } - if (keyseg->flag & HA_SPACE_PACK) + if (keydef->flag & HA_AUTO_KEY) + share.base.auto_key=i+1; + for (j=0, keyseg=keydef->seg ; j < keydef->keysegs ; j++, keyseg++) { - keydef->flag |= HA_SPACE_PACK_USED | HA_VAR_LENGTH_KEY; - options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ - length++; /* At least one length byte */ - min_key_length_skipp+=keyseg->length; - if (keyseg->length >= 255) - { /* prefix may be 3 bytes */ - min_key_length_skipp+=2; - length+=2; + /* numbers are stored with high by first to make compression easier */ + switch (keyseg->type) { + case HA_KEYTYPE_SHORT_INT: + case HA_KEYTYPE_LONG_INT: + case HA_KEYTYPE_FLOAT: + case HA_KEYTYPE_DOUBLE: + case HA_KEYTYPE_USHORT_INT: + case HA_KEYTYPE_ULONG_INT: + case HA_KEYTYPE_LONGLONG: + case HA_KEYTYPE_ULONGLONG: + case HA_KEYTYPE_INT24: + case HA_KEYTYPE_UINT24: + case HA_KEYTYPE_INT8: + keyseg->flag|= HA_SWAP_KEY; + /* fall through */ + default: + break; } - } - if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART)) - { - keydef->flag|=HA_VAR_LENGTH_KEY; - length++; /* At least one length byte */ - options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ - min_key_length_skipp+=keyseg->length; - if (keyseg->length >= 255) - { /* prefix may be 3 bytes */ - min_key_length_skipp+=2; - length+=2; + if (keyseg->flag & HA_SPACE_PACK) + { + keydef->flag |= HA_SPACE_PACK_USED | HA_VAR_LENGTH_KEY; + options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ + length++; /* At least one length byte */ + min_key_length_skipp+=keyseg->length; + if (keyseg->length >= 255) + { /* prefix may be 3 bytes */ + min_key_length_skipp+=2; + length+=2; + } + } + if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART)) + { + keydef->flag|=HA_VAR_LENGTH_KEY; + length++; /* At least one length byte */ + options|=HA_OPTION_PACK_KEYS; /* Using packed keys */ + min_key_length_skipp+=keyseg->length; + if (keyseg->length >= 255) + { /* prefix may be 3 bytes */ + min_key_length_skipp+=2; + length+=2; + } + } + key_length+= keyseg->length; + if (keyseg->null_bit) + { + key_length++; + options|=HA_OPTION_PACK_KEYS; + keyseg->flag|=HA_NULL_PART; + keydef->flag|=HA_VAR_LENGTH_KEY | HA_NULL_PART_KEY; } - } - key_length+= keyseg->length; - if (keyseg->null_bit) - { - key_length++; - options|=HA_OPTION_PACK_KEYS; - keyseg->flag|=HA_NULL_PART; - keydef->flag|=HA_VAR_LENGTH_KEY | HA_NULL_PART_KEY; - } } } /* if HA_FULLTEXT */ key_segs+=keydef->keysegs; |