1
0
mirror of https://github.com/MariaDB/server.git synced 2025-06-01 19:42:01 +03:00

474 Commits

Author SHA1 Message Date
unknown
a73c263386 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug5390


sql/sql_parse.cc:
  Auto merged
2005-12-06 17:48:31 +01:00
unknown
60f2e7a9a4 A set of Netware related patches.
client/mysql.cc:
  Fixed option name.
client/mysqladmin.c:
  Fixed option name.
client/mysqlbinlog.cc:
  Fixed option name.
client/mysqlcheck.c:
  Fixed option name.
client/mysqldump.c:
  Fixed option name.
client/mysqlimport.c:
  Fixed option name.
client/mysqlshow.c:
  Fixed option name.
isam/isamchk.c:
  Fixed option name.
myisam/myisamchk.c:
  Fixed option name.
myisam/myisampack.c:
  Fixed option name.
sql/sql_parse.cc:
  Fix problem with kill connection on NetWare.
2005-12-04 15:02:06 +02:00
unknown
38b7ede9c6 BUG#5390 - problems with merge tables
Problem #1: INSERT...SELECT
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.


mysql-test/r/create.result:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/r/merge.result:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added test results.
mysql-test/t/create.test:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/t/merge.test:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Added a declaration for the new function.
sql/sql_parse.cc:
  BUG#5390 - problems with merge tables
  Problem #1: INSERT...SELECT
  Changed the duplicate tables detection for INSERT ... SELECT
  to use the new function, which does also work for MERGE tables.
sql/sql_update.cc:
  BUG#5390 - problems with merge tables
  Changed the duplicate tables detection for UPDATE
  to use the new function, which does also work for MERGE tables.
2005-11-29 19:17:39 +01:00
unknown
cf2188ca39 Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
Used the new option in create_table_from_items().
It is necessary to prevent the SELECT table from being reopend.
It would get new storage assigned for its fields, while the
SELECT part of the command would still use the old (freed) storage.
2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
against a global read lock. This prevents a deadlock in
CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
and avoids the creation of new tables during a global read lock.
3.) Replaced set_protect_against_global_read_lock() and
unset_protect_against_global_read_lock() by
wait_if_global_read_lock() and start_waiting_global_read_lock()
in the INSERT DELAYED handling.


mysql-test/r/create.result:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added test results.
mysql-test/t/create.test:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added tests which do not require concurrency.
sql/lock.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
  Changed the parameter list.
  Removed two unnecessary functions. Their functionality is included in
  wait_if_global_read_lock() and start_waiting_global_read_lock().
sql/mysql_priv.h:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Changed the declaration of mysql_lock_tables().
  Added definitions for the new options.
sql/sql_acl.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_base.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_handler.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_insert.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Replaced set_protect_against_global_read_lock() and
  unset_protect_against_global_read_lock() by
  wait_if_global_read_lock() and start_waiting_global_read_lock()
  in the INSERT DELAYED handling.
  Adjusted mysql_lock_tables() calls to the new argument list.
sql/sql_parse.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
  against a global read lock. This prevents a deadlock in
  CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
  and avoids the creation of new tables during a global read lock.
sql/sql_table.cc:
  Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
  Adjusted mysql_lock_tables() calls to the new argument list.
  Used the new option in create_table_from_items().
2005-05-31 11:08:14 +02:00
unknown
fe811dd892 don't strcmp db if it's a pattern 2005-03-30 10:43:24 +02:00
unknown
7f7f4f30b3 fixes for "backport wild_compare fix from 4.1 - bug#3924"
sql/sql_acl.cc:
  don't use acl_cache for GRANT
sql/sql_parse.cc:
  fixed backporting error in "backport wild_compare fix from 4.1 - bug#3924"
2005-03-26 19:46:42 +01:00
unknown
358cfd6c42 Better bug fix for #5569: "Incorrect "Access Denied" error with SAME login DIFFERENT host"
This fixes also the reverse lookup bug introduced by the previous patch



mysql-test/t/group_by.test:
  Remove empty line
vio/viosocket.c:
  Added function comment
2005-02-15 14:42:13 +02:00
unknown
faca00b5d5 Merge mysql.com:/home/jimw/my/mysql-4.0-5569
into mysql.com:/home/jimw/my/mysql-4.0-clean


sql/sql_parse.cc:
  Auto merged
2005-02-01 15:38:27 -08:00
unknown
934fde094c Bug#7011
Fix replication for multi-update
  new test - rpl_multi_update2


sql/mysql_priv.h:
  Bug#7011
    New function mysql_multi_update_lock()
sql/sql_parse.cc:
  Bug#7011
    New function check_multi_update_lock()
    For multi-update on slave, perform an early open&lock
sql/sql_update.cc:
  Bug#7011
    Split out multi-update locking into its own function,
      mysql_multi_update_lock()
2005-01-30 10:24:03 +00:00
unknown
e1b8a004fe Always call vio_in_addr() so that thd->remote is
always initialized. (Bug #5569)


vio/viosocket.c:
  Remove comment that is no longer correct
sql/sql_parse.cc:
  Always call vio_in_addr() on successful connection,
  so that thd->remote always gets set
vio/viossl.c:
  Remove comment that is no longer correct
2005-01-25 12:06:55 -08:00
unknown
b692ca4fd5 A fix for Bug#6761 "mysql_list_fields() does not work": test
case will be added to client_test in 4.1


sql/sql_parse.cc:
  A fix for bug #6761: "mysql_list_fields() does not work": init
  thd->query_length, which is used next line. Remove a stale comment.
2005-01-12 17:04:45 +03:00
unknown
9abe7d272b Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.0


sql/sql_parse.cc:
  Auto merged
2004-10-24 11:32:08 +03:00
unknown
dd126ba1a5 Part of fix for bug #6081 "Call to deprecated mysql_create_db() function
crashes server"

(in 4.0 we fix only connection stalling in case of error, crash itself is
fixed in 4.1, the test case for this code is also there).


sql/sql_parse.cc:
  Handling of COM_CREATE_DB, COM_DROP_DB:
  We should call send_error() if mysql_create_db or mysql_drop_db
  return error (like we do it for SQL versions of these commands).
2004-10-22 19:27:43 +04:00
unknown
4324519868 fixed retsult code 2004-10-19 11:54:33 +03:00
unknown
52ee9687a2 Merge ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/staff/repositories/mysql-4.0
into ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/antony/work/bug4118


sql/sql_parse.cc:
  Auto merged
2004-10-03 00:25:09 +01:00
unknown
a49f5cae9a Bug#4118: multi-table UPDATE takes WRITE lock on read table
Ensures that WRITE lock is not obtained on all tables referenced.


mysql-test/r/lock_multi.result:
  Bug#4118
    New test for multi-update locking
mysql-test/r/multi_update.result:
  Bug#4118
    Fix test
mysql-test/t/lock_multi.test:
  Bug#4118
    New test for multi-update locking
mysql-test/t/multi_update.test:
  Bug#4118
    Fix test
sql/sql_parse.cc:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
sql/sql_update.cc:
  Bug#4118
    Overview of locking checking:    
      1. Open and acquire READ lock
      2. Check to see which tables need WRITE lock
      3. Unlock tables and relock
sql/sql_yacc.yy:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
2004-10-03 00:20:47 +01:00
unknown
fb1407d563 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/dlenev/src/mysql-4.0-bg4131-3


sql/sql_parse.cc:
  Auto merged
2004-09-27 00:50:29 +04:00
unknown
e6f924efe5 Fix for bug #4131 "TIMESTAMP columns missing minutes and seconds when
using GROUP BY"
Now we are setting Field_timestamp::field_length to 19 in open_table()
if we are in new mode (and we are restoring it back when we are coming
back to normal mode). This also should solve potential problems with
some of LOAD DATA INFILE and SELECT * INTO in this mode.


mysql-test/r/type_timestamp.result:
  Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
  when using GROUP BY' and other --new mode related behavior.
mysql-test/t/type_timestamp.test:
  Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
  when using GROUP BY' and other --new mode related behavior.
sql/field.cc:
  Added Field_timestamp::orig_field_length member for saving original
  field_length value, because this member can be modified if new_mode is
  in effect.
  Lot of Field_timestamp code simplified and Field_timestamp::make_field()
  is no longer needed because we are setting field_length to 19 if we are
  in --new mode now.
sql/field.h:
  Added Field_timestamp::orig_field_length member for saving original
  field_length value, because this member can be modified if new_mode
  is in effect. 
  Field_timestamp::make_field() is no longer needed because we are setting
  field_length to 19 if we are in --new mode now.
sql/sql_base.cc:
  If --new mode is in effect all TIMESTAMP fields should pretend that they
  have length of 19. We are achieving this by setting 
  Field_timestamp::field_length to 19 (or original value) in open_table().
  We are using TABLE::timestamp_mode variable for avoiding of unnecessary
  looping over all fields of the table and setting field_length if table
  was used with same new_mode value before.
  
  Note: We do not introduce general framework for setting up Field objects
  for usage with current THD here because this fix is only needed in 4.0
  and Monty said that we will also remove looping over all fields when
  updating table_name member at some point. This more general framework
  will also complicate nice optimization with avoiding of unneeded looping.
sql/sql_parse.cc:
  Now when we are creating TIMESTAMP(19) fields by default in --new mode,
  otherwise we will have unaligned behavior between ALTER and CREATE.
sql/table.h:
  Added TABLE::timestamp_mode field for saving information whenever we set 
  field_length members of table's TIMESTAMP fields to 19 (to honor 
  new_mode) or they have original values.
2004-09-27 00:50:00 +04:00
unknown
bf26880291 A fix (Bug #5232: CREATE TABLE ... SELECT can deadlock itself). 2004-08-27 16:43:01 +05:00
unknown
0572112d43 merge
sql/mysql_priv.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  merge (use new code)
2004-08-26 00:39:43 +03:00
unknown
8ed5952a86 Remove default argument to mysql_truncate()
Update to new valgrind


mysql-test/mysql-test-run.sh:
  Update for new valgrind
sql/mysql_priv.h:
  Remove default argument to mysql_truncate()
sql/sql_parse.cc:
  Remove default argument to mysql_truncate()
2004-08-26 00:37:25 +03:00
unknown
cd8054d431 Making FLUSH TABLES WITH READ LOCK block COMMITs of existing transactions,
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.


sql/handler.cc:
  making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
sql/lock.cc:
  an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
  make_global_read_lock_block_commit():
  taking the global read lock is TWO steps (2nd step is optional; without
  it, COMMIT of existing transactions will be allowed):
  lock_global_read_lock() THEN make_global_read_lock_block_commit().
sql/mysql_priv.h:
  new argument to wait_if_global_read_lock()
sql/sql_class.h:
  THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
sql/sql_db.cc:
  update for new prototype
sql/sql_parse.cc:
  implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
2004-08-20 16:35:23 +02:00
unknown
95334ac6c7 Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)":
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().


mysql-test/r/rpl_heap.result:
  result update
mysql-test/t/rpl_heap.test:
  testing a bug
sql/log.cc:
  new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/mysql_priv.h:
  removing argument no_log from mysql_create_table(); no_log was perfect as some
  binlogging could still be done by open_unireg_entry() for a HEAP table.
sql/sql_class.h:
  new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/sql_parse.cc:
  removing no_log
sql/sql_table.cc:
  removing no_log from mysql_create_table(); instead using new class Disable_binlog.
  Disabling binlogging in some cases, where the binlogging is done later by some other code
  (case of CREATE SELECT and ALTER).
2004-08-19 00:29:11 +02:00
unknown
3a00469e4a Fix for bug #4491 "timestamp(19) doesn't work".
We should allow 19 as length of newly created TIMESTAMP fields.


mysql-test/r/type_timestamp.result:
  Added test of TIMESTAMP(19) support.
mysql-test/t/type_timestamp.test:
  Added test of TIMESTAMP(19) support.
sql/sql_parse.cc:
  add_field_to_list(): TIMESTAMP columns should also support 19 as length since it is
  length of 4.1 compatible representation.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-08-06 12:15:40 +04:00
unknown
07589a6da5 Merge mysql.com:/home/my/mysql-3.23 into mysql.com:/home/my/mysql-4.0
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-06-25 18:55:03 +03:00
unknown
d75022fff7 parameter of my_yyoverflow made independed from YYSIZE_T (BUG#4204)
sql/sql_parse.cc:
  parameter of my_yyoverflow made independed from YYSIZE_T
sql/sql_yacc.yy:
  parameter of my_yyoverflow made independed from YYSIZE_T
2004-06-24 22:15:15 +03:00
unknown
c1ef1bea7d Cset exclude: heikki@hundin.mysql.fi|ChangeSet|20040617084849|64488
sql/sql_parse.cc:
  Exclude
2004-06-17 11:53:17 +03:00
unknown
1696521e69 Cset exclude: guilhem@mysql.com|ChangeSet|20040609132715|17355
sql/sql_parse.cc:
  Exclude
2004-06-17 11:48:49 +03:00
unknown
956d4f4e4e Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


sql/sql_parse.cc:
  Auto merged
2004-06-10 12:36:11 +03:00
unknown
4075c30515 Cleanup
sql/sql_parse.cc:
  Cleanup of patch
2004-06-10 11:58:16 +03:00
unknown
57ae9ed0ad complement to previous fix (which was for SQLCOM_DROP_DB), for COM_DROP_DB.
sql/sql_parse.cc:
  Making COM_DROP_DB honour lower_case_table_names. Plus coding-style fixes.
2004-06-09 15:27:15 +02:00
unknown
87c200d17c Fix for BUG#4066 "DROP DATABASE case sensitive even if lower-case-table-names > 0"
sql/sql_parse.cc:
  honour lower_case_table_names in DROP DATABASE (like we already do in CREATE DATABASE)
2004-06-09 15:22:31 +02:00
unknown
e6c916ffa8 different (simpler and more compatible) fix for bug#4046 2004-06-09 00:08:24 +02:00
unknown
80c662479b Changed --log-warnings to be integer instead of boolean. Given --skip-log-warnings
will disable warnings, --log-warnings will increment warning level by one, or the
level can be given as an optional argument. Default level is 1.

Changed aborted connection warning to be logged only if the level is > 1.


sql/sql_class.h:
  Changed boolean into ulong.
sql/sql_parse.cc:
  Changed aborted connection warning to be logged only if the level is > 1.
2004-06-01 17:29:24 +03:00
unknown
f1ffa13923 backport wild_compare fix from 4.1 - bug#3924 2004-05-29 17:52:20 +02:00
unknown
fa163d0ba5 Extra safety fixes (probably not needed, but can't hurt)
sql/ha_innodb.cc:
  simple optimization
sql/sql_show.cc:
  Simple optimization
2004-05-15 09:08:03 +03:00
unknown
7bd91ac065 Many files:
Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query


sql/sql_class.h:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/ha_innodb.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/log_event.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/slave.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/sql_db.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/sql_parse.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
sql/sql_show.cc:
  Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
2004-05-14 16:48:56 +03:00
unknown
7f0a632c19 merge with 3.23
BitKeeper/etc/logging_ok:
  auto-union
scripts/mysqlbug.sh:
  Auto merged
sql/sql_parse.cc:
  Auto merged
mysql-test/t/alter_table.test:
  Merge code with 3.23
sql/nt_servc.cc:
  use original code
2004-03-25 22:05:09 +02:00
unknown
1744d26c95 used right table for grants check (BUG#3270)
mysql-test/t/alter_table.test:
  test for BUG#3270 added
2004-03-23 17:15:20 +02:00
unknown
de448d41c0 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_2985/mysql-4.0


sql/sql_db.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/table.cc:
  Auto merged
2004-03-12 17:56:27 +04:00
unknown
f85032f16e Portability fixes & fixing of test suite
mysql-test/r/func_math.result:
  Updated tests after merge with 3.23
mysql-test/r/multi_update.result:
  Fixed not portable test
mysql-test/r/mysqlbinlog.result:
  Fixed test after push without doing 'make test'
mysql-test/t/multi_update.test:
  Fixed not portable test
sql/sql_parse.cc:
  Don't use static inline, as this is not portable
2004-03-12 09:15:08 +02:00
unknown
bd6c4ef400 Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t"
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).


mysql-test/r/rpl_error_ignored_table.result:
  result update
mysql-test/t/rpl_error_ignored_table-slave.opt:
  ignore more tables
mysql-test/t/rpl_error_ignored_table.test:
  we test if a killed query on the master, is ignored on the slave
  if the tables it involves should be excluded because of replicate-*-table
  rules.
sql/log_event.cc:
  If the query got a really bad error on the master (thread killed etc),
  parse it to test the table names: if the replicate-*-do|ignore-table
  rules say "this query must be ignored" then we exit gracefully;
  otherwise we warn about the bad error and tell DBA to check/fix it.
  Before this change, we always warned and stopped.
sql/mysql_priv.h:
  new function
sql/slave.cc:
  don't print error immediately as we need to do one more test to
  be sure.
sql/sql_parse.cc:
  we add a function mysql_test_parse_for_slave(), to be used only
  by the slave if it wants to know if the query should be ignored or not;
  so this function only parses the query, does not execute it.
2004-03-11 17:38:19 +01:00
unknown
f808030209 Fix for BUG#2921 "Replication problem on mutex lock in mySQL-4.0.18":
re-using unused LOCK_active_mi to serialize all administrative
commands related to replication:
START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
(replication autostart at server startup), end_slave() (replication
autostop at server shutdown), LOAD DATA FROM MASTER.
This protects us against a handful of deadlocks (like BUG#2921
when two START SLAVE, but when two STOP SLAVE too).
Removing unused variables.


sql/item_func.cc:
  We don't need LOCK_active_mi just to MASTER_POS_WAIT().
sql/repl_failsafe.cc:
  no need for macro
sql/set_var.cc:
  no need for macro
sql/slave.cc:
  Re-using unused LOCK_active_mi to serialize all administrative
  commands related to replication:
  START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
  (replication autostart at server startup), end_slave() (replication
  autostop at server shutdown), LOAD DATA FROM MASTER.
  This protects us against a handful of deadlocks.
  Removing unused variables.
sql/slave.h:
  Re-using LOCK_active_mi to serialize administrative replication commands.
  Macros unneeded. Removing unneeded variables.
sql/sql_parse.cc:
  found unused variable.
  Replacing macros.
sql/sql_show.cc:
  replacing macros
2004-03-11 16:23:35 +01:00
unknown
8550c7abeb fixed Bug #2985
"Table truncated when creating another table name with Spaces"
added to check_db_name, check_table_name and check_column_name
test for end space


mysql-test/r/create.result:
  added test for Bug #2985 
   "Table truncated when creating another table name with Spaces"
mysql-test/t/create.test:
  added test for Bug #2985 
   "Table truncated when creating another table name with Spaces"
sql/sql_db.cc:
  cancel strip end spaces for database name
sql/sql_parse.cc:
  cancel strip end spaces for database name
sql/table.cc:
  added to check_db_name, check_table_name and check_column_name 
  test for end space
2004-03-05 22:13:33 +04:00
unknown
d4f43e511c invalidation of locking for write tables (BUG#2693)
fixed linking query_prealloc_size to query cache presence


mysql-test/r/query_cache.result:
  test of QC invalidation by LOCK command
mysql-test/t/query_cache.test:
  test of QC invalidation by LOCK command
sql/mysqld.cc:
  new variable query_cache_wlock_invalidate
  fixed query_prealloc_size with QC absence
sql/set_var.cc:
  new variable query_cache_wlock_invalidate
sql/sql_cache.cc:
  new method for table invalidation
sql/sql_cache.h:
  new method for table invalidation
sql/sql_class.h:
  new variable query_cache_wlock_invalidate
sql/sql_parse.cc:
  layout fixed
2004-03-04 18:32:55 +02:00
unknown
7ba7ce6e6d Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


sql/mysqld.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2004-02-04 00:29:34 +01:00
unknown
313761cb40 Ensure that privileges are tested properly for multi-table-updates.
Now one need only SELECT privilege for tables that are only read in
UPDATE statements with many tables. (Bug #2377).


sql/sql_acl.cc:
  Comment cleanup
sql/sql_parse.cc:
  Merged duplicate code.
  Removed some outdated 'tables->db' tests.
  Check privileges for multi-updates properly (Bug #2377)
sql/sql_show.cc:
  Remove disabled code
sql/sql_update.cc:
  Ensure that privileges are tested properly for multi-table-updates
tests/grant.pl:
  Added more tests
tests/grant.res:
  updated results
2004-02-03 19:17:23 +01:00
unknown
e95a3e3ce8 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/dlenev/src/mysql-4.0-bg2464


sql/sql_parse.cc:
  Auto merged
2004-01-30 15:13:54 +03:00
unknown
a96ffb2925 Fix for bugs #1885, #2464, #2539. Proper handling of default
values for TIMESTAMP columns. The solution is not perfect since
we just silently ignoring default value for first TIMESTAMP 
column and properly reflecting this fact in SHOW CREATE TABLE.
We can't give a warning or simply support standard syntax 
(niladic functions as legal value for default) for first field 
since it is 4.0 tree.


mysql-test/r/type_timestamp.result:
  Added test for bugs #1885, #2464, #2539
  (proper support of default values for TIMESTAMP columns)
mysql-test/t/type_timestamp.test:
  Added test for bugs #1885, #2464, #2539
  (proper support of default values for TIMESTAMP columns)
sql/field.cc:
  Enabled copying of defaults for TIMESTAMP fields when we are 
  creating table with CREATE TABLE x (SELECT ...)
sql/field.h:
  Set proper DEFAULT value for non-first TIMESTAMP column.
sql/sql_parse.cc:
  Allowed default values for TIMESTAMP column.
sql/sql_show.cc:
  Enabled printing of default values in SHOW CREATE TABLE and 
  SHOW COLUMNS for all TIMESTAMP columns except first one.
2004-01-30 15:13:19 +03:00
unknown
8746a25554 Fix for BUG#2527 "Multi-Table Delete - Not Replication use replicate-wild-do-table"
(as long as replicate-*-table rules were defined, multi-table DELETE was never
replicated by the slave).


sql/sql_parse.cc:
  For a multi-table DELETE, there are two lists of tables:
  - 'tables' contains the tables in the FROM. They have 'updating==0'.
  - 'thd->lex.auxilliary_table_list.first' contains the tables between the DELETE and the FROM. They have 'updating==1'.
  So the bug was that the slave only tests 'tables' and as all its elements have updating==0,
  tables_ok() always returns 0.
  So for a multi DELETE the slave now tests the 2nd list too.
  I started with the other tip of the sausage: I thought of changing multi DELETE to use
  only one list (given that 'updating' can be used to separate it in two when needed)
  (with one list we wouldn't need to change the slave code), but finally hit the unicity
  check in add_table_to_list() which started to return ER_NONUNIQ_TABLE (logical).
2004-01-29 19:22:29 +01:00