1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Commit Graph

2780 Commits

Author SHA1 Message Date
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
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
unknown
30ee158d2f Bug #473 - GRANT ... TO ''@... was requiring FLUSH PRIVILEGES to work 2003-07-21 13:46:57 +02:00
unknown
5aef292a07 Fix for #712 with Serg's suggestions
myisam/mi_locking.c:
  Here we use F_EXTRA_LCK
myisam/myisamchk.c:
  lines of "locking - emulation" replaced with mi_lock_database call
myisam/myisamdef.h:
  no need for MI_TEMPORARY_TABLE
sql/ha_myisam.cc:
  We use F_WRLCK instead MI_TEMPORARY_TABLE
2003-07-19 18:17:29 +05:00
unknown
0fd6f4049d Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.0
into deer.(none):/home/hf/work/mysql-4.0
2003-07-19 13:51:15 +05:00
unknown
995fe9f13a Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0
2003-07-18 04:38:05 +03:00
unknown
06517dfed3 Fixed memory overrun when doing REPAIR on table with multi-part auto_increment key where one part was a packed CHAR
myisam/mi_check.c:
  Fixed memory overrun in _mi_put_key_in_record
myisam/mi_key.c:
  Fixed unnecessary memory allocation
mysql-test/r/insert_select.result:
  Added test case for memory corruption
mysql-test/t/insert_select.test:
  Added test case for memory corruption
mysys/safemalloc.c:
  Removed compiler warnings
sql/sql_acl.cc:
  Fixed core dump when running with --debug
2003-07-18 04:04:24 +03:00
unknown
47d9c95f9c Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0


sql/handler.cc:
  Auto merged
2003-07-15 20:44:29 +02:00
unknown
b40895f9d2 bug #702 - ALTER TABLE tm UNION=(t1,t2) doesn't work if t1.MYD is compressed
myisammrg/myrg_open.c:
  never mark merge table as readonly even if all underlying myisam tables are readonly,
  otherwise ALTER TABLE merge UNION=(t1,t2,t3,...) will not work
sql/handler.cc:
  map EACCES to ER_OPEN_AS_READONLY.
  can only happen on modifying merge table that has (some) read-only myisam tables
2003-07-15 20:43:57 +02:00
unknown
6159cd27bf Portability fixes
acinclude.m4:
  Made test for compress more reliable (for Solaris)
sql/item_strfunc.cc:
  Portability fix (for Linux Alpha)
2003-07-15 13:10:20 +03:00
unknown
c36c37c339 merge
mysql-test/r/rpl_max_relay_size.result:
  Auto merged
2003-07-14 23:52:17 +03:00
unknown
e97b2766e1 Fixed wrong test in LOG::close
Fixed test for binary build


mysql-test/r/rpl_max_relay_size.result:
  Fixed test for binary build
mysql-test/t/rpl_max_relay_size.test:
  Fixed test for binary build
sql/log.cc:
  Fixed wrong test in close
2003-07-14 23:49:19 +03:00
unknown
aa70f48264 errmsg.txt:
Correct a misleading error message about max row length


sql/share/english/errmsg.txt:
  Correct a misleading error message about max row length
2003-07-14 16:04:20 +03:00
unknown
66672ad185 ha_innodb.h:
Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed


sql/ha_innodb.h:
  Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed
2003-07-14 15:53:50 +03:00
unknown
666d4717cb ha_innodb.h:
Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes


sql/ha_innodb.h:
  Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes
2003-07-14 15:38:20 +03:00
unknown
128feded87 Better fix for bug #791: At binlog rotation, INSERTs may not find their way into the binlog
mysql-test/t/rpl_flush_log_loop.test:
  Add timer to avoid problem when 'flush logs' is executed before we have read all data from master
sql/log.cc:
  Better fix for bug #791:
  Mark log as LOG_TO_BE_OPENED instead of LOG_CLOSED when it's closed and opened.
sql/mysqld.cc:
  Better startup message
sql/slave.cc:
  Fix argument to close()
sql/sql_class.h:
  Better handling of log.close()
2003-07-14 14:59:26 +03:00
unknown
02808985dd Proposed bugfix for #712
Monty revoked any locks for temporary tables in
ha_myisam::external_lock()
But further code bans using write cache on nonlocked tables
this makes operations much slower


myisam/mi_locking.c:
  Handling of MI_TEMPORARY_TABLE lock
myisam/myisamdef.h:
  defining of MI_TEMPORARY_TABLE
sql/ha_myisam.cc:
  now we lock temporary tables using MI_TEMPORARY_TABLE lock
2003-07-14 12:40:58 +05:00
unknown
c4daa71614 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.r18.ru:/usr/home/ram/work/4.0
2003-07-14 12:40:13 +05:00
unknown
e45b9ab481 backport fix for the bug #803: INTERVAL(NULL, ....) 2003-07-14 12:39:10 +05:00
unknown
3611f70a25 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0
2003-07-14 10:18:04 +03:00
unknown
e1a3069603 Safety and speedup fixes:
Changed is_open() to work as before.
Added back inited argument to LOG


mysql-test/r/rpl_flush_log_loop.result:
  Fixed results (probably bug in previous rpatch)
sql/handler.cc:
  Changed is_open() to work as before
sql/item_func.cc:
  Changed is_open() to work as before
sql/log.cc:
  Part revert of previous patch.
  The reason for adding back 'inited' is that is that we can't be 100 % sure that init_pthread_objects() is called before mysqld dies (for example on windows)
  I removed mutex lock handling in is_open() as the new code didn't have ANY affect except beeing slower.
  Added back checking of is_open() to some functions as we don't want to do a mutex lock when we are not using logging.
  Indentation/comment fixes
sql/log_event.cc:
  Changed is_open() to work as before
sql/repl_failsafe.cc:
  Changed is_open() to work as before
sql/sql_base.cc:
  Changed is_open() to work as before
sql/sql_class.h:
  Changed is_open() to work as before. Added back 'inited' variable
sql/sql_db.cc:
  Changed is_open() to work as before
sql/sql_delete.cc:
  Changed is_open() to work as before
sql/sql_insert.cc:
  Changed is_open() to work as before
sql/sql_load.cc:
  Changed is_open() to work as before
sql/sql_parse.cc:
  Changed is_open() to work as before
sql/sql_rename.cc:
  Changed is_open() to work as before
sql/sql_repl.cc:
  Changed is_open() to work as before
sql/sql_table.cc:
  Changed is_open() to work as before
sql/sql_update.cc:
  Changed is_open() to work as before
2003-07-14 10:12:05 +03:00
unknown
c4381bb0c6 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.r18.ru:/usr/home/ram/work/4.0
2003-07-14 11:23:36 +05:00
unknown
9480ec8289 Cleaning after removing LOG_INFO_PURGE_NO_ROTATE.
sql/sql_repl.cc:
  In my previous change I removed 'no_rotate' from MYSQL_LOG, so this made
  LOG_INFO_PURGE_NO_ROTATE useless (an error code which was never returned),
  so I remove it of the 'switch'.
2003-07-12 16:04:42 +02:00
unknown
5526d454fd Member no_rotate in MYSQL_LOG was always 0, I delete it.
sql/log.cc:
  Member no_rotate of MYSQL_LOG is useless; this shows it for sure:
  [guilhem@gbichot2 mysql-4.0]$ bk -r grep no_rotate
  sql/log.cc      1.83       no_rotate(0), need_start_event(1)
  sql/log.cc      1.75      if (no_rotate)
  sql/log.cc      1.89      if (!no_rotate)
  sql/sql_class.h 1.119     bool no_rotate;
  i.e. no_rotate is 0 all the time. So we don't need it.
  Biggest part of the patch is indentation change.
sql/sql_class.h:
  suppress no_rotate
2003-07-12 15:48:26 +02:00
unknown
543208de96 removed 2 small useless if().
sql/log.cc:
  a comment for the future.
sql/mysqld.cc:
  if (p) is not needed: fn_ext() always returns a valid pointed; the way
  to test if an extension was found is if (*p), not if (p).
  But here even if there's no extension, we still want to truncate opt_name
  to FN_REFLEN, so we always execute the code.
  By design, the test was always 'false' (because we strip the extension before
  testing if there's an extension) so log->set_no_rotate never executed.
sql/sql_class.h:
  remove set_no_rotate as we don't need it.
2003-07-12 15:06:40 +02:00
unknown
d974959b4f Fix for BUG#791:
a safer way of initing the mutexes in MYSQL_LOG.
is_open() is now always thread-safe.
See each file for details.


sql/handler.cc:
  is_open() with locks
sql/item_func.cc:
  is_open() with locks
sql/log.cc:
  No more 'inited'.
  We now always use is_open() in a thread-safe manner.
  This simplifies some functions (no more need to test is_open() twice).
sql/log_event.cc:
  is_open() with locks
sql/mysqld.cc:
  Init mutexes for the global MYSQL_LOG objects.
  We care about no_rotate, because we can't do it in open() anymore (because
  we don't have 'inited' anymore).
sql/repl_failsafe.cc:
  is_open() with locks
sql/slave.cc:
  init pthread objects (mutexes, conds) in the constructor of st_relay_log_info.
  Some better locking in rotate_relay_log().
sql/sql_base.cc:
  is_open() with locks
sql/sql_class.h:
  Before, we inited LOCK_log in MYSQL_LOG::open(), so in other places of the code
  when we were never 100% sure that it had been inited. For example, if the server
  was running without --log-bin, ::open() was not called so the mutex was not
  inited. We could detect it with !inited, but not safely as 'inited' was not
  protected by any mutex.
  So now:
  we *always* init the LOCK_log mutex, even if the log is not used. We can't init
  the mutex in MYSQL_LOG's constructor, because for global objects like
  mysql_bin_log, mysql_log etc, the constructor is called before MY_INIT(), but
  safe_mutex depends on MY_INIT(). So we have a new function MYSQL_LOG::init_pthread_objects
  which we call in main(), after MY_INIT().
  For the relay log, we call this function in the constructor of
  st_relay_log_info, which is called before any function tries to
  use the relay log (the relay log is always invoked as rli.relay_log).
  So now we should be safe in all cases and we don't need 'inited'.
sql/sql_db.cc:
  is_open() with locks
sql/sql_delete.cc:
  is_open() with locks
sql/sql_insert.cc:
  is_open() with locks
sql/sql_load.cc:
  is_open() with locks
sql/sql_parse.cc:
  is_open() with locks
sql/sql_rename.cc:
  is_open() with locks
sql/sql_repl.cc:
  is_open() with locks
sql/sql_table.cc:
  is_open() with locks
sql/sql_update.cc:
  is_open() with locks
2003-07-11 14:26:44 +02:00
unknown
1a45c83972 Fix for the bug #801: create table t1 select x'41'; doesn't work 2003-07-11 14:17:18 +05:00
unknown
830e53c8b1 Fix for the bug #803.
Now INTERVAL(NULL, N1, N2, ...) returns NULL.
2003-07-10 15:27:02 +05:00
unknown
3c268e59ec Cleanups
mysql-test/t/distinct.test:
  Cleanup
sql/log.cc:
  Cleanup
sql/slave.cc:
  Cleanup
sql/sql_delete.cc:
  Cleanup
sql/sql_parse.cc:
  Simple optimization
2003-07-09 00:55:07 +03:00
unknown
5e817c5313 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mashka.mysql.fi:/home/my/mysql-4.0


sql/mysqld.cc:
  Auto merged
2003-07-09 00:00:16 +03:00
unknown
e13e857cae Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
Removed double my_thread_end() which caused fatal error on windows if mysqld died on startup


myisam/mi_extra.c:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
mysql-test/r/alter_table.result:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
mysql-test/t/alter_table.test:
  Test DISABLE/ENABLE KEY
sql/ha_myisam.cc:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
sql/mysqld.cc:
  Removed double my_thread_end() which caused fatal error on windows if mysqld died on startup
sql/sql_table.cc:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
sql/table.cc:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
sql/table.h:
  Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
2003-07-08 23:58:04 +03:00
unknown
f0f7eccc23 ha_innodb.cc:
Prevent the user from creating InnoDB tables with > 1000 columns


sql/ha_innodb.cc:
  Prevent the user from creating InnoDB tables with > 1000 columns
2003-07-08 20:51:45 +03:00
unknown
eed62d993d Fix for
BUG#797 "If query ignored on slave (replicate-ignore-table) the slave still checks if
the returned error (0) is the same as the one on the master, whereas it shouldn't
test this.
Plus a new test for BUG#797.


include/mysqld_error.h:
  New error code (can be sent only to the slave thread, not to normal clients).
sql/log.cc:
  removed comment from a previous debugging.
sql/log_event.cc:
  ER_SLAVE_IGNORED_TABLE is an ignorable error.
sql/share/czech/errmsg.txt:
  for BUG#797
sql/share/danish/errmsg.txt:
  for BUG#797
sql/share/dutch/errmsg.txt:
  for BUG#797
sql/share/english/errmsg.txt:
  for BUG#797
sql/share/estonian/errmsg.txt:
  for BUG#797
sql/share/french/errmsg.txt:
  for BUG#797
sql/share/german/errmsg.txt:
  for BUG#797
sql/share/greek/errmsg.txt:
  for BUG#797
sql/share/hungarian/errmsg.txt:
  for BUG#797
sql/share/italian/errmsg.txt:
  for BUG#797
sql/share/japanese/errmsg.txt:
  for BUG#797
sql/share/korean/errmsg.txt:
  for BUG#797
sql/share/norwegian-ny/errmsg.txt:
  for BUG#797
sql/share/norwegian/errmsg.txt:
  for BUG#797
sql/share/polish/errmsg.txt:
  for BUG#797
sql/share/portuguese/errmsg.txt:
  for BUG#797
sql/share/romanian/errmsg.txt:
  for BUG#797
sql/share/russian/errmsg.txt:
  for BUG#797
sql/share/slovak/errmsg.txt:
  for BUG#797
sql/share/spanish/errmsg.txt:
  for BUG#797
sql/share/swedish/errmsg.txt:
  for BUG#797
sql/share/ukrainian/errmsg.txt:
  for BUG#797
sql/sql_parse.cc:
  when in sql_parse in the slave thread we ignore the query because of replicate-do
  and replicate-ignore options, we return a specific error to the slave thread,
  so that it knows that the query has been ignored (which is different from a
  successful query).
  A small cleanup (test was done twice).
2003-07-08 15:50:57 +02:00
unknown
d0486f8abc typos fixed 2003-07-07 19:35:11 +02:00
unknown
c0d60e83a7 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-07-07 19:08:17 +02:00
unknown
a4c3f0d727 finally proper recursive descent for parsing expressions with MATCH ... AGAINST in add_ft_keys() 2003-07-07 19:02:58 +02:00
unknown
7ff9378a34 correct (finally) condition for MATCH >0, >=0 etc in add_ft_keys (SW#1647)
still no rec. descent
2003-07-07 16:45:19 +02:00
unknown
e639c5fec7 sql_delete.cc:
Fix bug: if a DELETE failed in a FOREIGN KEY error and it had already deleted some rows, then MySQL did not roll back the failed SQL statement, and also wrote it to the binlog


sql/sql_delete.cc:
  Fix bug: if a DELETE failed in a FOREIGN KEY error and it had already deleted some rows, then MySQL did not roll back the failed SQL statement, and also wrote it to the binlog
2003-07-07 16:39:53 +03:00
unknown
964c2fe083 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0


sql/mysql_priv.h:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2003-07-06 18:01:39 +02:00
unknown
27601fc5ee WL#912 (more user control on relay logs):
FLUSH LOGS now rotates relay logs,
and a new variable max_relay_log_size.
Plus a very small bit of code cleaning.


libmysqld/lib_sql.cc:
  open_log has no default arguments anymore.
mysql-test/r/rpl_flush_log_loop.result:
  result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_log.result:
  result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_rotate_logs.result:
  result update now that max_binlog_size is 4096.
mysql-test/t/rpl_rotate_logs-master.opt:
  now max_binlog_size must be a multiple of 4096 (see change in mysqld.cc)
sql/log.cc:
  Got rid of default arguments of various MYSQL_LOG methods (the default arguments
  made code reading uneasy).
  Set max_size in ::init().
  New function set_max_size() to set max_size of a MYSQL_LOG on-the-fly.
  More DBUG info.
sql/mysql_priv.h:
  no defaults in open_log().
  New variables max_relay_log_size.
sql/mysqld.cc:
  New variable and option max_relay_log_size.
  max_binlog_size and max_relay_log_size are multiples of IO_SIZE.
  No more default arguments for log functions.
sql/set_var.cc:
  New variable max_relay_log_size.
  If it is 0, then max_binlog_size will apply to relay logs.
  When one of these variables is changed, fix_max_%log_size is called
  to update max_size of the binary and/or relay logs.
sql/slave.cc:
  New function rotate_relay_log().
sql/slave.h:
  New function rotate_relay_log().
sql/sql_class.h:
  New member max_size of MYSQL_LOG (for automatic rotation).
  New method set_max_size() for setting on-the-fly.
sql/sql_parse.cc:
  Flush the relay log in FLUSH LOGS.
2003-07-06 17:59:54 +02:00
unknown
57043e331c Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0


sql/sql_parse.cc:
  Auto merged
2003-07-04 23:06:22 +03:00
unknown
778fec0c82 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0
2003-07-04 23:06:20 +03:00
unknown
40feb0c617 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2003-07-04 22:06:19 +02:00