1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-16 20:23:18 +03:00
Commit Graph

2822 Commits

Author SHA1 Message Date
unknown
fd9b177564 Yesterday I removed process_io_create_file; I shouldn't have.
Let's say the lack of comments did not help me ;)
Copying it back again and adding comments; now 3.23->4.0
replication of LOAD DATA INFILE works again.


sql/slave.cc:
  Enabling again process_io_create_file
2003-08-21 10:24:37 +02:00
unknown
d52145da3d Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0


sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/slave.cc:
  Auto merged
2003-08-20 23:25:58 +02:00
unknown
1542fffb34 First commit for fixing BUG#1100
"LOAD DATA INFILE is badly filtered by binlog-*-db rules".
There will probably be a second final one to merge Dmitri's changes
to rpl_log.result and mine.
2 new tests:
rpl_loaddata_rule_m : test of logging of LOAD DATA INFILE when the master has binlog-*-db rules,
rpl_loaddata_rule_s : test of logging of LOAD DATA INFILE when the slave has binlog-*-db rules and --log-slave-updates.


mysql-test/r/rpl_loaddata.result:
  Test that logging of LOAD DATA INFILE is done on the slave
mysql-test/t/rpl_loaddata.test:
  Test that logging of LOAD DATA is done on the slave
sql/log.cc:
  debug info
sql/log_event.cc:
  * Append_block, Exec_load and Delete_file now have a member 'db' like Create_file.
  This member is filled by mysql_load(). It is used for filtering by binlog-*-db rules,
  that's all. It's not written to the binlog, and so can't be read from the binlog.
  In other words, that's temporary info which is stored in the event and lost when
  it is written and deleted.
  * Better error messages in Append_block et al. events.
  * The slave now logs (log-slave-updates) the Create_file et al. events in mysql_load()
  (they are not directly copied from the events in the relay log, because this
  prevented filtering by binlog-*-db rules). Before, mysql_load() in the slave
  did no logging, now it does the logging, as in any regular thread.
sql/log_event.h:
  New member 'db' for Append_block et al. events.
sql/slave.cc:
  Removed useless code. Why was it useless:
  - CREATE_FILE_EVENT is not defined in 3.23. It appeared in 4.0.
  - in queue_old_event(), which is called only if the master is 3.23, we had a
  case CREATE_FILE_EVENT:
  so this case can be removed.
  - this case was the only caller of process_io_create_file() so this function
  can be removed.
sql/sql_load.cc:
  Pass the db to events, so that they can be well filtered.
sql/sql_repl.cc:
  Pass the db to events so that they can be well filtered.
2003-08-20 23:24:45 +02:00
unknown
924a9708c9 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/dlenev/src/mysql-4.0-bg-1086
2003-08-20 17:25:45 +04:00
unknown
de5d47c35d Fixed some varnings from valgrind
Set min value of max_allowed_packet to 1024
Fixed problem with UNION's without braces and SQL_CALC_FOUND_ROWS, LIMIT #,#
and ORDER BY...LIMIT


include/m_string.h:
  Added memcpy_overlap() to avoid warnings when using valgrind on memcpy(A,A,...)
myisam/mi_create.c:
  Fixed comment
myisam/mi_search.c:
  Fix warning from valgrind
myisam/mi_write.c:
  Indentation fix
mysql-test/mysql-test-run.sh:
  Add options handled by general skip- option
mysql-test/r/packet.result:
  Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/r/union.result:
  Added testing of UNION with SQL_CALC_FOUND_ROWS
mysql-test/t/packet.test:
  Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/t/union.test:
  Added testing of UNION with SQL_CALC_FOUND_ROWS
sql/field.cc:
  Fix to remove waarning from valgrind
sql/ha_innodb.cc:
  Remove wrong include file
sql/item_cmpfunc.cc:
  Safety fix to handle EOM conditions in IN
sql/item_sum.cc:
  Fixed prototype for update_field() (argument was alwys 0)
sql/item_sum.h:
  Fixed prototype for update_field() (argument was alwys 0)
sql/item_uniq.h:
  Fixed prototype for update_field() (argument was alwys 0)
sql/log.cc:
  Indentation fix
sql/mysqld.cc:
  Set min value of max_allowed_packet to 1024 (to avoid it getting set to 0)
sql/net_serv.cc:
  Indentation changes + trivial optimization
sql/sql_select.cc:
  Fixed prototype for update_field() (argument was alwys 0)
sql/sql_union.cc:
  Fixed problem with UNION's without braces and
  - SQL_CALC_FOUND_ROWS
  - LIMIT #,#
  - ORDER BY ... LIMIT
2003-08-20 16:25:44 +03:00
unknown
e3541b8a97 Fix for BUG#1086. Now we don't preserve event's log_pos through
log-slave-updates since this causes unexpected values in 
Exec_master_log_pos in A->B->C replication setup, synchronization
 problems in master_pos_wait()... 
Still this brokes some functionality in sql/repl_failsafe.cc 
(but this file is not used now)


mysql-test/r/rpl_log.result:
  SHOW BINLOG EVENTS for binlog on slave should give the same 
  Orig_log_pos and Pos values
sql/log_event.cc:
  Do not propagate our master's log pos to our bin log
sql/repl_failsafe.cc:
  Added comment about broken SHOW NEW MASTER
sql/slave.cc:
  Do not propagate our master's log pos to our bin log
sql/sql_class.cc:
  THD::log_pos is no longer needed
sql/sql_class.h:
  THD::log_pos is no longer needed
sql/sql_parse.cc:
  Added comment about broken SHOW NEW MASTER
2003-08-20 03:38:31 +04:00
unknown
d43a347db1 Use my_b_append instead of my_b_write on a SEQ_READ_APPEND cache, when we write
the first 4 bytes of the relay log. Indeed comments in mysys/mf_iocache.c 
say we must always use my_b_append for such a cache.
This *could* avoid a very rare assertion failure which is: 
030524 19:32:38  Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '/
users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000001' position: 4
030524 19:32:38  next log '/users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000002' is currently active
mysqld: mf_iocache.c:701: _my_b_seq_read: Assertion `pos_in_file == info->end_of_file' failed.
and which seemed to happen always when the SQL thread and/or the I/O thread
were at position 4 in a relay log.


include/my_sys.h:
  moving a function from log_event.cc so that it can be widely used
mysys/mf_iocache.c:
  moving a function from log_event.cc so that it can be widely used
sql/log.cc:
  my_b_write should not be used on a SEQ_READ_APPEND cache, one should use my_b_append
  (otherwise there could be some locking problems).
sql/log_event.cc:
  moved to mysys/mf_iocache.c for wider use.
  A typo.
2003-08-19 17:00:36 +02:00
unknown
fe0e546434 Fix for BUG#1096 which is:
"mysqlbinlog does not comment the original LOAD DATA INFILE if it has a "use xx""


client/mysqlbinlog.cc:
  a comment
sql/log_event.cc:
  in mysqlbinlog we want to have a leading '#' before LOAD DATA INFILE when we
  print a Create_file event.
  This was not done properly when the query had *2* lines: only the "use db" got
  commented.
  To fix this I had to add an argument to Load_log_event::print, it could not be
  handled in Create_file_log_event::print alone.
sql/log_event.h:
  prototype
2003-08-19 15:46:47 +02:00
unknown
01441bc590 Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-4.0
into laptop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
2003-08-18 01:56:31 +03:00
unknown
79e3476071 fixed typo in last push 2003-08-17 14:37:26 +03:00
unknown
ff012aedab Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0


sql/sql_parse.cc:
  Auto merged
2003-08-17 14:10:45 +03:00
unknown
0eaf4d8d7e Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected)
Changed some non fatal myisamchk error messages to warnings


myisam/myisamchk.c:
  Change error -> warning
sql/handler.cc:
  Add mutex around keybuff_size usage
sql/mysql_priv.h:
  Indentation update
sql/set_var.cc:
  Add mutex around longlong variable usage
sql/sql_parse.cc:
  Fix mutex handling in SHOW_VARIABLES
sql/sql_show.cc:
  Fix mutex handling in SHOW_VARIABLES
2003-08-17 14:10:15 +03:00
unknown
ccd828900b Cleanups to recent patches
Fix packet error when using wrong GRANT command


include/config-win.h:
  Changed back to test for HAVE_SETFILEPOINTER instead of operating system
mysql-test/r/grant.result:
  Extra test to catch wrong packet bug
mysql-test/t/grant.test:
  Extra test to catch wrong packet bug
mysys/my_chsize.c:
  Cleanup
sql/opt_range.cc:
  Fix to recent BETWEEN patch
sql/sql_acl.cc:
  Fix packet error when using wrong GRANT command
sql/sql_select.cc:
  Cleanups
  Added not critical out-of-memory check
2003-08-15 09:54:19 +03:00
unknown
902111963e Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-4.0
into laptop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
2003-08-15 00:17:43 +03:00
unknown
5c9e0cdc53 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0


sql/sql_select.cc:
  Auto merged
2003-08-13 13:26:52 +03:00
unknown
1301a6c42d Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-08-12 15:30:47 +02:00
unknown
8e6ff087df snprintf compatibility fix 2003-08-12 15:28:36 +02:00
unknown
20901edafb Remove wrong bug fix when calling create_sort_index.
Fix possible replication bug with LOAD DATA ... IGNORE LINES #


mysql-test/r/rpl_log.result:
  Test of load data ... ignore # lines
mysql-test/t/rpl_log.test:
  Test of load data ... ignore # lines
sql/log_event.cc:
  Fix replication bug with LOAD DATA ... IGNORE LINES #
  (Note that the code that is probably not executed in 4.0)
sql/sql_parse.cc:
  Indentation fix
sql/sql_select.cc:
  Remove wrong bug fix (all tests passes)
sql/sql_yacc.yy:
  Indentation cleanup
2003-08-10 05:14:16 +03:00
unknown
541486f318 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-merged_qc-4.0
2003-08-09 14:16:13 +03:00
unknown
8d81696753 BETWEEN bug fix: non-const expressions on both ends 2003-08-09 01:20:02 +02:00
unknown
05f5df0c36 rewritten test using loop (BUG#930)
removed unused field (now it is in variables)


mysql-test/r/query_cache.result:
  rewritten test using loop
mysql-test/t/query_cache.test:
  rewritten test using loop
sql/sql_class.h:
  removed unused field (now it is in variables)
2003-08-08 23:27:22 +03:00
unknown
a71ef9e643 between range optimization bug (between with const on one end only) 2003-08-08 19:13:27 +02:00
unknown
6db21de014 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0


sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2003-08-07 20:18:51 +03:00
unknown
fa1613be0a Review of changesets since last pull.
(Mostly code cleanups)


include/my_sys.h:
  Removed not used define
myisam/mi_check.c:
  Indentation change
mysql-test/t/rpl_insert_id.test:
  Add test if server supports innodb
mysys/mf_format.c:
  Remove QUOTE handling from fn_format()
  (fn_format() should not have anything to do with quoting things)
sql/log_event.cc:
  Removed some unnecessary casts (by changing functions to use const char *)
  Cleaned up some error messages to make them shorter and (hopefully) more readable.
  Fixed wrong format strings
  Restored 'thd->options' on error.
sql/mini_client.cc:
  Changed order of include files to remove compilation warning
sql/mysqld.cc:
  Add proper quoting of service arguments (don't use fn_format)
sql/slave.cc:
  Simple optimization and cleanup.
  Changed rewrite_db() and print_slave_db_safe() to use const char* to avoid casting of arguments when calling functions.
  Cleanup of some error messages.
sql/slave.h:
  Changed protypes to use const char *
sql/sql_acl.cc:
  Simple optimization
vio/viosslfactories.c:
  Changed order of include files to remove compilation warning
2003-08-07 20:16:37 +03:00
unknown
5d17247128 merged
Docs/Makefile.am:
  Auto merged
acinclude.m4:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2003-08-07 14:39:34 +02:00
unknown
0a47309300 Merge bk-internal:/home/bk/mysql-3.23/
into serg.mylan:/usr/home/serg/Abk/mysql
2003-08-07 14:33:56 +02:00
unknown
2b29fc9271 PRIMARY KEY can erroneously have HA_NULL_PART_KEY flag that breaks correct key sorting 2003-08-07 13:39:53 +02:00
unknown
61f953e88a fixed password buffer overflow 2003-08-07 11:16:34 +02:00
unknown
e50930d36c Bug #792 combination of date-interval and between with mixed constant and non-constant 2003-08-06 15:37:22 +02:00
unknown
79e560162b Fix an erronous cast for GCC introduced for to fix VC++ compiler error
sql/sql_select.cc:
  Fix the GCC compiler error introduced for the cast for VC++
2003-08-05 22:57:44 -03:00
unknown
8edc3dedf9 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-08-05 16:30:22 +02:00
unknown
0f314c9da3 make it clear for optimizer that XOR's are not optimizable at the moment (BUG#992) 2003-08-05 16:29:09 +02:00
unknown
89dad4c9b4 Fix VC++ compiler error 2003-08-04 09:44:26 -03:00
unknown
d8df84aa43 2 bugfixes:
- Bug #985: "Between RESET SLAVE and START SLAVE, SHOW SLAVE STATUS is wrong."
Now RESET SLAVE puts correct info in mi->host etc. A new test rpl_reset_slave
for that.
- Bug #986: "CHANGE MASTER & START SLAVE do not reset error columns in SHOW
SLAVE STATUS". Now these reset the errors.


mysql-test/r/rpl_loaddata.result:
  result update.
mysql-test/t/rpl_loaddata.test:
  Test that RESET SLAVE, START SLAVE and CHANGE MASTER all reset 
  Last_slave_error and Last_slave_errno (columns of SHOW SLAVE STATUS).
  We do it in this test because that's one of tests which have 
  an intentional query error on the slave.
sql/slave.cc:
  As we need TWICE the code to copy command-line options (--master-host etc)
  to mi (we already had it in init_master_info, but we also need it in RESET
  SLAVE to fix bug#985), I make a function of this code.
  And a function to reset Last_slave_error and Last_slave_errno (we need
  it in CHANGE MASTER, RESET SLAVE, and at the start of the SQL thread).
sql/slave.h:
  declarations for new functions.
sql/sql_repl.cc:
  copy --master-host etc to mi in RESET SLAVE, so that SHOW SLAVE STATUS
  shows correct information.
2003-08-04 10:59:44 +02:00
unknown
e2a4c4a5d2 Cleaned up code comment 2003-08-03 16:33:04 +03:00
unknown
3b013646e1 Fix so that SET PASSWORD is not replicated by the slave if running with
replicate-*-table rules which exclude 'mysql' tables
(e.g. replicate-wild-ignore-table=mysql.%).
This was already the behaviour for GRANT/REVOKE, I'm extending it to
SET PASSWORD because it seems very logical (the contrary seems illogical).
2 new tests:
- one to test if GRANT and SET PASSWORD are replicated
- one to test if they are not replicated if replicate-wild-ignore-table=mysql.%
The 2nd is also a testcase for BUG#980.


sql/sql_acl.cc:
  Fix so that SET PASSWORD is not replicated by the slave if running with
  replicate-*-table rules which exclude 'mysql' tables
  (e.g. replicate-wild-ignore-table=mysql.%).
  This was already the behaviour for GRANT/REVOKE, I'm extending it to
  SET PASSWORD because it seems very logical (the contrary seems illogical).
2003-08-02 23:46:26 +02:00
unknown
b1c56d68e9 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0


sql/sql_acl.cc:
  Auto merged
2003-08-02 16:11:39 +02:00
unknown
5a696ebd16 Mark tables 'updating' in sql_acl.cc (mysql_grant(), mysql_table_grant()) so that
tables_ok() does not ignore them. This fixes random bug #980.


sql/sql_acl.cc:
  Mark tables 'updating' so that tables_ok() does not ignore them;
  this fixes random bug #980.
2003-08-02 16:10:26 +02:00
unknown
2c3f656879 Backporting the changeset below from 4.0, because a customer hits
the bug with 3.23.
ChangeSet@1.1416.113.1, 2003-03-22 15:22:59+01:00, guilhem@mysql.com
  Fix for #178  Replicating INSERT VALUES(USER()) crashes (SEGV) the slave
      Now it does not SEGV, but USER() is still badly replicated
      (it is replicated to ""), which is a lower priority bug.


sql/item_strfunc.cc:
  Don't segfault in USER() if thd->user == 0 (system thread).
2003-08-01 22:29:38 +02:00
unknown
9645695108 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-08-01 14:58:57 +02:00
unknown
2d413d3c6f Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-merged_qc-4.0
2003-07-30 16:52:56 +03:00
unknown
9b9a914c5d support of more then 255 tables dependence in query cache (fixed BUG#930)
mysql-test/r/query_cache.result:
  test of many merged tales
mysql-test/t/query_cache.test:
  test of many merged tales
sql/sql_cache.h:
  query with merged tables can depend of more then 255 tables
2003-07-30 14:59:56 +03:00
unknown
880088ba50 Fix security bug. mysqld server without ssl support was completly
ignorant about ssl_type attribute


sql/sql_acl.cc:
  Now acl_getroot() honors ssl_type attribute even if we compile without openssl
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-07-30 03:33:48 +04:00
unknown
17a6d749d4 mysqld.cc:
innodb_fast_shutdown CAN take an argument though it was not specified so in mysqld.cc


sql/mysqld.cc:
  innodb_fast_shutdown CAN take an argument though it was not specified so in mysqld.cc
2003-07-29 00:04:56 +03:00
unknown
46f96a30b0 Avoid segfault when LOAD DATA FROM MASTER is run on a master which does no
binary logging.


sql/repl_failsafe.cc:
  If the master is running without --log-bin, SHOW MASTER STATUS will return
  "empty set", i.e. row==0; we must test this before invoking row[0], or
  segfault.
2003-07-28 15:33:46 +02:00
unknown
2763b52d0a outer join, impossible on condition, where, and usable key for range
bug#926
2003-07-25 14:32:03 +02:00
unknown
6ccd8cfa69 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-07-24 22:30:20 +02:00
unknown
14d9a2e5e7 Fix for BUG#858 "CHANGE MASTER forgets to update relay-log.info";
just a flush_relay_log_info() at the end of CHANGE MASTER
(there was already flush_master_info()).


sql/sql_repl.cc:
  Comments.
  Flush relay-log.info after CHANGE MASTER, or the changes
  to the relay log parameters (relay log name and position, and
  the corresponding master's binlog name and position) will be
  lost if the slave mysqld is shutdown immediately after the 
  CHANGE MASTER (without the slave threads being started).
2003-07-24 22:29:09 +02:00
unknown
ab34adf66a WL#1036 (print the db in slave error messages).
I extended the task to cleaning error messages, making them look nicer,
and making the output of SHOW SLAVE STATUS (column Last_error) be as complete
as what's printed on the .err file;
previously we would have, for a failure of a replicated LOAD DATA INFILE:
- in the .err, 2 lines:
"duplicate entry 2708 for key 1"
"failed loading SQL_LOAD-5-2-2.info"
- and in SHOW SLAVE STATUS, only:
"failed loading SQL_LOAD-5-2-2.info".
Now SHOW SLAVE STATUS will contain the concatenation of the 2 messages.


sql/log_event.cc:
  Print the default database when replication stops because of an error. Previously, we had:
  "error "Duplicate entry 87987 for key 1", query 'insert into t values(87987)'", ie the db
  was not mentioned, making it hard for cases where the same table name is used in
  several databases.
  Lengthened some error messages (for failing replication of LOAD DATA: mention the table
  and the db).
  Changes so that SHOW SLAVE STATUS reports as complete errors as the .err file.
sql/slave.cc:
  Removed a useless declaration (the rewrite_db() function is already declared in slave.h).
  Added missing ')' in error messages.
  Tried to make error messages look nicer (previously we had
  "do START SLAVE;, error_code=1062"
  now we'll have
  "do START SLAVE; . Error_code=1062".
  This form has been discussed, I agree it's no panacea, but it's still more readable
  like this. To be improved in the future :)
sql/slave.h:
  declarations.
2003-07-24 22:25:36 +02:00
unknown
c67f50f37e Fix for service issue with paths having spaces (bug #687) 2003-07-23 21:57:44 -04:00