summaryrefslogtreecommitdiff
path: root/myisam/mi_create.c
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2001-01-08 00:04:30 +0200
committerunknown <monty@donna.mysql.com>2001-01-08 00:04:30 +0200
commitfc4a3ef7c11446ba1159e4873c3323d6fa2fcc60 (patch)
tree500feaf42e43ee02e3822a280b03319bcd8f3abe /myisam/mi_create.c
parent92a3aedc05dd07e1d00986f237a2097af595e584 (diff)
downloadmariadb-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.c146
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;