Commit graph

13834 commits

Author SHA1 Message Date
unknown
4e9b14879b Fixed bug#16752 Binary table files created in mysqld v4.1 caused buffer overrun
and possibly server crash in mysqld v5.0.

Reported MyISAM table was created in mysqld 4.1 and contains varchar field.
When binary files of that table was moved to 5.0, mysqld treats that varchar 
field as a string field. 
In order to make grouping server calculates group buffer, and because
that field is string server assumes it has fixed length and doesn't add
space for length, but later that field is converted to varchar field. 
Due to this, when field values were actually copied, additional space for
length bytes is taken and buffer overrun occurs, which may lead to server crash.

The calc_group_buffer() function now reserves additional space for length
bytes for VAR_STRING fields, like for VARCHAR fields.


sql/sql_select.cc:
  Fixed bug#16752 Binary table files created in mysqld v4.1 caused buffer overrun and possibly server crash in mysqld v5.0.
  The calc_group_buffer() function now reserves additional space for length
  bytes for VAR_STRING fields, like for VARCHAR fields.
2006-02-08 15:12:48 +03:00
unknown
d9f2d13592 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b16511
2006-02-08 10:34:30 +04:00
unknown
5b9cdaa479 Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/space/pekka/ndb/version/my50
2006-02-07 21:52:56 +01:00
unknown
217882ad7d Merge gboehn@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com.:/data/BK/mysql-5.0
2006-02-07 20:50:28 +01:00
unknown
588613d2ae Merge pnousiainen@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/space/pekka/ndb/version/my50


sql/ha_ndbcluster.cc:
  Auto merged
2006-02-07 20:04:54 +01:00
unknown
245948654d ndb - bug#15918 fix
mysql-test/r/ndb_index_unique.result:
  bug#15918 fix
mysql-test/t/ndb_index_unique.test:
  bug#15918 fix
ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
  bug#15918 fix
sql/ha_ndbcluster.cc:
  bug#15918 fix
sql/ha_ndbcluster.h:
  bug#15918 fix
2006-02-07 19:57:31 +01:00
unknown
09976a27d3 Merge mysql.com.:/data/BK/mysql-5.0
into  mysql.com.:/data/BK/mysql-5.0_8461_b
2006-02-07 17:15:12 +01:00
unknown
c9bb7e1f02 item_func.cc:
fix for bug#8461

  BUG 8461 - TRUNCATE returns incorrect result if 2nd argument is negative
  Reason: Both TRUNCATE/ROUND converts INTEGERS to DOUBLE and back to INTEGERS
  Changed the integer routine to work on integers only.
  This bug affects 4.1, 5.0 and 5.1
  Fixing in 4.1 will need to change the routine to handle different types individually.
  5.0 did had different routines for different types already just the INTEGER routine was bad.


sql/item_func.cc:
  fix for bug#8461
  BUG 8461 - TRUNCATE returns incorrect result if 2nd argument is negative
  Reason: TRUNCATE converts INTEGERS to DOUBLE and back to INTEGERS
  Both ROUND and TRUNCATE are affected by this.
  Changed the integer routine to work on integers only.
  This bug affects 4.1 5,0 and 5
  Fixing in 4.1 will need to change the routine to handle different types individually.
2006-02-07 13:26:35 +01:00
unknown
79f6936d73 Merge april.(none):/home/svoj/devel/mysql/merge/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-5.0


mysql-test/r/fulltext.result:
  Manual merge.
mysql-test/t/fulltext.test:
  Manual merge.
sql/item_func.h:
  Manual merge.
sql/sql_base.cc:
  Manual merge: use local.
2006-02-07 15:30:32 +04:00
unknown
a525b29470 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-4.1
2006-02-07 14:49:57 +04:00
unknown
96268d4a9a Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0


sql/ha_ndbcluster.cc:
  Auto merged
2006-02-07 11:31:52 +01:00
unknown
523d97f4dd Bug #17081 "LOAD DATA INFILE" may not load all the data 2006-02-07 11:30:42 +01:00
unknown
16c564a390 Merge april.(none):/home/svoj/devel/mysql/BUG16893/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-4.1


sql/item_func.h:
  Auto merged
2006-02-07 13:49:55 +04:00
unknown
0b9270009c Merge april.(none):/home/svoj/devel/mysql/BUG14496/mysql-4.1
into  april.(none):/home/svoj/devel/mysql/merge/mysql-4.1
2006-02-07 13:49:03 +04:00
unknown
79112423af Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b16511
2006-02-07 12:06:06 +04:00
unknown
95958982f6 ndb, transaction should be refgistred even if m_transaction_on is not set 2006-02-07 00:26:47 +01:00
unknown
79cc96647a Merge poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0


sql/ha_ndbcluster.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
2006-02-07 00:06:28 +01:00
unknown
8deb6616bc Bug #17154 load data infile of char values into a table of char(PK) hangs
Bug #17158  	load data infile of char values into table of char with no (PK) fails to load
Bug #17081  	Doing "LOAD DATA INFILE" directly after delete can cause missing data


mysql-test/r/ndb_load.result:
  New BitKeeper file ``mysql-test/r/ndb_load.result''
mysql-test/t/ndb_load.test:
  New BitKeeper file ``mysql-test/t/ndb_load.test''
2006-02-07 00:03:39 +01:00
unknown
2ba25676d7 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0
2006-02-06 11:40:39 -08:00
unknown
d8c96f286f Fixed bug #16203.
If check_quick_select returns non-empty range then the function cost_group_min_max
cannot return 0 as an estimate of the number of retrieved records.
Yet the function erroneously returned 0 as the estimate in some situations.


mysql-test/r/group_min_max.result:
  Added a test case for bug #16203.
mysql-test/t/group_min_max.test:
  Added a test case for bug #16203.
2006-02-06 11:35:13 -08:00
unknown
18aba0411e Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug16303/mysql-5.0


sql/sql_parse.cc:
  Auto merged
2006-02-06 17:58:15 +01:00
unknown
5f2b9f4f7c Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug16303/mysql-5.0


mysql-test/t/sp-destruct.test:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2006-02-06 16:07:13 +01:00
unknown
fa461152ef Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug16568/mysql-5.0


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2006-02-06 14:09:14 +01:00
unknown
394c88df3a BUG#16893: Crash in test 'fulltext_order_by'
Fixed that fulltext query + union results in unexpected behaviour.


sql/item_func.h:
  Remove access to table object from cleanup() as the table object
  may have been dropped earlier (In case of temporary tables or of
  close_thread_tables() is run before cleanup())
  This fixed a bug with access to already freed memory
sql/sql_base.cc:
  Reset variables used by fulltext
2006-02-03 14:09:33 +04:00
unknown
c1cad51e00 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b16511


sql/sql_prepare.cc:
  Auto merged
2006-02-03 12:34:25 +04:00
unknown
ac21d0294d Fixes after manual merge 2006-02-02 23:56:08 -08:00
unknown
8300149963 Merge rurik.mysql.com:/home/igor/dev/mysql-4.1-0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0


mysql-test/t/having.test:
  Auto merged
mysql-test/r/having.result:
  Manual merge
sql/sql_lex.cc:
  Manual merge
sql/sql_lex.h:
  Manual merge
sql/sql_prepare.cc:
  Manual merge
sql/sql_select.cc:
  Manual merge
2006-02-02 21:23:36 -08:00
unknown
6757503847 Post-review fix for bug #14927. 2006-02-02 20:37:58 -08:00
unknown
afe4e93ed1 Merge rurik.mysql.com:/home/igor/mysql-4.1
into  rurik.mysql.com:/home/igor/dev/mysql-4.1-0
2006-02-02 17:56:05 -08:00
unknown
6a2a94b50b Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0


sql/sql_select.cc:
  Auto merged
2006-02-02 13:47:21 -08:00
unknown
2fb59bd72a Post-merge fixes. 2006-02-03 00:07:36 +03:00
unknown
95a3509a66 Merge mysql.com:/opt/local/work/mysql-4.1-root
into  mysql.com:/opt/local/work/mysql-5.0-root


BitKeeper/deleted/.del-rpl_ignore_table.result:
  Delete: mysql-test/r/rpl_ignore_table.result
BitKeeper/deleted/.del-rpl_multi_update4.result:
  Delete: mysql-test/r/rpl_multi_update4.result
BitKeeper/deleted/.del-rpl_ignore_table-slave.opt:
  Delete: mysql-test/t/rpl_ignore_table-slave.opt
BitKeeper/deleted/.del-rpl_ignore_table.test:
  Delete: mysql-test/t/rpl_ignore_table.test
BitKeeper/deleted/.del-rpl_multi_update4-slave.opt:
  Delete: mysql-test/t/rpl_multi_update4-slave.opt
BitKeeper/deleted/.del-disabled.def:
  Auto merged
BitKeeper/deleted/.del-rpl_multi_update4.test:
  Delete: mysql-test/t/rpl_multi_update4.test
heap/hp_create.c:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/update.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
mysql-test/t/heap.test:
  Auto merged
mysql-test/t/kill.test:
  Auto merged
mysql-test/t/update.test:
  Auto merged
ndb/include/mgmapi/mgmapi_config_parameters.h:
  Auto merged
ndb/test/ndbapi/testBlobs.cpp:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
configure.in:
  Manual merge.
libmysql/libmysql.c:
  Manual merge.
mysql-test/r/heap.result:
  Manual merge.
mysql-test/r/heap_hash.result:
  Manual merge.
mysql-test/r/kill.result:
  Manual merge.
sql/ha_heap.cc:
  Manual merge.
sql/ha_heap.h:
  Manual merge.
sql/item_timefunc.cc:
  Manual merge.
sql/sql_class.cc:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_update.cc:
  Manual merge.
tests/mysql_client_test.c:
  Manual merge.
2006-02-02 18:17:18 +03:00
unknown
7fd41b20a0 Minor fix for BUG#16303 in sp.cc: Simplified code in sp_routine_exists_in_table().
(No change of functionality)


sql/sp.cc:
  Simplified code in sp_routine_exists_in_table().
2006-02-02 15:37:29 +01:00
unknown
32691e6e37 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b16511
2006-02-02 13:21:45 +04:00
unknown
7ea60ae91e Fixed bug #16382.
When an ambiguous field name is used in a group by clause a warning is issued
in the find_order_in_list function by a call to push_warning_printf.
An expression that was not always valid was passed to this call as the field
name parameter.


mysql-test/r/view.result:
  Added a test case for bug #16382.
mysql-test/t/view.test:
  Added a test case for bug #16382.
2006-02-01 20:43:43 -08:00
unknown
e3c3086304 BUG#14496: Crash or strange results with prepared statement,
MATCH and FULLTEXT
Fixed that fulltext query using PS results in unexpected behaviour
when executed 2 or more times.


mysql-test/r/fulltext.result:
  Testcase for BUG#14496.
mysql-test/t/fulltext.test:
  Testcase for BUG#14496.
sql/item_func.h:
  In Item_func_match::cleanup() always reset ft_handler to 0.
2006-02-01 20:40:12 +04:00
unknown
08394605dc Bug#8841 - CHECKSUM TABLE is broken in MyISAM
There are (at least) two implementations of the checksum
computation. One is in MyISAM for the quick checksum. It
is executed on every row change. The other is in the
SQL layer for the extended checksum. It retrieves all rows
of a table via the respective storage engine.

In former MySQL versions varchars were stored with their 
maximum length, but now with their real length similar to
blobs.

This change had been forgotten to take care of in the
extended checksum calculation. Hence too much data was
checksumed. In MyISAM this change had been taken care of 
already. Only the real data is included in the checksum.

I changed mysql_checksum_table() so that it uses the
length information of true varchar fields instead
of the field length like in former varchar 
implementations.


mysql-test/r/innodb.result:
  Bug#8841 - CHECKSUM TABLE is broken in MyISAM
  Fixed test results.
mysql-test/r/myisam.result:
  Bug#8841 - CHECKSUM TABLE is broken in MyISAM
  Fixed test results.
sql/sql_table.cc:
  Bug#8841 - CHECKSUM TABLE is broken in MyISAM
  Changed mysql_checksum_table() so that it uses the
  length information of true varchar fields instead
  of the field length like in former varchar 
  implementations.
2006-02-01 16:46:44 +01:00
unknown
11ec4175f0 Merge mysql.com:/extern/mysql/bk/mysql-5.0
into  mysql.com:/extern/mysql/work/bug15011/mysql-5.0
2006-02-01 16:01:22 +01:00
unknown
6643f32028 Post-review fix for BUG#15011.
Added comments.


sql/sp_rcontext.cc:
  Added comments to sp_rcontext::find_handler()
2006-02-01 16:00:11 +01:00
unknown
6400ef8bcd Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/usr/home/ram/work/5.0.b16511
2006-02-01 12:11:07 +04:00
unknown
a400e7feb9 FIxed bug #14927.
A query with a group by and having clauses could return a wrong
result set if the having condition contained a constant conjunct 
evaluated to FALSE.
It happened because the pushdown condition for table with
grouping columns lost its constant conjuncts.
Pushdown conditions are always built by the function make_cond_for_table
that ignores constant conjuncts. This is apparently not correct when
constant false conjuncts are present.


mysql-test/r/having.result:
  Added A test case for bug #14927.
mysql-test/t/having.test:
  Added A test case for bug #14927.
sql/sql_lex.cc:
  Fixed bug #14927.
  Initialized fields for having conditions in  st_select_lex::init_query().
sql/sql_lex.h:
  Fixed bug #14927.
  Added a field to restore having condititions for execution in SP and PS.
sql/sql_prepare.cc:
  Fixed bug #14927.
  Added code to restore havinf conditions for execution in SP and PS.
sql/sql_select.cc:
  Fixed bug #14927.
  Performed evaluation of constant expressions in having clauses.
  If the having condition contains a constant conjunct that is always false
  an empty result set is returned after the optimization phase.
  In this case the corresponding EXPLAIN command now returns 
  "Impossible HAVING" in the last column.
2006-01-31 21:48:32 -08:00
unknown
86733db80b Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/alexi/innodb/mysql-5.0-ss162
2006-01-31 21:49:20 +03:00
unknown
6a9a96dc61 Fixed: BUG#15653, BUG#16157, BUG#16229, BUG#16298, BUG#16387, BUG#16582.
Applied innodb-5.0-ss149/162 snapshots.


innobase/btr/btr0sea.c:
  Applied innodb-5.0-149/162 snapshots.
    Account for a race condition when dropping the adaptive hash
    index for a B-tree page (Bug #16582).
    btr_search_drop_page_hash_index(): Retry the operation if a
      hash index with different parameters was built meanwhile.
      Add diagnostics for the case that hash node pointers to
      the page remain. This fix is from Heikki.
    btr_search_info-update_hash(), btr_search_info_update_slow():
      Document the parameter "info" as in/out.
innobase/dict/dict0dict.c:
  Applied innodb-5.0-149/162 snapshots.
    Do not mistake TABLENAME_ibfk_0 for auto generated id (Bug #16387).
    dict_table_get_highest_foreign_id(): Ignore foreign constraint
      identifiers starting with the pattern TABLENAME_ibfk_0.
innobase/dict/dict0load.c:
  Applied innodb-5.0-149/162 snapshots.
    dict_load_columns(): Set the charset-collation code
    DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
    that lack a charset-collation code, i.e., the tables were created
    with an older version of MySQL/InnoDB than 4.1.2 (Bug #16298).
innobase/fil/fil0fil.c:
  Applied innodb-5.0-149/162 snapshots.
    Keep track on unflushed modifications to file spaces. When there
    are tens of thousands of file spaces, flushing all files in
    fil_flush_file_spaces() would be very slow (Bug #15653).
    fil_flush_file_spaces(): Only flush unflushed file spaces.
    fil_space_t, fil_system_t: Add a list of unflushed spaces.
innobase/include/univ.i:
  Applied innodb-5.0-149/162 snapshots.
    Avoid breaking --with-debug builds on QNS and other systems
    whose compiler pretends to be GCC 2.
    Outside __WIN__ define UNIV_INLINE as static inline.
innobase/os/os0sync.c:
  Applied innodb-5.0-149/162 snapshots.
    Replace goto in os_event_wait with a normal loop.
innobase/srv/srv0start.c:
  Applied innodb-5.0-149/162 snapshots.
    Fix bug #16157, a crash when innodb_log_group_home_dir is set
    to an empty string. This patch is from Heikki.
mysql-test/r/innodb.result:
  Applied innodb-5.0-149/162 snapshots.
    Fixed results for added test cases.
mysql-test/t/innodb.test:
  Applied innodb-5.0-149/162 snapshots.
    Added test cases.
sql/ha_innodb.cc:
  Applied innodb-5.0-149/162 snapshots.
    Remove some declarations of unused global variables and member
      variables of class ha_innobase.
    Added diagnostic code trx_print() to
      innobase_query_caching_of_table_permitted() to find reason
      why we are holding adaptive search latch.
    Fixed bug #16229 MySQL/InnoDB uses full explicit table locks
      in trigger processing. Take a InnoDB table lock only if user
      has explicitly requested a table lock. Added some additional
      comments to store_lock() and external_lock(). Fixed some
      code style errors.
    Remember to use noninlined versions of the functions on
      ha_innodb.cc !
sql/ha_innodb.h:
  Applied innodb-5.0-149/162 snapshots.
    Remove some declarations of unused global variables and member
    variables of class ha_innobase.
2006-01-31 21:41:48 +03:00
unknown
c98077d610 Merge msvensson@msvensson.mysql.internal:/home/msvensson/mysql/bug15302/my41-bug15302
into  devsrv-b.mysql.com:/space/magnus/my41-bug15302
2006-01-31 18:51:15 +01:00
unknown
47b9860231 Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.0
into  devsrv-b.mysql.com:/space/magnus/my50-bug15302
2006-01-31 16:42:25 +01:00
unknown
1a53ee1a65 Merge msvensson@msvensson.mysql.internal:/home/msvensson/mysql/bug15302/my50-bug15302
into  devsrv-b.mysql.com:/space/magnus/my50-bug15302


client/mysqltest.c:
  Auto merged
sql/sql_db.cc:
  Auto merged
2006-01-31 15:14:46 +01:00
unknown
852a5405e6 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg16829


sql/sql_yacc.yy:
  Auto merged
2006-01-31 15:51:55 +03:00
unknown
b498114fba Merge neptunus.(none):/home/msvensson/mysql/bug15302/my41-bug15302
into  neptunus.(none):/home/msvensson/mysql/bug15302/my50-bug15302


client/mysqltest.c:
  Already in 5.0
sql/sql_db.cc:
  "mysql_create_db" is already silent in 5.0
2006-01-31 12:52:25 +01:00
unknown
c35be28149 Bug #15302 LOAD DATA FROM MASTER -> Packets out of order (Found: 2, expected 1)
- Change "mysql_create_db" to not call "send_ok" if in silent mode i.e. called from "load_master_data"
 - Change mysqltest to detect when there aren't as many warnings available as was reported.


client/mysqltest.c:
  Call "die" if warnings were reported but there weren't any warnings to retrieve
sql/sql_db.cc:
  Don't call "send_ok" if in silent mode.
2006-01-31 12:47:22 +01:00
unknown
4675b563e2 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/dlenev/src/mysql-5.0-bg16829


mysql-test/r/trigger.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
2006-01-31 14:43:41 +03:00