Commit graph

478 commits

Author SHA1 Message Date
guilhem@mysql.com
980d1b658e Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-clean
2005-01-14 10:59:37 +01:00
guilhem@mysql.com
44ce4b43ef Fix for BUG#7793 "mysqlbinlog produces incorrect queries":
when printing SET @var in mysqlbinlog, backtick the collation (as BINARY is a reserved word)
2005-01-12 19:42:46 +01:00
monty@mysql.com
d35140a851 First stage of table definition cache
Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
Created Field::make_field() and made Field_num::make_field() to call this
Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
Renamed TABLE_SHARE->real_name to table_name
Renamed TABLE->table_name to alias
Renamed TABLE_LIST->real_name to table_name
2005-01-06 13:00:13 +02:00
monty@mysql.com
7cf8285b3f After merge fixes
Add support for warnings for prepare of prepared statements
Fixed test to work with --ps-protocol
Fixed some test results
2005-01-04 13:46:53 +02:00
monty@mysql.com
309b1a2b6c Merge with 4.1 tree to get fix for INSERT IGNORE ... ON DUPLICATE KEY 2005-01-03 23:04:52 +02:00
monty@mysql.com
1bd22faa05 Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
This allows use to use INSERT IGNORE ... ON DUPLICATE ...
2004-12-31 12:04:35 +02:00
monty@mishka.local
4f4bbfc279 Merge with 4.1 2004-12-22 13:54:39 +02:00
guilhem@mysql.com
3287e82f09 Very minor fixes for Seconds_Behind_Master column of SHOW SLAVE STATUS. 2004-12-16 22:38:42 +01:00
monty@mysql.com
0de4777187 Merge with 4.1 2004-12-06 11:38:56 +02:00
guilhem@mysql.com
9047fe456b Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-clean
2004-12-03 23:09:18 +01:00
guilhem@mysql.com
ba5bc4e69a Fix for BUG#6671 "mysqlbinlog does not show thread_id for LOAD DATA INFILE"
(exactly, for the bug in 4.1 reported in this bug report). We just make
Load_log_event work like Query_log_event for temp tables.
2004-12-03 23:07:08 +01:00
mats@mysql.com
2bbdf2403d Bug#6391 (binlog-do-db rules ignored)
CREATE DATABASE statement used the current database instead of the
  database created when checking conditions for replication.
  CREATE/DROP/ALTER DATABASE statements are now replicated based on
  the manipulated database.
2004-12-03 12:13:51 +01:00
serg@serg.mylan
2d3dd65cc1 merged 2004-11-20 18:36:41 +01:00
guilhem@mysql.com
6c438ba9a4 log_event.cc:
post-conflict-merge fix (duplicate comment)
2004-11-19 00:57:26 +01:00
guilhem@mysql.com
631f6f3c30 Merge 2004-11-18 23:31:23 +01:00
guilhem@mysql.com
7743dbbb56 When mysqlbinlog prints LOAD DATA INFILE, let it print the thread id. Some customer would have benefited
much from this in his recovery. All this change does is adding one commented (#) line before the LOAD DATA
command, so it is quite innocuous.
2004-11-18 22:59:17 +01:00
guilhem@mysql.com
e38dae0bc1 Merge 2004-11-16 00:04:12 +01:00
lars@mysql.com
b7cfe5ecad BUG#6353 V2:
Replication using replicate-rewrite-db did not work for LOAD DATA INFILE.
Now is does.  There was one place in the code that used current database 
instead of the rewrite database.
2004-11-15 17:03:54 +01:00
bell@sanja.is.com.ua
1555469b64 merge 2004-11-12 15:36:31 +02:00
pem@mysql.comhem.se
b95560a8fc Build fixes to make it compile. 2004-11-12 11:37:59 +01:00
brian@avenger.(none)
3e4ca194f8 Mainly resolving Guilhem's 4.1 patch to 5.0 2004-11-11 19:01:46 -08:00
guilhem@mysql.com
600b965f32 Merge 2004-11-10 18:02:00 +01:00
monty@mysql.com
b903a129e2 Simpler arena swapping code
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
This gives us the following benefits:
- Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
- Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
- We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
2004-11-08 01:13:54 +02:00
bell@sanja.is.com.ua
dff05eb951 merge 2004-10-28 11:02:48 +03:00
bell@sanja.is.com.ua
ed7b229a28 added support of view and CHECK OPTION of view to LOAD DATA (BUG#5996) 2004-10-21 21:53:27 +03:00
bell@sanja.is.com.ua
d409547de4 changed function name to prevent injection wrong code from 4.1 (WL#2133) 2004-10-20 16:06:54 +03:00
guilhem@mysql.com
41b808d224 Optimization: in the replication slave, we can avoid doing one strlen() per event's execution,
as we already have db_len in Log_event. Only if rewrite_db() changed the db we need a strlen
(so we now do the strlen() in rewrite_db). Plus a test (we had none for --replicate-rewrite-db :( ).
2004-10-19 22:27:19 +02:00
guilhem@mysql.com
2b2de7b62f In binary log events, flags are 2 bytes, not 4. Using 4 resulted in buffer overflow (and on a certain build it resulted in overwriting another part of the event without crashing :( ). 2004-09-24 18:25:06 +02:00
guilhem@mysql.com
00d2e803dc Fix for BUG#5705: "SET CHARATER_SET_SERVERetc will be lost if STOP SLAVE before following query":
we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT (it's not a standalone event)
2004-09-23 12:16:56 +02:00
monty@mishka.local
91ff64e107 Added options --auto-increment-increment and --auto-increment-offset.
This allows one to setup a master <-> master replication with non conflicting auto-increment series.
Cleaned up binary log code to make it easyer to add new state variables.
Added simpler 'upper level' logic for artificial events (events that should not cause cleanups on slave).
Simplified binary log handling.
Changed how auto_increment works together with to SET INSERT_ID=# to make it more predictable: Now the inserted rows in a multi-row statement are set independent of the existing rows in the table. (Before only InnoDB did this correctly)
2004-09-15 22:10:31 +03:00
monty@mysql.com
f2829d0386 After merge fixes of merge with 4.1 that included the new arena code.
Fixed (together with Guilhem) bugs in mysqlbinlog regarding --offset
Prefix addresses with 0x for easier comparisons of debug logs
Fixed problem where MySQL choosed index-read even if there would be a much better range on the same index
This fix changed some 'index' queries to 'range' queries in the test suite
Don't create 'dummy' WHERE clause for trivial WHERE clauses where we can remove the WHERE clause.
This fix removed of a lot of 'Using where' notes in the test suite.
Give NOTE instead of WARNING if table/function doesn't exists when using DROP IF EXISTS
Give NOTE instead of WARNING for safe field-type conversions
2004-09-09 06:59:26 +03:00
serg@serg.mylan
323e683cbf merged 2004-09-07 21:30:28 +02:00
guilhem@mysql.com
168e4c9c6b when we update thd->db in replication, it's safer to update thd->db_length too.
This does not fix any known bug, but is still a good idea.
2004-09-07 14:57:54 +02:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03:00
monty@mysql.com
054cea4ca8 Merge with 4.0 2004-09-01 04:12:09 +03:00
guilhem@mysql.com
93101561fd Fix for BUG#4500 "set character set replicates incorrectly"
We must not reset the charset in slave after each statement, otherwise the SET CHARACTER SET is cancelled immediately.
Instead, we write a SET CHARACTER SET DEFAULT to the master's binlog when needed (like we already do for SET FOREIGN_KEY_CHECKS);
such writing is not necessary in 4.1 (in 4.1 the bug does not exist, as the SET ONE_SHOT syntax is used).
I have written a test and it works, but I'm not pushing the test as it requires building with all charsets.
I have noticed differences between what is inserted in the master's table in 4.0 and 4.1, and alerted Bar.
2004-08-29 14:13:51 +02:00
guilhem@mysql.com
31f61883df Replication: various small fixes specific to the new binlog format of 5.0
(including one which may explain autobuild's failure of yesterday)
2004-07-26 19:42:59 +02:00
serg@serg.mylan
c9fd775777 merged 2004-07-21 23:32:11 +02:00
bell@sanja.is.com.ua
a1b6f6db0e LEX initialization fixed 2004-07-21 22:44:12 +03:00
guilhem@mysql.com
e649dbfcb0 Sanja will probably rework this tomorrow; we need to unify the normal
client code and replication slave code, as far as LOAD DATA INFILE and
other queries' execution is concerned. Duplication of code leads to
replication bugs, because the replication duplicate lags much behind.
Fix for 2 Valgrind errors on slave replicating LOAD DATA INFILE
  - one serious (causing a random test failure in rpl_loaddata in 5.0)
  - one not serious (theoretically a bug but not dangerous): uninited thd->row_count
2004-07-21 00:52:35 +02:00
monty@mysql.com
31fe2837f9 Merge with 4.1 2004-07-12 08:20:24 +03:00
monty@mysql.com
064b8b8f65 Merge with 4.0 to get bug fixes 2004-07-09 02:29:28 +03:00
monty@mysql.com
db7efa2780 New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
Added key part to optimize_range() to fix problems when using fields in key parts.
2004-07-08 15:45:25 +03:00
monty@mysql.com
1e31199995 Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
guilhem@mysql.com
74809f7445 Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in
processlist on slave":
we now report in SHOW PROCESSLIST that we are writing to the temp
files or loading the table. When we are writing to the tmp file:
| 3  | system user |                 |    | Connect | 6    | Making temp file /tmp/SQL_LOAD-2-1-2.data | 
and when we are actually loading the .data temp file into the table:
| 3  | system user |                 | test | Connect | 2    | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> |
2004-06-30 15:41:35 +02:00
guilhem@mysql.com
b514e6a8c5 Correction to replication of charsets in 4.1:
In mysqlbinlog, there was a problem with how we escaped the content of a string user variable.
To be perfect, we should have escaped with character_set_client. But this charset is unknown
to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but
100% safe with any charset (checked with Bar), no more need to bother with character_set_client.
2004-06-08 19:55:04 +02:00
guilhem@mysql.com
86e8ecc965 Implementation of WL#1824 "Add replication of character set variables in 4.1",
by binlogging some SET ONE_SHOT CHARACTER_SETetc,
which will be enough until we have it more compact and more complete in 5.0. With the present patch,
replication will work ok between 4.1.3 master and slaves, as long as:
- master and slave have the same GLOBAL.COLLATION_SERVER
- COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used
- application does not use the fact that table is created with charset of the USEd db (BUG#2326).
all of which are not too hard to fulfill. 
ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets,
so we give error if used for non-charset vars.
Fix for BUG#3875 "mysqlbinlog produces wrong ouput  if query uses
 variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated
 properly after SET NAMES".
Detecting that master and slave have different global charsets or server ids.
2004-06-03 23:17:18 +02:00
monty@mysql.com
61a6557307 merge with 4.0 to get windows fixes 2004-05-27 00:30:28 +03:00
hf@deer.(none)
78f58ff384 Fix to make Windows compilation smoother 2004-05-26 21:40:27 +05:00
pem@mysql.com
71eddc362e Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00