mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merge remote-tracking branch 'origin/10.1' into 10.2
This commit is contained in:
commit
0a359d7627
33 changed files with 257 additions and 44 deletions
|
@ -26,9 +26,9 @@ SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE=1)
|
|||
|
||||
# Fix CMake (< 2.8) flags. -rdynamic exports too many symbols.
|
||||
FOREACH(LANG C CXX)
|
||||
STRING(REPLACE "-rdynamic" ""
|
||||
STRING(REPLACE "-rdynamic" ""
|
||||
CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS
|
||||
${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS}
|
||||
"${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS}"
|
||||
)
|
||||
ENDFOREACH()
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ create table t1 as select concat(1 % 2) as c1;
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varbinary(1) DEFAULT NULL
|
||||
`c1` varbinary(2) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select hex(concat(-1));
|
||||
|
|
|
@ -511,7 +511,7 @@ create table t1 as select concat(1 % 2) as c1;
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL
|
||||
`c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select hex(concat(-1));
|
||||
|
|
|
@ -820,7 +820,7 @@ create table t1 as select concat(1 % 2) as c1;
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(1) DEFAULT NULL
|
||||
`c1` varchar(2) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select hex(concat(-1));
|
||||
|
|
|
@ -1700,7 +1700,7 @@ create table t1 as select concat(1 % 2) as c1;
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL
|
||||
`c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select hex(concat(-1));
|
||||
|
|
|
@ -2571,7 +2571,7 @@ create table t1 as select concat(1 % 2) as c1;
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL
|
||||
`c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select hex(concat(-1));
|
||||
|
|
|
@ -817,6 +817,64 @@ STDDEV_SAMP(ROUND('0', 309))
|
|||
0
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
|
||||
#
|
||||
# Testing that dyadic arithmetic operations are symmetric
|
||||
# for (+1) and (-1) and produce the same length in CONCAT(),
|
||||
# because (+1) and (-1) have the same data type: signed int.
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2.0),
|
||||
CONCAT(-1%2.0),
|
||||
CONCAT(+1/2.0),
|
||||
CONCAT(-1/2.0),
|
||||
CONCAT(+1*2.0),
|
||||
CONCAT(-1*2.0),
|
||||
CONCAT(+1+2.0),
|
||||
CONCAT(-1+2.0),
|
||||
CONCAT(+1-2.0),
|
||||
CONCAT(-1-2.0);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`CONCAT(+1%2.0)` varchar(4) DEFAULT NULL,
|
||||
`CONCAT(-1%2.0)` varchar(4) DEFAULT NULL,
|
||||
`CONCAT(+1/2.0)` varchar(8) DEFAULT NULL,
|
||||
`CONCAT(-1/2.0)` varchar(8) DEFAULT NULL,
|
||||
`CONCAT(+1*2.0)` varchar(5) DEFAULT NULL,
|
||||
`CONCAT(-1*2.0)` varchar(5) DEFAULT NULL,
|
||||
`CONCAT(+1+2.0)` varchar(5) DEFAULT NULL,
|
||||
`CONCAT(-1+2.0)` varchar(5) DEFAULT NULL,
|
||||
`CONCAT(+1-2.0)` varchar(5) DEFAULT NULL,
|
||||
`CONCAT(-1-2.0)` varchar(5) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2),
|
||||
CONCAT(-1%2),
|
||||
CONCAT(+1/2),
|
||||
CONCAT(-1/2),
|
||||
CONCAT(+1*2),
|
||||
CONCAT(-1*2),
|
||||
CONCAT(+1+2),
|
||||
CONCAT(-1+2),
|
||||
CONCAT(+1-2),
|
||||
CONCAT(-1-2);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`CONCAT(+1%2)` varchar(2) DEFAULT NULL,
|
||||
`CONCAT(-1%2)` varchar(2) DEFAULT NULL,
|
||||
`CONCAT(+1/2)` varchar(7) DEFAULT NULL,
|
||||
`CONCAT(-1/2)` varchar(7) DEFAULT NULL,
|
||||
`CONCAT(+1*2)` varchar(3) DEFAULT NULL,
|
||||
`CONCAT(-1*2)` varchar(3) DEFAULT NULL,
|
||||
`CONCAT(+1+2)` varchar(3) DEFAULT NULL,
|
||||
`CONCAT(-1+2)` varchar(3) DEFAULT NULL,
|
||||
`CONCAT(+1-2)` varchar(3) DEFAULT NULL,
|
||||
`CONCAT(-1-2)` varchar(3) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -2153,7 +2153,7 @@ Warning 1292 Truncated incorrect DECIMAL value: '2005-05-0410'
|
|||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f2` varchar(26) DEFAULT NULL
|
||||
`f2` varchar(28) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
f2
|
||||
|
|
|
@ -2038,6 +2038,70 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
|
||||
#
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL);
|
||||
CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED);
|
||||
CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL);
|
||||
CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) unsigned DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED);
|
||||
CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) unsigned DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal
|
||||
#
|
||||
CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED);
|
||||
INSERT INTO t1 VALUES (1.0),(2.0);
|
||||
SELECT DISTINCT 1 MOD a FROM t1;
|
||||
1 MOD a
|
||||
0
|
||||
1
|
||||
CREATE TABLE t2 AS SELECT DISTINCT 1 MOD a AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED);
|
||||
INSERT INTO t1 VALUES (1.0),(2.0);
|
||||
SELECT DISTINCT 1 MOD a FROM t1;
|
||||
1 MOD a
|
||||
0
|
||||
1
|
||||
CREATE TABLE t2 AS SELECT DISTINCT CAST(1 AS UNSIGNED) MOD a AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`f` decimal(1,0) unsigned DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
|
|
@ -589,6 +589,44 @@ INSERT INTO t1 VALUES (1),(2);
|
|||
SELECT STDDEV_SAMP(ROUND('0', 309)) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
|
||||
--echo #
|
||||
|
||||
--echo # Testing that dyadic arithmetic operations are symmetric
|
||||
--echo # for (+1) and (-1) and produce the same length in CONCAT(),
|
||||
--echo # because (+1) and (-1) have the same data type: signed int.
|
||||
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2.0),
|
||||
CONCAT(-1%2.0),
|
||||
CONCAT(+1/2.0),
|
||||
CONCAT(-1/2.0),
|
||||
CONCAT(+1*2.0),
|
||||
CONCAT(-1*2.0),
|
||||
CONCAT(+1+2.0),
|
||||
CONCAT(-1+2.0),
|
||||
CONCAT(+1-2.0),
|
||||
CONCAT(-1-2.0);
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS SELECT
|
||||
CONCAT(+1%2),
|
||||
CONCAT(-1%2),
|
||||
CONCAT(+1/2),
|
||||
CONCAT(-1/2),
|
||||
CONCAT(+1*2),
|
||||
CONCAT(-1*2),
|
||||
CONCAT(+1+2),
|
||||
CONCAT(-1+2),
|
||||
CONCAT(+1-2),
|
||||
CONCAT(-1-2);
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -1627,6 +1627,49 @@ CREATE TABLE t1 AS SELECT 1.0 * 2.000;
|
|||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL);
|
||||
CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED);
|
||||
CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL);
|
||||
CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED);
|
||||
CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED);
|
||||
INSERT INTO t1 VALUES (1.0),(2.0);
|
||||
SELECT DISTINCT 1 MOD a FROM t1;
|
||||
CREATE TABLE t2 AS SELECT DISTINCT 1 MOD a AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED);
|
||||
INSERT INTO t1 VALUES (1.0),(2.0);
|
||||
SELECT DISTINCT 1 MOD a FROM t1;
|
||||
CREATE TABLE t2 AS SELECT DISTINCT CAST(1 AS UNSIGNED) MOD a AS f FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
|
@ -22,6 +22,7 @@ flush_caches=0
|
|||
numa_interleave=0
|
||||
wsrep_on=0
|
||||
dry_run=0
|
||||
defaults_group_suffix=
|
||||
|
||||
# Initial logging status: error log is not open, and not using syslog
|
||||
logging=init
|
||||
|
@ -377,6 +378,8 @@ parse_arguments() {
|
|||
append_arg_to_args "$arg"
|
||||
;;
|
||||
|
||||
--defaults-group-suffix=*) defaults_group_suffix="$arg" ;;
|
||||
|
||||
--help) usage ;;
|
||||
|
||||
*)
|
||||
|
@ -952,7 +955,7 @@ then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
for i in "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
|
||||
for i in "$ledir/$MYSQLD" "$defaults_group_suffix" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
|
||||
"--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"
|
||||
do
|
||||
cmd="$cmd "`shell_quote_string "$i"`
|
||||
|
|
|
@ -1935,8 +1935,11 @@ my_decimal *Item_func_mod::decimal_op(my_decimal *decimal_value)
|
|||
|
||||
void Item_func_mod::result_precision()
|
||||
{
|
||||
unsigned_flag= args[0]->unsigned_flag;
|
||||
decimals= MY_MAX(args[0]->decimal_scale(), args[1]->decimal_scale());
|
||||
max_length= MY_MAX(args[0]->max_length, args[1]->max_length);
|
||||
uint prec= MY_MAX(args[0]->decimal_precision(), args[1]->decimal_precision());
|
||||
fix_char_length(my_decimal_precision_to_length_no_truncation(prec, decimals,
|
||||
unsigned_flag));
|
||||
}
|
||||
|
||||
|
||||
|
@ -1945,6 +1948,10 @@ bool Item_func_mod::fix_length_and_dec()
|
|||
if (Item_num_op::fix_length_and_dec())
|
||||
return true;
|
||||
maybe_null= 1;
|
||||
/*
|
||||
result_precision() sets unsigned_flag for INT_RESULT and DECIMAL_RESULT.
|
||||
Here we need to set it in case of REAL_RESULT.
|
||||
*/
|
||||
unsigned_flag= args[0]->unsigned_flag;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ New features compared to NISAM:
|
|||
- Index on BLOB and VARCHAR.
|
||||
- One can now have NULL in an index. This takes 0-1 bytes / key.
|
||||
- MYISAM will allow one to specify one AUTO_INCREMENT column; MYISAM will
|
||||
automaticly update this on INSERT/UPDATE. The AUTO_INCREMENT value can be
|
||||
automatically update this on INSERT/UPDATE. The AUTO_INCREMENT value can be
|
||||
reset with myisamchk.
|
||||
- Max key length will be 500 by default; In cases of longer keys than 250,
|
||||
a bigger key block size than the default of 1024 byes is used for this key.
|
||||
|
@ -39,7 +39,7 @@ New features compared to NISAM:
|
|||
- 'myisamchk -a' stores statistic for key parts (and not only for whole keys
|
||||
as in NISAM).
|
||||
- Dynamic size rows will now be much less fragmented when mixing deletes with
|
||||
update and insert. This is done by automaticly combine adjacent deleted
|
||||
update and insert. This is done by automatically combining adjacent deleted
|
||||
blocks and by extending blocks if the next block is deleted.
|
||||
- For dynamic size rows, the delete link contains a pointer to itself
|
||||
(to make repairs easier).
|
||||
|
|
|
@ -335,7 +335,7 @@ static int _ftb_no_dupes_cmp(void* not_used __attribute__((unused)),
|
|||
When performing prefix search (a word with truncation operator), we
|
||||
must preserve original prefix to ensure that characters which may be
|
||||
expanded/contracted do not break the prefix. This is done by storing
|
||||
newly found key immediatly after the original word in ftbw->word
|
||||
newly found key immediately after the original word in ftbw->word
|
||||
buffer.
|
||||
|
||||
ftbw->word= LENGTH WORD [ LENGTH1 WORD1 ] WEIGHT REFERENCE
|
||||
|
|
|
@ -767,8 +767,8 @@ int ha_myisam::open(const char *name, int mode, uint test_if_locked)
|
|||
growing files. Using an open_flag instead of calling mi_extra(...
|
||||
HA_EXTRA_MMAP ...) after mi_open() has the advantage that the
|
||||
mapping is not repeated for every open, but just done on the initial
|
||||
open, when the MyISAM share is created. Everytime the server
|
||||
requires to open a new instance of a table it calls this method. We
|
||||
open, when the MyISAM share is created. Every time the server
|
||||
requires opening a new instance of a table it calls this method. We
|
||||
will always supply HA_OPEN_MMAP for a permanent table. However, the
|
||||
MyISAM storage engine will ignore this flag if this is a secondary
|
||||
open of a table that is in use by other threads already (if the
|
||||
|
|
|
@ -283,7 +283,7 @@ static int check_k_link(HA_CHECK *param, register MI_INFO *info, uint nr)
|
|||
/*
|
||||
Read the key block with MI_MIN_KEY_BLOCK_LENGTH to find next link.
|
||||
If the key cache block size is smaller than block_size, we can so
|
||||
avoid unecessary eviction of cache block.
|
||||
avoid unnecessary eviction of cache block.
|
||||
*/
|
||||
if (!(buff=key_cache_read(info->s->key_cache,
|
||||
info->s->kfile, next_link, DFLT_INIT_HITS,
|
||||
|
@ -1896,7 +1896,7 @@ int flush_blocks(HA_CHECK *param, KEY_CACHE *key_cache, File file,
|
|||
} /* flush_blocks */
|
||||
|
||||
|
||||
/* Sort index for more efficent reads */
|
||||
/* Sort index for more efficient reads */
|
||||
|
||||
int mi_sort_index(HA_CHECK *param, register MI_INFO *info, char * name)
|
||||
{
|
||||
|
@ -3049,13 +3049,13 @@ err:
|
|||
/*
|
||||
Destroy the write cache. The master thread did already detach from
|
||||
the share by remove_io_thread() or it was not yet started (if the
|
||||
error happend before creating the thread).
|
||||
error happened before creating the thread).
|
||||
*/
|
||||
(void) end_io_cache(&info->rec_cache);
|
||||
/*
|
||||
Destroy the new data cache in case of non-quick repair. All slave
|
||||
threads did either detach from the share by remove_io_thread()
|
||||
already or they were not yet started (if the error happend before
|
||||
already or they were not yet started (if the error happened before
|
||||
creating the threads).
|
||||
*/
|
||||
if (!rep_quick && my_b_inited(&new_data_cache))
|
||||
|
@ -4596,7 +4596,7 @@ void update_auto_increment_key(HA_CHECK *param, MI_INFO *info,
|
|||
keypart_k=c_k for arbitrary constants c_1 ... c_k)
|
||||
|
||||
= {assuming that values have uniform distribution and index contains all
|
||||
tuples from the domain (or that {c_1, ..., c_k} tuple is choosen from
|
||||
tuples from the domain (or that {c_1, ..., c_k} tuple is chosen from
|
||||
index tuples}
|
||||
|
||||
= #tuples-in-the-index / #distinct-tuples-in-the-index.
|
||||
|
|
|
@ -611,7 +611,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
|
|||
klinkname_ptr= klinkname;
|
||||
/*
|
||||
Don't create the table if the link or file exists to ensure that one
|
||||
doesn't accidently destroy another table.
|
||||
doesn't accidentally destroy another table.
|
||||
*/
|
||||
create_flag=0;
|
||||
}
|
||||
|
|
|
@ -326,7 +326,7 @@ static int d_search(register MI_INFO *info, register MI_KEYDEF *keyinfo,
|
|||
{
|
||||
DBUG_PRINT("error",("Didn't find key"));
|
||||
mi_print_error(info->s, HA_ERR_CRASHED);
|
||||
my_errno=HA_ERR_CRASHED; /* This should never happend */
|
||||
my_errno=HA_ERR_CRASHED; /* This should never happen */
|
||||
goto err;
|
||||
}
|
||||
save_flag=0;
|
||||
|
|
|
@ -885,8 +885,8 @@ static int update_dynamic_record(MI_INFO *info, my_off_t filepos, uchar *record,
|
|||
/*
|
||||
Check if next block is a deleted block
|
||||
Above we have MI_MIN_BLOCK_LENGTH to avoid the problem where
|
||||
the next block is so small it can't be splited which could
|
||||
casue problems
|
||||
the next block is so small it can't be split which could
|
||||
cause problems
|
||||
*/
|
||||
|
||||
MI_BLOCK_INFO del_block;
|
||||
|
|
|
@ -211,7 +211,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg)
|
|||
info->read_record= share->read_record;
|
||||
info->opt_flag&= ~(KEY_READ_USED | REMEMBER_OLD_POS);
|
||||
break;
|
||||
case HA_EXTRA_NO_USER_CHANGE: /* Database is somehow locked agains changes */
|
||||
case HA_EXTRA_NO_USER_CHANGE: /* Database is somehow locked against changes */
|
||||
info->lock_type= F_EXTRA_LCK; /* Simulate as locked */
|
||||
break;
|
||||
case HA_EXTRA_WAIT_LOCK:
|
||||
|
@ -352,7 +352,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg)
|
|||
if (share->base.blobs)
|
||||
mi_alloc_rec_buff(info, -1, &info->rec_buff);
|
||||
break;
|
||||
case HA_EXTRA_NORMAL: /* Theese isn't in use */
|
||||
case HA_EXTRA_NORMAL: /* These aren't in use */
|
||||
info->quick_mode=0;
|
||||
break;
|
||||
case HA_EXTRA_QUICK:
|
||||
|
|
|
@ -605,7 +605,7 @@ ulonglong retrieve_auto_increment(MI_INFO *info,const uchar *record)
|
|||
}
|
||||
|
||||
/*
|
||||
The following code works becasue if s_value < 0 then value is 0
|
||||
The following code works because if s_value < 0 then value is 0
|
||||
and if s_value == 0 then value will contain either s_value or the
|
||||
correct value.
|
||||
*/
|
||||
|
|
|
@ -446,7 +446,7 @@ my_bool mi_check_status(void *param)
|
|||
|
||||
@param org_table
|
||||
@param new_table that should point on org_lock. new_table is 0
|
||||
in case this is the first occurence of the table in the lock
|
||||
in case this is the first occurrence of the table in the lock
|
||||
structure.
|
||||
*/
|
||||
|
||||
|
|
|
@ -810,7 +810,7 @@ static void (*get_unpack_function(MI_COLUMNDEF *rec))
|
|||
return &uf_varchar2;
|
||||
case FIELD_LAST:
|
||||
default:
|
||||
return 0; /* This should never happend */
|
||||
return 0; /* This should never happen */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
#include "myisamdef.h"
|
||||
|
||||
/* Read first row through a specfic key */
|
||||
/* Read first row through a specific key */
|
||||
|
||||
int mi_rfirst(MI_INFO *info, uchar *buf, int inx)
|
||||
{
|
||||
|
|
|
@ -432,7 +432,7 @@ int _mi_prefix_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page,
|
|||
|
||||
/*
|
||||
If prefix_len > cmplen then we are in the end-space comparison
|
||||
phase. Do not try to acces the key any more ==> left= 0.
|
||||
phase. Do not try to access the key any more ==> left= 0.
|
||||
*/
|
||||
left= ((len <= cmplen) ? suffix_len :
|
||||
((prefix_len < cmplen) ? cmplen - prefix_len : 0));
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
# MA 02110-1335 USA
|
||||
|
||||
#
|
||||
# Execute some simple basic test on MyISAM libary to check if things
|
||||
# works at all.
|
||||
# Execute some simple basic tests on the MyISAM library to check if
|
||||
# things work at all.
|
||||
|
||||
valgrind="valgrind --alignment=8 --leak-check=yes"
|
||||
silent="-s"
|
||||
|
|
|
@ -378,7 +378,7 @@ static void usage(void)
|
|||
|
||||
puts("Check options (check is the default action for myisamchk):\n\
|
||||
-c, --check Check table for errors.\n\
|
||||
-e, --extend-check Check the table VERY throughly. Only use this in\n\
|
||||
-e, --extend-check Check the table VERY thoroughly. Only use this in\n\
|
||||
extreme cases as myisamchk should normally be able to\n\
|
||||
find out if the table is ok even without this switch.\n\
|
||||
-F, --fast Check only tables that haven't been closed properly.\n\
|
||||
|
|
|
@ -196,7 +196,7 @@ typedef struct st_mi_isam_share
|
|||
ulong last_process; /* For table-change-check */
|
||||
ulong last_version; /* Version on start */
|
||||
ulong options; /* Options used */
|
||||
ulong min_pack_length; /* Theese are used by packed data */
|
||||
ulong min_pack_length; /* These are used by packed data */
|
||||
ulong max_pack_length;
|
||||
ulong state_diff_length;
|
||||
uint rec_reflength; /* rec_reflength in use now */
|
||||
|
|
|
@ -415,7 +415,7 @@ static int examine_log(char * file_name, char **table_names)
|
|||
left_root_right);
|
||||
file_info.id=open_param.max_id+1;
|
||||
/*
|
||||
* In the line below +10 is added to accomodate '<' and '>' chars
|
||||
* In the line below +10 is added to accommodate '<' and '>' chars
|
||||
* plus '\0' at the end, so that there is place for 7 digits.
|
||||
* It is improbable that same table can have that many entries in
|
||||
* the table cache.
|
||||
|
|
|
@ -110,7 +110,7 @@ typedef struct st_isam_mrg {
|
|||
MI_INFO **file,**current,**end;
|
||||
uint free_file;
|
||||
uint count;
|
||||
uint min_pack_length; /* Theese is used by packed data */
|
||||
uint min_pack_length; /* These are used by packed data */
|
||||
uint max_pack_length;
|
||||
uint ref_length;
|
||||
uint max_blob_length;
|
||||
|
@ -1237,7 +1237,7 @@ static void check_counts(HUFF_COUNTS *huff_counts, uint trees,
|
|||
huff_counts->counts[0]=0;
|
||||
goto found_pack;
|
||||
}
|
||||
/* Remeber the number of significant spaces. */
|
||||
/* Remember the number of significant spaces. */
|
||||
old_space_count=huff_counts->counts[' '];
|
||||
/* Add all leading and trailing spaces. */
|
||||
huff_counts->counts[' ']+= (huff_counts->tot_end_space +
|
||||
|
|
|
@ -859,7 +859,7 @@ cleanup:
|
|||
buffpek Where to read from
|
||||
sort_length max length to read
|
||||
RESULT
|
||||
> 0 Ammount of bytes read
|
||||
> 0 Number of bytes read
|
||||
-1 Error
|
||||
*/
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# This logname can be set in /etc/my.cnf
|
||||
# by setting the variable "err-log"
|
||||
# in the [safe_mysqld] section as follows:
|
||||
# by setting the variable "log-error"
|
||||
# in the [mysqld] section as follows:
|
||||
#
|
||||
# [safe_mysqld]
|
||||
# err-log=@localstatedir@/mysqld.log
|
||||
# [mysqld]
|
||||
# log-error=@localstatedir@/mysqld.log
|
||||
#
|
||||
# If the root user has a password you have to create a
|
||||
# /root/.my.cnf configuration file with the following
|
||||
|
@ -21,7 +21,7 @@
|
|||
@localstatedir@/mysqld.log {
|
||||
# create 600 mysql mysql
|
||||
notifempty
|
||||
daily
|
||||
daily
|
||||
rotate 3
|
||||
missingok
|
||||
compress
|
||||
|
|
Loading…
Add table
Reference in a new issue