For each view the mysqldump utility creates a temporary table
with the same name and the same columns as the view
in order to satisfy views that depend on this view.
After the creation of all tables, mysqldump drops all
temporary tables and creates actual views.
However, --skip-add-drop-table and --compact flags disable
DROP TABLE statements for those temporary tables. Thus, it was
impossible to create the views because of existence of the
temporary tables with the same names.
client/mysqldump.c:
Fixed bug #28524.
The mysqldump utility has been modified to unconditionally drop
temporary tables before the creation of views.
mysql-test/t/mysqldump.test:
Updated test case for bug #28524 and updated result of previous tests.
mysql-test/r/mysqldump.result:
Updated test case for bug #28524 and updated result of previous tests.
- Move the check of too long path to 'get_one_option'
client/mysqldump.c:
Move the check of too long path to 'get_one_option'
mysql-test/r/mysqldump.result:
Update result file after changing error message
into bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
sql/field.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/my_decimal.h:
Auto merged
sql/sql_base.cc:
Auto merged
sometimes `mysqldump --hex-blob' overruned output buffer by '\0' byte.
The dump_table() function has been fixed to reserve 1 byte more for the
last '\0' byte of dumped string.
client/mysqldump.c:
Fixed bug #28522.
The dump_table() function has been fixed to reserve 1 byte more for the
last '\0' byte of dumped string.
mysql-test/t/mysqldump.test:
Updated test case for bug #28522.
mysql-test/r/mysqldump.result:
Updated test case for bug #28522.
- mysqldump generated output that set OLD_SQL_MODE twice, to different values
(for triggers), or not at all (for routines) in some cases.
client/mysqldump.c:
Only save SQL_MODE in dump_triggers if in --compact mode. Otherwise,
it's already been saved in write_header(). Likewise for dumpe_routines,
where it was never saved.
mysql-test/r/mysqldump.result:
mysqldump output has subtly changed. Adjust test-results. This also shows
OLD_SQL_MODE is always set exactly once now
mysqldump didn't properly handle getting no data on
SHOW CREATE PROCEDURE. If S/C/P fails (due to dumping
user's insufficient privileges on mysql.proc, say),
mysqldump will print a comment to that effect to the
output and return an error-code. If the -f (force) option
is used, the dump will continue, otherwise, it will abort
right there and then.
Also fixes Bug#22761, "mysqldump reports no errors when using
--routines without mysql.proc privileges"
---
Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into mysql.com:/home/tnurnberg/27293/50-27293
client/mysqldump.c:
Bug#27293: mysqldump crashes when dumping procedure defined by different user
handle failure of SHOW CREATE PROCEDURE, give user diagnostics,
heed -f (force) option
mysql-test/r/mysqldump.result:
Bug#27293: mysqldump crashes when dumping procedure defined by different user
show that trying to mysqldump --routines with insufficient
privileges will no longer crash the client
---
manual merge
mysql-test/t/mysqldump.test:
Bug#27293: mysqldump crashes when dumping procedure defined by different user
show that trying to mysqldump --routines with insufficient
privileges will no longer crash the client
---
manual merge
into recycle.(none):/src/bug23491/my50-bug23491
mysql-test/t/mysqldump.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/mysqldump.result:
SCCS merged
- mysqldump executes a SHOW CREATE VIEW statement to generate the text
that it outputs. When the function name is retrieved it's database
name is unconditionally prepended. This change causes the function's
database name to be prepended only when it was used to define the
function.
mysql-test/r/information_schema.result:
Bug#23491 MySQLDump prefix function call in a view by database name
- Updated Results.
mysql-test/r/mysqldump.result:
Bug#23491 MySQLDump prefix function call in a view by database name
- Added new results.
mysql-test/r/sp-code.result:
Bug#23491 MySQLDump prefix function call in a view by database name
- Updated Results.
mysql-test/r/udf.result:
Bug#23491 MySQLDump prefix function call in a view by database name
- Updated Results.
mysql-test/t/mysqldump.test:
Bug#23491 MySQLDump prefix function call in a view by database name
- Added new testcase.
sql/item_func.cc:
Bug#23491 MySQLDump prefix function call in a view by database name
- Use new m_explicit_name member when deciding whether or not to prepend
the db name while building the function name.
sql/sp.cc:
Bug#23491 MySQLDump prefix function call in a view by database name
- Use new sp_name constructor.
sql/sp_head.h:
Bug#23491 MySQLDump prefix function call in a view by database name
- Add m_explicit_name member to sp_name object.
- Redefined sp_name constructor to include new member.
sql/sql_yacc.yy:
Bug#23491 MySQLDump prefix function call in a view by database name
- Use new sp_name constructors.
opt_complete_insert was improperly used by accident.
Use complete_insert flag instead.
client/mysqldump.c:
Fix for bug #25993: mysqldump crashes with merge table and -c option
- use complete_insert instead of opt_complete_insert.
mysql-test/r/mysqldump.result:
Fix for bug #25993: mysqldump crashes with merge table and -c option
- test result.
mysql-test/t/mysqldump.test:
Fix for bug #25993: mysqldump crashes with merge table and -c option
- test case.
Fixes to buffer overlows from long command line args, and unchecked dyn_str return codes. Also light refactoring.
client/mysqldump.c:
Bug#26346 stack + buffer overrun in mysqldump
mysql-test/r/mysqldump.result:
Bug#26346 stack + buffer overrun in mysqldump
mysql-test/t/mysqldump.test:
Bug#26346 stack + buffer overrun in mysqldump
into mysql.com:/home/bk/MERGE/mysql-5.0-merge
client/mysqldump.c:
Auto merged
include/my_pthread.h:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/rpl_timezone.result:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysys/my_thr_init.c:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/init_connect.result:
Restore global variable to the value it's set to when server is started
mysql-test/r/key_cache.result:
Restore global variable values to original
mysql-test/r/mysqldump.result:
Drop the user that was created. Specifying "drop user myDB_user" is equal to "drop user myDB_user@%"
mysql-test/r/rpl_deadlock.result:
Restore global variable values to original
mysql-test/r/rpl_drop_db.result:
Remove the conflicting file and drop database mysqltest1 before test exits
mysql-test/r/rpl_ignore_revoke.result:
As changes to mysql.* are ignored - explicitly delete the user on slave
mysql-test/r/rpl_init_slave.result:
Restore global variable values to original
mysql-test/r/rpl_max_relay_size.result:
Restore global variable values to original
mysql-test/r/rpl_sp.result:
Restore global variable values to original
mysql-test/r/rpl_timezone.result:
Restore global variable values to original
mysql-test/r/rpl_variables.result:
Restore global variable values to original
mysql-test/r/view_grant.result:
Use same user in all places in the same test "readonly" is equal to "readonly@%" not "readonly@localhost"
mysql-test/t/init_connect.test:
Restore global variable to the value it's set to when server is started
mysql-test/t/key_cache.test:
Restore global variable values to original
mysql-test/t/mysqldump.test:
Drop the user that was created. Specifying "drop user myDB_user" is equal to "drop user myDB_user@%"
mysql-test/t/rpl_deadlock.test:
Restore global variable values to original
mysql-test/t/rpl_drop_db.test:
Remove the conflicting file and drop database mysqltest1 before test exits
mysql-test/t/rpl_ignore_revoke.test:
As changes to mysql.* are ignored - explicitly delete the user on slave
mysql-test/t/rpl_init_slave.test:
Restore global variable values to original
mysql-test/t/rpl_max_relay_size.test:
Restore global variable values to original
mysql-test/t/rpl_sp.test:
Restore global variable values to original
mysql-test/t/rpl_timezone.test:
Restore global variable values to original
mysql-test/t/rpl_variables.test:
Restore global variable values to original
mysql-test/t/view_grant.test:
Use same user in all places in the same test "readonly" is equal to "readonly@%" not "readonly@localhost"
The mysqldump command with both the --xml and --hex-blob options will output blob data encoded as hexBinary.
The proper XML datatype is xs:hexBinary.
The correct XML datatype is specified be setting the xsi_type attribute equal to xs:hexBinary for each encoded element.
client/mysqldump.c:
Bug#19745: mysqldump --xml produces invalid xml
- Moved hex-blob code to it's own function.
- Rewrote print_xml_tag function to accept zero or more attribute/value
pair(s) which are appended to a separate tag name.
- --xml option respects the --hex-blob option by ouputting blob data in hex
encoded format. Each hex encoded field tag will also contain an xsi:type
attribute with an xs:hexBinary value.
- --extended-insert and --xml are mutually exclusive. Otherwise, the xml file
will contain INSERT commands.
- Minor comment cleanup.
mysql-test/r/mysqldump.result:
Bug#19745: mysqldump --xml produces invalid xml
-Added results.
mysql-test/t/mysqldump.test:
Bug#19745: mysqldump --xml produces invalid xml
-Added test.
mysql-test/r/mysqldump.result:
Fix of result file (adding the echo's)
mysql-test/r/rpl_view.result:
Added end of 5.0 echo
mysql-test/t/rpl_view.test:
Added end of 5.0 echo
Dumps are created for the tables in each specified database then for the views in each specified database. This bug occurs when any database's views depend on the mysql database's table data while being restored.
Added command line option --flush-privileges to the mysqldump utility which causes a FLUSH PRIVILIGES statement to be written to the dump after the mysql database.
client/mysqldump.c:
When the flush-privileges command line option is specified, make sure to FLUSH PRIVILEGES after only the mysql database's tables' data is restored so that grant tables are current.
mysql-test/r/mysqldump.result:
Added Results.
mysql-test/t/mysqldump.test:
Expanded existing test case for bug 21527 to also test for bug 21424.
Exercises new --flush-priviliges command line option.
Test ignores log tables.
so that 4.1 and 5.0 tests are all in the right place and no tests are duplicated.
client/mysqldump.c:
Restore fix for bug 21215 accidently removed during merge
mysql-test/r/mysqldump.result:
Update results
mysql-test/t/mysqldump.test:
Fix order of tests so that all the tests new to the 5.0 tree come after
"End of 4.1 tests", and so that each leaves things in the state it found
them (particularly by returning to the 'test' database. Also remove some
tests that were duplicated.
init_dumping now accepts a function pointer to the table or view specific init_dumping function. This allows both tables and views to use the init_dumping function.
client/mysqldump.c:
Added functions for table and view specific dumping initalization.
mysql-test/r/mysqldump.result:
Added Result.
mysql-test/t/mysqldump.test:
Added test case.
The problem was that the error handling was using a too-small buffer to
print the error message generated. We fix this by not using a buffer at
all, but by using fprintf() directly. There were also some problems with
the error handling in table dumping that was exposed by this fix that were
also corrected.
client/mysqldump.c:
Use fprintf() instead of my_printf_error() to avoid buffer overflow issues.
Since ME_BELL wasn't specified, calling my_printf_error() offered no advantage
except for adding my_progname, which we just go ahead and do manually. Also,
fix the error handling in dumpTable() when queries to get data fail and --force
was specified.
mysql-test/r/mysqldump.result:
Add new results
mysql-test/t/mysqldump.test:
Add new regression test
mysql-test/r/mysqldump.result:
Update results.
mysql-test/t/mysqldump.test:
Fix a bug in the test case that left user mysqltest_1@localhost
around (this broke furhter tests).
client/mysqldump.c:
Remove double error printout, mysql_query_with_error_report will do that. And set the exit code for us.
mysql-test/r/mysqldump.result:
Update test result after merge
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
client/mysql.cc:
Auto merged
configure.in:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
client/mysqldump.c:
Manual merge
mysql-test/r/mysqldump.result:
Manual merge
mysql-test/t/mysqldump.test:
Manual merge
into bodhi.local:/opt/local/work/mysql-5.0-runtime-merge
include/mysql.h:
Auto merged
include/sql_common.h:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/udf.test:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
mysql-test/r/ps.result:
Manual merge.
mysql-test/r/sp.result:
Manual merge.
mysql-test/t/ps.test:
Manual merge.
mysql-test/t/sp.test:
Manual merge.
sql/sql_prepare.cc:
Manual merge.
sql/table.cc:
Manual merge.
tests/mysql_client_test.c:
Manual merge.
Fix for BUG#16676: Database CHARSET not used for stored procedures
The problem in BUG#16211 is that CHARSET-clause of the return type for
stored functions is just ignored.
The problem in BUG#16676 is that if character set is not explicitly
specified for sp-variable, the server character set is used instead
of the database one.
The fix has two parts:
- always store CHARSET-clause of the return type along with the
type definition in mysql.proc.returns column. "Always" means that
CHARSET-clause is appended even if it has not been explicitly
specified in CREATE FUNCTION statement (this affects BUG#16211 only).
Storing CHARSET-clause if it is not specified is essential to avoid
changing character set if the database character set is altered in
the future.
NOTE: this change is not backward compatible with the previous releases.
- use database default character set if CHARSET-clause is not explicitly
specified (this affects both BUG#16211 and BUG#16676).
NOTE: this also breaks backward compatibility.
mysql-test/r/mysqldump.result:
Updated result file.
mysql-test/r/sp.result:
Updated result file.
mysql-test/t/sp.test:
Provided test cases for BUG#16211, BUG#16676.
sql/mysql_priv.h:
Added two convenient functions for work with databases.
sql/sp.cc:
1. Add CHARSET-clause to CREATE-statement if it has been explicitly specified.
2. Polishing -- provided some comments.
sql/sp_head.cc:
Use database charset as default charset of sp-variable.
sql/sp_head.h:
Move init_sp_name() out of init_strings().
sql/sql_db.cc:
Two new functions created:
- load_db_opt_by_name();
- check_db_dir_existence();
sql/sql_show.cc:
Eliminate duplicated code by using
check_db_dir_existence() and load_db_opt_by_name()
sql/sql_table.cc:
Eliminate duplicated code by using
check_db_dir_existence() and load_db_opt_by_name()
sql/sql_yacc.yy:
Call sp_head::init_sp_name() to initialize stored routine name.
- Add call to 'safe_exit' function when db query fails.
client/mysqldump.c:
Add a call to 'safe_exit' to remember the error code and exit unless --force was give.n
mysql-test/r/mysqldump.result:
Add test result
mysql-test/t/mysqldump.test:
Add test case
client/mysqldump.c:
When dumping more than one database, make sure that the proper database is selected before restoring that database's views.
Replaced hard-coded database name length with appropiate token.
mysql-test/r/mysqldump.result:
Added new result and corrected results for existing test cases.
mysql-test/t/mysqldump.test:
Added new case for dumping and restoring multiple databases each containing a view.
into anubis.greendragongames.com:/home/greenman/workspace-mysql/mysql/merge-4.1_2_5.0
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysqldump did not select the correct database before trying to dump
views from it. this resulted in an empty result set, which in turn
startled mysql-dump into a core-dump. this only happened for views,
not for tables, and was only visible with multiple databases that
weren't by sheer luck in the order mysqldump required, anyway. this
fixes by selecting the correct database before dumping views; it also
catches the empty set-condition if it should occur for other reasons.
client/mysqldump.c:
Bug#21014: Segmentation fault of mysqldump on view
failsafe: if "select ... from information_schema.views" returns an
empty set, don't deref NULL; throw an error instead.
fix: select the correct database not only before dumping tables, but
before dumping views, as well.
mysql-test/r/mysqldump.result:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
mysql-test/t/mysqldump.test:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
client/mysql.cc:
Auto merged
client/sql_string.h:
Auto merged
configure.in:
Auto merged
myisam/mi_create.c:
Auto merged
mysql-test/r/date_formats.result:
Auto merged
mysql-test/t/date_formats.test:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_string.h:
Auto merged
sql/table.cc:
Auto merged
mysqldump did not select the correct database before trying to dump
views from it. this resulted in an empty result set, which in turn
startled mysql-dump into a core-dump. this only happened for views,
not for tables, and was only visible with multiple databases that
weren't by sheer luck in the order mysqldump required, anyway. this
fixes by selecting the correct database before dumping views; it also
catches the empty set-condition if it should occur for other reasons.
client/mysqldump.c:
Bug#21014: Segmentation fault of mysqldump on view
failsafe: if "select ... from information_schema.views" returns an
empty set, don't deref NULL; throw an error instead.
fix: select the correct database not only before dumping tables, but
before dumping views, as well.
mysql-test/r/mysqldump.result:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
mysql-test/t/mysqldump.test:
Bug#21014: Segmentation fault of mysqldump on view
show that mysqldump selects the correct database before trying to dump
views from it.
into mysql.com:/home/tnurnberg/mysql-5.0-maint-18462
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
client/mysqldump.c:
SCCS merged
into zippy.(none):/home/cmiller/work/mysql/mysql-5.0-maint
client/mysqldump.c:
Auto merged
BitKeeper/etc/ignore:
Added BitKeeper/etc/RESYNC_TREE to the ignore list
mysql-test/r/mysqldump.result:
Manual merge.
mysql-test/t/mysqldump.test:
Manual merge.
mysql-test/r/mysqldump.result:
Changed to other database (BUG#20531 hinders usage of 'test' database)
mysql-test/t/mysqldump.test:
Changed to other database (BUG#20531 hinders usage of 'test' database)
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
into mysql.com:/home/mysql-5.0-maint-17371
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
into mysql.com:/home/mysql-5.0-maint-18462
client/mysqldump.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
(The above problem only occurs with -T -- create a separate file for
each table / view.) This ChangeSet results in correct output of view-
information while omitting the information for the view's stand-in
table. The rationale is that with -T, the user is likely interested
in transferring part of a database, not the db in its entirety (that
would be difficult as replay order is obscure, the files being named
for the table/view they contain rather than getting a sequence number).
client/mysqldump.c:
Added missing fclose(). Before, a view's stand-in table would get
dumped in get_table_structure(), and the file would remain open.
get_view_structure() would re-open the same file and write to it,
resulting in garbage. The way we handle it now, the table-struct
gets closed, then the opening of the view-struct (same name)
overwrites it. (The SQL for the view drop-if-exists the table,
anyway.) If this were not desired and we wanted SQL for the views
that contains the create for the stand-in table, we'd hand a mode
to open_sql_file_for_table(), which would feature O_APPEND in
get_view_structure(), but not in get_table_structure().
mysql-test/r/mysqldump.result:
prove mysqldump -T (each item gets its own file) dumps views correctly
mysql-test/t/mysqldump.test:
prove mysqldump -T (each item gets its own file) dumps views correctly
'show create' works even on views that are short of a base-table (this
throw a warning though, like you would expect). Unfortunately, this is
not what mysqldump uses; it creates stand-in tables and hence requests
'show fields' on the view which fails with missing base-tables. The
--force option prevents the dump from stopping at this point; furthermore
this patch dumps a comment showing create for the offending view for
better diagnostics. This solution was confirmed by submitter as solving
their/clients' problem. Problem might become non-issue once mysqldump no
longer creates stand-in tables.
client/mysqldump.c:
Dump a comment showing create for a view if we can't show fields for it for
better diagnostics.
mysql-test/r/mysqldump.result:
add test for #17371 - be defensive. if we can't do a full dump on a view
(incl. 'show fields' for a stand-in table), at least create a comment with
the 'show create' info when --force is given.
mysql-test/t/mysqldump.test:
add test for #17371 - be defensive. if we can't do a full dump on a view
(incl. 'show fields' for a stand-in table), at least create a comment with
the 'show create' info when --force is given.