Commit graph

29158 commits

Author SHA1 Message Date
unknown
44e286d215 Add new parameter to do_eval so that only unescaped variables in input string is expanded and rest of string is left untouched.
client/mysqltest.c:
  Add new parameter to 'do_eval' that will add any escape chars found in the input string to the output string. 
  This is used in 'do_system' and in 'do_exec' where only unescaped variables
  will be expanded, rest of the string will be left untouched.
mysql-test/r/mysqltest.result:
  Update test result
mysql-test/t/mysqldump.test:
  Revert previous patch that added extra \\ in "exec" command
mysql-test/t/mysqltest.test:
  Revert previous patch that added extra \\ in exec command
2006-02-23 10:11:57 +01:00
unknown
2a88d0f4fa Merge mysql.com:/usr_rh9/home/elkin.rh9/MySQL/BARE/5.0
into  mysql.com:/usr_rh9/home/elkin.rh9/MySQL/FIXES/5.0-bug17265
2006-02-22 18:53:34 +02:00
unknown
0d3cf6b0fd BUG#17265 Assertion failure in rpl_row_view01.
To quote Timour review lines:

The actual cause of the bug is that sql_base.cc:setup_wild()
sets "select_lex->with_wild = 0" (in the end of the function) once
it expands all wild-cards, and wild-card expansion is done during
the prepare phase. During this phase we replace all "*" with the
corresponding items, which for views happen to be references to
references. When we do execute, select_lex->with_wild = 0, and
all "*" are already replaced by the corresponding items, which
in the case of views need to be dereferenced first.

Fixed by refining the assert. Regression test for the bug is rpl_row_view01,
as was reported.


sql/item.cc:
  Refined asssert, suggested by Evgen, due to BUG#17265 prepared statement for select with ps-protocol 
  does not hold the former.
2006-02-22 17:07:18 +02:00
unknown
85e54a08c4 Fix for BUG#7787: Stored procedures: improper warning for "grant execute" statement.
The problem was that error flag was not reset.


mysql-test/r/sp-security.result:
  Results for test case for BUG#7787.
mysql-test/t/sp-security.test:
  A test case for BUG#7787.
sql/sp.cc:
  Reset errors after sp_find_routine().
2006-02-22 13:44:04 +03:00
unknown
475797a346 Fix for BUG#17523: natural join and information schema.
The cause of the bug was an ASSERT that checked the consistency
of TABLE_SHARE::db and TABLE_LIST::db and failed for I_S tables.
The fix relaxes the requirement for consistency for I_S.


mysql-test/r/join.result:
  Added test for BUG#17523
mysql-test/t/join.test:
  Added test for BUG#17523
sql/table.cc:
  Take into account that for I_S tables, TABLE_SHARE::db == 0,
  while TABLE_LIST::db contains the database name of a table.
  The only change is in the ASSERTs.
2006-02-22 10:04:10 +02:00
unknown
f0cff0f648 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-02-22 08:55:06 +01:00
unknown
b56d453c8d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/opt/local/work/mysql-5.0-runtime


sql/sql_yacc.yy:
  Auto merged
sql/share/errmsg.txt:
  SCCS merged
2006-02-22 01:20:47 +03:00
unknown
9cf3f255bd A fix and a test case for Bug#13134 "Length of VARCHAR() utf8
column is increasing when table is recreated with PS/SP":
make use of create_field::char_length more consistent in the code.
Reinit create_field::length from create_field::char_length
for every execution of a prepared statement (actually fixes the 
bug).


mysql-test/r/ps.result:
  Test results fixed (Bug#13134)
mysql-test/t/ps.test:
  A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
  increasing when table is recreated with PS/SP"
sql/field.cc:
  Move initialization of create_field::char_length to the constructor
  of create_field.
sql/field.h:
  Rename chars_length to char_length (to be consistent with
  how this term is used throughout the rest of the code).
sql/sql_parse.cc:
  Initialize char_length in add_field_to_list. This function
  effectively works as another create_field constructor.
sql/sql_table.cc:
  Reinit length from char_length for every field in 
  mysql_prepare_table. This is not needed if we're executing
  a statement for the first time, however, at subsequent executions
  length contains the number of bytes, not characters (as it's expected 
  to).
2006-02-21 19:52:20 +03:00
unknown
9eca58895b Merge neptunus.(none):/home/msvensson/mysql/bug16878/my50-bug16878
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


sql/sp_head.cc:
  Auto merged
mysql-test/r/mysqldump.result:
  Merge
mysql-test/t/mysqldump.test:
  Merge
2006-02-21 17:19:46 +01:00
unknown
71ee8615c3 Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
When a too long field is used for a key, only a prefix part of the field is 
used. Length is reduced to the max key length allowed for storage. But if the
field have a multibyte charset it is possible to break multibyte char
sequence. This leads to the failed assertion in the innodb code and 
server crash when a record is inserted.

The make_prepare_table() now aligns truncated key length to the boundary of
multibyte char.


mysql-test/t/create.test:
  Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
mysql-test/r/create.result:
  Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
sql/sql_table.cc:
  Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
  The make_prepare_table() now aligns truncated key length to the boundary of
  multibyte char.
2006-02-21 18:09:32 +03:00
unknown
c9d8cb49ba Merge neptunus.(none):/home/msvensson/mysql/bug14871/my50-bug14871
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


client/mysqldump.c:
  Auto merged
mysql-test/r/mysqldump.result:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
2006-02-21 15:05:58 +01:00
unknown
387ae4abcf Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/cps/mysql/devel/im/5.0-im-fix-race


server-tools/instance-manager/instance_map.cc:
  Auto merged
2006-02-21 15:59:41 +03:00
unknown
21aa586714 Fix race condition: instance map wasn't locked for the
duration of the whole 'flush instances'. As a consequence,
it was possible to query instance map, while it is in the
inconsistent state. The patch was reworked after review.


server-tools/instance-manager/guardian.cc:
  do not lock instance map in Guardian_thread::init()
server-tools/instance-manager/instance_map.cc:
  Eliminate race condition: lock instance map and guardian
  for the duration of the whole "FLUSH INSTANCES" execution.
server-tools/instance-manager/instance_map.h:
  add new method. cleanup interface. add comments.
server-tools/instance-manager/manager.cc:
  use instance_map.flush_instances instead of instance_map.load() and guardian_thread.init()
2006-02-21 15:57:56 +03:00
unknown
1f12107f00 Bug#14857 Reading dump files with single statement stored routines fails.Bug #14857 Reading dump files with single statement stored routines fails.
- Add tests, fixed by patch for 16878


mysql-test/r/mysqldump.result:
  Update test results
mysql-test/t/mysqldump.test:
  Add tests for bug 14857
2006-02-21 13:43:29 +01:00
unknown
0a970b1289 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/cps/mysql/devel/im/5.0-im-add-error-message
2006-02-21 15:34:54 +03:00
unknown
8a1dd17b5e Fix for Bug #12674 "Instance Manager: IM doesn't handle client
connections correctly".
Recommit with the max timeout value in sync with the comment.


server-tools/instance-manager/options.cc:
  add new option to set wait timeout
server-tools/instance-manager/priv.h:
  add a const for max wait timeout
2006-02-21 15:32:52 +03:00
unknown
15c3702598 Bug#14871 mysqldump: invalid view dump output
- Add comments with embeded veriosn info around the parts of the view syntax that are only supported by a certain version of MySQL Server


client/mysqldump.c:
  Use information_schema.views to gather information about the view, then replace some parts of the output from "SHOW CREATE VIEW" with comment markers with version, to make thos parts of the view syntax become parsed only of MySQL servers that supports it.
  Create common function "open_sql_file_for_table" to open the individual .sql file where to dump the table or view.
mysql-test/r/mysqldump.result:
  Update results
mysql-test/t/mysqldump.test:
  Add test to see that views can be deumped and reloaded alos when they contain "SECURITY TYPE", "CHECK OPTION" and "DEFINER"
2006-02-21 13:21:17 +01:00
unknown
3a9f0e7617 Merge neptunus.(none):/home/msvensson/mysql/mysqltest_replace/my50-mysqltest_replace
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
client/mysqltest.c:
  Merge
mysql-test/mysql-test-run.pl:
  Merge, undo removal
mysql-test/t/mysqldump.test:
  Merge
mysql-test/t/mysqltest.test:
  Merge
2006-02-21 09:40:18 +01:00
unknown
7e57cbec2f Merge neptunus.(none):/home/msvensson/mysql/bug13809/my50-bug13809
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


client/mysqltest.c:
  Auto merged
2006-02-21 09:11:03 +01:00
unknown
f04e21e1be Merge neptunus.(none):/home/msvensson/mysql/bug16557/my50-bug16557
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-02-21 08:58:19 +01:00
unknown
8d93d9256c Merge neptunus.(none):/home/msvensson/mysql/bug16795/my50-bug16795
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


client/mysqltest.c:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
2006-02-21 08:55:13 +01:00
unknown
e36762ead8 Merge neptunus.(none):/home/msvensson/mysql/bug14057/my50-bug14057
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0


libmysql/libmysql.c:
  Auto merged
2006-02-21 08:50:26 +01:00
unknown
ccec6f3e9f Merge neptunus.(none):/home/msvensson/mysql/bug2845/my50-bug2845
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2006-02-21 08:44:27 +01:00
unknown
06d4f8838c Escape \ in "exec"
mysql-test/t/ndb_config.test:
  Add extra \ to escape \. 
  \\\n => \n
2006-02-20 15:03:16 +01:00
unknown
e46f214fd9 Fix typo
client/mysqltest.c:
  Typo % should be %s
2006-02-20 12:05:45 +01:00
unknown
682decc015 Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.w2645
2006-02-20 14:29:50 +04:00
unknown
b24e7ca0af Messgges corrected in mysql_upgrade script
scripts/mysql_upgrade.sh:
  messages corrected
2006-02-20 14:26:32 +04:00
unknown
2c371ec79f Merge mysql.com:/usr/local/mysql/mysql-5.0-fixtest
into  mysql.com:/usr/local/mysql/mysql-5.0
2006-02-20 09:37:26 +01:00
unknown
8aac108d91 Remove hard-coded ../var/.. path in test mix_innodb_myisam_binlog,
fails with --vardir option.
2006-02-20 09:34:02 +01:00
unknown
f37ebdb209 Merge rurik.mysql.com:/home/igor/mysql-5.0
into  rurik.mysql.com:/home/igor/dev/mysql-5.0-0


mysql-test/r/subselect.result:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-02-19 17:26:06 -08:00
unknown
34d8c57208 In previous push, a DROP TABLE at the end of test was missing.
mysql-test/r/mix_innodb_myisam_binlog.result:
  result update
mysql-test/t/mix_innodb_myisam_binlog.test:
  cleanup in the end
2006-02-18 21:08:41 +01:00
unknown
8dc567dbed Fix for BUG#13897 "failure to do SET SQL_MODE=N where N is a number > 31" (the original bug's title isn't the simplest
symptom). sys_var::check_set() was wrong. mysqlbinlog makes use of such SET SQL_MODE=N
(where N is interpreted like if SQL_MODE was a field of type SET), so
this bug affected recovery from binlogs if the server was running with certain SQL_MODE values,
for example the default values on Windows (STRICT_TRANS_TABLES); to work around this bug people
had to edit mysqlbinlog's output.


mysql-test/r/sql_mode.result:
  result update
mysql-test/t/sql_mode.test:
  test for various numeric SQL_MODE values
sql/set_var.cc:
  For a set, it does not make sense to test if the supplied argument exceeds the number of elements in the set
  (such test would make sense for an enum), but rather to check if it exceeds 2^this (to verify
  that only reasonable bits are set).
2006-02-18 17:32:15 +01:00
unknown
8470ae9cb1 Fix for BUG#14769 "Function fails to replicate if fails half-way (slave stops)":
if the function, invoked in a non-binlogged caller (e.g. SELECT, DO), failed half-way on the master,
slave would stop and complain that error code between him and master mismatch. 
To solve this, when a stored function is invoked in a non-binlogged caller (e.g. SELECT, DO), we binlog the function
call as SELECT instead of as DO (see revision comment of sp_head.cc for more).
And: minor wording change in the help text.
This cset will cause conflicts in 5.1, I'll merge.


mysql-test/r/rpl_sp.result:
  result update
mysql-test/t/rpl_sp-slave.opt:
  bug just fixed so option not needed
mysql-test/t/rpl_sp.test:
  test for more half-failed functions with DO and SELECT, to test the bug of this changeset.
  cleanup at the end.
sql/mysqld.cc:
  function -> stored function (change suggested by Paul)
sql/sp_head.cc:
  When a function updates data and is called from a non-binlogged statement (SELECT, DO), we binlog it 
  as SELECT myfunc(), and not DO myfunc() like before.
2006-02-18 17:26:30 +01:00
unknown
cefc0b6dff Fix for BUG#16559 "Replication Problems with Non transactional tables inside an interrupted trans.":
problem was: when a connection disconnects having an open transaction affecting MyISAM and InnoDB, the ROLLBACK event stored in the binary log
contained a non-zero error code (1053 because of the disconnection), so when slave applied the transaction, slave complained that its ROLLBACK succeeded
(error_code=0) while master's had 1053, so slave stopped. But internally generated binlog events such as this ROLLBACK
should always have 0 as error code, as is true in 4.1 and was accidentally broken in 5.0,
so that there is no false alarm.


mysql-test/r/mix_innodb_myisam_binlog.result:
  result update
mysql-test/t/mix_innodb_myisam_binlog.test:
  test for BUG#16559
sql/log.cc:
  Internally generated binlog events should always have an error code of zero (like in 4.1; in 5.0 this was accidentally broken).
2006-02-18 17:19:16 +01:00
unknown
1d96eaddb9 --help option added to mysql_upgrade script
scripts/mysql_upgrade.sh:
  --help option implemented
2006-02-18 14:55:31 +04:00
unknown
187aab97b6 Add a shift in the parser. Forgotten in the previous commit.
server-tools/instance-manager/parse.cc:
  shift the second value for the log
2006-02-18 03:22:13 +03:00
unknown
a2c1e816ff Merge mysql.com:/home/cps/mysql/trees/5.0/mysql-5.0-virgin-debug
into  mysql.com:/home/cps/mysql/devel/im/5.0-im-add-error-message
2006-02-18 02:50:50 +03:00
unknown
eae6679fd4 Fix subselect results (there was a bad merge when subselect test was disabled)
BitKeeper/etc/ignore:
  Added scripts/mysql_upgrade to the ignore list
mysql-test/r/subselect.result:
  Update results
2006-02-17 10:02:59 -08:00
unknown
dd6e56b903 Merge mysql.com:/home/jimw/my/mysql-5.0-14676
into  mysql.com:/home/jimw/my/mysql-5.0-clean


sql/item_strfunc.cc:
  Auto merged
2006-02-17 08:32:50 -08:00
unknown
abe796eb71 Merge paul@bk-internal.mysql.com:/home/bk/mysql-5.0
into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-5.0
2006-02-17 08:38:05 -06:00
unknown
128e5df7e9 mysqlcheck.c:
Tweak --check-upgrade help text.


client/mysqlcheck.c:
  Tweak --check-upgrade help text.
2006-02-17 08:32:52 -06:00
unknown
edd1cd23ea Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0
into moonbone.local:/work/15706-bug-5.0-mysql
2006-02-17 15:36:56 +03:00
unknown
010fb090e8 Set opt_vardir_trace for path for tracefiles 2006-02-17 12:19:05 +01:00
unknown
c61fb3c359 Replace win filename s with unix equivalent
Evaluate commands passed to "exec" and "system" to expand any $variables before executing command.


client/mysqltest.c:
  do_exec, do_system 
   - call do_eval on the command to be executed in order to expand any $variables
   - Remove old subst_env_var and my_popen, not needed anymore
  Rewrite 'replace_strings' into 'replace_strings_append'
   - copy whole strings instead of byte by byte copy
   - insert result directly inito dynamic_string, no need to check if out 
     string needs to be realloced for every byte.
   - Add comments and DBUG_PRINT's
  New function 'fix_win_paths', detect filenames in win format that should be converted 
  do_eval
  - Only set "escaped" if next char is \ or $
mysql-test/mysql-test-run.pl:
  Always pass path for DBUG .trace file in unix format
  Add search path client_debug to find debug compiled windows binaries
  Remove unused MYSQL_TEST_WINDIR and MASTER_WINMYSOCK
mysql-test/r/mysqldump.result:
  Update test result
mysql-test/t/client_xml.test:
  Use " instead of '
mysql-test/t/mysql_client_test.test:
  Remove the useless "exec echo" command
mysql-test/t/mysqltest.test:
  Escape $variables passed to --exec, that should not be evaluated in exec.
mysql-test/t/rpl000015.test:
  Remove unneccessary replace
mysql-test/t/system_mysql_db_fix.test:
  Call the "shell script" $MYSQL_FIX_SYSTEM_TABLE using --system
2006-02-17 12:07:45 +01:00
unknown
96b4449370 Merge bk@192.168.21.1:mysql-5.0
into mysql.com:/home/hf/work/mysql-5.0.w2645


sql/sql_table.cc:
  Auto merged
2006-02-17 10:56:54 +04:00
unknown
bf84040458 WL#2645 (CHECK TABLE FOR UPGRADE)
necessary implementation in the server
mysql_upgrade script added


client/mysqlcheck.c:
  --check-upgrade option added
include/my_base.h:
  errcode added
include/myisam.h:
  option added
scripts/Makefile.am:
  mysql_upgrade script added
sql/handler.cc:
  checks for old types/bugs added
sql/handler.h:
  declarations regarding checks for upgrade
sql/lex.h:
  sym added
sql/share/errmsg.txt:
  error message added
sql/slave.cc:
  now ha_repair is for public use
sql/sql_table.cc:
  upgrade in ha_repair implemented
sql/sql_yacc.yy:
  CHECK ... FOR UPGRADE added to syntax
2006-02-17 10:52:32 +04:00
unknown
1be9ba8ae8 #define popen(A,B) _popen((A),(B))
include/config-win.h:
  Fix strange "double" define for popen.
2006-02-16 23:05:15 +01:00
unknown
2c07e96ca0 Use the tmp dir of MYSQLTEST_VARDIR 2006-02-16 22:10:25 +01:00
unknown
c54809fc59 Don't disable warnings when dropping objects that should exist 2006-02-16 22:06:07 +01:00
unknown
cb71a3051a Use --system for unix command's 2006-02-16 21:34:01 +01:00