Commit graph

7 commits

Author SHA1 Message Date
unknown
f095274fe8 merge with 4.1
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/triggers/post-commit:
  Auto merged
Docs/Support/texi2html:
  Auto merged
Makefile.am:
  Auto merged
client/Makefile.am:
  Auto merged
client/mysql.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
include/my_base.h:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/my_sys.h:
  Auto merged
include/my_time.h:
  Auto merged
include/mysql.h:
  Auto merged
include/mysql_com.h:
  Auto merged
innobase/buf/buf0buf.c:
  Auto merged
innobase/include/row0mysql.h:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/examples/Makefile.am:
  Auto merged
myisam/mi_check.c:
  Auto merged
mysql-test/include/ps_modify.inc:
  Auto merged
mysql-test/install_test_db.sh:
  Auto merged
mysql-test/r/alter_table.result:
  Auto merged
mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/bdb.result:
  Auto merged
mysql-test/r/ctype_latin1_de.result:
  Auto merged
mysql-test/r/ctype_recoding.result:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
mysql-test/r/func_gconcat.result:
  Auto merged
mysql-test/r/func_group.result:
  Auto merged
mysql-test/r/func_if.result:
  Auto merged
mysql-test/t/derived.test:
  Auto merged
mysql-test/t/insert.test:
  merge with 4.1
  Fixed test case to not use 'if exists' when it shouldn't
mysql-test/t/range.test:
  merge with 4.1
  Added missing drop table
sql/ha_ndbcluster.cc:
  merge with 4.1
  Simple optimization: use max() instead of ? :
sql/item_func.cc:
  merge with 4.1
  (Added back old variable names for easier merges)
sql/opt_range.cc:
  merge with 4.1
  Removed argument 'parent_alloc' from QUICK_RANGE_SELECT as this was not used
  Added assert if using QUICK_GROUP_MIN_MAX_SELECT with parent_alloc as the init() function can't handle this
  Changed back get_quick_select_for_ref() to use it's own alloc root becasue this function may be called several times for one query
sql/sql_handler.cc:
  merge with 4.1
  change variable 'err' to 'error' as same function had a label named 'err'
sql/sql_update.cc:
  Use multi-update code from 5.0 instead of 4.1
  We will fix the locking code shortly in 5.0 to be faster than in 4.1
2004-10-29 19:26:52 +03:00
unknown
853c2c788c A lot of fixes for prepared statements (PS):
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb


BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
  Delete: mysql-test/t/innodb-lock-master.opt
client/Makefile.am:
  mysqltest now uses regex
client/mysqltest.c:
  Added support for testing of prepared statements (with --ps-protocol)
  Main code was done by Kent, I did mainly some cleanups and minor bug fixes
  New test commands:
  --disable_ps_protocol
  --enable_ps_protocol
  NOTE: new code still has some things that needs to be cleaned up.
  For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
configure.in:
  mysqltest now uses regex
libmysql/libmysql.c:
  Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
  integer -> string conversion now handles ZEROFILL
  double -> string conversion is now closer to the one in the server
  Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
libmysqld/examples/Makefile.am:
  mysqltest now uses regex
mysql-test/include/have_query_cache.inc:
  Fixes for --ps-protocol
mysql-test/include/ps_conv.inc:
  Fixes for --ps-protocol
mysql-test/mysql-test-run.sh:
  Added options --ps-protocol
mysql-test/r/ctype_utf8.result:
  Fixed test case
mysql-test/r/fulltext_cache.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_left_join.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_multi.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/innodb-lock.result:
  Fixed test to work even if Innodb is not compiled in.
mysql-test/t/create.test:
  Fixes for --ps-protocol
mysql-test/t/ctype_utf8.test:
  Remove warnings
mysql-test/t/date_formats.test:
  Fixes for --ps-protocol
mysql-test/t/fulltext_cache.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_left_join.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_multi.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/func_group.test:
  Fixes for --ps-protocol
mysql-test/t/func_sapdb.test:
  Fixes for --ps-protocol
mysql-test/t/innodb-lock.test:
  Fixed test to work even if Innodb is not compiled in.
mysql-test/t/insert.test:
  Fixes for --ps-protocol
mysql-test/t/insert_select.test:
  Fixes for --ps-protocol
mysql-test/t/insert_update.test:
  Fixes for --ps-protocol
mysql-test/t/metadata.test:
  Fixes for --ps-protocol
mysql-test/t/multi_statement.test:
  Fixes for --ps-protocol
mysql-test/t/ps_1general.test:
  Fixes for --ps-protocol
mysql-test/t/rollback.test:
  Fixes for --ps-protocol
mysql-test/t/rpl_redirect.test:
  Fixes for --ps-protocol
mysql-test/t/rpl_user_variables.test:
  Fixes for --ps-protocol
mysql-test/t/select.test:
  Fixes for --ps-protocol
mysql-test/t/status.test:
  Fixes for --ps-protocol
mysql-test/t/type_blob.test:
  Fixes for --ps-protocol
mysql-test/t/type_float.test:
  Fixes for --ps-protocol
mysql-test/t/union.test:
  Fixes for --ps-protocol
mysql-test/t/warnings.test:
  Fixes for --ps-protocol
mysys/my_alloc.c:
  More debugging information
sql-common/client.c:
  More debugging information
sql-common/my_time.c:
  TIME didn't support full range with PS
sql/field.cc:
  TIME didn't support full range with PS
sql/item_cmpfunc.cc:
  IN(constants,...) didn't work with PS
sql/item_subselect.cc:
  Some subqueries didn't work with PS
sql/item_sum.cc:
  group_concat(...ORDER BY) didn't work with PS
  Removed variable warning_available as 'warning' can be used for this.
sql/item_sum.h:
  Removed not needed variable
sql/protocol.cc:
  TIME didn't support full range with PS
sql/set_var.cc:
  Style fix
sql/sql_base.cc:
  setup_wild() didn't properly restore old arena, which caused core dump in PS when using
  SELECT * FROM t1 NATURAL JOIN t2...
sql/sql_class.cc:
  Style fix
sql/sql_error.cc:
  Style fix
sql/sql_insert.cc:
  Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
sql/sql_lex.h:
  Fix for PS and procedures
sql/sql_parse.cc:
  More debugging information
  Make a copy of 'db' in PS as this may change
  Fixed wrong permissions check in PS and multi-table updates
sql/sql_prepare.cc:
  Fix for PS and SELECT ... PROCEDURE
  Reset all warnings when executing a new query
sql/sql_union.cc:
  Fixes for PS and SELECT ... PROCEDURE
  Reset 'with_wild' as 'wild' is resolved on prepare
2004-10-26 19:30:01 +03:00
unknown
62554f812e This is the final commit for Worklog tasks:
* A more dynamic binlog format which allows small changes (1064)
   * Log session variables in Query_log_event (1063)
It contains a few bugfixes (which I made when running the testsuite).
I carefully updated the results of the testsuite (i.e. I checked for every one,
if the difference between .reject and .result could be explained).
Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently,
so I could neither run the few tests which require --manager, nor check
that they pass nor modify their .result. But for builds, we don't run
with --manager.
Apart from --manager, the full testsuite passes, with Valgrind too (no errors).
I'm going to push in the next minutes. Remains: update the manual.
Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone;
this is normal at it makes assumptions on thread ids. I will fix this one day
in 4.1.


mysql-test/r/rpl000015.result:
  result update
mysql-test/r/rpl_change_master.result:
  result update
mysql-test/r/rpl_error_ignored_table.result:
  result update
mysql-test/r/rpl_flush_log_loop.result:
  result update
mysql-test/r/rpl_flush_tables.result:
  result update
mysql-test/r/rpl_loaddata.result:
  result update
mysql-test/r/rpl_loaddata_rule_m.result:
  result update
mysql-test/r/rpl_loaddata_rule_s.result:
  result update
mysql-test/r/rpl_log.result:
  result update
mysql-test/r/rpl_log_pos.result:
  result update
mysql-test/r/rpl_max_relay_size.result:
  result update
mysql-test/r/rpl_relayrotate.result:
  result update
mysql-test/r/rpl_replicate_do.result:
  result update
mysql-test/r/rpl_reset_slave.result:
  result update
mysql-test/r/rpl_rotate_logs.result:
  result update
mysql-test/r/rpl_session_var.result:
  result update
mysql-test/r/rpl_temporary.result:
  result update
mysql-test/r/rpl_trunc_binlog.result:
  result update
mysql-test/r/rpl_until.result:
  result update
mysql-test/r/rpl_user_variables.result:
  result update
mysql-test/t/rpl000010-slave.opt:
  need to wait 2 events, because now we receive a Format_desc on top of the Rotate,
  when replication starts.
mysql-test/t/rpl000015.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_change_master.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_empty_master_crash.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_error_ignored_table.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_flush_log_loop.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_loaddata.test:
  position update
mysql-test/t/rpl_loaddata_rule_m.test:
  position update
mysql-test/t/rpl_loaddata_rule_s.test:
  position update
mysql-test/t/rpl_log.test:
  position update
mysql-test/t/rpl_log_pos.test:
  position update
mysql-test/t/rpl_max_relay_size.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_openssl.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_redirect.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_relayrotate-slave.opt:
  better options for this test
mysql-test/t/rpl_relayrotate.test:
  using max() is better for debugging (it shows at which place the slave
  SQL thread resumed)
mysql-test/t/rpl_replicate_do.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_reset_slave.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_rotate_logs.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_session_var.test:
  100 because password() is longer than 10 chars
mysql-test/t/rpl_trunc_binlog.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_until.test:
  position update
mysql-test/t/rpl_user_variables.test:
  position update
sql/log.cc:
  Ensure that the Format_desc propagated on next relay logs does not trigger
  undue actions (like incrementing some positions or clearing some files).
sql/log_event.cc:
  * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
  a transaction (then these were written by the slave itself to its relay log),
  it should not increment rli->group* variables, but only rli->event* ones.
  * When the slave SQL thread finds a Format_desc not to be ignored (not
  the same server id as the slave's), if it has log_pos==0 it must not trigger
  "unfinished transaction in master's binlog" (log_pos==0 is always a marker
  in the relay log to mean "this event was not at this place in the master's
  binlog": it's for fake Rotate events, and for Format_description events which the master had
  to send us for replication to start).
  * In the Query_log_event on disk, catalog is now terminated by '\0'.
  * thd->catalog must be set to 0 when some exec_event() terminate (otherwise
  double free).
sql/slave.cc:
  * Fixes for a few bugs when ignoring events in the slave SQL thread:
    - do not decrement rli->slave_skip_counter if the event is an event
    related to the binlog or relay log itself (FORMAT_DESCRIPTION,
    ROTATE, STOP) because these events should never be skipped (or the slave
    will be confused). Usually the user wants to skip a query, not a Rotate... 
    - when we (re)connect to the master, we must free description_event_for_queue
    (otherwise memory leak when we reconnect). 
  * Changed a bit the code where we change description_event_for_queue,
  to make it look "safer".
  * Moved 'created=0' to log.cc where it is safer.
  * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
  a transaction (then these were written by the slave itself to its relay log),
  it should not increment rli->group* variables, but only rli->event* ones.
sql/sql_class.h:
  a warning comment
sql/sql_repl.cc:
  A mistake: I had passed a char* instead of char**
2003-12-19 22:40:23 +01:00
unknown
031b6b5fbb fix for BUG#1331: "Unexistent user variable is not replicated".
When an update query is to be written to the binlog, and it reads unset
user variables (example: INSERT INTO t VALUEs(@a) where @a does not exist),
we create the variable like if it had been set with SET before, and we loop
(i.e. we redo the steps of logging, now that the variable exists).


mysql-test/r/rpl_user_variables.result:
  result update.
mysql-test/t/rpl_user_variables.test:
  test to see if unset user variables are written to the binlog
sql/item_func.cc:
  When an update query is to be written to the binlog, and it reads unset
  user variables (example: INSERT INTO t VALUEs(@a) where @a does not exist),
  we create the variable like if it had been set with SET before, and we loop
  (i.e. we redo the steps of logging, now that the variable exists).
2003-10-02 10:31:37 +02:00
unknown
4a07a2b1db Test's result update because std_data/words.dat has been lengthened by 500 bytes.
Increased some tests' robustness a bit :
- Added RESET MASTER to all tests who do SHOW BINLOG EVENTS, to make them independent from previous tests.
- Added save_master_pos to these tests to wait for the slave to start before purging its binary logs.


mysql-test/r/rpl_log.result:
  Updated SHOW BINLOG EVENTS's positions as Monty lengthened std_data/words.dat by 500 bytes.
mysql-test/r/rpl_temporary.result:
  Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test.
mysql-test/r/rpl_user_variables.result:
  Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test.
mysql-test/t/rpl_log.test:
  Added save_master_pos to wait for the slave to have started before purging its binary logs.
  Otherwise, we could purge before the slave finishes starting, and then the slave could log events implicitly provoked by previous tests.
mysql-test/t/rpl_temporary.test:
  Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test.
mysql-test/t/rpl_user_variables.test:
  Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-02-21 23:38:56 +01:00
unknown
5a12dff30b Fixed problem when connecting to user without a password.
Fixed problem with LIKE and BINARY


BitKeeper/etc/ignore:
  added scripts/fill_help_tables
client/mysqltest.c:
  Better error messages
libmysql/libmysql.c:
  Simple code cleanup
  Simplified connect() and change_user() by using sub function
libmysqld/lib_sql.cc:
  Ensure that new fields in MYSQL_FIELD structure is used
mysql-test/r/rpl_user_variables.result:
  Cleaned up test
mysql-test/r/type_blob.result:
  New test
mysql-test/t/rpl_user_variables.test:
  Cleaned up test
mysql-test/t/type_blob.test:
  New test
sql/item.cc:
  Fixed that Item_ref returns the right character set
sql/item_cmpfunc.cc:
  Fixed problem with LIKE and BINARY
sql/item_func.cc:
  Don't store end ASCII(0) for string user variables
  (Made some other code easier)
sql/log_event.cc:
  Don't store end ASCII(0) for string user variables.
  Fixed comment style
  Some optimizations
sql/log_event.h:
  Optimized type
sql/mini_client.cc:
  Indentation changes
sql/mysql_priv.h:
  Made is_update_query extern
sql/protocol.cc:
  Simple code cleanup
sql/sql_acl.cc:
  Code cleanup
  Fixed problem when connecting to user without a password.
sql/sql_lex.h:
  Fixed problem with uninitialized memory
sql/sql_parse.cc:
  Fixed problem with user without passwords
  Fixed some connect problems.
sql/time.cc:
  removed reference to uninitialized memory
2003-02-14 11:47:41 +02:00
unknown
6828a4c0a1 'Replicate user variables' task
include/my_sys.h:
  Addet reset_dinamic
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-01-30 21:39:54 +04:00