summaryrefslogtreecommitdiff
path: root/sql/share
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2004-11-10 17:56:45 +0100
committerunknown <guilhem@mysql.com>2004-11-10 17:56:45 +0100
commit313ce62f7036d1626f248bc8cbb197ffc4a9001c (patch)
tree2902d9154cc1add516be37d0682553b94d6610a7 /sql/share
parentc4d04e9ec112e5df429844934507488c2c3990b9 (diff)
downloadmariadb-git-313ce62f7036d1626f248bc8cbb197ffc4a9001c.tar.gz
WL#1596 "make mysqldump --master-data --single-transaction able to do online dump of InnoDB AND report reliable
binlog coordinates corresponding to the dump". The good news is that now mysqldump can be used to get an online backup of InnoDB *which works for point-in-time recovery and replication slave creation*. Formerly, mysqldump --master-data --single-transaction used to call in fact mysqldump --master-data, so the dump was not an online dump (took big lock all time of dump). The only lock which is now taken in this patch is at the beginning of the dump: mysqldump does: FLUSH TABLES WITH READ LOCK; START TRANSACTION WITH CONSISTENT SNAPSHOT; SHOW MASTER STATUS; UNLOCK TABLES; so the lock time is in fact the time FLUSH TABLES WITH READ LOCK takes to return (can be 0 or very long, if a table is undergoing a huge update). I have done some more minor changes listed in the paragraph of mysqldump.c. WL#2237 "WITH CONSISTENT SNAPSHOT clause for START TRANSACTION": it's a START TRANSACTION which additionally starts a consistent read on all capable storage engine (i.e. InnoDB). So, can serve as a replacement for BEGIN; SELECT * FROM some_innodb_table LIMIT 1; which starts a consistent read too. client/mysqldump.c: Main change: mysqldump --single-transaction --master-data is now able to, at the same time, take an online dump of InnoDB (using consistent read) AND get the binlog position corresponding to this dump (before, using the two options used to silently cancel --single-transaction). This uses the new START TRANSACTION WITH CONSISTENT SNAPSHOT syntax. Additional changes: a) cleanup: - DBerror calls exit() so some code was unneeded - no need to call COMMIT at end, leave disconnection do the job - mysql_query_with_error_report() b) requirements I had heard from colleagues: - --master-data now requires an argument, to comment out ("--") the CHANGE MASTER or not (commenting had been asked for point-in-time recovery when replication is not necessary). - --first-slave is renamed to --lock-all-tables c) more sensible behaviours (has been discussed internally): - if used with --master-data, --flush-logs is probably intended to get a flush synchronous with the dump, not one random flush per dumped db. - disabled automatic reconnection as, at least, SQL_MODE would be lost (and also, depending on options, LOCK TABLES, BEGIN, FLUSH TABLES WITH READ LOCK). include/mysqld_error.h: an error if START TRANSACTION WITH CONSISTENT SNAPSHOT is called and there is no consistent-read capable storage engine (idea ((C) PeterG) is that it's a bit like CREATE TABLE ENGINE=InnoDB when there is no support for InnoDB). sql/handler.cc: new ha_start_consistent_snapshot(), which, inside an existing transaction, starts a consistent read (offers an alternative to SELECTing any InnoDB table). Does something only for InnoDB. Warning if no suitable engine supported. sql/handler.h: declarations sql/lex.h: symbols for lex sql/share/czech/errmsg.txt: new message sql/share/danish/errmsg.txt: new message sql/share/dutch/errmsg.txt: new message sql/share/english/errmsg.txt: new message sql/share/estonian/errmsg.txt: new message sql/share/french/errmsg.txt: new message sql/share/german/errmsg.txt: new message sql/share/greek/errmsg.txt: new message sql/share/hungarian/errmsg.txt: new message sql/share/italian/errmsg.txt: new message sql/share/japanese/errmsg.txt: new message sql/share/korean/errmsg.txt: new message sql/share/norwegian-ny/errmsg.txt: new message sql/share/norwegian/errmsg.txt: new message sql/share/polish/errmsg.txt: new message sql/share/portuguese/errmsg.txt: new message sql/share/romanian/errmsg.txt: new message sql/share/russian/errmsg.txt: new message sql/share/serbian/errmsg.txt: new message sql/share/slovak/errmsg.txt: new message sql/share/spanish/errmsg.txt: new message sql/share/swedish/errmsg.txt: new message sql/share/ukrainian/errmsg.txt: new message sql/sql_lex.h: new option in lex (transaction options) sql/sql_parse.cc: warning comment (never make UNLOCK TABLES commit a transaction, please); support for starting consistent snapshot. sql/sql_yacc.yy: new clause WITH CONSISTENT SNAPSHOT (syntax ok'd by PeterG) for START TRANSACTION.
Diffstat (limited to 'sql/share')
-rw-r--r--sql/share/czech/errmsg.txt1
-rw-r--r--sql/share/danish/errmsg.txt1
-rw-r--r--sql/share/dutch/errmsg.txt1
-rw-r--r--sql/share/english/errmsg.txt1
-rw-r--r--sql/share/estonian/errmsg.txt1
-rw-r--r--sql/share/french/errmsg.txt1
-rw-r--r--sql/share/german/errmsg.txt1
-rw-r--r--sql/share/greek/errmsg.txt1
-rw-r--r--sql/share/hungarian/errmsg.txt1
-rw-r--r--sql/share/italian/errmsg.txt1
-rw-r--r--sql/share/japanese/errmsg.txt1
-rw-r--r--sql/share/korean/errmsg.txt1
-rw-r--r--sql/share/norwegian-ny/errmsg.txt1
-rw-r--r--sql/share/norwegian/errmsg.txt1
-rw-r--r--sql/share/polish/errmsg.txt1
-rw-r--r--sql/share/portuguese/errmsg.txt1
-rw-r--r--sql/share/romanian/errmsg.txt1
-rw-r--r--sql/share/russian/errmsg.txt1
-rw-r--r--sql/share/serbian/errmsg.txt1
-rw-r--r--sql/share/slovak/errmsg.txt1
-rw-r--r--sql/share/spanish/errmsg.txt1
-rw-r--r--sql/share/swedish/errmsg.txt1
-rw-r--r--sql/share/ukrainian/errmsg.txt1
23 files changed, 23 insertions, 0 deletions
diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt
index 022a624c921..d352a6e82f7 100644
--- a/sql/share/czech/errmsg.txt
+++ b/sql/share/czech/errmsg.txt
@@ -331,3 +331,4 @@ character-set=latin2
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt
index 18ebe5712f8..e84ee22d5cf 100644
--- a/sql/share/danish/errmsg.txt
+++ b/sql/share/danish/errmsg.txt
@@ -322,3 +322,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt
index 54377b5949a..d9d33c3bf59 100644
--- a/sql/share/dutch/errmsg.txt
+++ b/sql/share/dutch/errmsg.txt
@@ -331,3 +331,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt
index 8ede3f61a0b..fd43a2c10c5 100644
--- a/sql/share/english/errmsg.txt
+++ b/sql/share/english/errmsg.txt
@@ -319,3 +319,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt
index 5aab524e0d9..ae4d5279f35 100644
--- a/sql/share/estonian/errmsg.txt
+++ b/sql/share/estonian/errmsg.txt
@@ -324,3 +324,4 @@ character-set=latin7
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt
index 355e784b156..5217133274b 100644
--- a/sql/share/french/errmsg.txt
+++ b/sql/share/french/errmsg.txt
@@ -319,3 +319,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt
index 03e838dd805..15f98d36e87 100644
--- a/sql/share/german/errmsg.txt
+++ b/sql/share/german/errmsg.txt
@@ -332,3 +332,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt
index 06f31a79a73..fae5c508320 100644
--- a/sql/share/greek/errmsg.txt
+++ b/sql/share/greek/errmsg.txt
@@ -319,3 +319,4 @@ character-set=greek
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt
index af10c33ee2d..6f83de7a64d 100644
--- a/sql/share/hungarian/errmsg.txt
+++ b/sql/share/hungarian/errmsg.txt
@@ -324,3 +324,4 @@ character-set=latin2
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt
index cd66f15db5f..7df71e92fc4 100644
--- a/sql/share/italian/errmsg.txt
+++ b/sql/share/italian/errmsg.txt
@@ -319,3 +319,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt
index eaab58d8403..9fc2ead10d6 100644
--- a/sql/share/japanese/errmsg.txt
+++ b/sql/share/japanese/errmsg.txt
@@ -323,3 +323,4 @@ character-set=ujis
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt
index 1cff50432e9..4e40ffc6264 100644
--- a/sql/share/korean/errmsg.txt
+++ b/sql/share/korean/errmsg.txt
@@ -319,3 +319,4 @@ character-set=euckr
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt
index 27f7a18f029..d78c59357f1 100644
--- a/sql/share/norwegian-ny/errmsg.txt
+++ b/sql/share/norwegian-ny/errmsg.txt
@@ -321,3 +321,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt
index 772f30e5d94..d0a282c444d 100644
--- a/sql/share/norwegian/errmsg.txt
+++ b/sql/share/norwegian/errmsg.txt
@@ -321,3 +321,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt
index 634a4d93f42..de812697482 100644
--- a/sql/share/polish/errmsg.txt
+++ b/sql/share/polish/errmsg.txt
@@ -324,3 +324,4 @@ character-set=latin2
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt
index c79c346008e..262c472a4fa 100644
--- a/sql/share/portuguese/errmsg.txt
+++ b/sql/share/portuguese/errmsg.txt
@@ -321,3 +321,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt
index 7cb0427dc3f..377ebfbf698 100644
--- a/sql/share/romanian/errmsg.txt
+++ b/sql/share/romanian/errmsg.txt
@@ -324,3 +324,4 @@ character-set=latin2
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt
index df354d5797f..4edfd39c836 100644
--- a/sql/share/russian/errmsg.txt
+++ b/sql/share/russian/errmsg.txt
@@ -324,3 +324,4 @@ character-set=koi8r
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/serbian/errmsg.txt b/sql/share/serbian/errmsg.txt
index 45b56c8269c..e18fa6d2811 100644
--- a/sql/share/serbian/errmsg.txt
+++ b/sql/share/serbian/errmsg.txt
@@ -312,3 +312,4 @@ character-set=cp1250
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt
index 12c3eb2b6af..d935439a1ba 100644
--- a/sql/share/slovak/errmsg.txt
+++ b/sql/share/slovak/errmsg.txt
@@ -327,3 +327,4 @@ character-set=latin2
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt
index bd2439c44a6..97fb1bf0be5 100644
--- a/sql/share/spanish/errmsg.txt
+++ b/sql/share/spanish/errmsg.txt
@@ -323,3 +323,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt
index da75e4fcede..8de68600509 100644
--- a/sql/share/swedish/errmsg.txt
+++ b/sql/share/swedish/errmsg.txt
@@ -319,3 +319,4 @@ character-set=latin1
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"
diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt
index a19cf946cb1..cf44fea6553 100644
--- a/sql/share/ukrainian/errmsg.txt
+++ b/sql/share/ukrainian/errmsg.txt
@@ -325,3 +325,4 @@ character-set=koi8u
"Invalid %s character string: '%.64s'",
"Result of %s() was larger than max_allowed_packet (%ld) - truncated"
"Conflicting declarations: '%s%s' and '%s%s'"
+"This MySQL server does not support any consistent-read capable storage engine"