Commit graph

21809 commits

Author SHA1 Message Date
unknown
da9c659c81 Bug#26464 - insert delayed + update + merge = corruption
Using INSERT DELAYED on MERGE tables could lead to table
corruptions.

The manual lists a couple of storage engines, which can be
used with INSERT DELAYED. MERGE is not in this list.

The attempt to try it anyway has not been rejected yet.
This bug was not detected earlier as it can work under
special circumstances. Most notable is low concurrency.

To be safe, this patch rejects any attempt to use INSERT
DELAYED on MERGE tables.


mysql-test/r/merge.result:
  Bug#26464 - insert delayed + update + merge = corruption
  Added test result.
mysql-test/t/merge.test:
  Bug#26464 - insert delayed + update + merge = corruption
  Added test.
sql/ha_myisammrg.h:
  Bug#26464 - insert delayed + update + merge = corruption
  Removed HA_CAN_INSERT_DELAYED flag from table_flags().
  The insert delayed thread upgrades the lock from the first
  entry in MYSQL_LOCK::locks only. Hence it is incapable to
  handle MERGE tables, which have as many entries in this
  array as they have MyISAM sub-tables.
2007-03-05 11:52:28 +01:00
unknown
af1f49b77e Merge bk-internal.mysql.com:/data0/bk/mysql-4.1
into  bk-internal.mysql.com:/data0/bk/mysql-4.1-opt
2007-02-13 21:25:22 +01:00
unknown
82e677b947 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint


sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
2007-02-13 10:54:04 -05:00
unknown
38fa86a12e Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/25492/my41-25492
2007-02-13 01:18:52 +04:00
unknown
fd76e14893 bug #25492 (Invalid deallocation in mysql_stmt_fetch)
libmysqld/lib_sql.cc:
  code modified to prevent freeing of memory that wasn't malloc-ed.
  Now we check if MYSQL_STMT::result was used.
2007-02-13 00:55:45 +04:00
unknown
8a34c4bb78 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/tnurnberg/24660/41-24660


sql/table.cc:
  Auto merged
2007-02-12 14:39:45 +01:00
unknown
4dc7c1aa46 Bug#24660: "enum" field type definition problem
ENUMs weren't allowed to have character 0xff, a perfectly good character in some locales.
This was circumvented by mapping 0xff in ENUMs to ',', thereby prevent actual commas from
being used. Now if 0xff makes an appearance, we find a character not used in the enum and
use that as a separator. If no such character exists, we throw an error.

Any solution would have broken some sort of existing behaviour. This solution should
serve both fractions (those with 0xff and those with ',' in their enums), but
WILL REQUIRE A DUMP/RESTORE CYCLE FROM THOSE WITH 0xff IN THEIR ENUMS. :-/
That is, mysqldump with their current server, and restore when upgrading to one with
this patch.


mysql-test/r/type_enum.result:
  Bug#24660: "enum" field type definition problem
  
  Show that enums can now contain NAMES_SEP_CHAR (0xff, which is a perfectly respectable
  char in some locales), or ',', or both.
mysql-test/t/type_enum.test:
  Bug#24660: "enum" field type definition problem
  
  Show that enums can now contain NAMES_SEP_CHAR (0xff, which is a perfectly respectable
  char in some locales), or ',', or both.
sql/table.cc:
  Bug#24660: "enum" field type definition problem
  
  Revert fix for Bug#20922.
sql/unireg.cc:
  Bug#24660: "enum" field type definition problem
  
  Use a field-separator for ENUM-values that is not part of those values. If impossible,
  throw error.
2007-02-12 14:31:44 +01:00
unknown
43ada21fe1 Merge siva.hindu.god:/home/tsmith/m/bk/41
into  siva.hindu.god:/home/tsmith/m/bk/maint/41


sql/sql_prepare.cc:
  Manual merge
2007-02-08 16:01:13 -07:00
unknown
7c08621c5a Merge mysql.com:/home/gluh/MySQL/Merge/4.1
into  mysql.com:/home/gluh/MySQL/Merge/4.1-opt


sql/item_func.cc:
  Auto merged
2007-02-08 14:54:49 +04:00
unknown
75d614e053 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  poseidon.mysql.com:/home/tomas/mysql-4.1-ndb
2007-02-08 00:25:30 +07:00
unknown
0554802f3c Merge 192.168.0.10:mysql/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint
2007-02-06 23:01:01 +01:00
unknown
665d9e30fb Bug#25344 Segmentation violation when try to run the perror utility
- strerror might return NULL on some platforms


extra/perror.c:
  Backport fix from 5.0
2007-02-06 23:00:18 +01:00
unknown
31aee856d8 Merge 192.168.0.10:mysql/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint


mysys/default.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2007-02-06 14:44:05 +01:00
unknown
b93d81a8d1 Merge neptunus.(none):/home/msvensson/mysql/my41-nmj
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint


sql/sql_prepare.cc:
  Auto merged
2007-02-06 14:42:40 +01:00
unknown
4660f6d5ef Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint
2007-02-06 14:27:43 +01:00
unknown
f58351c158 Merge 192.168.0.10:mysql/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint


sql/sql_prepare.cc:
  Auto merged
2007-02-06 14:27:00 +01:00
unknown
1d2d9a033d Bug#8983 one place that isn't strict-aliasing-safe
- Backport fix from 5.0


sql/sql_prepare.cc:
  Avoid problems with -no-strict-aliasing in gcc 4.0+
2007-02-06 14:07:40 +01:00
unknown
70323365c1 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/usr/home/ram/work/bug23938/my41-bug23938


sql/item_timefunc.cc:
  Auto merged
2007-02-06 14:58:07 +04:00
unknown
9946ed16f3 Test and bug fixes and removed unneccessary files.
mysys/my_getopt.c:
  Fixes problem with getting output lines from
  my_getopt in random places in tests.
sql/sql_prepare.cc:
  Fixes problem with failing mysql_client_test
  on some machines. This is actually a problem
  with prepared statements.
2007-02-05 17:09:44 +02:00
unknown
30edb3cd0f Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/usr/home/ram/work/bug10798/my41-bug10798


sql/slave.cc:
  Auto merged
2007-02-05 10:20:47 +04:00
unknown
0dc19dadb9 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-02-02 20:23:03 +01:00
unknown
98b9ac693a After merge fix 2007-02-02 20:19:13 +01:00
unknown
04cbadde7a another valgrind error fix for 4.1(backport from 5.0) 2007-02-02 17:18:42 +04:00
unknown
84445bbb5d Valgrind errors
added valgrind.supp to EXTRA_SCRIPTS(for pushbuild)
2007-02-02 15:01:11 +04:00
unknown
5305cd7caf After merge fix 2007-02-02 10:01:44 +01:00
unknown
3b8011015f Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/ram/work/b26012/b26012.4.1


sql/field.h:
  Auto merged
2007-02-01 19:56:14 +04:00
unknown
4e1772e990 Fix for bug #26012: missed Field_double::size_of()
As we have Field_double::not_fixed we must have Field_double::size_of().


sql/field.h:
  Fix for bug #26012: missed Field_double::size_of()
    - Field_double::size_of() added.
2007-02-01 19:51:02 +04:00
unknown
bdd52e8970 Merge dev3-63.(none):/home/zhl/mysql/tree-merge/4.1/mysql-4.1-ndb-bj
into  dev3-63.(none):/home/zhl/mysql/tree-merge/4.1/mysql-4.1-ndb
2007-02-01 15:48:23 +00:00
unknown
5698114c97 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-02-01 15:51:25 +01:00
unknown
2df2922586 Valgrind error fixes
Notes:
This patch doesn't fix all issues in the tree and we need jani's fix for that
This patch shoud not be merged into 5.0


mysql-test/r/ps.result:
  result fix
mysql-test/r/symlink.result:
  result fix
mysql-test/t/ps.test:
  test is moved to 'symlink' test
mysql-test/t/symlink.test:
  test from 'ps' test
sql/field_conv.cc:
  valgrind error fix: backport from 5.0
sql/mysqld.cc:
  release of ssl_context
vio/viosslfactories.c:
  release of ssl_context
mysql-test/valgrind.supp:
  New BitKeeper file ``mysql-test/valgrind.supp''
  This file is backported from 5.0, added suppressing of OpenSSL errors
2007-02-01 18:00:24 +04:00
unknown
62fdcb54a7 Merge chilla.local:/home/mydev/mysql-4.0-axmrg
into  chilla.local:/home/mydev/mysql-4.1-axmrg


include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/thr_alarm.h:
  Auto merged
mysys/default.c:
  Auto merged
mysys/my_pthread.c:
  Auto merged
mysys/thr_alarm.c:
  Auto merged
mysys/my_thr_init.c:
  Manual merged
sql/mysqld.cc:
  Manual merged
2007-02-01 08:09:36 +01:00
unknown
a94b1b5077 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-02-01 07:52:28 +01:00
unknown
70fe372a2c Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint


configure.in:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
scripts/mysqld_multi.sh:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-01-31 16:26:12 -05:00
unknown
659a1255af Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-4.1-maint


configure.in:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
2007-01-31 16:23:10 -05:00
unknown
539465508c Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  qualinost.(none):/home/mtaylor/src/mysql-4.1-maint
2007-01-31 15:35:26 -05:00
unknown
ab3abe1232 Merge mysql.com:/home/svoj/devel/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/WL3567/mysql-4.1-engines
2007-01-31 16:17:27 +04:00
unknown
f7b3c7c531 WL#3567 - MERGE engine: a check for underlying table conformance
When a merge table is opened compare column and key definition of
underlying tables against column and key definition of merge table.

If any of underlying tables have different column/key definition
refuse to open merge table.


mysql-test/r/merge.result:
  A test case for WL#3456.
mysql-test/t/merge.test:
  A test case for WL#3456.
sql/ha_myisam.cc:
  Moved a part of code that converts TABLE object to MyISAM key and column
  definition to a separate function.
  
  Added check_definition() function that compares MyISAM table definitions.
sql/ha_myisammrg.cc:
  Check if underlying table definition conforms to merge table definition,
  and in case underlying table definition differs, refuse to open merge
  table.
2007-01-31 16:15:20 +04:00
unknown
fee0649caa Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/ram/work/b19690/b19690.4.1


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-01-31 14:47:06 +04:00
unknown
faad73550c fix for bug #19690: ORDER BY eliminates rows from the result
Depending on the queries we use different data processing methods
and can lose some data in case of double (and decimal in 4.1) fields.

The fix consists of two parts:
1. double comparison changed, now double a is equal to double b 
if (a-b) is less than 5*0.1^(1 + max(a->decimals, b->decimals)). 
For example, if a->decimals==1, b->decimals==2, a==b if (a-b)<0.005
2. if we use a temporary table, store double values there as is 
to avoid any data conversion (rounding).


mysql-test/r/type_float.result:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - test result
mysql-test/t/type_float.test:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - test case
sql/field.cc:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - use not_fixed flag instead of dec to check bounds.
sql/field.h:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - Field_Double::not_fixed flag introduced, which is set if dec == NOT_FIXED_DEC
      and is used in the ::store() to check bounds. 
    - new constructor introduced (with not_fixed_arg parameter).
sql/init.cc:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - fill log_01[] array with 0.1 powers.
sql/item_cmpfunc.cc:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - compare_real_fixed() and compare_e_real_fixed() introduced,
      they consider double a == double b if a-b is less than 'precision',
      'precision' is set to 5*0.1^(1 + max(a->decimals, b->decimals)), 
      for example, if a->decimals==1, b->decimals==2, 'precision' is 0.005
    - use the above functions if both arguments are fixed.
sql/item_cmpfunc.h:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - Arg_comparator::presision introduced.
    - Arg_comparator::compare_real_fixed(), Arg_comparator::compare_e_real_fixed() introduced.
sql/mysql_priv.h:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - log_01 array of 0.1 powers added.
sql/mysqld.cc:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - log_01 array of 0.1 powers added.
sql/sql_select.cc:
  fix for bug #19690: ORDER BY eliminates rows from the result
    - if we create double field in a temporary table, set not_fixed flag
      (use proper constructor) to avoid data conversion 
      in the Field_double::store(). Otherwise we can lose some data.
2007-01-31 09:51:05 +04:00
unknown
1944b4ca01 Fixed bug #24987.
Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
no matches were found (instead of -1 it returned prior this patch).
This changes allow us to avoid possible conflicts with return values
from user-defined handler methods which also may return -1. 
No particular test cases are provided with this fix.


sql/opt_sum.cc:
  Fixed bug #24987.
  Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
  no matches were found (instead of -1 it returned prior this patch).
  This changes allow us to avoid possible conflicts with return values
  from user-defined handler methods which also may return -1.
sql/sql_select.cc:
  Fixed bug #24987.
  Made the function opt_sum_query to return HA_ERR_KEY_NOT_FOUND when
  no matches were found (instead of -1 it returned prior this patch).
  This changes allow us to avoid possible conflicts with return values
  from user-defined handler methods which also may return -1.
2007-01-30 13:06:36 -08:00
unknown
7be3cad45d Merge bk://localhost:5559
into  production.mysql.com:/usersnfs/jamppa/mysql-4.0


include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
mysys/default.c:
  Auto merged
mysys/my_pthread.c:
  Auto merged
mysys/my_thr_init.c:
  Auto merged
mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-01-30 17:52:27 +01:00
unknown
cdf6001aeb Cleanup of thread-type (linuxthread or NTPL) detection code
Move get_thread_lib to mysys/my_pthread.c
Set 'thr_client_alarm' to signal number used by thr_alarm to give alarms


include/my_global.h:
  Fixed to be same as in 5.1
include/my_pthread.h:
  Move things around to be more in line with rest of code
mysys/default.c:
  Fixed two wrong pointer incrementations.
mysys/my_pthread.c:
  Cleanup: Use variable thr_client_alarm
mysys/my_thr_init.c:
  Detect thread library at startup.
  Set also thr_client_alarm signal here, so that we get
  it in init_signals() in mysqld
mysys/thr_alarm.c:
  Set thr_client_alarm depending on which thread library we are using
sql/mysqld.cc:
  Move get_thread_lib to mysys/my_pthread.c
2007-01-30 18:52:26 +02:00
unknown
72a0d0048f Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  qualinost.(none):/home/mtaylor/src/mysql-4.1-maint
2007-01-29 12:26:43 -05:00
unknown
d308799383 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
mysql-test/r/myisam.result:
  Manual merged
mysql-test/t/myisam.test:
  Manual merged
2007-01-29 17:20:18 +01:00
unknown
b44ae6480b Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint
2007-01-29 17:19:38 +01:00
unknown
5776283ec4 Merge pilot.mysql.com:/home/msvensson/mysql/bug22943/my41-bug22943
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint


sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-29 16:19:59 +01:00
unknown
a195ad5ea2 Bug#22943 syscall pruning in libmysql
- Set the timeout values only where needed


sql/mysql_priv.h:
  Add new functions for setting read and write timeout on "net"
sql/mysqld.cc:
  - Move the setting of "read_timeout" to the value of "connect_timeout" to
    just before 'check_connection' which is the function where we want
    to use the different timeout
  - With the new functions to set timeout on "net", there is no need to
    specifically set the default wait_timeout on windows.
sql/net_serv.cc:
  Add new functions for setting read and write timeout of "net, when
  server is compiled not to use alarms it will set the write/read timeout
  directly on connection using 'vio_timeout'(using setsockopt if socket)
sql/repl_failsafe.cc:
  Put unused code within "#if NOT_USED"
sql/set_var.cc:
  Use 'net_set_*_timeout' when adjusting timeout value
  on the current connection
sql/slave.cc:
  The read timeout used when connecting to master server is set
  using 'mysql_options' in 'connect_to_master' function
sql/sql_parse.cc:
  - Set read and write timeout values to "connect_timeout" during
  connect phase
  - Use "read_timeout" value during sslaccept phase, since this is during
  connect phase it implies "connect-timeout"
  - Set read and write timeout value back to default after connect phase
  - Set "read_timeout" to "wait_timeout" while waiting for client.
sql/sql_repl.cc:
  Set "read_timeout" to "wait_timeout" while ask other mysqld to send file
sql-common/client.c:
  Call 'vio_timeout' to set up the read and write timeout's for the
  newly created connection. It only need to be done once at connect time.
vio/vio.c:
  Use 'vio_timeout' for setting timeout also on an SSL connection
  since they both use sockets
vio/viossl.c:
  Remove 'vio_ssl_timeout' function
2007-01-29 14:31:48 +01:00
unknown
925d4fb921 bug #25492 (Invalid deallocation in mysql_stmt_fetch)
Operating with the prepared statements we don't alloc MYSQL_DATA structure,
but use MYSQL_STMT's field instead (to increase performance by reducing
malloc calls).
So we shouldn't free this structure as we did before.


libmysqld/lib_sql.cc:
  we only should free data->alloc here, as the 'data' is a member
  of STMT structure
2007-01-29 11:48:31 +04:00
unknown
0c75fbb3c4 User visible change - breaks some environments, per Paul DuBois. Reverting in 4.1 and 5.0. 2007-01-26 12:00:38 -08:00
unknown
fddf3c3979 Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/4.1


sql/item_func.cc:
  Auto merged
2007-01-26 16:28:32 +04:00