Commit graph

1624 commits

Author SHA1 Message Date
unknown
40c951a01e Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-11-18 17:36:09 +01:00
unknown
80649ee874 Fix for BUG#1870
"CHANGE MASTER makes SQL thread restart from coordinates of I/O thread".
    So, in CHANGE MASTER:
    when it seems reasonable that the user did not want to discontinue
    its replication (i.e. when he is not specifying host or port or master_log_file
    or master_log_pos; this will be documented), set the coordinates of the
    I/O thread to those of the SQL thread. This way, the SQL thread will see
    no discontinuity in the relay log (i.e. will skip no events), because
    the I/O thread will fill the brand new relay log with the events which
    are just after the position where the SQL thread had stopped
    (before CHANGE MASTER was issued).
    And a new test for this bug.


mysql-test/r/rpl_loaddata.result:
  Now, after CHANGE MASTER the coordinates of the I/O thread are the last ones of the SQL thread, so result update.
sql/sql_repl.cc:
  Fix for BUG#1870
  "CHANGE MASTER makes SQL thread restart from coordinates of I/O thread".
  So, in CHANGE MASTER:
  when it seems reasonable that the user did not want to discontinue
  its replication (i.e. when he is not specifying host or port or master_log_file
  or master_log_pos; this will be documented), set the coordinates of the
  I/O thread to those of the SQL thread. This way, the SQL thread will see
  no discontinuity in the relay log (i.e. will skip no events), because
  the I/O thread will fill the brand new relay log with the events which
  are just after the position where the SQL thread had stopped
  (before CHANGE MASTER was issued).
2003-11-18 17:31:17 +01:00
unknown
dcf29d5ec8 Fix for bug when zeros are to be prepended to decimal field 2003-11-18 15:58:27 +02:00
unknown
069ec78c80 Item_uint::save_in_field() added to take into account bigint->decimal case
BitKeeper/etc/ignore:
  Added sql/udf_example.so to the ignore list
2003-11-16 17:37:15 +01:00
unknown
1c45978512 Fix for bug #1564: CREATE TABLE + UNION + same table name = crash 2003-11-11 18:14:49 +04:00
unknown
20da41c5d6 fulltext.test, fulltext.result:
one simple trunc* test


mysql-test/r/fulltext.result:
  one simple trunc* test
mysql-test/t/fulltext.test:
  one simple trunc* test
2003-11-08 15:39:10 +01:00
unknown
52d7e97413 Merge kosipov@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/kostja/mysql/mysql-4.0-root
2003-11-04 12:55:39 +03:00
unknown
e23018167b Word Police law is abided
mysql-test/t/range.test:
  Word Police memo is abided
2003-11-04 12:38:09 +03:00
unknown
56ebe77bd1 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-11-03 23:19:20 +01:00
unknown
91b22c5abe fixed a bug in boolean fts where a word queue was created based on min_word_len, while with trunc* operator one could get shorter words 2003-11-03 23:18:55 +01:00
unknown
bc296f9495 Merge mysql.com:/home/kostja/mysql/mysql-4.0-root
into mysql.com:/home/kostja/mysql/mysql-4.0-1724
2003-11-03 22:53:42 +03:00
unknown
fdd0e7078d Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-11-03 18:25:47 +01:00
unknown
5ec3a67132 When we delete the slave's temp tables from memory, we reset
rli->save_temporary_tables and slave_open_temp_tables
(in old 4.0 you could make "SHOW STATUS LIKE 'slave_open_temp_tables'" grow
indefinitely by doing RESET SLAVE and replicating always the same CREATE
TEMPORARY TABLE).
It's critical to reset save_temporary_tables to 0 (otherwise you may later
read memory which has been freed) so this changeset should go into 4.1.


mysql-test/r/rpl_reset_slave.result:
  result update
mysql-test/t/rpl_reset_slave.test:
  test for RESET SLAVE and creating twice the same temp table in the slave.
sql/slave.cc:
  when we delete the slave's temp tables (when slave server shuts down and when
  RESET SLAVE), we reset 2 variables: rli->save_temporary_tables & slave_open_temp_tables.
2003-11-03 18:24:01 +01:00
unknown
22bc137c2e fix for bug #1724 'WHERE ... IN() optimizer behaviour
has changed since 4.0.14'
We need to calculate cost of RANGE
scan if it is present instead of cost of 
FULL scan.


mysql-test/r/order_by.result:
  more accurate row estimation
  for RANGE scan
mysql-test/r/range.result:
  added test case for bug #1724
  'WHERE ... IN() optimizer behaviour has changed since 4.0.14'
mysql-test/r/select.result:
  please ignore
mysql-test/t/range.test:
  added test case for bug #1724
  'WHERE ... IN() optimizer behaviour has changed since 4.0.14'
sql/sql_select.cc:
  fix for bug #1724 'WHERE ... IN() optimizer behaviour 
  has changed since 4.0.14'
  We need to calculate cost of RANGE
  scan instead of cost of FULL scan
  if RANGE is present
  Few comments cleaned up.
2003-11-03 19:56:01 +03:00
unknown
7960f2c4a8 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/my/mysql-4.0
2003-11-02 15:55:25 +02:00
unknown
c97a38c4d3 Call my_sync() after all data is written to .frm file
Added my_sync() to mysys which will do fsync/fdatasync/_commit() on a file.


VC++Files/mysys/mysys.dsp:
  Added my_sync.c
configure.in:
  Added testing of fsync and fdatasync
include/my_sys.h:
  Added my_sync()
include/mysys_err.h:
  Added my_sync()
isam/extra.c:
  Added my_sync()
myisam/mi_extra.c:
  Added my_sync()
myisam/mi_locking.c:
  Added my_sync()
mysql-test/mysql-test-run.sh:
  Added option --valgrind-all
mysys/Makefile.am:
  Added my_sync.c
mysys/errors.c:
  Added my_sync()
mysys/my_symlink.c:
  Removed compiler warning
mysys/thr_alarm.c:
  Fix for link error on windows
sql/unireg.cc:
  Call my_sync() after all data is written to .frm file
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-11-02 15:55:02 +02:00
unknown
b920ab261e 4 small items in this:
- when we don't have in_addr_t, use uint32.
- a forgotten initialization of slave_proxy_id in sql/log_event.cc (was not really "forgot", was
"we needn't init it there", but there was one case where we needed...).
- made slave_proxy_id always meaningful in THD and Log_event, so we can
rely more on it (no need to test if it's meaningful). THD::slave_proxy_id
is equal to THD::thread_id except for the slave SQL thread.
- clean up the slave's temporary table (i.e. free their memory) when slave
server shuts down.


extra/resolveip.c:
  removed #define as it is simpler to put it in my_net.h
  (because we need the #define elsewhere)
include/my_net.h:
  When in_addr_t is not defined, use uint32.
libmysql/libmysql.c:
  using in_addr_t is more generic.
libmysql/manager.c:
  using in_addr_t is more generic.
mysql-test/t/rpl_chain_temp_table.test:
  comments
sql/log_event.cc:
  * Had forgot to initialize slave_proxy_id in the event constructor (char* buf...).
  Initializing is in fact only needed for Create_file_log_event, because
  it uses slave_proxy_id even if it does not write an event to the binlog
  (it uses slave_proxy_id to write it to SQL-LOAD.info).
  * When we write events we now always write slave_proxy_id, which is now always
  meaningful (as thd->slave_proxy_id is now always meaningful, see change in
  sql_class.cc).
sql/mini_client.cc:
  in_addr_t is more generic.
sql/slave.cc:
  A RELAY_LOG_INFO method to free the slave's temporary tables from memory
  at slave's server shutdown.
  It is called by end_slave(), which is called by close_connections(),
  which is called when the server terminates
  (close_connections() is just before clean_up(); putting the call in 
  clean_up() was buggy, as active_mi is already deleted by close_connections().
sql/slave.h:
  new method
sql/sql_class.cc:
  By default we set THD::slave_proxy_id to THD::thread_id,
  so THD::slave_proxy_id is always meaningful (not 0).
  It's always the same as the thread id except for the slave
  SQL thread.
2003-10-31 23:20:23 +01:00
unknown
8a66a844ce Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-10-30 16:13:38 +01:00
unknown
b4bc448eba Fix to be able to run
mysql-test-run --manager --valgrind
(without this fix, the manager fails to start mysqld and the tests hang).


mysql-test/mysql-test-run.sh:
  When running with --manager: the MySQL manager wants the complete path of the
  executable (it uses execv(), not execvp(), so does not search in the $PATH,
  so telling him to start 'valgrind' is not enough, it wants '/usr/bin/valgrind'
  or so).
  So this is a fix to be able to
  mysql-test-run --manager --valgrind
  Plus a warning (previously, if valgrind was not installed, tests silently
  hanged when run with --valgrind).
2003-10-30 16:12:21 +01:00
unknown
03dbf8ccbb Fix for BUG#1686
"If 2 master threads with same-name temp table, slave makes bad binlog"
and (two birds with one stone) for
BUG#1240 "slave of slave breaks when STOP SLAVE was issud on parent slave
and temp tables".

Here is the design change:
in a slave running with --log-slave-updates, events are now logged with the
thread id they had on the master. So no more id conflicts between master threads,
but introduces id conflicts between one master thread and one normal 
client thread connected to the slave. This is solved by storing the server id
in the temp table's name.

New test which requires mysql-test-run to be run with --manager,
otherwise it will be skipped.

Undoing a Monty's change (hum, a chill runs down my spine ;) which was
"Cleanup temporary tables when slave ends" in ChangeSet 1.1572.1.1.


mysql-test/mysql-test-run.sh:
  One new test which needs more than one slave so must be hardcoded in mysql-test-run.sh.
sql/log_event.cc:
  The event needs to carry a slave_proxy_id (which is set at event's creation
  and used at event's logging).
  This is used for events created by ::exec_event() in the slave SQL thread:
  now we want to log these events with the thread id they had on the master.
  This is so that several same-name temp tables simultaneously created on
  the master end up with not the same thread id in the slave's binlog.
sql/log_event.h:
  Query and Load need to carry a slave_proxy_id, like they carried a thread_id
  (to replicate temp tables well).
sql/slave.cc:
  Do not free temp tables in the slave SQL thread. Or they will be lost when
  one does STOP SLAVE / START SLAVE.
  We even save them in rli->save_temporary_tables and set thd->temporary_tables=0
  to prevent them to be freed.
sql/sql_base.cc:
  Put the server id in the table cache key name for temp tables
  (we already put the slave_proxy_id, but we also need the server id
  in case normal clients (not slave threads) are using temp tables
  on the slave).
sql/unireg.h:
  4 more bytes, to store the server id.
2003-10-29 14:23:35 +01:00
unknown
f1a9ebe932 Fix results after merge 2003-10-23 14:04:06 +03:00
unknown
f90558d645 Merge with 3.23 to get 4.0 tree in sync (no relevant changes to 4.0 tree)
BitKeeper/etc/logging_ok:
  auto-union
sql/mini_client.cc:
  Auto merged
client/mysqlbinlog.cc:
  use local file
mysql-test/t/myisam.test:
  Remove uncessesary drop table
sql/sql_parse.cc:
  Use local
sql/sql_repl.cc:
  use local
2003-10-23 13:25:16 +03:00
unknown
42de9a3ed9 Fix for bug #1271: Undefined variable in PASSWORD() function is not
handled correctly
2003-10-21 15:14:06 +05:00
unknown
246d37076e - Updated rpl_trunc_binlog test result after last change 2003-10-17 02:32:09 +02:00
unknown
0b8743c1b2 A fix for a random test failure rpl_trunc_binlog: don't RESET MASTER
while the slave is connected.


mysql-test/t/rpl_trunc_binlog.test:
  don't RESET MASTER while the slave is connected; this could confuse the master or slave.
  (In replication you don't RESET MASTER while a slave is connected!)
sql/slave.cc:
  typo
2003-10-17 00:00:25 +02:00
unknown
f1fc5c54eb Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-qc_crash-4.0
2003-10-16 21:17:45 +03:00
unknown
b06eb4d81a Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
Fixed chsize() problem on windows
Extend default timeout on windows clients to 1 year (to avoid timeout problems)


include/mysql.h:
  Added client timeouts (for TCP/IP)
libmysql/libmysql.c:
  Added client timeouts (for TCP/IP)
mysql-test/r/create.result:
  More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysql-test/t/create.test:
  More tests for CREATE TABLE IF NOT EXISTS ... SELECT
mysys/my_chsize.c:
  Fix for windows
sql/handler.h:
  Remove not used field 'if_not_exists'
  Ordered fields to be more optimized for new CPU's
  Added field 'table_existed'
sql/slave.cc:
  Cleanup temporary tables when slave ends
sql/sql_class.h:
  Remove not used 'do_not_drop' field
sql/sql_insert.cc:
  Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
sql/sql_table.cc:
  Better fix for CREATE TABLE IF NOT EXISTS ... SELECT
2003-10-15 21:41:13 +03:00
unknown
60fb31ddec Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0


sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2003-10-15 16:23:01 +03:00
unknown
d1ed51db82 Fixed bug in SET enum_system_variable=NULL
BitKeeper/etc/ignore:
  added scripts/make_sharedlib_distribution
mysql-test/r/variables.result:
  Add test for enum_system_variable=NULL
mysql-test/t/variables.test:
  Add test for enum_system_variable=NULL
sql/set_var.cc:
  Fixed bug in SET enum_system_variable=NULL
  Moved some array elements to get result sorted
2003-10-14 16:30:42 +03:00
unknown
83f5a6a34f Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0


sql/slave.cc:
  Auto merged
2003-10-14 00:27:04 +02:00
unknown
74ea459412 Add new user variables for tuning memory usage:
query_alloc_block_size, query_prealloc_size, range_alloc_block_size,transaction_alloc_block_size and transaction_prealloc_size
Add more checks for "out of memory" detection in range optimization


configure.in:
  Added detection of mallinfo
mysql-test/r/variables.result:
  Test of new variables
mysql-test/t/variables.test:
  Test of new variables
sql/ha_berkeley.cc:
  Use init_sql_alloc instead of init_alloc_root for better OOM detection
sql/log_event.cc:
  Add new user variables for tuning memory usage
sql/mysql_priv.h:
  Add new user variables for tuning memory usage
sql/mysqld.cc:
  Add new user variables for tuning memory usage
sql/opt_ft.cc:
  Add new user variables for tuning memory usage
sql/opt_ft.h:
  Add new user variables for tuning memory usage
sql/opt_range.cc:
  Add new user variables for tuning memory usage
  Add more checks for out of memory conditions
sql/opt_range.h:
  Add new user variables for tuning memory usage
sql/set_var.cc:
  Add new user variables for tuning memory usage
sql/sql_acl.cc:
  Add new user variables for tuning memory usage
sql/sql_class.h:
  Add new user variables for tuning memory usage
sql/sql_delete.cc:
  Add new user variables for tuning memory usage
sql/sql_parse.cc:
  Add new user variables for tuning memory usage
sql/sql_select.cc:
  Add new user variables for tuning memory usage
sql/sql_test.cc:
  Add information about memory useage if system supports mallinfo()
sql/sql_udf.cc:
  Add new user variables for tuning memory usage
sql/sql_update.cc:
  Add new user variables for tuning memory usage
sql/table.cc:
  Add new user variables for tuning memory usage
2003-10-11 22:00:24 +03:00
unknown
6a90df8b0c fixed temp directory for mysqlbinlog (was wrong on solaris) 2003-10-08 17:15:59 -04:00
unknown
7e9e20e3c2 Fixed memory leak in send_file
mysql-test/t/myisam.test:
  Cleanup test
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-10-08 21:02:53 +03:00
unknown
26456b8838 Fixed test case that my last patch to mysqlbinlog broke.
Changed --remote to --read-from-remote-server (mysqlbinlog)


client/mysqlbinlog.cc:
  Changed --remote to --read-from-remote-server to make option more understandable
mysql-test/t/mysqlbinlog.test:
  Fixed test case that --remote broke
2003-10-08 10:23:54 +03:00
unknown
08bb033b53 merged
mysql-test/r/create.result:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2003-10-07 20:41:07 +02:00
unknown
654d266c8b Fix for a test failure with the standard (no-BDB) binary:
as the test is meaningful only if the slave supports transactions,
we require this. As in 4.0 the slave runs with --skip-innodb, we
test for BDB.
2003-10-07 20:41:06 +02:00
unknown
19e954d2f8 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0
2003-10-07 21:41:05 +03:00
unknown
cd6dc42fdf Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_1323/mysql-4.0
2003-10-07 14:41:04 -04:00
unknown
c7fd510a41 Simple cleanups
client/mysqlbinlog.cc:
  Add default handling to mysqlbinlog
mysql-test/mysql-test-run.sh:
  Cleanup of mysqldump/mysqlbinlog argument handling
scripts/Makefile.am:
  Remove duplicate
scripts/mysql_install_db.sh:
  Change -eq to =
2003-10-07 15:44:31 +03:00
unknown
bc4a57f01a After merge fixes
extra/resolveip.c:
  After merge fix
mysql-test/mysql-test-run.sh:
  Fixed comment
mysql-test/r/rpl_trunc_binlog.result:
  Updated results
sql/log_event.cc:
  Better (shorter) error message
2003-10-07 00:23:29 +03:00
unknown
93e1bbf671 results updated 2003-10-06 20:11:39 +02:00
unknown
e86fc82cf2 bug #1434 (and related issues) 2003-10-06 20:02:27 +02:00
unknown
b2fd821816 Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.0
into ice.snake.net:/Users/paul/mysql-4.0
2003-10-04 17:42:43 -05:00
unknown
a0e2753e87 Ride hobby horse.
mysql-test/mysql-test-run.sh:
  deamon -> daemon
scripts/mysql_install_db.sh:
  deamon -> daemon
support-files/my-small.cnf.sh:
  deamon -> daemon
2003-10-04 17:41:17 -05:00
unknown
63ed77ca1d Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_1323/mysql-4.0
2003-10-03 17:55:57 -04:00
unknown
496bc77694 Fixed bug #1323 (varchar fields becoming char fields adter create ... select) 2003-10-03 17:54:32 -04:00
unknown
179700e3f3 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2003-10-03 22:18:34 +02:00
unknown
1bd7662b89 When the I/O thread was stopped while copying a long transaction, and restarted,
Rotate_log_event::exec_event() believed that the relay log was corrupted. Fixed it
by moving the test for corruption to Start_log_event::exec_event(). 
Changed Rotate_log_event::exec_event() to not increment positions when the
event is seen in the middle of a transaction.
I did a separate commit in 4.1 (so this should not be merged to 4.0) because
code is a bit different in 4.1.
A test to see if the slave detects when the master died while writing a 
transaction to the binlog (uses a forged truncated binlog I made).


sql/log_event.cc:
  When the I/O thread was stopped while copying a long transaction, and restarted,
  Rotate_log_event::exec_event() believed that the relay log was corrupted. Fixed it
  by moving the test for corruption to Start_log_event::exec_event(). 
  Changed Rotate_log_event::exec_event() to not increment positions when the
  event is seen in the middle of a transaction.
2003-10-03 22:13:01 +02:00
unknown
2985e91acd Optimized code for setting user variables with := and fixed some bugs in old code (Bug #1194)
Use forced close of socket to make mysqld shutdown faster when used under valgrind


mysql-test/mysql-test-run.sh:
  Added --skip-bdb for valgrind
mysql-test/r/user_var.result:
  Extended test for user variables
mysql-test/t/user_var.test:
  Extended test for user variables
sql/item_func.cc:
  Optimized code for setting user variables with := and fixed some bugs in old code
sql/item_func.h:
  Optimized code for setting user variables
sql/log.cc:
  Fixed comments
sql/mysqld.cc:
  Use forced close of socket to make mysqld shutdown faster when used under valgrind
sql/sql_class.h:
  Optimized code for setting user variables
2003-10-03 00:40:27 +03:00
unknown
fd9031547e Merge laptop.sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into laptop.sanja.is.com.ua:/home/bell/mysql/bk/work-qc_crash-4.0
2003-10-02 16:33:50 +03:00