Commit graph

5454 commits

Author SHA1 Message Date
unknown
0f675ad47c Manual post merge
mysql-test/t/olap.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/olap.result:
  Manual merge
2005-05-30 05:47:50 -07:00
unknown
5a54820003 olap.result, olap.test:
Added test cases for bug #7894.
sql_select.cc:
  Fixed bug #7894: GROUP BY queries with ROLLUP returned
  wrong results for expressions containing group by columns.
  The fix ensured correct results by replacement of all
  occurrences of group by fields in non-aggregate expressions
  for corresponding ref objects and preventing creation of
  fields in temporary tables for expression containing group
  by fields.


sql/sql_select.cc:
  Fixed bug #7894: GROUP BY queries with ROLLUP returned
  wrong results for expressions containing group by columns.
  The fix ensured correct results by replacement of all
  occurrences of group by fields in non-aggregate expressions
  for corresponding ref objects and preventing creation of
  fields in temporary tables for expression containing group
  by fields.
mysql-test/t/olap.test:
  Added test cases for bug #7894.
mysql-test/r/olap.result:
  Added test cases for bug #7894.
2005-05-30 03:01:51 -07:00
unknown
1c7b61e3ae Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  moonbone.local:/work/mysql-5.0-bug-9593


sql/sql_select.cc:
  Auto merged
2005-05-30 03:34:20 +04:00
unknown
73c46d05af Fix bug #9593 "The combination of COUNT, DISTINCT and CONCAT seems to lock the
server"
Bug appears only on Windows platform. Freeing memory in 
TMP_TABLE_PARAM::cleanup() allocated by new Copy_fields[0] in 
setup_copy_fields() results in memory destruction. In test IF used instead 
of CONCAT because IF have more stable crash.



sql/sql_select.cc:
  Fix bug #9593 The combination of COUNT, DISTINCT and CONCAT seems to lock the server
mysql-test/t/count_distinct.test:
  test for bug #9593 The combination of COUNT, DISTINCT and CONCAT seems to lock the server
mysql-test/r/count_distinct.result:
  Test for bug #9593 The combination of COUNT, DISTINCT and CONCAT seems to lock the server
2005-05-30 03:32:50 +04:00
unknown
40e99987a9 Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
2005-05-28 10:44:49 +02:00
unknown
4ac347596d Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0
into radha.local:/Users/patg/mysql-5.0
2005-05-28 09:00:29 +02:00
unknown
260bfacaa9 merged
innobase/row/row0mysql.c:
  Auto merged
sql/hash_filo.h:
  Auto merged
2005-05-28 01:28:18 +02:00
unknown
63d9bd0c54 Comment and test changes per review request by Timour. All tests pass on production with this code.
mysql-test/r/federated.result:
  added explain results to join test results per Timour's request.
mysql-test/t/federated.test:
  Added explain to test per Timour's request
sql/ha_federated.cc:
  better comment to explain why we need table->status set to 0
2005-05-27 22:07:46 +02:00
unknown
7e0107d44b Merge neptunus.(none):/home/msvensson/mysql/bug9993
into neptunus.(none):/home/msvensson/mysql/mysql-5.0


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2005-05-27 17:22:19 +02:00
unknown
6a7dedf259 Fix broken test case (after merge)
mysql-test/r/union.result:
  Convert back the latin1 characters that where accidently changed during last merge
mysql-test/t/union.test:
  Convert back the latin1 characters that where accidently changed during last merge
2005-05-26 23:33:20 +03:00
unknown
e3beea23a0 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/M50/mysql-5.0


sql/item.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2005-05-26 18:12:56 +02:00
unknown
604799534a merge
sql/item.cc:
  Auto merged
2005-05-26 18:33:57 +03:00
unknown
b36a6032fb BUG#9993 2 unexpected warnings when dropping a routine and --skip-grant-tables
- Dont perform automatic privilege handling for stored procedures when server is started --skip-grant-tables
 - Renamed view_skip_grants to skip_grants and added test cases for this


mysql-test/t/skip_grants-master.opt:
  Rename: mysql-test/t/view_skip_grants-master.opt -> mysql-test/t/skip_grants-master.opt
mysql-test/r/skip_grants.result:
  Added test for create and drop procedure with --skip-grant-tables
mysql-test/t/skip_grants.test:
  Added test for create and drop procedure with --skip-grant-tables
sql/mysql_priv.h:
  Make opt_noacl global
sql/mysqld.cc:
  Make opt_noacl global
sql/sql_parse.cc:
  On ly perform automatic privilege add/revoke if server is not started with  --skip-grant-tables
2005-05-26 16:44:46 +02:00
unknown
80b0baa740 fixed problem with long string results of expressions in UNIONS (BUG#10025)
mysql-test/r/union.result:
  test for Bug #10025
mysql-test/t/union.test:
  test for Bug #10025
sql/item.cc:
  set HA_OPTION_PACK_RECORD and change type to MYSQL_TYPE_STRING, to allow correct field creation in case of length more then 255 (creation STRING field with length more then 255)
2005-05-26 17:30:12 +03:00
unknown
1c8b1af142 Merge
mysql-test/t/select.test:
  SCCS merged
2005-05-26 12:55:31 +02:00
unknown
96f629db87 Manual merge.
client/mysqldump.c:
  Auto merged
include/my_global.h:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
client/client_priv.h:
  Manual merge (still to be corrected!)
2005-05-26 12:51:44 +02:00
unknown
1ee96e12ca Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/bug9879
2005-05-26 11:25:25 +02:00
unknown
5752ecea95 Merge mysql.com:/Users/kent/mysql/bk/mysql-5.0-build
into mysql.com:/Users/kent/mysql/bk/mysql-5.0


myisammrg/myrg_open.c:
  Auto merged
mysys/my_getwd.c:
  Auto merged
sql/unireg.cc:
  Auto merged
2005-05-26 01:38:29 +02:00
unknown
2286913e7f Bug #10838 CREATE TABLE produces strange DEFAULT value 2005-05-25 17:54:36 +02:00
unknown
b4508ef33a changes to fix joins not working (bug #10848). New tests, as well as table->status being set in index_read_idx
mysql-test/r/federated.result:
  new join test results
mysql-test/t/federated.test:
  new simple join tests (more to come with subsequent commits)
sql/ha_federated.cc:
  This fixes joins not working. Monty discussed that having to deal 
  with table->status needs to be moved from the handler/storage engine
  to a higher level
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2005-05-25 02:15:09 +02:00
unknown
9ae4241994 Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0
into xiphis.org:/usr/home/antony/work2/p3-bug7241.6
2005-05-24 22:51:02 +01:00
unknown
e07f6ebf7f Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
2005-05-24 22:44:18 +03:00
unknown
896786eadd Manual merge of patch fixing several trigger related bugs with main tree.
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Manual merge
sql/sql_update.cc:
  Manual merge
2005-05-24 22:35:41 +04:00
unknown
1fa7c69d31 Fix for bugs:
#5860 "Multi-table UPDATE does not activate update triggers"
 #6812 "Triggers are not activated for INSERT ... SELECT"
 #8755 "Trigger is not activated by LOAD DATA".
This patch also implements proper handling of triggers for special forms
of insert like REPLACE or INSERT ... ON DUPLICATE KEY UPDATE. 
Also now we don't call after trigger in case when we have failed to
inserted/update or delete row. Trigger failure should stop statement
execution.

I have not properly tested handling of errors which happen inside of
triggers in this patch, since it is simplier to do this once we will be
able to access tables from triggers.


mysql-test/r/trigger.result:
  Added tests for triggers behavior for various non-standard forms of
  INSERT such as REPLACE and INSERT ... ON DUPLICATE KEY UPDATE.
  Also added tests for bugs #5860 "Multi-table UPDATE does not activate
  update triggers", #6812 "Triggers are not activated for INSERT ... SELECT"
  and #8755 "Trigger is not activated by LOAD DATA".
mysql-test/t/trigger.test:
  Added tests for triggers behavior for various non-standard forms of
  INSERT such as REPLACE and INSERT ... ON DUPLICATE KEY UPDATE.
  Also added tests for bugs #5860 "Multi-table UPDATE does not activate
  update triggers", #6812 "Triggers are not activated for INSERT ... SELECT"
  and #8755 "Trigger is not activated by LOAD DATA".
sql/item.cc:
  Since it turned out that at trigger loading time we can't say in which
  buffer TABLE::record[0] or record[1] old version of row will be stored
  we have to change our approach to binding of Item_trigger_field to
  Field instances.
  Now after trigger parsing (in Item_trigger_field::setup_table()) we only
  find index of proper Field in the TABLE::field array. Then before trigger
  is invoked we set Table_triggers_list::old_field/new_field so they point
  to arrays holding Field instances bound to buffers with proper row
  versions. And as last step in Item_trigger_field::fix_fields() we get
  pointer to Field from those arrays using saved field index.
  
  Item_trigger_field::setup_field()/fix_fields() were changed to implement
  this approach.
sql/item.h:
  Since it turned out that at trigger loading time we can't say in which
  buffer TABLE::record[0] or record[1] old version of row will be stored
  we have to change our approach to binding of Item_trigger_field to
  Field instances.
  Now after trigger parsing (in Item_trigger_field::setup_table()) we only
  find index of proper Field in the TABLE::field array. Then before trigger
  is invoked we set Table_triggers_list::old_field/new_field so they point
  to arrays holding Field instances bound to buffers with proper row
  versions. And as last step in Item_trigger_field::fix_fields() we get
  pointer to Field from those arrays using saved field index.
  
  Item_trigger_field:
  - Added field_idx member to store index of Field object corresponding to
    this Item in TABLE::field array.
  - Added triggers member to be able to access to parent Table_trigger_list
    object from fix_fields() method.
  - setup_field() no longer needs to know for which type of event this
    trigger is, since it does not make decision Field for which buffer
    (record[0] or record[1] is appropriate for this Item_trigger_field)
sql/mysql_priv.h:
  Added fill_record_n_invoke_before_triggers() methods. They are simple
  wrappers around fill_record() which invoke proper before trigger right
  after filling record with values.
sql/sql_base.cc:
  Added fill_record_n_invoke_before_triggers() methods. They are simple
  wrappers around fill_record() which invoke proper before trigger right
  after filling record with values.
sql/sql_delete.cc:
  mysql_delete():
    Now we stop statement execution if one of triggers failed, we also
    don't execute after delete trigger if we failed to delete row from
    the table (We also pass information about which buffer contains old
    version of row to process_triggers()).
  multi_delete::send_data()/do_deletes():
    Now we also invoke triggers in case of multi-delete.
sql/sql_insert.cc:
  mysql_insert():
    Moved invocation of before triggers to fill_record_n_invoke_before_triggers()
    method. After triggers are now executed as part of write_record().
    (as nice side effect now we also stop statement execution if one of
    triggers fail).
  write_record():
    Invoke after insert trigger after performing insert. Also invoke proper
    triggers if insert is converted to update or conflicting row is deleted.
    Cleaned up error handling a bit - no sense to report error via
    handler::print_error if it was not generated by handler method and
    was reported before.
    Also now we will execute after trigger only if we really have written
    row to the table. 
  select_insert::send_data()/store_values():
    We should also execute INSERT triggers for INSERT ... SELECT statement.
sql/sql_load.cc:
  read_fixed_length()/read_sep_field():
    We should execute INSERT triggers when processing LOAD DATA statement.
    Small cleanup in auto-increment related code. Also moved check for
    thd->killed which is used to abort LOAD DATA in case of problems
    in 'traditional' mode to better place..
sql/sql_trigger.cc:
  Since it turned out that at trigger loading time we can't say in which
  buffer TABLE::record[0] or record[1] old version of row will be stored
  we have to change our approach to binding of Item_trigger_field to
  Field instances.
  Now after trigger parsing (in Item_trigger_field::setup_table()) we only
  find index of proper Field in the TABLE::field array. Then before trigger
  is invoked we set Table_triggers_list::old_field/new_field so they point
  to arrays holding Field instances bound to buffers with proper row
  versions. And as last step in Item_trigger_field::fix_fields() we get
  pointer to Field from those arrays using saved field index.
  
  Table_triggers_list methods were changed to implement this approach
  (see also comments for sql_trigger.h).
sql/sql_trigger.h:
  Since it turned out that at trigger loading time we can't say in which
  buffer TABLE::record[0] or record[1] old version of row will be stored
  we have to change our approach to binding of Item_trigger_field to
  Field instances.
  Now after trigger parsing (in Item_trigger_field::setup_table()) we only
  find index of proper Field in the TABLE::field array. Then before trigger
  is invoked we set Table_triggers_list::old_field/new_field so they point
  to arrays holding Field instances bound to buffers with proper row
  versions. And as last step in Item_trigger_field::fix_fields() we get
  pointer to Field from those arrays using saved field index.
  
  Changed Table_triggers_list to implement this new approach:
  - Added record1_field member to store array of Field objects bound
    to TABLE::record[1] buffer (instead of existing old_field member)
  - Added new_field member and changed meaning of old_field member.
    During trigger execution they should point to arrays of Field objects
    bound to buffers holding new and old versions of row respectively.
  - Added 'table' member to be able to get access to TABLE instance
    (for which this trigger list object was created) from process_triggers()
    method.
  - Now process_triggers() method sets old_field and new_field members
    properly before executing triggers body (basing on new 
    old_row_is_record1 parameter value).
  - Renamed prepare_old_row_accessors_method() to prepare_record1_accessors()
  
  Also added has_before_update_triggers() method which allows to check
  whenever any before update triggers exist for table.
sql/sql_update.cc:
  mysql_update():
    Now we invoke before triggers in fill_record_n_invoke_before_triggers()
    method. Also now we abort statement execution when one of triggers fail.
  safe_update_on_fly():
    When we are trying to understand if we can update first table in multi
    update on the fly we should take into account that BEFORE UPDATE
    trigger can change field values.
  multi_update::send_data()/do_updates()
    We should execute proper triggers when doing multi-update
    (in both cases when we do it on the fly and using temporary tables).
2005-05-24 22:19:33 +04:00
unknown
5e5eb0a64b Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into zim.(none):/home/brian/mysql/mysql-4.1
2005-05-24 10:48:03 -07:00
unknown
be9845b004 Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.1
into sinisa.nasamreza.org:/mnt/work/mysql-4.1
2005-05-24 19:47:18 +03:00
unknown
edcc645b8e Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
2005-05-24 18:23:31 +03:00
unknown
879d932ba9 Merge
mysql-test/r/lock.result:
  Auto merged
mysql-test/r/rpl_log.result:
  Auto merged
mysql-test/t/lock.test:
  Auto merged
mysql-test/r/rpl_rotate_logs.result:
  SCCS merged
sql/sql_parse.cc:
  SCCS merged
sql/sql_repl.cc:
  SCCS merged
2005-05-24 15:52:48 +01:00
unknown
801c2c275a Added a test case for Bug#8009.
sql/item.cc:
  Fixed Bug#8009.
2005-05-24 17:50:17 +03:00
unknown
8643958c5f Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-4.1
into mdk10.(none):/home/reggie/bk/41test2
2005-05-24 09:02:56 -05:00
unknown
6a96b815e7 removed unneeded reserved_win_names testcase
BitKeeper/deleted/.del-reserved_win_names.test~334b02776c4247a7:
  Delete: mysql-test/t/reserved_win_names.test
BitKeeper/deleted/.del-reserved_win_names.require~be6a130b5430085f:
  Delete: mysql-test/r/reserved_win_names.require
BitKeeper/deleted/.del-reserved_win_names.result~ea458226c0df5337:
  Delete: mysql-test/r/reserved_win_names.result
2005-05-24 09:01:06 -05:00
unknown
efc7b884eb Bug#7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
Only acquire necessary write lock for multi-delete


mysql-test/r/lock.result:
  Test for Bug#7241
mysql-test/t/lock.test:
  Test for Bug#7241
sql/sql_parse.cc:
  Bug#7241
    Don't acquire write lock on all tables.
    Make sure to set lock_type on real table_list
2005-05-24 11:44:34 +01:00
unknown
d0afc3492e Merge gluh@gluh:/home/gluh/release/mysql-5.0-build
into mysql.com:/home/gluh/MySQL/Merge/mysql-5.0
2005-05-24 15:35:24 +05:00
unknown
f9433acc81 Fix for bug #10659: information_schema_db fail on Mac OS 2005-05-24 14:35:23 +04:00
unknown
0e4afc2412 Merge bk-internal.mysql.com:/data0/bk/mysql-4.1
into bk-internal.mysql.com:/data0/bk/mysql-5.0


BitKeeper/etc/gone:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
mysql-test/r/lowercase_table.result:
  Auto merged
mysql-test/t/lowercase_table.test:
  Auto merged
mysys/my_open.c:
  Auto merged
2005-05-24 00:31:28 +02:00
unknown
97bde75e4e BUG# 9148 Denial of service
fixups of test case and comment formatting


BitKeeper/deleted/.del-reserved_win_names-master.opt~e56da049a7ce9a5b:
  ***MISSING TEXT***
mysql-test/r/lowercase_table.result:
  added my test for bug #9148 to this test case
mysql-test/t/lowercase_table.test:
  added my test for bug #9148 to this test case
mysys/my_fopen.c:
  reformatted comments
mysys/my_open.c:
  reformatted comments
2005-05-23 14:48:25 -05:00
unknown
6df4988985 join_outer.test, join_outer.result:
Added test cases for bug #9938.
item.h:
  Fixed bug #9938: missing method not_null_tables for Item_ref.


sql/item.h:
  Fixed bug #9938: missing method not_null_tables for Item_ref.
mysql-test/t/join_outer.test:
  Added test cases for bug #9938.
2005-05-21 08:44:50 -07:00
unknown
8f7bca3abd range.result, range.test:
Added test cases for optimization request #10561.
opt_range.cc, sql_select.cc:
  Fixed bug #10561: an optimization request to allow
  range analysis for NOT IN and NOT BETWEEN.


sql/sql_select.cc:
  Fixed bug #10561: an optimization request to allow
  range analysis for NOT IN and NOT BETWEEN.
sql/opt_range.cc:
  Fixed bug #10561: an optimization request to allow
  range analysis for NOT IN and NOT BETWEEN.
mysql-test/t/range.test:
  Added test cases for optimization request #10561.
mysql-test/r/range.result:
  Added test cases for optimization request #10561.
2005-05-21 06:11:44 -07:00
unknown
606d8a5ab0 fixed conflicts
VC++Files/mysys/mysys.dsp:
  Auto merged
include/my_sys.h:
  Auto merged
sql/sql_db.cc:
  Auto merged
2005-05-20 16:34:59 -05:00
unknown
c1ae672add BUG# 9148: Denial of service
The problem was that on Windows the access method indicates that access to file 
such as "com1" and "lpt1" is allowed (since they are device names) and
this causes mysql to attempt to open them as databases or tables.

The fix was to write our own my_access method that uses other Win32 functions
to determine if the given argument is indeed a file and has to requested
mode.


VC++Files/mysys/mysys.dsp:
  added my_access
VC++Files/mysys/mysys_ia64.dsp:
  added my_access.c
include/my_sys.h:
  if on windows, we use my_access.
  if not on windows, then my_access points to the native access method
mysys/Makefile.am:
  added my_access to mysys build file
mysys/mf_pack.c:
  changed call to access to my_access
sql/sql_db.cc:
  changed call to access to my_access
2005-05-20 16:04:10 -05:00
unknown
2a5a3de285 Fixed BUG#10537: Server crashes while loading data file into table through
procedure.
  by simply disabling 'load' in stored procedures, like it's already disabled
  for prepared statements. (They must be made "re-execution" safe before
  working with either PS or SP.)


mysql-test/r/sp-error.result:
  New test case for BUG#10537.
mysql-test/t/sp-error.test:
  New test case for BUG#10537.
sql/sql_yacc.yy:
  Disable LOAD in stored procedures (just as for prepared statements).
2005-05-20 17:47:08 +02:00
unknown
7fa4dc6d2f Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
2005-05-20 17:32:35 +03:00
unknown
19f3d13c8a Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0
into gluh.mysql.r18.ru:/home/gluh/release/mysql-5.0
2005-05-20 18:32:34 +04:00
unknown
ec00a4558c Additions for --add-drop-database
client/client_priv.h:
  Adding option for drop database
client/mysqldump.c:
  Work for adding of --add-drop-database
mysql-test/r/mysqldump.result:
  New test results for --add-drop-databases
mysql-test/t/mysqldump.test:
  Tests for --add-drop-databases
2005-05-20 06:56:02 -07:00
unknown
aaf5e0485c Add missing test result
mysql-test/t/subselect.test:
  Add test of result
2005-05-20 16:31:46 +03:00
unknown
648b072da2 do not try to use equal field from outer query as field of local join (BUG#6384)
mysql-test/r/subselect.result:
  changes in plans
  test for bug#6384
mysql-test/t/subselect.test:
  test for bug#6384
sql/sql_select.cc:
  do not set equal field from outer query
2005-05-20 16:01:41 +03:00
unknown
122e029a2c Merge gluh.mysql.r18.ru:/home/gluh/release/mysql-5.0-build
into gluh.mysql.r18.ru:/home/gluh/release/mysql-5.0
2005-05-20 16:55:00 +04:00
unknown
be218f51f5 addition of "REFERENCED_TABLE_SCHEMA",
"REFERENCED_TABLE_NAME", "REFERENCED_COLUMN_NAME" fields into
  KEY_COLUMN_USAGE table
2005-05-20 16:39:28 +04:00
unknown
4c3d3bb2f4 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-05-20 00:05:24 +02:00
unknown
f210d1ddf1 Merge mysqldev@production.mysql.com:my/mysql-5.0-build
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-build


sql/item_func.cc:
  Auto merged
2005-05-19 22:23:59 +02:00