Commit graph

21967 commits

Author SHA1 Message Date
unknown
2911bcd8e3 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-07 11:35:14 +05:00
unknown
e488e6f23a Improved coverage for the code added to fix bug 27532. 2007-04-03 19:45:37 -07:00
unknown
0ee34b1ca2 Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing
IN/BETWEEN predicates in sorting expressions.
Wrong results may occur when the select list contains an expression
with IN/BETWEEN predicate that differs from a sorting expression by
an additional NOT only.
 
Added the method Item_func_opt_neg::eq to compare correctly expressions
containing [NOT] IN/BETWEEN.
The eq method inherited from the Item_func returns TRUE when comparing
'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.  


mysql-test/r/order_by.result:
  Added a test case for bug #27532.
mysql-test/t/order_by.test:
  Added a test case for bug #27532.
sql/item_cmpfunc.cc:
  Fixed bug #27532.
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
sql/item_cmpfunc.h:
  Added the method Item_func_opt_neg::eq to compare correctly expressions
  containing [NOT] IN/BETWEEN.
  The eq method inherited from the Item_func returns TRUE when comparing
  'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
2007-04-03 14:32:16 -07:00
unknown
96d879cb4b Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-04-02 10:48:11 +02:00
unknown
0bb2f43d2e Cset exclude: tsmith@siva.hindu.god|ChangeSet|20070328212513|13373
myisam/mi_open.c:
  Exclude
mysql-test/r/create.result:
  Exclude
mysql-test/t/create.test:
  Exclude
sql/table.cc:
  Exclude
2007-04-02 10:39:23 +02:00
unknown
97c4143e3a Merge bk-internal.mysql.com:/data0/bk/mysql-4.1
into  bk-internal.mysql.com:/data0/bk/mysql-4.1-opt
2007-03-31 09:52:18 +02:00
unknown
080c0c7ac8 BUG#26624: high mem usage (crash) in range optimizer
Pushbuild fixes: 
 - Make MAX_SEL_ARGS smaller (even 16K records_in_range() calls is 
   more than it makes sense to do in typical cases)
 - Don't call sel_arg->test_use_count() if we've already allocated 
   more than MAX_SEL_ARGs elements. The test will succeed but will take
   too much time for the test suite (and not provide much value).


mysql-test/r/range.result:
  BUG#26624: high mem usage (crash) in range optimizer
  Pushbuild fixes: make the test go faster
mysql-test/t/range.test:
  BUG#26624: high mem usage (crash) in range optimizer
  Pushbuild fixes: make the test go faster
2007-03-31 00:29:18 +04:00
unknown
ade8bbf49e Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
2007-03-30 22:26:06 +02:00
unknown
dd6dbea187 Merge pilot.blaudden:/home/msvensson/mysql/bug25482/my41-bug25482-alt2
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-03-29 14:33:50 +02:00
unknown
d862d3b6d2 Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-03-29 14:21:26 +02:00
unknown
a5c60b3f29 Bug#25482 GRANT statements are not replicated if you use "replicate-ignore-table"
- GRANT and REVOKE statments didn't have the "updating" flag set and
   thus statements with a table specified would not replicate if
   slave filtering rules where turned on.
   For example "GRANT ... ON test.t1 TO ..." would not replicate.


mysql-test/r/rpl_ignore_table.result:
  Add test results
mysql-test/t/rpl_ignore_table.test:
  Add tests
sql/sql_yacc.yy:
  Pass option TL_OPTION_UPDATING to 'add_table_to_list' when parsing a
  GRANT or REVOKE and a table specifier is found. This will set the
  property "updating" on the table and thus the slave filtering rules will 
  be applied.
  
  Without setting updating the statement will be not
  replicated - since "it's not updating anything" - an optimization
  to quickly skip SELECT's and similar.
2007-03-29 14:12:32 +02:00
unknown
9b358f811b BUG#26624: high mem usage (crash) in range optimizer
- Post-review fixes
2007-03-29 10:27:58 +04:00
unknown
0b72b7f0a4 Bug #26642: create index corrupts table definition in .frm
Thanks to Martin Friebe for finding and submitting a fix for this bug!

A table with maximum number of key segments and maximum length key name
would have a corrupted .frm file, due to an incorrect calculation of the
complete key length.  Now the key length is computed correctly (I hope) :-)

MyISAM would reject a table with the maximum number of keys and the maximum
number of key segments in all keys.  It would allow one less than this total
maximum.  Now MyISAM accepts a table defined with the maximum.  (This is a
very minor issue.)


myisam/mi_open.c:
  change >= to > in a comparison (i.e., error only if key_parts_in_table
  really is greater than MAX_KEY * MAX_KEY_SEG)
mysql-test/r/create.result:
  Add test results for bug #26642 (create index corrupts table definition in .frm)
mysql-test/t/create.test:
  Add test case for bug #26642 (create index corrupts table definition in .frm)
sql/table.cc:
  In create_frm(), fix formula for key_length; it was too small by (keys * 2) bytes
2007-03-28 15:25:13 -06:00
unknown
edd5a85948 Merge mysql.com:/home/psergey/mysql-4.1-bug26625
into  mysql.com:/home/psergey/mysql-4.1-bug26624-r2
2007-03-28 20:31:13 +04:00
unknown
9639eb3dda BUG#26624: high mem usage (crash) in range optimizer
- Added PARAM::alloced_sel_args where we count the # of SEL_ARGs
  created by SEL_ARG tree cloning operations.
- Made the range analyzer to shortcut and not do any more cloning 
  if we've already created MAX_SEL_ARGS SEL_ARG objects in cloning.
- Added comments about space complexity of SEL_ARG-graph 
  representation.


mysql-test/r/range.result:
  BUG#26624: Testcase
mysql-test/t/range.test:
  BUG#26624: Testcase
2007-03-28 20:16:01 +04:00
unknown
60189d3512 Delete: sql/mysqld.cc.rej 2007-03-28 19:05:30 +04:00
unknown
425304f562 BUG#26625: crash in range optimizer (out of mem)
- Define Sql_alloc::operator new() as thow() so that C++ compiler
  handles NULL return values
(there is no testcase as there is no portable way to set limit on the 
amount of memory that a process can allocate)


sql/sql_list.h:
  BUG#26625: crash in range optimizer (out of mem) 
  - Define Sql_alloc::operator new() as thow() so that C++ compiler
    handles NULL return values
2007-03-28 18:38:42 +04:00
unknown
f6eca60afb Merge chilla.local:/home/mydev/mysql-4.1--main
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-03-28 09:00:00 +02:00
unknown
cd07f122ad Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-03-28 08:59:30 +02:00
unknown
17a4df4226 Merge chilla.local:/home/mydev/mysql-4.1--team
into  chilla.local:/home/mydev/mysql-4.1-axmrg


sql/ha_myisam.cc:
  Auto merged
2007-03-28 08:58:55 +02:00
unknown
30bf8b6996 Merge chilla.local:/home/mydev/mysql-4.1-bug26231
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-03-28 08:57:46 +02:00
unknown
fd3b723562 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug24985


mysql-test/r/heap_btree.result:
  Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
              causes incorrect duplicate entries
  Manual merge
mysql-test/t/heap_btree.test:
  Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
              causes incorrect duplicate entries
  Manual merge
2007-03-28 08:51:12 +02:00
unknown
0d5a969ace mysql.spec.sh, Makefile.am:
Don't use explicit calls to mysql-test-run in spec


Makefile.am:
  Don't use explicit calls to mysql-test-run in spec
support-files/mysql.spec.sh:
  Don't use explicit calls to mysql-test-run in spec
2007-03-27 17:42:55 +02:00
unknown
1fd0ba8909 Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
causes incorrect duplicate entries

Keys for BTREE indexes on ENUM and SET columns of MEMORY tables
with character set UTF8 were computed incorrectly. Many
different column values got the same key value.

Apart of possible performance problems, it made unique indexes
of this type unusable because it rejected many different
values as duplicates.

The problem was that multibyte character detection was tried
on the internal numeric column value. Many values were not
identified as characters. Their key value became blank filled.

Thanks to Alexander Barkov and Ramil Kalimullin for the patch,
which sets the character set of ENUM and SET key segments to
the pseudo binary character set.


mysql-test/r/heap_btree.result:
  Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
              causes incorrect duplicate entries
  Added test result.
mysql-test/t/heap_btree.test:
  Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
              causes incorrect duplicate entries
  Added test.
sql/ha_heap.cc:
  Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
              causes incorrect duplicate entries
  Set key segment charset to my_charset_bin for ENUM and SET
  columns.
2007-03-27 10:49:48 +02:00
unknown
3335f68d89 Bug #27164: not reseting the data pointer
to 0 causes wrong (large) length to be read
 from the row in _mi_calc_blob_length() when 
 storing NULL values in (e.g) POINT columns.
 This large length is then used to allocate
 a block of memory that (on some OSes) causes
 trouble.
 Fixed by calling the base class's 
 Field_blob::reset() from Field_geom::reset()
 that is called when storing a NULL value into
 the column.


mysql-test/r/gis.result:
  Bug #27164: test case
mysql-test/t/gis.test:
  Bug #27164: test case
sql/field.h:
  Bug #27164: not reseting the data pointer
   to 0 causes wrong (large) length to be read
   from the row in _mi_calc_blob_length() when 
   storing NULL values in (e.g) POINT columns.
   This large length is then used to allocate
   a block of memory that (on some OSes) causes
   trouble.
2007-03-26 13:17:40 +03:00
unknown
e77cdbe2c0 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/home/ram/work/b25301/b25301.4.1


sql-common/my_time.c:
  Auto merged
2007-03-26 13:45:02 +05:00
unknown
03089d8977 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1--team


sql/ha_myisam.cc:
  Auto merged
2007-03-25 15:13:22 +02:00
unknown
de1d7c23f6 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1--main
2007-03-25 15:11:16 +02:00
unknown
a1e7490f41 nptl: typo fixed. sigaddset restored 2007-03-24 14:03:27 +02:00
unknown
d89329c685 reverted linuxthreads thr_client_alarm fix (not future-proof)
fixed differently: wake up select_thread with THR_SERVER_ALARM instead


mysys/thr_alarm.c:
  reverted linuxthreads thr_client_alarm fix (not future-proof)
2007-03-23 20:37:20 +02:00
unknown
cc72a835d6 Merge bk-internal:/home/bk/mysql-4.1-build
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
2007-03-23 16:05:02 +02:00
unknown
9a4b2e9081 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1


mysys/thr_alarm.c:
  Auto merged
sql/mysqld.cc:
  Auto merged
2007-03-23 14:57:55 +02:00
unknown
c80ac29ee2 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1


sql/mysqld.cc:
  merged
2007-03-23 14:47:51 +02:00
unknown
6e1f446ae1 move thr_client_alarm initialization to mysqld.cc
(in thr_alarm.cc it happened too late).


mysys/thr_alarm.c:
  move thr_client_alarm initialization to mysqld.cc
  (here it happened too late)
sql/mysqld.cc:
  move thr_client_alarm initialization to mysqld.cc
  (in thr_alarm.cc it happened too late).
  moved thr_kill_signal initialization to init_signals()
2007-03-23 13:38:42 +02:00
unknown
f9cf31c4df Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug26996
2007-03-23 08:28:21 +01:00
unknown
55f991c24d Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mrg/mysql-4.1-opt
2007-03-22 23:45:37 +04:00
unknown
4b4700f32f .del-fill_func_tables.sh:
Delete: scripts/fill_func_tables.sh
.del-fill_help_tables.sh:
  Delete: scripts/fill_help_tables.sh
.del-internals.texi:
  Delete: Docs/internals.texi


BitKeeper/deleted/.del-internals.texi:
  Delete: Docs/internals.texi
BitKeeper/deleted/.del-fill_func_tables.sh:
  Delete: scripts/fill_func_tables.sh
BitKeeper/deleted/.del-fill_help_tables.sh:
  Delete: scripts/fill_help_tables.sh
2007-03-22 19:43:15 +01:00
unknown
d3125d0a06 Merge mysql.com:/home/kent/bk/tmp/mysql-4.0
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build


BitKeeper/deleted/.del-net_doc.txt:
  Auto merged
2007-03-22 19:39:23 +01:00
unknown
84536ba9e4 Deleted directories
Docs/Books/
  Docs/MySQL-logos/
Deleted files
  Docs/Tutorial-MySQL-final.txt
  Docs/bk.txt
  Docs/Support/.cvsignore
  Docs/Support/colspec-fix.pl
  Docs/Support/docbook-fixup.pl
  Docs/Support/docbook-prefix.pl
  Docs/Support/docbook-split
  Docs/Support/make-docbook
  Docs/Support/make-makefile
  Docs/Support/test-make-manual
  Docs/Support/test-make-manual-de
  Docs/Support/trivial-makeinfo-4.0c.patch
  Docs/Support/xwf
Deleted file now in internals main text
  Docs/my_sys.txt
Deleted file now in internals svn tree
  Docs/net_doc.txt
Removed obsolete entries
  Docs/.cvsignore
Added note that info is obsolete
  Docs/linuxthreads.txt


BitKeeper/deleted/.del-colspec-fix.pl:
  Delete: Docs/Support/colspec-fix.pl
BitKeeper/deleted/.del-docbook-fixup.pl:
  Delete: Docs/Support/docbook-fixup.pl
BitKeeper/deleted/.del-docbook-prefix.pl:
  Delete: Docs/Support/docbook-prefix.pl
BitKeeper/deleted/.del-docbook-split:
  Delete: Docs/Support/docbook-split
BitKeeper/deleted/.del-make-docbook:
  Delete: Docs/Support/make-docbook
BitKeeper/deleted/.del-make-makefile:
  Delete: Docs/Support/make-makefile
BitKeeper/deleted/.del-test-make-manual-de:
  Delete: Docs/Support/test-make-manual-de
BitKeeper/deleted/.del-test-make-manual:
  Delete: Docs/Support/test-make-manual
BitKeeper/deleted/.del-trivial-makeinfo-4.0c.patch:
  Delete: Docs/Support/trivial-makeinfo-4.0c.patch
BitKeeper/deleted/.del-xwf:
  Delete: Docs/Support/xwf
BitKeeper/deleted/.del-algor.eps~1a57aff065918206:
  Delete: Docs/Books/algor.eps
BitKeeper/deleted/.del-algor.gif:
  Delete: Docs/Books/algor.gif
BitKeeper/deleted/.del-algor.txt:
  Delete: Docs/Books/algor.txt
BitKeeper/deleted/.del-dbi.eps~7b1032f98de7736d:
  Delete: Docs/Books/dbi.eps
BitKeeper/deleted/.del-dbi.gif:
  Delete: Docs/Books/dbi.gif
BitKeeper/deleted/.del-dbi.txt:
  Delete: Docs/Books/dbi.txt
BitKeeper/deleted/.del-dubois.eps~f24e09a7fa420436:
  Delete: Docs/Books/dubois.eps
BitKeeper/deleted/.del-dubois.gif:
  Delete: Docs/Books/dubois.gif
BitKeeper/deleted/.del-dubois.txt:
  Delete: Docs/Books/dubois.txt
BitKeeper/deleted/.del-ecomm.eps~17833026ebd7656:
  Delete: Docs/Books/ecomm.eps
BitKeeper/deleted/.del-ecomm.gif:
  Delete: Docs/Books/ecomm.gif
BitKeeper/deleted/.del-ecomm.txt:
  Delete: Docs/Books/ecomm.txt
BitKeeper/deleted/.del-in_21.eps~8150d06653dab178:
  Delete: Docs/Books/in_21.eps
BitKeeper/deleted/.del-in_21.gif:
  Delete: Docs/Books/in_21.gif
BitKeeper/deleted/.del-in_21.txt:
  Delete: Docs/Books/in_21.txt
BitKeeper/deleted/.del-manual.eps~1c2ebcea50b4840c:
  Delete: Docs/Books/manual.eps
BitKeeper/deleted/.del-manual.gif:
  Delete: Docs/Books/manual.gif
BitKeeper/deleted/.del-manual.txt:
  Delete: Docs/Books/manual.txt
BitKeeper/deleted/.del-msql.eps~f3801b9d166ae4fc:
  Delete: Docs/Books/msql.eps
BitKeeper/deleted/.del-msql.gif:
  Delete: Docs/Books/msql.gif
BitKeeper/deleted/.del-msql.txt:
  Delete: Docs/Books/msql.txt
BitKeeper/deleted/.del-prof.eps~1f54d9a56eb2b908:
  Delete: Docs/Books/prof.eps
BitKeeper/deleted/.del-prof.gif:
  Delete: Docs/Books/prof.gif
BitKeeper/deleted/.del-prof.txt:
  Delete: Docs/Books/prof.txt
BitKeeper/deleted/.del-pthreads.eps~2ca8ff2d1181b2c0:
  Delete: Docs/Books/pthreads.eps
BitKeeper/deleted/.del-pthreads.gif:
  Delete: Docs/Books/pthreads.gif
BitKeeper/deleted/.del-pthreads.txt:
  Delete: Docs/Books/pthreads.txt
BitKeeper/deleted/.del-realmen.eps~cc022325d3cb045:
  Delete: Docs/Books/realmen.eps
BitKeeper/deleted/.del-realmen.gif:
  Delete: Docs/Books/realmen.gif
BitKeeper/deleted/.del-realmen.txt:
  Delete: Docs/Books/realmen.txt
BitKeeper/deleted/.del-sql-99.eps~f85c06de7a016c7d:
  Delete: Docs/Books/sql-99.eps
BitKeeper/deleted/.del-sql-99.gif:
  Delete: Docs/Books/sql-99.gif
BitKeeper/deleted/.del-sql-99.txt:
  Delete: Docs/Books/sql-99.txt
BitKeeper/deleted/.del-mysql-01.gif:
  Delete: Docs/MySQL-logos/mysql-01.gif
BitKeeper/deleted/.del-mysql-02.gif:
  Delete: Docs/MySQL-logos/mysql-02.gif
BitKeeper/deleted/.del-mysql-03.gif:
  Delete: Docs/MySQL-logos/mysql-03.gif
BitKeeper/deleted/.del-mysql-04.gif:
  Delete: Docs/MySQL-logos/mysql-04.gif
BitKeeper/deleted/.del-mysql-05.gif:
  Delete: Docs/MySQL-logos/mysql-05.gif
BitKeeper/deleted/.del-mysql-06.gif:
  Delete: Docs/MySQL-logos/mysql-06.gif
BitKeeper/deleted/.del-mysql-07.gif:
  Delete: Docs/MySQL-logos/mysql-07.gif
BitKeeper/deleted/.del-mysql-08.gif:
  Delete: Docs/MySQL-logos/mysql-08.gif
BitKeeper/deleted/.del-mysql-09.gif:
  Delete: Docs/MySQL-logos/mysql-09.gif
BitKeeper/deleted/.del-mysql-10.gif:
  Delete: Docs/MySQL-logos/mysql-10.gif
BitKeeper/deleted/.del-mysql-11.gif:
  Delete: Docs/MySQL-logos/mysql-11.gif
BitKeeper/deleted/.del-mysql-12.gif:
  Delete: Docs/MySQL-logos/mysql-12.gif
BitKeeper/deleted/.del-mysql-13.gif:
  Delete: Docs/MySQL-logos/mysql-13.gif
BitKeeper/deleted/.del-mysql-14.gif:
  Delete: Docs/MySQL-logos/mysql-14.gif
BitKeeper/deleted/.del-mysql-15.gif:
  Delete: Docs/MySQL-logos/mysql-15.gif
BitKeeper/deleted/.del-mysql-16.gif:
  Delete: Docs/MySQL-logos/mysql-16.gif
BitKeeper/deleted/.del-mysql-17.gif:
  Delete: Docs/MySQL-logos/mysql-17.gif
BitKeeper/deleted/.del-mysql-compatible.jpg:
  Delete: Docs/MySQL-logos/mysql-compatible.jpg
BitKeeper/deleted/.del-mysql_anim-01.gif:
  Delete: Docs/MySQL-logos/mysql_anim-01.gif
BitKeeper/deleted/.del-mysql_anim-02.gif:
  Delete: Docs/MySQL-logos/mysql_anim-02.gif
BitKeeper/deleted/.del-mysql_anim-03.gif:
  Delete: Docs/MySQL-logos/mysql_anim-03.gif
BitKeeper/deleted/.del-mysql_anim-04.gif:
  Delete: Docs/MySQL-logos/mysql_anim-04.gif
BitKeeper/deleted/.del-mysql_anim-05.gif:
  Delete: Docs/MySQL-logos/mysql_anim-05.gif
BitKeeper/deleted/.del-mysql_anim-06.gif:
  Delete: Docs/MySQL-logos/mysql_anim-06.gif
BitKeeper/deleted/.del-Tutorial-MySQL-final.txt:
  Delete: Docs/Tutorial-MySQL-final.txt
BitKeeper/deleted/.del-net_doc.txt:
  Delete: Docs/net_doc.txt
BitKeeper/deleted/.del-my_sys.txt:
  Delete: Docs/my_sys.txt
BitKeeper/deleted/.del-bk.txt:
  Delete: Docs/bk.txt
BitKeeper/deleted/.del-.cvsignore:
  Delete: Docs/Support/.cvsignore
Docs/.cvsignore:
  Removed obsolete entries
Docs/linuxthreads.txt:
  Added note info is obsolete
2007-03-22 19:38:56 +01:00
unknown
50b5064ccd bug #16546 (DATETIME + 0 not always coerced in the same way)
fix for cast( AS DATETIME) + 0 operation.
  I just implemented Item_datetime_typecast::val() method
  as it is usually done in other classes.
  Should be fixed more radically in 5.0


mysql-test/r/type_datetime.result:
  result added
mysql-test/t/type_datetime.test:
  testcase
sql/item_timefunc.h:
  added double conversion to Item_datetime_typecast
2007-03-22 12:24:56 +04:00
unknown
6ef0fee8e6 Merge mysql.com:/home/hf/work/25492/my41-25492
into  mysql.com:/home/hf/work/mrg/mysql-4.1-opt
2007-03-22 12:01:05 +04:00
unknown
095a80ee93 Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-03-21 17:29:18 +01:00
unknown
ec81cfdc0c Remove the variables for long gone disable_ps_warnings 2007-03-20 19:43:36 +01:00
unknown
d59272fb3d Bug #27231: Server crash when dumping into outfile with long FIELDS ENCLOSED BY option
- Problem: data separators were copied to a fixed-size buffer
  on the stack; memcpy was used, without bounds checking; a
  server crash could result if long FIELDS ENCLOSED BY, etc.,
  was given
- Fix: write the separators directly, instead of copying to
  a buffer first (in select_export::send_data())


sql/sql_class.cc:
  In select_export::send_data(), write data separators
  directly, instead of copying into a fixed-size memory
  buffer before writing.  This avoids a buffer overflow
  when very large separators are specified.
2007-03-20 19:09:28 +01:00
unknown
db573e637c Bug#26996 - Update of a Field in a Memory Table ends with wrong result
Using a MEMORY table BTREE index for scanning for updatable rows
could lead to an infinite loop.

Everytime a key was inserted into a btree index, the position
in the index scan was cleared. The search started from the
beginning and found the same key again.

Now we do not clear the position on key insert an more.


heap/hp_write.c:
  Bug#26996 - Update of a Field in a Memory Table ends with wrong result
  Removed the index-scan-breaking nulling of last_pos.
  The comment behind this line ("For heap_rnext/heap_rprev")
  was misleading. It should have been "Breaks heap_rnext/heap_rprev".
mysql-test/r/heap_btree.result:
  Bug#26996 - Update of a Field in a Memory Table ends with wrong result
  Added test result.
mysql-test/t/heap_btree.test:
  Bug#26996 - Update of a Field in a Memory Table ends with wrong result
  Added test.
2007-03-19 15:56:53 +01:00
unknown
ee6dc3a0de Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1--main
2007-03-17 22:52:23 +01:00
unknown
13643101e0 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug25289


sql/ha_myisam.cc:
  Auto merged
2007-03-16 14:26:45 +01:00
unknown
396f84aa82 Bug#26231 - select count(*) on myisam table returns wrong value
when index is used

When the table contained TEXT columns with empty contents
('', zero length, but not NULL) _and_ strings starting with
control characters like tabulator or newline, the empty values
were not found in a "records in range" estimate. Hence count(*)
missed these records.

The reason was a different set of search flags used for key
insert and key range estimation.

I decided to fix the set of flags used in range estimation.
Otherwise millions of databases around the world would require
a repair after an upgrade.

The consequence is that the manual must be fixed, which claims
that TEXT columns are compared with "end space padding". This
is true for CHAR/VARCHAR but wrong for TEXT. See also bug 21335.


myisam/mi_range.c:
  Bug#26231 - select count(*) on myisam table returns wrong value
              when index is used
  Added SEARCH_UPDATE to the search flags so that it compares
  like write/update/delete operations do. Only so it expects
  the keys at the place where they have been inserted.
myisam/mi_search.c:
  Bug#26231 - select count(*) on myisam table returns wrong value
              when index is used
  Added some comments to explain how _mi_get_binary_pack_key()
  works.
mysql-test/r/myisam.result:
  Bug#26231 - select count(*) on myisam table returns wrong value
              when index is used
  Added a test.
mysql-test/t/myisam.test:
  Bug#26231 - select count(*) on myisam table returns wrong value
              when index is used
  Added test result.
2007-03-16 10:28:48 +01:00
unknown
39333ba7f2 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mockturtle.local:/home/dlenev/src/mysql-4.1-merge
2007-03-15 14:31:34 +03:00
unknown
db1d2f64d1 Fix for bug #25966 "2MB per second endless memory consumption after LOCK
TABLE ... WRITE".

CPU hogging occured when connection which had to wait for table lock was
serviced by thread which previously serviced connection that was killed
(note that connections can reuse threads if thread cache is enabled).
One possible scenario which exposed this problem was when thread which
provided binlog dump to replication slave was implicitly/automatically
killed when the same slave reconnected and started pulling data through
different thread/connection.
In 5.* versions memory hogging was added to CPU hogging. Moreover in
those versions the problem also occured when one killed particular query
in connection (using KILL QUERY) and later this connection had to wait for
some table lock.

This problem was caused by the fact that thread-specific mysys_var::abort
variable, which indicates that waiting operations on mysys layer should
be aborted (this includes waiting for table locks), was set by kill
operation but was never reset back. So this value was "inherited" by the
following statements or even other connections (which reused the same
physical thread). Such discrepancy between this variable and THD::killed
flag broke logic on SQL-layer and caused CPU and memory hogging.

This patch tries to fix this problem by properly resetting this member.

There is no test-case associated with this patch since it is hard to test
for memory/CPU hogging conditions in our test-suite.


sql/mysqld.cc:
  We should not forget to reset THD::mysys_var::abort after kill operation
  if we are going to use thread to which this operation was applied for
  handling of other connections.
2007-03-15 11:30:17 +03:00