Commit graph

1547 commits

Author SHA1 Message Date
unknown
9c9bf0aff2 WL#3462 Add testing of MySQL client ABI to prevent unintentional ABI breaks
BUG#23427 incompatible ABI change in 5.0.26?
   - Use the icheck tool if avaliable and compare the current mysql.h to a version
controlled reference file 


BitKeeper/etc/ignore:
  Added include/check_abi include/mysql_h.ic to the ignore list
configure.in:
  Look for icheck in configure
include/Makefile.am:
  Add rule to build mysql_h.ic if icheck is avaliable
  Add rule to compare mysql_h.ic to the version
  controlled reference file mysql_h_abi.ic
include/mysql.h:
  Add comment about taking care when editing mysql.h
  Add example how to add reserved fiels in the structs to
  allow for features to be added without breaking ABI
include/mysql_h_abi.ic:
  Add new file describing the libmysqlclient ABI used as a reference to detect ABI breakage
2006-10-24 20:32:07 +02:00
unknown
23e9415055 Add ATTRIBUTE_FORMAT specifier to _db_doprnt, which is used by DBUG_PRINT
This will hopefully avoiid annoying crashes when running with --debug
Fix warnings  from the above in mysqltest.c


client/mysqltest.c:
  Fix format specifier warnings in mysqltest.c
include/my_dbug.h:
  Add ATTRIBUTE_FORMAT specifier to _db_doprnt, which is used by DBUG_PRINT
  This will hopefully avoiid annoying crashes when running with --debug
2006-10-12 20:15:56 +02:00
unknown
5623f2e9a6 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  polly.local:/home/kaa/src/maint/m41-maint--07OGk


sql/item_timefunc.cc:
  Auto merged
2006-10-11 14:57:09 +04:00
unknown
3baf203483 Merge polly.local:/tmp/maint/bug11655/my41-bug11655
into  polly.local:/home/kaa/src/maint/m41-maint--07OGk


sql/field.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
mysql-test/r/func_time.result:
  Manually merged
mysql-test/t/func_time.test:
  Manually merged
2006-10-11 14:55:23 +04:00
unknown
634d3ff2c6 Fixes a number of problems with time/datetime <-> string conversion functions:
- bug #11655 "Wrong time is returning from nested selects - maximum time exists
- input and output TIME values were not validated properly in several conversion functions
- bug #20927 "sec_to_time treats big unsigned as signed"
- integer overflows were not checked in several functions. As a result, input values like 2^32 or 3600*2^32 were treated as 0
- BIGINT UNSIGNED values were treated as SIGNED in several functions
- in cases where both input string truncation and out-of-range TIME value occur, only 'truncated incorrect time value' warning was produced


include/my_time.h:
  Added defines for the TIME limits
  Added defines for the warning flags set by str_to_time() and check_time_range()
  Added check_time_range() declaration
mysql-test/r/func_sapdb.result:
  Fixed testcases which relied on incorrect TIMEDIFF() behaviour
mysql-test/r/func_time.result:
  Fixed testcase which relied on incorrect behaviour
  Added testcases for out-of-range values in SEC_TO_TIME(), TIME_TO_SEC(), ADDTIME(), SUBTIME() and EXTRACT()
mysql-test/t/func_time.test:
  Added testcases for out-of-range values in SEC_TO_TIME(), TIME_TO_SEC(), ADDTIME(), SUBTIME() and EXTRACT()
sql-common/my_time.c:
  Added check_time_range() to be used from str_to_time() and item_timefunc.cc
  Added new out-of-range flag to str_to_time() warnings
  Use '%u' instead of '%d' in my_*_to_str() because the arguments are unsigned
sql/field.cc:
  Replaced out-of-range checks with checks for flags returned by str_to_time()
sql/item_timefunc.cc:
  Added wrappers over make_datetime() and make_time() which perform out-of-range checks on input values
  Moved common code in Item_func_sec_to_time::val_str() and Item_func_sec_to_time::val_int() into a separate function sec_to_time()
  Replaced calls to make_datetime() with make_datetime_with_warn() in Item_func_add_time and Item_func_timediff
  Checks for 'unsigned int' overflows in Item_func_maketime
  Use make_time_with_warn() instead of make_time() in Item_func_maketime
  Fixed incorrect sizeof() in Item_func_str_to_date::get_time()
sql/time.cc:
  Check for return value of str_to_time() along with warning flags
2006-10-04 17:13:32 +04:00
unknown
cdec7323ec Add ATTRIBUTE_FORMAT_FPTR macro for setting format specifier also on function pointers
This was available from gcc 3.1, so diable it before that
Update m_ctype.h to use the new macro


include/m_ctype.h:
  Use macro ATTRIBUTE_FORMAT_FPTR on function pointer
include/my_global.h:
  Add ATTRIBUTE_FORMAT_FPTR macro for setting format specifier also on function pointers
  This was available from gcc 3.1, so diable it before that
2006-10-03 00:48:26 +02:00
unknown
5bd5f55eee When compiling with qcc on QNC the define __GNUC__will be set although it doesn't support full GNU syntax
- disable __attribute__ when using qcc


include/my_global.h:
  Disable __attribute__ when compiling with qcc
2006-10-02 13:53:10 +02:00
unknown
bde5116b51 Fix __attribute__(A) macro (it formerly used bogus __cplusplus__ symbol) 2006-10-02 13:46:40 +02:00
unknown
89fa50a92b Disable __attribute__ entirely on g++ < 3.4. (Bug #2717)
include/my_global.h:
  Disable __attribute__ on g++ < 3.4. There are actually some forms of it that
  are supported, but rather than create more ATTRIBUTE_<foo> macros to handle
  them, it is easier to just disable them all. We will catch the compiler warnings
  with more recent versions of g++.
2006-09-29 19:28:16 -07:00
unknown
ddb9f8668f Bug#20393 User name truncation in mysql client
Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte


include/mysql_com.h:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  added new constants NAME_BYTE_LEN, USERNAME_BYTE_LENGTH, SYSTEM_CHARSET_MBMAXLEN
mysql-test/r/ctype_utf8.result:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  test case
mysql-test/t/ctype_utf8.test:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  test case
sql-common/client.c:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  increased buffers for user name & db
sql/sql_acl.cc:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  check that user name is not longer than USERNAME_LENGTH symbols
sql/sql_parse.cc:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  increased buffers for user name & db
sql/table.cc:
  Bug#20393 User name truncation in mysql client
  Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte
  check that db name is not longer than NAME_LEN symbols
2006-08-30 15:56:17 +05:00
unknown
915bdfbea8 Bug #2717: include/my_global.h mis-defines __attribute__
Fix when __attribute__() is stubbed out, add ATTRIBUTE_FORMAT() for specifying
  __attribute__((format(...))) safely, make more use of the format attribute,
  and fix some of the warnings that this turns up (plus a bonus unrelated one).


include/m_ctype.h:
  Add ATTRIBUTE_FORMAT to printf-like functions.
include/m_string.h:
  Add ATTRIBUTE_FORMAT to my_snprintf() declaration.
include/my_global.h:
  Fix neutering of __attribute__() on old versions of GCC and non-GCC compilers.
  Add ATTRIBUTE_FORMAT() macro for setting __attribute_((format(...)), since it
  is available from different versions of gcc and g++.
include/my_sys.h:
  Add ATTRIBUTE_FORMAT() to my_printf_error declaration
sql/item_subselect.cc:
  Silence warning about members being initialized out-of-order
sql/item_timefunc.cc:
  Fix format specifier in snprintf() calls with milliseconds
sql/mysql_priv.h:
  Add ATTRIBUTE_FORMAT to printf-like functions.
sql/mysqld.cc:
  Fix various format specifiers
  Make sure that method_conv is always set by myisam_stats_method
sql/opt_range.cc:
  Cast pointers to correct type for %lx
sql/set_var.cc:
  Fix __attribute__((unused)) (missing inner set of parens)
sql/slave.cc:
  Fix format specifier
sql/slave.h:
  Add ATTRIBUTE_FORMAT to slave_print_error() declaration.
sql/sql_acl.cc:
  Fix number of  arguments passed for formatting, and fix acl_host_or_ip being
  passed instead of just the hostname.
sql/sql_class.h:
  Add ATTRIBUTE_FORMAT to MYSQL_LOG::write().
2006-08-17 12:25:40 -07:00
unknown
d9992cc79e Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1.16017


include/sql_common.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_parse.cc:
  Auto merged
libmysqld/libmysqld.c:
  merging
2006-07-13 22:32:18 +05:00
unknown
77deeb7ee6 Fixed include file usage
hp_test2 now works again
Fixed wrong cast, which caused problems with gcc 4.0 and floats in prepared statements (Bug #19694)


heap/hp_test1.c:
  Portability fix
heap/hp_test2.c:
  Added max_table_size (fixes that hp_test2 works again)
include/my_global.h:
  Fixed wrong cast, which caused problems with gcc 4.0 (Bug #19694)
mysys/my_handler.c:
  Added missing include file
strings/strtod.c:
  Fixed include files
2006-06-30 02:25:35 +03:00
unknown
8b6c2d312b bug #20318 (ctype_ucs2_def test fails with embedded)
there was two problems about charsets in embedded server
1. mysys/charset.c - defined there default_charset_info variable is
modified by both server and client code (particularly when
--default-charset option is handled)
In embedded server we get two codelines modifying one variable.
I created separate default_client_charset_info for client code

2. mysql->charset and mysql->options.charset initialization isn't
properly done for embedded server - necessary calls added


include/sql_common.h:
  client charset info default declared
libmysqld/lib_sql.cc:
  thd_init_client_charset calls added
libmysqld/libmysqld.c:
  check_embedded_connection moved to client.c to avoid code duplication
sql-common/client.c:
  charset initialization moved to mysql_init_character_set to
  be used in embedded server
sql/sql_parse.cc:
  thread client charset initialization moved to thd_init_client_charset
  to avoid code duplication
2006-06-19 22:11:01 +05:00
unknown
eadcf20081 bug #16017 (memory leaks in embedded server)
There actually was 3 different problems -
hash_user_connections wasn't cleaned
one strdupped database name wasn't freed
and stmt->mem_root wasn't cleaned as it was
replased with mysql->field_alloc for result
For the last one - i made the library using stmt's
fields to store result if it's the case.


include/mysql.h:
  statement pointer added to the advanced_command to be checked in
  embedded server
include/sql_common.h:
  stmt added to the cli_advanced_command interface
libmysql/libmysql.c:
  stmt pointer now sent to advanced_command
libmysqld/embedded_priv.h:
  it's enough to send database name to check_embedded_connection
libmysqld/lib_sql.cc:
  Now we store result directly in the MYSQL_STMT structure to
  avoid extra copying
libmysqld/libmysqld.c:
  it's enough to only send database pointer to check_embedded_connection
sql-common/client.c:
  stmt fake attribute added to cli_advanced_command
sql/sql_parse.cc:
  hash_user_connections isn't used if no access checks compiled
2006-06-01 17:06:42 +05:00
unknown
a2993441ab Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
refers to a column name.


mysql-test/r/select.result:
  Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
  refers to a column name.
  Added a new test case.
mysql-test/t/select.test:
  Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
  refers to a column name.
  Added a new test case.
sql/share/czech/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/danish/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/dutch/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/english/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/estonian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/french/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/german/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/greek/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.\
sql/share/hungarian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/italian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/japanese-sjis/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.\
sql/share/japanese/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/korean/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/norwegian-ny/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/norwegian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/polish/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/portuguese/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/romanian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/russian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/serbian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/slovak/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/spanish/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/swedish/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
sql/share/ukrainian/errmsg.txt:
  Removed error message ER_INDEX_DOES_NOT_EXIST,
  used ER_KEY_DOES_NOT_EXITS instead.
2006-05-30 00:08:58 -07:00
unknown
42104b2efd Fixed bug #17873: confusing error message when IGNORE/USE/FORCE INDEX
refers to a column name.
Added a new error message ER_INDEX_DOES_NOT_EXIST.


include/mysqld_error.h:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
include/sql_state.h:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
mysql-test/r/explain.result:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
mysql-test/r/key_cache.result:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
mysql-test/r/preload.result:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
mysql-test/r/select.result:
  Added a test case for bug #17873.
mysql-test/t/explain.test:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
mysql-test/t/select.test:
  Added a test case for bug #17873.
sql/share/czech/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/danish/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/dutch/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/english/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/estonian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/french/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/german/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/greek/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/hungarian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/italian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/japanese-sjis/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/japanese/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/korean/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/norwegian-ny/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/norwegian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/polish/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/portuguese/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/romanian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/russian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/serbian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/slovak/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/spanish/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/swedish/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
sql/share/ukrainian/errmsg.txt:
  Fixed bug #17873.
  Added a new error message ER_INDEX_DOES_NOT_EXIST.
2006-05-27 23:57:33 -07:00
unknown
5ceb394fe2 Bug#15869 Cannot shutdown the server - it restarts
- A segfault occured when the function 'kill_server' called 
   'my_sigset' with signal number 0. 'my_sigset' is a macro which
   uses 'sigaction' to install the signal handler with an invalid
   signal number will on most platforms return EINVAL but yields
   a segfauilt on IRIX 6.5
 - The server crash was detected by mysqld_safe and it was restarted although
   a shutdown was requested. 
 - Semantics of kill_server(0) is not known, leaving it intact


include/my_pthread.h:
  Check return value from sigaction with a DBUG_ASSERT
  Also DBUG_ASSERT if signal number 0 is passed
sql/mysqld.cc:
  Don't call my_sigset if signo is 0
2006-05-19 13:07:24 +02:00
unknown
59a73f178b config-win.h:
Fix strange "double" define for popen.
  Avoid warnings about sprintf() etc. being unsafe.
  Corrected typo "#endfif"


include/config-win.h:
  Fix strange "double" define for popen.
  Avoid warnings about sprintf() etc. being unsafe.
  Corrected typo "#endfif"
2006-04-29 15:58:02 +02:00
unknown
5aa14b9832 config-win.h:
If CYBOZU defined, set character sets etc


include/config-win.h:
  If CYBOZU defined, set character sets etc
2006-03-23 17:25:49 +01:00
unknown
278b83a84d Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/bar/mysql-4.1.b15376


include/m_ctype.h:
  Auto merged
strings/ctype-bin.c:
  Auto merged
strings/ctype-euc_kr.c:
  Auto merged
strings/ctype-gb2312.c:
  Auto merged
strings/ctype-ucs2.c:
  Auto merged
2006-03-23 14:29:43 +04:00
unknown
83bc8c4e38 Bug#17374: select ... like 'A%' operator fails to find value on columuns with key
Fixed that LIKE worked case insensitively for latin2_czech_cs,
which was wrong for a case sensitive collation.


include/m_ctype.h:
  Making my_wildcmp_bin public instead of static
strings/ctype-bin.c:
  Making my_wildcmp_bin public instead of static
strings/ctype-czech.c:
  Use my_wildcmp_bin instead of case insensitive my_wildcmp_8bit
mysql-test/include/have_latin2_ch.inc:
  New BitKeeper file ``mysql-test/include/have_latin2_ch.inc''
mysql-test/r/ctype_latin2_ch.result:
  New BitKeeper file ``mysql-test/r/ctype_latin2_ch.result''
mysql-test/r/have_latin2_ch.require:
  New BitKeeper file ``mysql-test/r/have_latin2_ch.require''
mysql-test/t/ctype_latin2_ch.test:
  New BitKeeper file ``mysql-test/t/ctype_latin2_ch.test''
2006-03-20 16:28:25 +04:00
unknown
fbe17c2a36 Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
For "count(*) while index_column = value" an index read
is done. It consists of an index scan and retrieval of
each key.

For efficiency reasons the index scan stores the key in
the special buffer 'lastkey2' once only. At the first 
iteration it notes this fact with the flag 
HA_STATE_RNEXT_SAME in 'info->update'.

For efficiency reasons, the key retrieval for blobs
does not allocate a new buffer, but uses 'lastkey2'...

Now I clear the HA_STATE_RNEXT_SAME flag whenever the 
buffer has been polluted. In this case, the index scan
copies the key value again (and sets the flag again).


include/my_base.h:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Changed the comment for HA_STATE_RNEXT_SAME as a warning
  for future uses.
myisam/mi_delete.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_key.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_rnext_same.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removed trailing space and fixed a comment.
myisam/mi_unique.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_update.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
myisam/mi_write.c:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Removing the flag HA_STATE_RNEXT_SAME from info->update
  if info->lastkey2 was reused for another purpose than
  index scanning.
mysql-test/r/myisam.result:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Added test result.
mysql-test/t/myisam.test:
  Bug#14980 - COUNT(*) incorrect on MyISAM table with certain INDEX
  Added test.
2006-03-10 15:03:04 +01:00
unknown
79f575a8f7 Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-4.1
into  c-5c0be253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug12796
2006-01-27 09:29:59 -05:00
unknown
1665d23707 Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.0
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1


include/config-netware.h:
  Auto merged
innobase/os/os0thread.c:
  Auto merged
netware/mysqld_safe.c:
  Merge from 4.0 to 4.1
sql/mysqld.cc:
  Merge from 4.0 to 4.1
2006-01-12 17:47:58 +02:00
unknown
2946f9a64f NetWare specific change to increase thread stack size.
Changes to Netware specific mysqld_safe.c


include/config-netware.h:
  NetWare specific change to increase thread stack size.
innobase/os/os0thread.c:
  NetWare specific change to increase thread stack size.
netware/mysqld_safe.c:
  NetWare specific change to make multiple mysqld_safe instances
  work when called through a NCF file.
sql/mysqld.cc:
  NetWare specific change to increase thread stack size.
2006-01-12 15:10:12 +02:00
unknown
31ff9e9a10 A fix for Bug#13944 "libmysqlclient exporting sha1_result function":
rename sha1_* to mysql_sha1_*


include/sha1.h:
  rename sha1_* to mysql_sha1_*
mysys/sha1.c:
  rename sha1_* to mysql_sha1_*
sql/item_strfunc.cc:
  rename sha1_* to mysql_sha1_*
sql/password.c:
  rename sha1_* to mysql_sha1_*
2006-01-11 17:31:52 +03:00
unknown
f577d864cd A fix for Bug#7209 "Client error with "Access Denied" on updates
when high concurrency": remove HASH::current_record and make it
an external search parameter, so that it can not be the cause of a 
race condition under high concurrent load.
The bug was in a race condition in table_hash_search,
when column_priv_hash.current_record was overwritten simultaneously
by multiple threads, causing the search for a suitable grant record
to fail.
No test case as the bug is repeatable only under concurrent load.


include/hash.h:
  - remove current_record from HASH, instead modify hash_first,
  hash_next to accept HASH_SEARCH_STATE as an IN/OUT parameter
mysys/hash.c:
  - remove HASH::current_record
  - change declarations of functions that use HASH in read-only mode
    to accept const HASH * instead of HASH *. 
  - implement hash_search; move the old implementation of hash_search
  to hash_first
mysys/testhash.c:
  - adjust the test case to changed function declarations
sql/lock.cc:
  - adjust to changed declarations of hash_search, hash_next
sql/sql_acl.cc:
  - adjust to changed declarations of hash_search, hash_next
sql/sql_base.cc:
  - adjust to changed declarations of hash_search, hash_nex
sql/sql_cache.cc:
  - adjust to a changed declaration of hash_replace
2006-01-04 17:35:30 +03:00
unknown
a464e01713 Bug#15375 Unassigned multibyte codes are broken
into parts when converting to Unicode.
m_ctype.h:
  Reorganizing mb_wc return codes to be able
  to return "an unassigned N-byte-long character".
sql_string.cc:
  Adding code to detect and properly handle
  unassigned characters (i.e. the those character
  which are correctly formed according to the 
  character specifications, but don't have Unicode
  mapping).
Many files:
  Fixing conversion function to return new codes.
ctype_ujis.test, ctype_gbk.test, ctype_big5.test:
  Adding a test case.
ctype_ujis.result, ctype_gbk.result, ctype_big5.result:
  Fixing results accordingly.


include/m_ctype.h:
  Reorganizing mb_wc return codes to be able
  to return "an unassigned N-byte long character".
  Bug#15375 Unassigned multibyte codes are broken into parts when converting to Unicode.
mysql-test/r/ctype_big5.result:
  Fixing results accordingly.
mysql-test/r/ctype_gbk.result:
  Fixing results accordingly.
mysql-test/r/ctype_ujis.result:
  Fixing results accordingly.
mysql-test/t/ctype_big5.test:
  Adding a test case.
mysql-test/t/ctype_gbk.test:
  Adding a test case.
mysql-test/t/ctype_ujis.test:
  Adding a test case.
sql/sql_string.cc:
  Adding code to detect and properly hanlde
  unassigned characters (i.e. the those character
  which are correctly formed according to the 
  character specifications, but don't have Unicode
  mapping).
strings/ctype-big5.c:
  Fixing conversion function to return new codes.
strings/ctype-bin.c:
  Fixing conversion function to return new codes.
strings/ctype-cp932.c:
  Fixing conversion function to return new codes.
strings/ctype-euc_kr.c:
  Fixing conversion function to return new codes.
strings/ctype-gb2312.c:
  Fixing conversion function to return new codes.
strings/ctype-gbk.c:
  Fixing conversion function to return new codes.
strings/ctype-latin1.c:
  Fixing conversion function to return new codes.
strings/ctype-simple.c:
  Fixing conversion function to return new codes.
strings/ctype-sjis.c:
  Fixing conversion function to return new codes.
strings/ctype-tis620.c:
  Fixing conversion function to return new codes.
strings/ctype-ucs2.c:
  Fixing conversion function to return new codes.
strings/ctype-ujis.c:
  Fixing conversion function to return new codes.
strings/ctype-utf8.c:
  Fixing conversion function to return new codes.
2005-12-12 21:42:09 +04:00
unknown
baff781ba4 Minor Win32 compile fixes for 4.1.16 release.
sql/log_event.cc:
  Add missing cast needed for Win32 compilation.
include/config-win.h:
  Win32 compile fix: quote multi-line macros with do { ... } while(0) to follow earlier changes in my_global.h.
2005-11-28 15:07:20 +01:00
unknown
b2f028c56a Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-4.1
into  c-5608e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/mysql-4.1
2005-11-22 12:16:22 -05:00
unknown
95b92b4369 Bug #14514 Creating table with packed key fails silently
- Backport from 5.0


include/my_base.h:
  Rename HA_CREATE_FROM_ENGINE to HA_OPTION_CREATE_FROM_ENGINE, ie. it's a bit in the table_options variable
mysql-test/r/ndb_basic.result:
  Add test result
mysql-test/t/ndb_basic.test:
  Add test case for bug14514
sql/ha_ndbcluster.cc:
  Use new bitmask for table_options to detect if create from engine
sql/handler.cc:
  Use new bit for create from engine
2005-11-21 12:27:58 +01:00
unknown
bba73a0910 Bug #12796: Record lost in HEAP table
Two handler objects were present, one was used for an insert and the other for a select
The state of the statistics was local to the handler object and thus the other handler
object didn't notice the insert.
Fix included:
1) Add a new variable key_stat_version added to whenever statistics was considered in need
of update (previously key_stats_ok= FALSE in those places)
2) Add a new handler variable key_stat_version assigned whenever key_stats_ok= TRUE was set
previously
3) Fix records_in_range to return records if records <= 1
4) Fix records_in_range to add 2 to rec_per_key to ensure we don't specify 0 or 1 when it isn't
and thus invoking incorrect optimisations.
5) Fix unique key handling for HEAP table in records_in_range
2005-11-08 00:26:37 -05:00
unknown
b0701a5c3b Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-distcheck


Makefile.am:
  Auto merged
configure.in:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
2005-11-04 01:15:35 +01:00
unknown
8cb789ab81 Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1


include/config-netware.h:
  Auto merged
2005-10-28 14:04:06 +03:00
unknown
8db3252fa6 NetWare specific change to use a LibC API instead of a
kernel function to prevent CPU hogs.
2005-10-28 14:01:00 +03:00
unknown
a345629ac6 Imported fixes from 4.1 and 5.0 to 4.0. 2005-10-25 16:56:25 +03:00
unknown
8d6634c9e0 Added more tests for new UPDATE ... ORDER BY ... LIMIT optimization
heap/_check.c:
  Change arguments to ha_key_cmp
heap/hp_create.c:
  Change arguments to ha_key_cmp
include/my_base.h:
  Remove SEARCH_RETURN_B_POS and instead always send an array to ha_key_cmp() as last argument
myisam/mi_check.c:
  Change arguments to ha_key_cmp
myisam/mi_rnext_same.c:
  Change arguments to ha_key_cmp
myisam/mi_search.c:
  Change arguments to ha_key_cmp
myisam/mi_write.c:
  Change arguments to ha_key_cmp
myisammrg/myrg_queue.c:
  Change arguments to ha_key_cmp
mysys/my_handler.c:
  Remove SEARCH_RETURN_B_POS and instead always send an array to ha_key_cmp() as last argument
  (This removes an if in a loop at the expensive of an int on the stack)
sql/records.cc:
  Simplify new rr_index() code
  Create common error handling function for rr_() functions.
  Remove loop from rr_index() as handler::index_next() can never return HA_ERR_RECORD_DELETED
sql/sql_load.cc:
  Simplify
sql/sql_update.cc:
  Simplify code
  Fixed bug when one is updating an index column that could be used with ORDER BY
sql/structs.h:
  Removed not needed structure element
2005-10-25 02:27:40 +03:00
unknown
3c02a0534d Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-nulls-stats-r2


sql/mysqld.cc:
  Auto merged
2005-10-23 02:49:57 +04:00
unknown
02dc7bfb1a BUG#9622: post-review-fixes: better comments 2005-10-23 02:46:10 +04:00
unknown
71fdef4d10 BUG#9622, stage 2, work together with fix for BUG#12232:
added "nulls_ignored" index statistics collection method for MyISAM tables.
(notification trigger: this is about BUG#9622).


include/my_base.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method:
  Added SEARCH_RETURN_B_POS flag for ha_key_cmp()
include/my_handler.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method: added ha_find_null()
include/myisam.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
myisam/mi_check.c:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method, added 
   mi_collect_stats_*(), updated update_key_parts() to deal with all 3 methods.
myisam/myisamchk.c:
  BUG#9622: Added nulls_ignored index statistics collection method for MyISAM
myisam/myisamdef.h:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
myisam/sort.c:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
mysql-test/r/myisam.result:
  Testcase for BUG9622
mysql-test/t/myisam.test:
  Testcase for BUG9622
mysys/my_handler.c:
  BUG#9622: ha_key_cmp() now supports new SEARCH_RETURN_B_POS flag, added ha_find_null()
sql/ha_myisam.cc:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
sql/mysqld.cc:
  BUG#9622: Added MI_STATS_METHOD_IGNORE_NULLS statistics collection method.
2005-10-21 06:29:17 +04:00
unknown
5de7ba46e8 Merge mysql.com:/usr/home/ram/work/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.1


myisam/mi_search.c:
  Auto merged
include/m_string.h:
  SCCS merged
2005-10-13 12:48:30 +05:00
unknown
6c89848de9 memcpy_overlap() removed, as
1. it's wrong to use memcpy() for overlapped areas;
  2. we use it only once.
During merge to 4.1 will remove a memcpy_overlap() call 
from strings/ctype-tis620.c as well in order to fix 
bug #10836: ctype_tis620 test failure with ICC-compiled binaries on IA64.


myisam/mi_search.c:
  use memmove() instead, as memcpy_overlap() is removed.
2005-10-12 18:50:25 +05:00
unknown
e61dea1b36 Fix wait_timeout (and kill) handling on Mac OS X by cleaning up how
signal handlers are set up, the blocking flags for sockets are set,
and which thread-related functions are used. (Bug #8731)


configure.in:
  Fix flags for Darwin 6 and later. Simplify Darwin 7-9 blocks to simply
  be a catch-all for *darwin* so that future Darwin releases get the
  latest flags.
include/config-win.h:
  Define my_sigset() instead of sigset().
include/my_pthread.h:
  Define my_sigset() instead of trying to monkey with sigset(), and favor
  an implementation based on sigaction().
mysys/my_pthread.c:
  Remove pthread_signal(), which is identical to the new my_sigset() macro.
mysys/thr_alarm.c:
  Use my_sigset() instead of sigset().
sql/mysqld.cc:
  Use my_sigset() instead of signal() and sigset(), remove unnecessary
  definition of sigset on __amiga__. Remove unused THREAD_SPECIFIC_SIGPIPE
  code.
  
  A future improvement would be to re-assess the use of sigaction() here
  and convert its usage to use my_sigset().
vio/vio.c:
  Always call fcntl() to initialize flags of socket in initialization to
  avoid problems on systems that don't report the flags on a socket
  correctly right after it has been returned from accept(), such as
  FreeBSD, Mac OS X, and possibly other BSD-derived systems.
vio/viosocket.c:
  If fcntl() fails in vio_blocking(), restore the flags stored in the
  vio struct.
mysql-test/r/wait_timeout.result:
  New BitKeeper file ``mysql-test/r/wait_timeout.result''
mysql-test/t/wait_timeout-master.opt:
  New BitKeeper file ``mysql-test/t/wait_timeout-master.opt''
mysql-test/t/wait_timeout.test:
  New BitKeeper file ``mysql-test/t/wait_timeout.test''
2005-10-11 09:12:12 -07:00
unknown
5409f2554f Makefile.am, configure.in:
Enable "make distcheck" to work


configure.in:
  Enable "make distcheck" to work
Docs/Makefile.am:
  Enable "make distcheck" to work
Makefile.am:
  Enable "make distcheck" to work
client/Makefile.am:
  Enable "make distcheck" to work
cmd-line-utils/libedit/Makefile.am:
  Enable "make distcheck" to work
include/Makefile.am:
  Enable "make distcheck" to work
libmysql/Makefile.am:
  Enable "make distcheck" to work
libmysql_r/Makefile.am:
  Enable "make distcheck" to work
libmysqld/Makefile.am:
  Enable "make distcheck" to work
libmysqld/examples/Makefile.am:
  Enable "make distcheck" to work
mysql-test/Makefile.am:
  Enable "make distcheck" to work
ndb/docs/Makefile.am:
  Enable "make distcheck" to work
netware/Makefile.am:
  Enable "make distcheck" to work
pstack/Makefile.am:
  Enable "make distcheck" to work
scripts/Makefile.am:
  Enable "make distcheck" to work
sql-bench/Makefile.am:
  Enable "make distcheck" to work
sql/Makefile.am:
  Enable "make distcheck" to work
sql/share/Makefile.am:
  Enable "make distcheck" to work
support-files/Makefile.am:
  Enable "make distcheck" to work
2005-09-24 15:51:45 +02:00
unknown
458a4234e4 Merge mysql.com:/home/psergey/bk-trees/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-csc6030-r3


sql/mysqld.cc:
  Auto merged
2005-09-21 02:20:55 +04:00
unknown
a2a8216b20 BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index
statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)


include/myisam.h:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/mi_check.c:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/myisamchk.c:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/r/myisam.result:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/t/myisam.test:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/ha_myisam.cc:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/handler.h:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/mysqld.cc:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/set_var.cc:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/sql_class.h:
  BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
2005-09-21 02:18:29 +04:00
unknown
1818ff1c22 Merge svlasenko@bk-internal.mysql.com:/home/bk/mysql-4.1
into  selena.:H:/MYSQL/src/#12929-mysql-4.1


include/my_sys.h:
  Auto merged
2005-09-20 20:11:38 +04:00
unknown
627bf43d9f Fixes bug #12929. Uses my_cgets instead of _cgets function, thus eliminating
a restriction to 255 chars for editable buffer.


VC++Files/mysys/mysys.dsp:
  Added my_conio.c
VC++Files/mysys/mysys_ia64.dsp:
  Added my_conio.c
include/my_sys.h:
  Added declarations for my_conio.c functions
mysys/my_conio.c:
  Added _cgets() replacement that is not limited to 255 chars retrieval
  from win32 console.
2005-09-16 01:56:16 +04:00
unknown
5fe65297d2 Bug#12920 - key_read_requests counter appears to re-set
After merge fix.


include/keycache.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Enlarging them there.
include/my_sys.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Removed unused global variables.
myisam/mi_test2.c:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Changed to print default key cache status.
mysys/mf_keycache.c:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Changed their debug printout.
sql/mysqld.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Changed to print full value.
sql/sql_show.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Added a branch for long long values.
sql/sql_test.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  changed to print full values.
sql/structs.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Added a branch for long long keycache values.
2005-09-14 13:18:16 +02:00