mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge
This commit is contained in:
@ -3,5 +3,6 @@ jani@janikt.pp.saunalahti.fi
|
||||
monty@hundin.mysql.fi
|
||||
monty@work.mysql.com
|
||||
mwagner@evoq.mwagner.org
|
||||
paul@central.snake.net
|
||||
sasha@mysql.sashanet.com
|
||||
tonu@hundin.mysql.fi
|
||||
|
189
Docs/manual.texi
189
Docs/manual.texi
@ -688,6 +688,7 @@ System/Compile Time and Startup Parameter Tuning
|
||||
|
||||
* Compile and link options:: How compiling and linking affects the speed of MySQL
|
||||
* Disk issues:: Disk issues
|
||||
* Symbolic links::
|
||||
* Server parameters:: Tuning server parameters
|
||||
* Table cache:: How MySQL opens and closes tables
|
||||
* Creating many tables:: Drawbacks of creating large numbers of tables in the same database
|
||||
@ -697,9 +698,10 @@ System/Compile Time and Startup Parameter Tuning
|
||||
* Table locking:: Table locking issues
|
||||
* DNS::
|
||||
|
||||
Disk Issues
|
||||
Using Symbolic Links
|
||||
|
||||
* Symbolic links:: Using symbolic links for databases and tables
|
||||
* Symbolic links to database::
|
||||
* Symbolic links to tables::
|
||||
|
||||
Speed of Queries that Access or Update Data
|
||||
|
||||
@ -9603,7 +9605,7 @@ shell> cd mysql_installation_directory
|
||||
shell> ./bin/safe_mysqld --user=mysql &
|
||||
@end example
|
||||
|
||||
For a binary distribution, do this:
|
||||
For a binary distribution (not RPM or pkg packages), do this:
|
||||
|
||||
@example
|
||||
shell> cd mysql_installation_directory
|
||||
@ -10407,9 +10409,8 @@ recommended for systems where only local requests are allowed. @xref{DNS}.
|
||||
Don't use new, possible wrong routines. Implies @code{--skip-delay-key-write}.
|
||||
This will also set default table type to @code{ISAM}. @xref{ISAM}.
|
||||
|
||||
@item --skip-stack-trace
|
||||
Don't write stack traces. This option is useful when you are running
|
||||
@code{mysqld} under a debugger. @xref{Debugging server}.
|
||||
@item --skip-symlinks
|
||||
Don't delete or rename files that symlinks in the data directory points to.
|
||||
|
||||
@item --skip-safemalloc
|
||||
If @strong{MySQL} is configured with @code{--with-debug=full}, all programs
|
||||
@ -10421,6 +10422,10 @@ need memory checking, by using this option.
|
||||
Don't allow 'SHOW DATABASE' commands, unless the user has @strong{process}
|
||||
privilege.
|
||||
|
||||
@item --skip-stack-trace
|
||||
Don't write stack traces. This option is useful when you are running
|
||||
@code{mysqld} under a debugger. @xref{Debugging server}.
|
||||
|
||||
@item --skip-thread-priority
|
||||
Disable using thread priorities for faster response time.
|
||||
|
||||
@ -12154,6 +12159,13 @@ user names have nothing to do with Unix user names. You can edit the
|
||||
Normally this is done with the @code{su} command. For more details, see
|
||||
@ref{Changing MySQL user, , Changing @strong{MySQL} user}.
|
||||
|
||||
@item
|
||||
Don't support symlinks to tables (This can be disabled with the
|
||||
@code{--skip-symlinks} option. This is especially important if you run
|
||||
@code{mysqld} as root as anyone that has write access to the mysqld data
|
||||
directories could then delete any file in the system!
|
||||
@xref{Symbolic links to tables}.
|
||||
|
||||
@item
|
||||
If you put a password for the Unix @code{root} user in the @code{mysql.server}
|
||||
script, make sure this script is readable only by @code{root}.
|
||||
@ -18810,6 +18822,8 @@ or DELAY_KEY_WRITE = @{0 | 1@}
|
||||
or ROW_FORMAT= @{ default | dynamic | fixed | compressed @}
|
||||
or RAID_TYPE= @{1 | STRIPED | RAID0 @} RAID_CHUNKS=# RAID_CHUNKSIZE=#
|
||||
or UNION = (table_name,[table_name...])
|
||||
or DATA DIRECTORY="directory"
|
||||
or INDEX DIRECTORY="directory"
|
||||
|
||||
select_statement:
|
||||
[IGNORE | REPLACE] SELECT ... (Some legal select statement)
|
||||
@ -19141,6 +19155,14 @@ In the created table the @code{PRIMARY} key will be placed first, followed
|
||||
by all @code{UNIQUE} keys and then the normal keys. This helps the
|
||||
@strong{MySQL} optimizer to prioritize which key to use and also more quickly
|
||||
detect duplicated @code{UNIQUE} keys.
|
||||
|
||||
@item
|
||||
By using @code{DATA DIRECTORY="directory"} or @code{INDEX
|
||||
DIRECTORY="directory"} you can specify where the table handler should
|
||||
put it's table and index files. This only works for @code{MyISAM} tables
|
||||
in @code{MySQL} 4.0, when you are not using the @code{--skip-symlinks}
|
||||
option. @xref{Symbolic links to tables}.
|
||||
|
||||
@end itemize
|
||||
|
||||
@cindex silent column changes
|
||||
@ -23691,6 +23713,10 @@ with updates and inserts. This is done by automatically combining adjacent
|
||||
deleted blocks and by extending blocks if the next block is deleted.
|
||||
@item
|
||||
@code{myisampack} can pack @code{BLOB} and @code{VARCHAR} columns.
|
||||
@item
|
||||
You can use put the datafile and index file on different directories
|
||||
to get more speed (with the @code{DATA/INDEX DIRECTORY="path"} option to
|
||||
@code{CREATE TABLE}). @xref{CREATE TABLE}.
|
||||
@end itemize
|
||||
|
||||
@code{MyISAM} also supports the following things, which @strong{MySQL}
|
||||
@ -29737,6 +29763,11 @@ Replication will be done correctly with @code{AUTO_INCREMENT},
|
||||
@code{RAND()}. You can, for example, use @code{UNIX_TIMESTAMP()} for the
|
||||
argument to @code{RAND()}.
|
||||
@item
|
||||
You have to use the same character set (@code{--default-character-set})
|
||||
on the master and the slave. If not, you may get duplicate key errors on
|
||||
the slave, because a key that is regarded as unique on the master may
|
||||
not be that in the other character set.
|
||||
@item
|
||||
@code{LOAD DATA INFILE} will be handled properly as long as the file
|
||||
still resides on the master server at the time of update
|
||||
propagation. @code{LOAD LOCAL DATA INFILE} will be skipped.
|
||||
@ -30839,6 +30870,7 @@ are using @code{--skip-locking}
|
||||
@menu
|
||||
* Compile and link options:: How compiling and linking affects the speed of MySQL
|
||||
* Disk issues:: Disk issues
|
||||
* Symbolic links:: Using Symbolic Links
|
||||
* Server parameters:: Tuning server parameters
|
||||
* Table cache:: How MySQL opens and closes tables
|
||||
* Creating many tables:: Drawbacks of creating large numbers of tables in the same database
|
||||
@ -30951,7 +30983,7 @@ Linux binary is linked statically to get it faster and more portable.
|
||||
|
||||
@cindex disk issues
|
||||
@cindex performance, disk issues
|
||||
@node Disk issues, Server parameters, Compile and link options, System
|
||||
@node Disk issues, Symbolic links, Compile and link options, System
|
||||
@subsection Disk Issues
|
||||
|
||||
@itemize @bullet
|
||||
@ -31029,31 +31061,40 @@ really useful on a database server), you can mount your file systems
|
||||
with the noatime flag.
|
||||
@end itemize
|
||||
|
||||
@menu
|
||||
* Symbolic links:: Using symbolic links for databases and tables
|
||||
@end menu
|
||||
|
||||
@cindex symbolic links
|
||||
@cindex links, symbolic
|
||||
@cindex databases, symbolic links
|
||||
@cindex tables, symbolic links
|
||||
@node Symbolic links, , Disk issues, Disk issues
|
||||
@subsubsection Using Symbolic Links for Databases and Tables
|
||||
@node Symbolic links, Server parameters, Disk issues, System
|
||||
@subsection Using Symbolic Links
|
||||
|
||||
You can move tables and databases from the database directory to other
|
||||
locations and replace them with symbolic links to the new locations.
|
||||
You might want to do this, for example, to move a database to a file
|
||||
system with more free space.
|
||||
system with more free space or increase the speed of your system by
|
||||
spreading your tables to different disk.
|
||||
|
||||
If @strong{MySQL} notices that a table is symbolically linked, it will
|
||||
resolve the symlink and use the table it points to instead. This works
|
||||
on all systems that support the @code{realpath()} call (at least Linux
|
||||
and Solaris support @code{realpath()})! On systems that don't support
|
||||
@code{realpath()}, you should not access the table through the real path
|
||||
and through the symlink at the same time! If you do, the table will be
|
||||
inconsistent after any update.
|
||||
The recommended may to do this, is to just symlink databases to different
|
||||
disk and only symlink tables as a last resort.
|
||||
.
|
||||
|
||||
@strong{MySQL} doesn't that you link one directory to multiple
|
||||
@cindex databases, symbolic links
|
||||
@menu
|
||||
* Symbolic links to database::
|
||||
* Symbolic links to tables::
|
||||
@end menu
|
||||
|
||||
@node Symbolic links to database, Symbolic links to tables, Symbolic links, Symbolic links
|
||||
@subsubsection Using Symbolic Links for Databases
|
||||
|
||||
The way to symlink a database is to first create a directory on some
|
||||
disk where you have free space and then create a symlink to it from
|
||||
the @strong{MySQL} database directory.
|
||||
|
||||
@example
|
||||
shell> mkdir /dr1/databases/test
|
||||
shell> ln -s /dr1/databases/test mysqld-datadir
|
||||
@end example
|
||||
|
||||
@strong{MySQL} doesn't support that you link one directory to multiple
|
||||
databases. Replacing a database directory with a symbolic link will
|
||||
work fine as long as you don't make a symbolic link between databases.
|
||||
Suppose you have a database @code{db1} under the @strong{MySQL} data
|
||||
@ -31085,11 +31126,82 @@ On Windows you can use internal symbolic links to directories by compiling
|
||||
@strong{MySQL} with @code{-DUSE_SYMDIR}. This allows you to put different
|
||||
databases on different disks. @xref{Windows symbolic links}.
|
||||
|
||||
@cindex databases, symbolic links
|
||||
@node Symbolic links to tables, , Symbolic links to database, Symbolic links
|
||||
@subsubsection Using Symbolic Links for Tables
|
||||
|
||||
Before @strong{MySQL} 4.0 you should not symlink tables, if you are not
|
||||
very carefully with them. The problem is that if you run @code{ALTER
|
||||
TABLE}, @code{REPAIR TABLE} or @code{OPTIMIZE TABLE} on a symlinked
|
||||
table, the symlinks will be removed and replaced by the original
|
||||
files. This happens because the above command works by creating a
|
||||
temporary file in the database directory and when the command is
|
||||
complete, replace the original file with the temporary file.
|
||||
|
||||
You should not symlink tables on system that doesn't have a fully
|
||||
working @code{realpath()} call. (At least Linux and Solaris support
|
||||
@code{realpath()})
|
||||
|
||||
In @strong{MySQL} 4.0 symlinks is only fully supported for @code{MyISAM}
|
||||
tables. For other table types you will probably get strange problems
|
||||
when doing any of the above mentioned commands.
|
||||
|
||||
The handling of symbolic links in @strong{MySQL} 4.0 works the following
|
||||
way (this is mostly relevant only for @code{MyISAM} tables).
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
In the data directory you will always have the table definition file
|
||||
and the data/index files.
|
||||
@item
|
||||
You can symlink the index file and the data file to different directories
|
||||
independent of the other.
|
||||
@item
|
||||
The symlinking can be done from the operating system (if @code{mysqld} is
|
||||
not running) or with the @code{INDEX/DATA DIRECTORY="path-to-dir"} command
|
||||
in @code{CREATE TABLE}. @xref{CREATE TABLE}.
|
||||
@item
|
||||
@code{myisamchk} will not replace a symlink with the index/file but
|
||||
work directly on the files the symlinks points to. Any temporary files
|
||||
will be created in the same directory where the data/index file is.
|
||||
@item
|
||||
When you drop a table that is using symlinks, both the symlink and the
|
||||
file the symlink points to is dropped. This is a good reason to why you
|
||||
should NOT run @code{mysqld} as root and not allow persons to have write
|
||||
access to the @strong{MySQL} database directories.
|
||||
@item
|
||||
If you rename a table with @code{ALTER TABLE RENAME} and you don't change
|
||||
database, the symlink in the database directory will be renamed to the new
|
||||
name and the data/index file will be renamed accordingly.
|
||||
@item
|
||||
If you use @code{ALTER TABLE RENAME} to move a table to another database,
|
||||
then the table will be moved to the other database directory and the old
|
||||
symlinks and the files they pointed to will be deleted.
|
||||
@item
|
||||
If you are not using symlinks you should use the @code{--skip-symlinks}
|
||||
option to @code{mysqld} to ensure that no one can drop or rename a file
|
||||
outside of the @code{mysqld} data directory.
|
||||
@end itemize
|
||||
|
||||
Things that are not yet fully supported:
|
||||
|
||||
@cindex TODO, symlinks
|
||||
@itemize @bullet
|
||||
@item
|
||||
@code{ALTER TABLE} ignores all @code{INDEX/DATA DIRECTORY="path"} options.
|
||||
@item
|
||||
@code{CREATE TABLE} doesn't report if the table has symbolic links.
|
||||
@item
|
||||
@code{mysqldump} doesn't include the symbolic links information in the output.
|
||||
@item
|
||||
@code{BACKUP TABLE} and @code{RESTORE TABLE} doesn't use symbolic links.
|
||||
@end itemize
|
||||
|
||||
@cindex parameters, server
|
||||
@cindex @code{mysqld} server, buffer sizes
|
||||
@cindex buffer sizes, @code{mysqld} server
|
||||
@cindex startup parameters
|
||||
@node Server parameters, Table cache, Disk issues, System
|
||||
@node Server parameters, Table cache, Symbolic links, System
|
||||
@subsection Tuning Server Parameters
|
||||
|
||||
You can get the default buffer sizes used by the @code{mysqld} server
|
||||
@ -38862,6 +38974,12 @@ Post the test file using @code{mysqlbug} to @email{mysql@@lists.mysql.com}.
|
||||
@node ALTER TABLE problems, Change column order, No matching rows, Problems
|
||||
@section Problems with @code{ALTER TABLE}.
|
||||
|
||||
@code{ALTER TABLE} changes a table to the current character set.
|
||||
If you during @code{ALTER TABLE} get a duplicate key error, then the cause
|
||||
is either that the new character sets maps to keys to the same value
|
||||
or that the table is corrupted, in which case you should run
|
||||
@code{REPAIR TABLE} on the table.
|
||||
|
||||
If @code{ALTER TABLE} dies with an error like this:
|
||||
|
||||
@example
|
||||
@ -45422,6 +45540,8 @@ Slovak error messages.
|
||||
Romanian error messages.
|
||||
@item Peter Feher
|
||||
Hungarian error messages.
|
||||
@item Roberto M. Serqueira
|
||||
Portugise error messages.
|
||||
@item David Sacerdote @email{davids@@secnet.com}
|
||||
Ideas for secure checking of DNS hostnames.
|
||||
@item Wei-Jou Chen @email{jou@@nematic.ieo.nctu.edu.tw}
|
||||
@ -45436,7 +45556,7 @@ Active mailing list member.
|
||||
Ported (and extended) the benchmark suite to @code{DBI}/@code{DBD}. Have
|
||||
been of great help with @code{crash-me} and running benchmarks. Some new
|
||||
date functions. The mysql_setpermissions script.
|
||||
@item Jay Flaherty @email{fty@@utk.edu}
|
||||
@item Jay Flaherty @email{fty@@mediapulse.com}
|
||||
Big parts of the Perl @code{DBI}/@code{DBD} section in the manual.
|
||||
@item Paul Southworth @email{pauls@@etext.org}, Ray Loyzaga @email{yar@@cs.su.oz.au}
|
||||
Proof-reading of the Reference Manual.
|
||||
@ -45584,9 +45704,11 @@ Added @code{ALTER TABLE table_name DISABLE KEYS} and
|
||||
@item
|
||||
Added @code{HANDLER} command.
|
||||
@item
|
||||
Added @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()}. This make it
|
||||
possible to know how many rows a query would have returned if one hadn't
|
||||
used @code{LIMIT}.
|
||||
Added support for symbolic links to @code{MyISAM} tables.
|
||||
@item
|
||||
Added @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()}. This makes it
|
||||
possible to know how many rows a query would have returned
|
||||
without a @code{LIMIT} clause.
|
||||
@item
|
||||
Changed output format of @code{SHOW OPEN TABLES}.
|
||||
@item
|
||||
@ -45598,8 +45720,6 @@ Added @code{ORDER BY} syntax to @code{UPDATE} and @code{DELETE}.
|
||||
@item
|
||||
Optimized queries of type:
|
||||
@code{SELECT DISTINCT * from table_name ORDER by key_part1 LIMIT #}
|
||||
@item
|
||||
Added support for sym-linking of MyISAM tables.
|
||||
@end itemize
|
||||
|
||||
@node News-3.23.x, News-3.22.x, News-4.0.x, News
|
||||
@ -45693,6 +45813,13 @@ not yet 100% confident in this code.
|
||||
@appendixsubsec Changes in release 3.23.39
|
||||
@itemize @bullet
|
||||
@item
|
||||
Fixed problem that client 'hang' when @code{LOAD TABLE FROM MASTER} failed.
|
||||
@item
|
||||
Running @code{myisamchk --fast --force} will not anymore repair tables
|
||||
that only had the open count wrong.
|
||||
@item
|
||||
Added functions to handle symbolic links to make life easier in 4.0.
|
||||
@item
|
||||
We are now using the @code{-lcma} thread library on HPUX 10.20 to
|
||||
get @strong{MySQL} more stabile on HPUX.
|
||||
@item
|
||||
|
@ -209,7 +209,7 @@ extern long lCurMemory,lMaxMemory; /* from safemalloc */
|
||||
|
||||
extern ulong my_default_record_cache_size;
|
||||
extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io,
|
||||
NEAR my_disable_flush_key_blocks;
|
||||
NEAR my_disable_flush_key_blocks, NEAR my_disable_symlinks;
|
||||
extern char wild_many,wild_one,wild_prefix;
|
||||
extern const char *charsets_dir;
|
||||
extern char *defaults_extra_file;
|
||||
|
@ -49,6 +49,35 @@ const char *client_errors[]=
|
||||
"Embedded server",
|
||||
};
|
||||
|
||||
/* Start of code added by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
|
||||
|
||||
#elif defined PORTUGUESE
|
||||
const char *client_errors[]=
|
||||
{
|
||||
"Erro desconhecido do MySQL",
|
||||
"N<EFBFBD>o pode criar 'UNIX socket' (%d)",
|
||||
"N<EFBFBD>o pode se conectar ao servidor MySQL local atrav<61>s do 'socket' '%-.64s' (%d)",
|
||||
"N<EFBFBD>o pode se conectar ao servidor MySQL em '%-.64s' (%d)",
|
||||
"N<EFBFBD>o pode criar 'socket TCP/IP' (%d)",
|
||||
"'Host' servidor MySQL '%-.64s' (%d) desconhecido",
|
||||
"Servidor MySQL desapareceu",
|
||||
"Incompatibilidade de protocolos. Vers<72>o do Servidor: %d - Vers<72>o do Cliente: %d",
|
||||
"Cliente do MySQL com falta de mem<65>ria",
|
||||
"Informa<EFBFBD><EFBFBD>o inv<6E>lida de 'host'",
|
||||
"Localhost via 'UNIX socket'",
|
||||
"%-.64s via 'TCP/IP'",
|
||||
"Erro na negocia<69><61>o de acesso ao servidor",
|
||||
"Conex<EFBFBD>o perdida com servidor MySQL durante 'query'",
|
||||
"Comandos fora de sincronismo. Voc<6F> n<>o pode executar este comando agora",
|
||||
"%-.64s via 'named pipe'",
|
||||
"N<EFBFBD>o pode esperar pelo 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"N<EFBFBD>o pode abrir 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"N<EFBFBD>o pode estabelecer o estado do 'named pipe' para o 'host' %-.64s - 'pipe' %-.32s (%lu)",
|
||||
"N<EFBFBD>o pode inicializar conjunto de caracteres %-.64s (caminho %-.64s)",
|
||||
"Obteve pacote maior do que 'max_allowed_packet'",
|
||||
"Embedded server"
|
||||
};
|
||||
|
||||
#else /* ENGLISH */
|
||||
const char *client_errors[]=
|
||||
{
|
||||
@ -73,7 +102,7 @@ const char *client_errors[]=
|
||||
"Can't set state of named pipe to host: %-.64s pipe: %-.32s (%lu)",
|
||||
"Can't initialize character set %-.64s (path: %-.64s)",
|
||||
"Got packet bigger than 'max_allowed_packet'",
|
||||
"Embedded server",
|
||||
"Embedded server"
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -117,7 +117,9 @@ int chk_status(MI_CHECK *param, register MI_INFO *info)
|
||||
mi_check_print_warning(param,
|
||||
"%d clients is using or hasn't closed the table properly",
|
||||
share->state.open_count);
|
||||
param->warning_printed=save;
|
||||
/* If this will be fixed by the check, forget the warning */
|
||||
if (param->testflag & T_UPDATE_STATE)
|
||||
param->warning_printed=save;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ int my_copy(const char *from, const char *to, myf MyFlags)
|
||||
if (MyFlags & MY_HOLD_ORIGINAL_MODES) /* Copy stat if possible */
|
||||
new_file_stat=stat((char*) to, &new_stat_buff);
|
||||
|
||||
if ((from_file=my_open(from,O_RDONLY,MyFlags)) >= 0)
|
||||
if ((from_file=my_open(from,O_RDONLY | O_SHARE,MyFlags)) >= 0)
|
||||
{
|
||||
if (stat(from,&stat_buff))
|
||||
{
|
||||
@ -64,7 +64,7 @@ int my_copy(const char *from, const char *to, myf MyFlags)
|
||||
if (MyFlags & MY_HOLD_ORIGINAL_MODES && !new_file_stat)
|
||||
stat_buff=new_stat_buff;
|
||||
if ((to_file= my_create(to,(int) stat_buff.st_mode,
|
||||
O_WRONLY | O_TRUNC | O_BINARY,
|
||||
O_WRONLY | O_TRUNC | O_BINARY | O_SHARE,
|
||||
MyFlags)) < 0)
|
||||
goto err;
|
||||
|
||||
|
@ -97,4 +97,5 @@ int (*fatal_error_handler_hook)(uint error,const char *str,myf MyFlags)=
|
||||
my_bool NEAR my_disable_locking=0;
|
||||
my_bool NEAR my_disable_async_io=0;
|
||||
my_bool NEAR my_disable_flush_key_blocks=0;
|
||||
my_bool NEAR my_disable_symlinks=0;
|
||||
my_bool NEAR mysys_uses_curses=0;
|
||||
|
@ -62,7 +62,8 @@ File my_create_with_symlink(const char *linkname, const char *filename,
|
||||
int my_delete_with_symlink(const char *name, myf MyFlags)
|
||||
{
|
||||
char link_name[FN_REFLEN];
|
||||
int was_symlink= !my_readlink(link_name, name, MYF(0));
|
||||
int was_symlink= (!my_disable_symlinks &&
|
||||
!my_readlink(link_name, name, MYF(0)));
|
||||
int result;
|
||||
DBUG_ENTER("my_delete_with_symlink");
|
||||
|
||||
@ -90,7 +91,8 @@ int my_rename_with_symlink(const char *from, const char *to, myf MyFlags)
|
||||
return my_rename(from, to, MyFlags);
|
||||
#else
|
||||
char link_name[FN_REFLEN], tmp_name[FN_REFLEN];
|
||||
int was_symlink= !my_readlink(link_name, name, MYF(0));
|
||||
int was_symlink= (!my_disable_symlinks &&
|
||||
!my_readlink(link_name, name, MYF(0)));
|
||||
int result;
|
||||
DBUG_ENTER("my_rename_with_symlink");
|
||||
|
||||
|
@ -2484,7 +2484,7 @@ enum options {
|
||||
OPT_TEMP_POOL, OPT_DO_PSTACK, OPT_TX_ISOLATION,
|
||||
OPT_GEMINI_FLUSH_LOG, OPT_GEMINI_RECOVER,
|
||||
OPT_GEMINI_UNBUFFERED_IO, OPT_SKIP_SAFEMALLOC,
|
||||
OPT_SKIP_STACK_TRACE, OPT_REPORT_HOST,
|
||||
OPT_SKIP_STACK_TRACE, OPT_SKIP_SYMLINKS, OPT_REPORT_HOST,
|
||||
OPT_REPORT_USER, OPT_REPORT_PASSWORD, OPT_REPORT_PORT
|
||||
};
|
||||
|
||||
@ -2619,6 +2619,7 @@ static struct option long_options[] = {
|
||||
{"skip-show-database", no_argument, 0, (int) OPT_SKIP_SHOW_DB},
|
||||
{"skip-slave-start", no_argument, 0, (int) OPT_SKIP_SLAVE_START},
|
||||
{"skip-stack-trace", no_argument, 0, (int) OPT_SKIP_STACK_TRACE},
|
||||
{"skip-symlinks", no_argument, 0, (int) OPT_SKIP_SYMLINKS},
|
||||
{"skip-thread-priority", no_argument, 0, (int) OPT_SKIP_PRIOR},
|
||||
{"sql-bin-update-same", no_argument, 0, (int) OPT_SQL_BIN_UPDATE_SAME},
|
||||
#include "sslopt-longopts.h"
|
||||
@ -3445,6 +3446,7 @@ static void get_options(int argc,char **argv)
|
||||
myisam_delay_key_write=0;
|
||||
myisam_concurrent_insert=0;
|
||||
myisam_recover_options= HA_RECOVER_NONE;
|
||||
my_disable_symlinks=1;
|
||||
ha_open_options&= ~HA_OPEN_ABORT_IF_CRASHED;
|
||||
break;
|
||||
case (int) OPT_SAFE:
|
||||
@ -3501,6 +3503,9 @@ static void get_options(int argc,char **argv)
|
||||
case (int) OPT_SKIP_STACK_TRACE:
|
||||
test_flags|=TEST_NO_STACKTRACE;
|
||||
break;
|
||||
case (int) OPT_SKIP_SYMLINKS:
|
||||
my_disable_symlinks=1;
|
||||
break;
|
||||
case (int) OPT_BIND_ADDRESS:
|
||||
if (optarg && isdigit(optarg[0]))
|
||||
{
|
||||
|
@ -140,7 +140,7 @@ net_printf(NET *net, uint errcode, ...)
|
||||
void
|
||||
send_ok(NET *net,ha_rows affected_rows,ulonglong id,const char *message)
|
||||
{
|
||||
if(net->no_send_ok)
|
||||
if (net->no_send_ok) // hack for re-parsing queries
|
||||
return;
|
||||
|
||||
char buff[MYSQL_ERRMSG_SIZE+10],*pos;
|
||||
|
@ -1,211 +1,211 @@
|
||||
/* Copyright Abandoned 1997 TCX DataKonsult AB & Monty Program KB & Detron HB
|
||||
This file is public domain and comes with NO WARRANTY of any kind */
|
||||
|
||||
/* Updated by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
|
||||
"hashchk",
|
||||
"isamchk",
|
||||
"NO",
|
||||
"YES",
|
||||
"Nao consegui criar o arquivo '%-.64s' (Erro: %d)",
|
||||
"Nao consegui criar a tabela '%-.64s' (Erro: %d)",
|
||||
"Nao consegui criar o banco de dados '%-.64s'. Erro %d",
|
||||
"Nao consegui criar o banco de dados '%-.64s'. Este banco ja existe",
|
||||
"Nao consegui deletar o banco de dados '%-.64s'. Este banco nao existe",
|
||||
"Erro deletando o banco de dados(Nao foi possivel deletar '%-.64s', erro %d)",
|
||||
"Erro deletando o banco de dados(Nao foi possivel remover o diretorio '%-.64s', erro %d)",
|
||||
"Erro ao deletar '%-.64s' (Erro: %d)",
|
||||
"Nao foi possivel ler o registro na tabela do sistema",
|
||||
"Nao foi possivel obter o status de '%-.64s' (Erro: %d)",
|
||||
"Nao foi possivel obter o diretorio corrente (Erro: %d)",
|
||||
"Nao foi possivel travar o arquivo (Erro: %d)",
|
||||
"Nao foi possivel abrir arquivo: '%-.64s'. (Erro: %d)",
|
||||
"Nao foi possivel encontrar arquivo: '%-.64s' (Erro: %d)",
|
||||
"Nao foi possivel ler o diretorio de '%-.64s' (Erro: %d)",
|
||||
"Nao foi possivel ir para o diretorio '%-.64s' (Erro: %d)",
|
||||
"Registro alterado apos a ultima leitura da tabela '%-.64s'",
|
||||
"Disco cheio (%s). Aguardando espaco livre....",
|
||||
"Nao foi possivel gravar, chave duplicada na tabela '%-.64s'",
|
||||
"Erro ao fechar '%-.64s' (Erro: %d)",
|
||||
"Erro lendo arquivo '%-.64s' (Erro: %d)",
|
||||
"Erro ao renomear '%-.64s' to '%-.64s' (Erro: %d)",
|
||||
"Error gravando arquivo '%-.64s' (Erro: %d)",
|
||||
"'%-.64s' esta travado contra alteracoes",
|
||||
"Ordenacao cancelada",
|
||||
"Visao '%-.64s' nao existe para '%-.64s'",
|
||||
"Erro %d do manipulador de tabelas",
|
||||
"Manipulador da tabela '%-.64s' nao suporta esta opcao",
|
||||
"Nao foi possivel encontrar o registro em '%-.64s'",
|
||||
"Informacao invalida no arquivo: '%-.64s'",
|
||||
"Arquivo de indice invalido na tabela: '%-.64s'. Tente conserta-lo!",
|
||||
"Arquivo de indice destaualizado na tabela '%-.64s'; Conserte-o!",
|
||||
"'%-.64s' esta disponivel somente para leitura",
|
||||
"Sem memoria. Renicie o programa e tente novamente (Necessita de %d bytes)",
|
||||
"Sem memoria para ordenacao. Aumente o espaco de memoria para ordenacao.",
|
||||
"Fim de arquivo inesperado enquanto lendo o arquivo '%-.64s' (Erro: %d)",
|
||||
"Excesso de conexoes",
|
||||
"Thread sem memoria disponivel",
|
||||
"Nao foi possivel obter o nome da maquina para este endereco IP",
|
||||
"Comunicacao invalida",
|
||||
"Acesso negado ao usuario : '%-.32s@%-.64s' ao banco de dados '%-.64s'",
|
||||
"Acesso negado ao usuario: '%-.32s@%-.64s' (usando a senha: %s)",
|
||||
"Nenhum banco de dados selecionado",
|
||||
"n<EFBFBD>o",
|
||||
"sim",
|
||||
"N<EFBFBD>o pode criar arquivo '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode criar tabela '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode criar banco de dados '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode criar banco de dados '%-.64s'. Banco de dados j<EFBFBD> existe",
|
||||
"N<EFBFBD>o pode eliminar banco de dados '%-.64s'. Banco de dados n<>o existe",
|
||||
"Erro ao eliminar banco de dados (n<>o pode eliminar '%-.64s' - erro no. %d)",
|
||||
"Erro ao eliminar banco de dados (n<>o pode remover diret<EFBFBD>rio '%-.64s' - erro no. %d)",
|
||||
"Erro na dele<EFBFBD><EFBFBD>o de '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode ler registro em tabela do sistema",
|
||||
"N<EFBFBD>o pode obter status de '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode obter diret<EFBFBD>rio corrente (erro no. %d)",
|
||||
"N<EFBFBD>o pode travar arquivo (erro no. %d)",
|
||||
"N<EFBFBD>o pode abrir arquivo '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode encontrar arquivo '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode ler diret<EFBFBD>rio de '%-.64s' (erro no. %d)",
|
||||
"N<EFBFBD>o pode mudar para o diret<EFBFBD>rio '%-.64s' (erro no. %d)",
|
||||
"Registro alterado desde a <EFBFBD>ltima leitura da tabela '%-.64s'",
|
||||
"Disco cheio (%s). Aguardando algu<EFBFBD>m liberar algum espa<70>o....",
|
||||
"N<EFBFBD>o pode gravar. Chave duplicada na tabela '%-.64s'",
|
||||
"Erro ao fechar '%-.64s' (erro no. %d)",
|
||||
"Erro ao ler arquivo '%-.64s' (erro no. %d)",
|
||||
"Erro ao renomear '%-.64s' para '%-.64s' (erro no. %d)",
|
||||
"Erro ao gravar arquivo '%-.64s' (erro no. %d)",
|
||||
"'%-.64s' est<EFBFBD> com travamento contra altera<EFBFBD><EFBFBD>es",
|
||||
"Ordena<EFBFBD><EFBFBD>o abortada",
|
||||
"'View' '%-.64s' n<EFBFBD>o existe para '%-.64s'",
|
||||
"Obteve erro %d no manipulador de tabelas",
|
||||
"Manipulador de tabela para '%-.64s' n<EFBFBD>o tem esta op<EFBFBD><EFBFBD>o",
|
||||
"N<EFBFBD>o pode encontrar registro em '%-.64s'",
|
||||
"Informa<EFBFBD><EFBFBD>o incorreta no arquivo '%-.64s'",
|
||||
"Arquivo chave incorreto para tabela '%-.64s'. Tente reparar",
|
||||
"Arquivo chave desatualizado para tabela '%-.64s'. Repare-o!",
|
||||
"Tabela '%-.64s' <EFBFBD> somente para leitura",
|
||||
"Sem mem<EFBFBD>ria. Reinicie o programa e tente novamente (necessita de %d bytes)",
|
||||
"Sem mem<EFBFBD>ria para ordena<EFBFBD><EFBFBD>o. Aumente tamanho do 'buffer' de ordena<EFBFBD><EFBFBD>o",
|
||||
"Encontrado fim de arquivo inesperado ao ler arquivo '%-.64s' (erro no. %d)",
|
||||
"Excesso de conex<EFBFBD>es",
|
||||
"Sem mem<65>ria. Verifique se o mysqld ou algum outro processo est<73> usando toda mem<EFBFBD>ria dispon<EFBFBD>vel. Se n<>o, voc<6F> pode ter que usar 'ulimit' para permitir ao mysqld usar mais mem<65>ria ou se voc<6F> pode adicionar mais <20>rea de 'swap'",
|
||||
"N<EFBFBD>o pode obter nome do 'host' para seu endere<EFBFBD>o",
|
||||
"Negocia<EFBFBD><EFBFBD>o de acesso falhou",
|
||||
"Acesso negado para o usu<EFBFBD>rio '%-.32s@%-.64s' ao banco de dados '%-.64s'",
|
||||
"Acesso negado para o usu<EFBFBD>rio '%-.32s@%-.64s' (uso de senha: %s)",
|
||||
"Nenhum banco de dados foi selecionado",
|
||||
"Comando desconhecido",
|
||||
"Coluna '%-.64s' nao pode ser vazia",
|
||||
"Coluna '%-.64s' n<EFBFBD>o pode ter NULL",
|
||||
"Banco de dados '%-.64s' desconhecido",
|
||||
"Tabela '%-.64s' ja existe",
|
||||
"Tabela '%-.64s' j<EFBFBD> existe",
|
||||
"Tabela '%-.64s' desconhecida",
|
||||
"Coluna: '%-.64s' em %s e ambigua",
|
||||
"Finalizacao do servidor em andamento",
|
||||
"Coluna '%-.64s' desconhecida em %s",
|
||||
"'%-.64s' utilizado nao esta em 'group by'",
|
||||
"Nao foi possivel agrupar em '%-.64s'",
|
||||
"Clausula contem funcoes de soma e colunas juntos",
|
||||
"Contagem de colunas nao confere com a contagem de valores",
|
||||
"Nome do identificador '%-.64s' muito grande",
|
||||
"Coluna '%-.64s' em '%-.64s' <20> amb<EFBFBD>gua",
|
||||
"'Shutdown' do servidor em andamento",
|
||||
"Coluna '%-.64s' desconhecida em '%-.64s'",
|
||||
"'%-.64s' n<EFBFBD>o est<EFBFBD> em 'GROUP BY'",
|
||||
"N<EFBFBD>o pode agrupar em '%-.64s'",
|
||||
"Cl<EFBFBD>usula cont<EFBFBD>m fun<EFBFBD><EFBFBD>es de soma e colunas juntos",
|
||||
"Contagem de colunas n<EFBFBD>o confere com a contagem de valores",
|
||||
"Nome identificador '%-.100s' <20> longo demais",
|
||||
"Nome da coluna '%-.64s' duplicado",
|
||||
"Nome da chave '%-.64s' duplicado",
|
||||
"Inclusao de '%-.64s' duplicada para a chave %d",
|
||||
"Especificador de coluna invalido para a coluna '%-.64s'",
|
||||
"%s proximo de '%-.64s' a linha %d",
|
||||
"Selecao vazia",
|
||||
"Tabela/alias nao e unica: '%-.64s'",
|
||||
"Valor padrao invalido para '%-.64s'",
|
||||
"Mais de uma chave primaria definida",
|
||||
"Muitas chaves definidas. O maximo permitido sao %d chaves",
|
||||
"Muitas partes de chave definidas. O maximo permitido sao %d partes",
|
||||
"Chave especificada e muito longa. O comprimento maximo permitido e %d",
|
||||
"Coluna chave '%-.64s' nao existe na tabela",
|
||||
"Coluna binaria '%-.64s' nao pode ser utilizada na definicao de chaves",
|
||||
"Comprimento da coluna '%-.64s' muito grande(max = %d). Utilize o campo binario",
|
||||
"Somente e permitido um campo auto incrementado, e ele deve ser chave da tabela",
|
||||
"%s: pronto para conexoes\n",
|
||||
"%s: Finalizacao concluida normalmente\n",
|
||||
"%s: Recebeu o sinal %d. Cancelando!\n",
|
||||
"%s: Finalizacao concluida\n",
|
||||
"%s: Forcando a finalizacao da tarefa %ld usuario: '%-.64s'\n",
|
||||
"Nao foi possivel criar o socket IP",
|
||||
"Tabela '%-.64s' nao possui um indice criado por CREATE INDEX. Recrie a tabela",
|
||||
"O separador de campos nao esta conforme esperado. Confira no manual",
|
||||
"Nao e possivel utilizar comprimento de linha fixo com campos binarios. Favor usar 'fields terminated by'.",
|
||||
"O arquivo '%-.64s' precisa estar no diretorio do banco de dados, e sua leitura permitida a todos",
|
||||
"Arquivo '%-.64s' ja existe",
|
||||
"Registros: %ld Apagados: %ld Ignorados: %ld Avisos: %ld",
|
||||
"Registros: %ld Duplicados: %ld",
|
||||
"Parte da chave errada. A parte utilizada nao e um texto ou tem comprimento maior que o definido",
|
||||
"Nao e possivel retirar todas as colunas da tabela com ALTER TABLE. Use DROP TABLE",
|
||||
"Nao foi possivel DROP '%-.64s'. Confira se este campo/chave existe",
|
||||
"Registros: %ld Duplicados: %ld Avisos: %ld",
|
||||
"INSERT TABLE '%-.64s' nao e permitido em FROM lista de tabelas",
|
||||
"Tarefa desconhecida id: %lu",
|
||||
"Voce nao e o responsavel pela tarefa %lu",
|
||||
"Nenhuma tabela em uso",
|
||||
"Muitos textos para a coluna %s e SET",
|
||||
"Nao foi possivel um unico nome para o arquivo %s.(1-999)\n",
|
||||
"Tabela '%-.64s' esta travada para leitura, e nao pode ser atualizada",
|
||||
"Tabela '%-.64s' nao foi travada com LOCK TABLES",
|
||||
"Campo binario '%-.64s' nao pode ter um valor inicial",
|
||||
"Nome de banco de dados invalido: '%-.64s'",
|
||||
"Nome de tabela invalido: '%-.64s'",
|
||||
"O SELECT muitos registros, e possivelmente vai demorar. Confira sua clausula WHERE e utilize SET OPTION SQL_BIG_SELECTS=1 se o SELECT esta correto",
|
||||
"Entrada '%-.64s' duplicada para a chave %d",
|
||||
"Especificador de coluna incorreto para a coluna '%-.64s'",
|
||||
"%s pr<EFBFBD>ximo a '%-.80s' na linha %d",
|
||||
"'Query' estava vazia",
|
||||
"Tabela/alias '%-.64s' n<>o <20>nica",
|
||||
"Valor 'default' inv<EFBFBD>lido para '%-.64s'",
|
||||
"Definida mais de uma chave prim<EFBFBD>ria",
|
||||
"Especificadas chaves demais. O m<EFBFBD>ximo permitido s<EFBFBD>o %d chaves",
|
||||
"Especificadas partes de chave demais. O m<EFBFBD>ximo permitido s<EFBFBD>o %d partes",
|
||||
"Chave especificada longa demais. O comprimento m<EFBFBD>ximo permitido <EFBFBD> %d",
|
||||
"Coluna chave '%-.64s' n<EFBFBD>o existe na tabela",
|
||||
"Coluna BLOB '%-.64s' n<EFBFBD>o pode ser utilizada na especifica<EFBFBD><EFBFBD>o de chave para o tipo de tabela usado",
|
||||
"Comprimento da coluna '%-.64s' grande demais (max = %d). Use BLOB em seu lugar",
|
||||
"Defini<EFBFBD><EFBFBD>o incorreta de tabela. Somente <EFBFBD> permitido um campo auto-incrementado e ele tem que ser definido como chave",
|
||||
"%s: Pronto para conex<EFBFBD>es\n",
|
||||
"%s: 'Shutdown' normal\n",
|
||||
"%s: Obteve sinal %d. Abortando!\n",
|
||||
"%s: 'Shutdown' completo\n",
|
||||
"%s: For<EFBFBD>ando finaliza<EFBFBD><EFBFBD>o da 'thread' %ld - usu<EFBFBD>rio '%-.32s'\n",
|
||||
"N<EFBFBD>o pode criar 'socket' IP",
|
||||
"Tabela '%-.64s' n<EFBFBD>o possui um <EFBFBD>ndice como o usado em CREATE INDEX. Recrie a tabela",
|
||||
"Argumento separador de campos n<EFBFBD>o <EFBFBD> o esperado. Confira no manual",
|
||||
"Voc<EFBFBD> n<>o pode usar comprimento de linha fixo com BLOBs. Favor usar 'fields terminated by'",
|
||||
"Arquivo '%-.64s' tem que estar no diret<EFBFBD>rio do banco de dados ou ter leitura permitida para todos",
|
||||
"Arquivo '%-.80s' j<EFBFBD> existe",
|
||||
"Registros: %ld - Deletados: %ld - Ignorados: %ld - Avisos: %ld",
|
||||
"Registros: %ld - Duplicados: %ld",
|
||||
"Parte de chave incorreta. A parte de chave usada n<EFBFBD>o <EFBFBD> um 'string' ou o comprimento usado <20> maior do que a parte de chave",
|
||||
"Voc<EFBFBD> n<>o pode deletar todas as colunas com ALTER TABLE. Use DROP TABLE em seu lugar",
|
||||
"N<EFBFBD>o pode fazer DROP '%-.64s'. Confira se este campo/chave existe",
|
||||
"Registros: %ld - Duplicados: %ld - Avisos: %ld",
|
||||
"INSERT TABLE '%-.64s' n<EFBFBD>o <EFBFBD> permitido em lista de tabelas FROM",
|
||||
"'Id' de 'thread' %lu desconhecido",
|
||||
"Voc<EFBFBD> n<EFBFBD>o <EFBFBD> propriet<65>rio da 'thread' %lu",
|
||||
"Nenhuma tabela usada",
|
||||
"'Strings' demais para coluna '%-.64s' e SET",
|
||||
"N<EFBFBD>o pode gerar um nome de arquivo de 'log' <20>nico '%-.64s'.(1-999)\n",
|
||||
"Tabela '%-.64s' foi travada com trava de READ e n<EFBFBD>o pode ser atualizada",
|
||||
"Tabela '%-.64s' n<EFBFBD>o foi travada com LOCK TABLES",
|
||||
"Coluna BLOB '%-.64s' n<EFBFBD>o pode ter um valor 'default'",
|
||||
"Nome de banco de dados '%-.100s' incorreto",
|
||||
"Nome de tabela '%-.100s' incorreto",
|
||||
"O SELECT examinaria registros demais e provavelmente tomaria um tempo muito longo. Confira sua cl<EFBFBD>usula WHERE e use SET OPTION SQL_BIG_SELECTS=1, se o SELECT estiver correto",
|
||||
"Erro desconhecido",
|
||||
"Procedimento %s desconhecido",
|
||||
"Numero de parametros para o procedimento %s esta incorreto",
|
||||
"Parametro incorreto para o procedimento %s",
|
||||
"Tabela '%-.64s' descohecida em %s",
|
||||
"Campo '%-.64s' definido em duplicidade",
|
||||
"Invalid use of group function",
|
||||
"Table '%-.64s' uses a extension that doesn't exist in this MySQL version",
|
||||
"A table must have at least 1 column",
|
||||
"The table '%-.64s' is full",
|
||||
"Unknown character set: '%-.64s'",
|
||||
"Too many tables. MySQL can only use %d tables in a join",
|
||||
"Too many fields",
|
||||
"Too big row size. The maximum row size, not counting blobs, is %d. You have to change some fields to blobs",
|
||||
"Thread stack overrun: Used: %ld of a %ld stack. Use 'mysqld -O thread_stack=#' to specify a bigger stack if needed",
|
||||
"Cross dependency found in OUTER JOIN. Examine your ON conditions",
|
||||
"Column '%-.32s' is used with UNIQUE or INDEX but is not defined as NOT NULL",
|
||||
"Can't load function '%-.64s'",
|
||||
"Can't initialize function '%-.64s'; %-.80s",
|
||||
"No paths allowed for shared library",
|
||||
"Function '%-.64s' already exist",
|
||||
"Can't open shared library '%-.64s' (errno: %d %s)",
|
||||
"Can't find function '%-.64s' in library'",
|
||||
"Function '%-.64s' is not defined",
|
||||
"Host '%-.64s' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'",
|
||||
"Host '%-.64s' is not allowed to connect to this MySQL server",
|
||||
"You are using MySQL as an anonymous users and anonymous users are not allowed to change passwords",
|
||||
"You must have privileges to update tables in the mysql database to be able to change passwords for others",
|
||||
"Can't find any matching row in the user table",
|
||||
"Rows matched: %ld Changed: %ld Warnings: %ld",
|
||||
"Can't create a new thread (errno %d). If you are not out of available memory you can consult the manual for any possible OS dependent bug",
|
||||
"Column count doesn't match value count at row %ld",
|
||||
"Can't reopen table: '%-.64s',
|
||||
"Invalid use of NULL value",
|
||||
"Got error '%-.64s' from regexp",
|
||||
"Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause",
|
||||
"There is no such grant defined for user '%-.32s' on host '%-.64s'",
|
||||
"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'",
|
||||
"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'",
|
||||
"Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.",
|
||||
"The host or user argument to GRANT is too long",
|
||||
"Table '%-64s.%s' doesn't exist",
|
||||
"There is no such grant defined for user '%-.32s' on host '%-.64s' on table '%-.64s'",
|
||||
"The used command is not allowed with this MySQL version",
|
||||
"Something is wrong in your syntax",
|
||||
"Delayed insert thread couldn't get requested lock for table %-.64s",
|
||||
"Too many delayed threads in use",
|
||||
"Aborted connection %ld to db: '%-.64s' user: '%-.64s' (%s)",
|
||||
"Got a packet bigger than 'max_allowed_packet'",
|
||||
"Got a read error from the connection pipe",
|
||||
"Got an error from fcntl()",
|
||||
"Got packets out of order",
|
||||
"Couldn't uncompress communication packet",
|
||||
"Got an error reading communication packets"
|
||||
"Got timeout reading communication packets",
|
||||
"Got an error writing communication packets",
|
||||
"Got timeout writing communication packets",
|
||||
"Result string is longer than max_allowed_packet",
|
||||
"The used table type doesn't support BLOB/TEXT columns",
|
||||
"The used table type doesn't support AUTO_INCREMENT columns",
|
||||
"INSERT DELAYED can't be used with table '%-.64s', because it is locked with LOCK TABLES",
|
||||
"Incorrect column name '%-.100s'",
|
||||
"The used table handler can't index column '%-.64s'",
|
||||
"All tables in the MERGE table are not defined identically",
|
||||
"Can't write, because of unique constraint, to table '%-.64s'",
|
||||
"BLOB column '%-.64s' used in key specification without a key length",
|
||||
"All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead",
|
||||
"Result consisted of more than one row",
|
||||
"This table type requires a primary key",
|
||||
"This version of MySQL is not compiled with RAID support",
|
||||
"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
|
||||
"Key '%-.64s' doesn't exist in table '%-.64s'",
|
||||
"Can't open table",
|
||||
"The handler for the table doesn't support check/repair",
|
||||
"You are not allowed to execute this command in a transaction",
|
||||
"Got error %d during COMMIT",
|
||||
"Got error %d during ROLLBACK",
|
||||
"Got error %d during FLUSH_LOGS",
|
||||
"Got error %d during CHECKPOINT",
|
||||
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
|
||||
"The handler for the table does not support binary table dump",
|
||||
"Binlog closed while trying to FLUSH MASTER",
|
||||
"Failed rebuilding the index of dumped table '%-.64s'",
|
||||
"Error from master: '%-.64s'",
|
||||
"Net error reading from master",
|
||||
"Net error writing to master",
|
||||
"Can't find FULLTEXT index matching the column list",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
"Unknown system variable '%-.64'",
|
||||
"Table '%-.64s' is marked as crashed and should be repaired",
|
||||
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
|
||||
"Warning: Some non-transactional changed tables couldn't be rolled back",
|
||||
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
|
||||
"This operation cannot be performed with a running slave, run SLAVE STOP first",
|
||||
"This operation requires a running slave, configure slave and do SLAVE START",
|
||||
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
|
||||
"Could not initialize master info structure, check permisions on master.info",
|
||||
"Could not create slave thread, check system resources",
|
||||
"User %-.64s has already more than 'max_user_connections' active connections",
|
||||
"You may only use constant expressions with SET",
|
||||
"'Procedure' '%-.64s' desconhecida",
|
||||
"N<EFBFBD>mero de par<EFBFBD>metros incorreto para a 'procedure' '%-.64s'",
|
||||
"Par<EFBFBD>metros incorretos para a 'procedure' '%-.64s'",
|
||||
"Tabela '%-.64s' desconhecida em '%-.32s'",
|
||||
"Coluna '%-.64s' especificada duas vezes",
|
||||
"Uso inv<EFBFBD>lido da fun<75><6E>o GROUP",
|
||||
"Tabela '%-.64s' usa uma extens<EFBFBD>o que n<>o existe nesta vers<72>o do MySQL",
|
||||
"Uma tabela tem que ter pelo menos uma (1) coluna",
|
||||
"Tabela '%-.64s' est<EFBFBD> cheia",
|
||||
"Conjunto de caracteres '%-.64s' desconhecido",
|
||||
"Tabelas demais. O MySQL pode usar somente %d tabelas em um JOIN",
|
||||
"Colunas demais",
|
||||
"Tamanho de linha grande demais. O m<EFBFBD>ximo tamanho de linha, n<EFBFBD>o contando BLOBs, <20> de %d. Voc<6F> tem que mudar alguns campos para BLOBs",
|
||||
"Estouro da pilha do 'thread'. Usados %ld de uma pilha de %ld . Use 'mysqld -O thread_stack=#' para especificar uma pilha maior, se necess<73>rio",
|
||||
"Depend<EFBFBD>ncia cruzada encontrada em OUTER JOIN. Examine suas condi<64><69>es ON",
|
||||
"Coluna '%-.64s' <EFBFBD> usada com UNIQUE ou INDEX, mas n<>o est<73> definida como NOT NULL",
|
||||
"N<EFBFBD>o pode carregar a fun<75><6E>o '%-.64s'",
|
||||
"N<EFBFBD>o pode inicializar a fun<75><6E>o '%-.64s' - '%-.80s'",
|
||||
"N<EFBFBD>o <EFBFBD> permitido caminho para biblioteca compartilhada",
|
||||
"Fun<EFBFBD><EFBFBD>o '%-.64s' j<EFBFBD> existe",
|
||||
"N<EFBFBD>o pode abrir biblioteca compartilhada '%-.64s' (erro no. '%d' - '%-.64s')",
|
||||
"N<EFBFBD>o pode encontrar a fun<75><6E>o '%-.64s' na biblioteca",
|
||||
"Fun<EFBFBD><EFBFBD>o '%-.64s' n<EFBFBD>o est<73> definida",
|
||||
"'Host' '%-.64s' est<EFBFBD> bloqueado devido a muitos erros de conex<65>o. Desbloqueie com 'mysqladmin flush-hosts'",
|
||||
"'Host' '%-.64s' n<EFBFBD>o tem permiss<73>o para se conectar com este servidor MySQL",
|
||||
"Voc<EFBFBD> est<73> usando o MySQL como usu<EFBFBD>rio an<61>nimo e usu<73>rios an<61>nimos n<>o t<>m permiss<73>o para mudar senhas",
|
||||
"Voc<EFBFBD> tem que ter o privil<69>gio para atualizar tabelas no banco de dados mysql para ser capaz de mudar a senha de outros",
|
||||
"N<EFBFBD>o pode encontrar nenhuma linha que combine na tabela user",
|
||||
"Linhas que combinaram: %ld - Alteradas: %ld - Avisos: %ld",
|
||||
"N<EFBFBD>o pode criar uma nova 'thread' (erro no. %d). Se voc<6F> n<>o estiver sem mem<65>ria dispon<6F>vel, voc<6F> pode consultar o manual sobre uma poss<73>vel falha dependente do sistema operacional",
|
||||
"Contagem de colunas n<>o confere com a contagem de valores na linha %ld",
|
||||
"N<EFBFBD>o pode reabrir a tabela '%-.64s',
|
||||
"Uso inv<EFBFBD>lido do valor NULL",
|
||||
"Obteve erro '%-.64s' em regexp",
|
||||
"Mistura de colunas GROUP (MIN(),MAX(),COUNT()...) com colunas n<>o GROUP <20> ilegal, se n<>o existir cl<63>usula GROUP BY",
|
||||
"N<EFBFBD>o existe tal 'grant' definido para o usu<73>rio '%-.32s' no 'host' '%-.64s'",
|
||||
"Comando '%-.16s' negado para o usu<73>rio '%-.32s@%-.64s' na tabela '%-.64s'",
|
||||
"Comando '%-.16s' negado para o usu<73>rio '%-.32s@%-.64s' na coluna '%-.64s', na tabela '%-.64s'",
|
||||
"Comando GRANT/REVOKE ilegal. Por favor consulte no manual quais privil<69>gios podem ser usados.",
|
||||
"Argumento de 'host' ou de usu<73>rio para o GRANT <20> longo demais",
|
||||
"Tabela '%-.64s.%-.64s' n<>o existe",
|
||||
"N<EFBFBD>o existe tal 'grant' definido para o usu<73>rio '%-.32s' no 'host' '%-.64s', na tabela '%-.64s'",
|
||||
"Comando usado n<>o <20> permitido para esta vers<72>o do MySQL",
|
||||
"Voc<EFBFBD> tem um erro de sintaxe no seu SQL",
|
||||
"'Thread' de inser<65><72>o retardada ('delayed') n<>o conseguiu obter trava solicitada na tabela '%-.64s'",
|
||||
"Excesso de 'threads' retardadas ('delayed') em uso",
|
||||
"Conex<EFBFBD>o %ld abortou para o banco de dados '%-.64s' - usu<73>rio '%-.32s' (%-.64s)",
|
||||
"Obteve um pacote maior do que 'max_allowed_packet'",
|
||||
"Obteve um erro de leitura no 'pipe' de conex<65>o",
|
||||
"Obteve um erro em fcntl()",
|
||||
"Obteve pacotes fora de ordem",
|
||||
"N<EFBFBD>o conseguiu descomprimir pacote de comunica<EFBFBD><EFBFBD>o",
|
||||
"Obteve um erro na leitura de pacotes de comunica<EFBFBD><EFBFBD>o",
|
||||
"Obteve expira<72><61>o de tempo ('timeout') na leitura de pacotes de comunica<EFBFBD><EFBFBD>o",
|
||||
"Obteve um erro na grava<76><61>o de pacotes de comunica<63><61>o",
|
||||
"Obteve expira<72><61>o de tempo ('timeout') na escrita de pacotes de comunica<EFBFBD><EFBFBD>o",
|
||||
"'String' resultante <20> mais longa do que 'max_allowed_packet'",
|
||||
"Tipo de tabela usado n<>o permite colunas BLOB/TEXT",
|
||||
"Tipo de tabela usado n<>o permite colunas AUTO_INCREMENT",
|
||||
"INSERT DELAYED n<EFBFBD>o pode ser usado com a tabela '%-.64s', porque est<73> travada com LOCK TABLES",
|
||||
"Nome de coluna '%-.100s' incorreto",
|
||||
"O manipulador de tabela usado n<>o pode indexar a coluna '%-.64s'",
|
||||
"Tabelas no MERGE n<>o est<73>o todas definidas identicamente",
|
||||
"N<EFBFBD>o pode gravar, devido <20> restri<72><69>o UNIQUE, na tabela '%-.64s'",
|
||||
"Coluna BLOB '%-.64s' usada na especifica<63><61>o de chave sem o comprimento da chave",
|
||||
"Todas as partes de uma PRIMARY KEY t<EFBFBD>m que ser NOT NULL. Se voc<6F> precisar de NULL em uma chave, use UNIQUE em seu lugar",
|
||||
"O resultado consistiu em mais do que uma linha",
|
||||
"Este tipo de tabela requer uma chave prim<69>ria",
|
||||
"Esta vers<EFBFBD>o do MySQL n<EFBFBD>o foi compilada com suporte a RAID",
|
||||
"Voc<EFBFBD> est<73> usando modo de atualiza<7A><61>o seguro e tentou atualizar uma tabela sem um WHERE que use uma coluna tipo KEY",
|
||||
"Chave '%-.64s' n<EFBFBD>o existe na tabela '%-.64s'",
|
||||
"N<EFBFBD>o pode abrir a tabela",
|
||||
"O manipulador de tabela n<>o suporta check/repair",
|
||||
"N<EFBFBD>o lhe <20> permitido executar este comando em uma 'transaction'",
|
||||
"Obteve erro %d durante COMMIT",
|
||||
"Obteve erro %d durante ROLLBACK",
|
||||
"Obteve erro %d durante FLUSH_LOGS",
|
||||
"Obteve erro %d durante CHECKPOINT",
|
||||
"Conex<EFBFBD>o %ld abortada ao banco de dados '%-.64s' - usu<EFBFBD>rio '%-.32s' - 'host' `%-.64s' ('%-.64s')",
|
||||
"O manipulador de tabela n<>o suporta DUMP bin<69>rio de tabela",
|
||||
"Binlog fechado. N<>o pode fazer RESET MASTER",
|
||||
"Falhou na reconstru<72><75>o do <20>ndice da tabela 'dumped' '%-.64s'",
|
||||
"Erro no 'master' '%-.64s'",
|
||||
"Erro de rede na leitura do 'master'",
|
||||
"Erro de rede na grava<76><61>o do 'master'",
|
||||
"N<EFBFBD>o pode encontrar <20>ndice FULLTEXT que combine com a lista de colunas",
|
||||
"N<EFBFBD>o pode executar o comando dado porque voc<6F> tem tabelas ativas travadas ou uma 'transaction' ativa",
|
||||
"Vari<EFBFBD>vel de sistema '%-.64' desconhecida",
|
||||
"Tabela '%-.64s' est<EFBFBD> marcada como danificada e deve ser reparada",
|
||||
"Tabela '%-.64s' est<EFBFBD> marcada como danificada e a <20>ltima repara<72><61>o (autom<EFBFBD>tica?) falhou",
|
||||
"Aviso: Algumas tabelas n<>o-transacionais alteradas n<>o puderam ser reconstitu<74>das ('rolled back')",
|
||||
"'Multi-statement transaction' requereu mais do que 'max_binlog_cache_size' bytes de armazenagem. Aumente o valor desta vari<72>vel do mysqld e tente novamente',
|
||||
"Esta opera<EFBFBD><EFBFBD>o n<>o pode ser realizada com um 'slave' em execu<63><75>o. Execute SLAVE STOP primeiro",
|
||||
"Esta opera<EFBFBD><EFBFBD>o requer um 'slave' em execu<63><75>o. Configure o 'slave' e execute SLAVE START",
|
||||
"O servidor n<>o est<73> configurado como 'slave'. Acerte o arquivo de configura<72><61>o ou use CHANGE MASTER TO",
|
||||
"N<EFBFBD>o pode inicializar a estrutura de informa<6D><61>o do 'master'. Verifique as permiss<73>es em 'master.info'",
|
||||
"N<EFBFBD>o conseguiu criar 'thread' de 'slave'. Verifique os recursos do sistema",
|
||||
"Usu<EFBFBD>rio '%-.64s' j<> possui 'max_user_connections' conex<EFBFBD>es ativas",
|
||||
"Voc<EFBFBD> pode usar apenas express<73>es de constante com SET",
|
||||
"Lock wait timeout exceeded",
|
||||
"The total number of locks exceeds the lock table size",
|
||||
"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
|
||||
|
118
sql/slave.cc
118
sql/slave.cc
@ -315,28 +315,31 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
|
||||
const char* table_name)
|
||||
{
|
||||
uint packet_len = my_net_read(net); // read create table statement
|
||||
Vio* save_vio;
|
||||
HA_CHECK_OPT check_opt;
|
||||
TABLE_LIST tables;
|
||||
int error = 0;
|
||||
int error= 1;
|
||||
handler *file;
|
||||
|
||||
if(packet_len == packet_error)
|
||||
{
|
||||
send_error(&thd->net, ER_MASTER_NET_READ);
|
||||
return 1;
|
||||
}
|
||||
if(net->read_pos[0] == 255) // error from master
|
||||
{
|
||||
net->read_pos[packet_len] = 0;
|
||||
net_printf(&thd->net, ER_MASTER, net->read_pos + 3);
|
||||
return 1;
|
||||
}
|
||||
if (packet_len == packet_error)
|
||||
{
|
||||
send_error(&thd->net, ER_MASTER_NET_READ);
|
||||
return 1;
|
||||
}
|
||||
if (net->read_pos[0] == 255) // error from master
|
||||
{
|
||||
net->read_pos[packet_len] = 0;
|
||||
net_printf(&thd->net, ER_MASTER, net->read_pos + 3);
|
||||
return 1;
|
||||
}
|
||||
thd->command = COM_TABLE_DUMP;
|
||||
thd->query = sql_alloc(packet_len + 1);
|
||||
if(!thd->query)
|
||||
{
|
||||
sql_print_error("create_table_from_dump: out of memory");
|
||||
net_printf(&thd->net, ER_GET_ERRNO, "Out of memory");
|
||||
return 1;
|
||||
}
|
||||
if (!thd->query)
|
||||
{
|
||||
sql_print_error("create_table_from_dump: out of memory");
|
||||
net_printf(&thd->net, ER_GET_ERRNO, "Out of memory");
|
||||
return 1;
|
||||
}
|
||||
memcpy(thd->query, net->read_pos, packet_len);
|
||||
thd->query[packet_len] = 0;
|
||||
thd->current_tablenr = 0;
|
||||
@ -347,13 +350,10 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
|
||||
char* save_db = thd->db;
|
||||
thd->db = (char*)db;
|
||||
mysql_parse(thd, thd->query, packet_len); // run create table
|
||||
thd->db = save_db; // leave things the way the were before
|
||||
thd->db = save_db; // leave things the way the were before
|
||||
|
||||
if(thd->query_error)
|
||||
{
|
||||
close_thread_tables(thd); // mysql_parse takes care of the error send
|
||||
return 1;
|
||||
}
|
||||
if (thd->query_error)
|
||||
goto err; // mysql_parse took care of the error send
|
||||
|
||||
bzero((char*) &tables,sizeof(tables));
|
||||
tables.db = (char*)db;
|
||||
@ -362,41 +362,37 @@ static int create_table_from_dump(THD* thd, NET* net, const char* db,
|
||||
thd->proc_info = "Opening master dump table";
|
||||
if (!open_ltable(thd, &tables, TL_WRITE))
|
||||
{
|
||||
// open tables will send the error
|
||||
send_error(&thd->net,0,0); // Send error from open_ltable
|
||||
sql_print_error("create_table_from_dump: could not open created table");
|
||||
close_thread_tables(thd);
|
||||
return 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
handler *file = tables.table->file;
|
||||
file = tables.table->file;
|
||||
thd->proc_info = "Reading master dump table data";
|
||||
if (file->net_read_dump(net))
|
||||
{
|
||||
net_printf(&thd->net, ER_MASTER_NET_READ);
|
||||
sql_print_error("create_table_from_dump::failed in\
|
||||
handler::net_read_dump()");
|
||||
close_thread_tables(thd);
|
||||
return 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
HA_CHECK_OPT check_opt;
|
||||
check_opt.init();
|
||||
check_opt.flags|= T_VERY_SILENT;
|
||||
check_opt.quick = 1;
|
||||
thd->proc_info = "Rebuilding the index on master dump table";
|
||||
Vio* save_vio = thd->net.vio;
|
||||
// we do not want repair() to spam us with messages
|
||||
// just send them to the error log, and report the failure in case of
|
||||
// problems
|
||||
save_vio = thd->net.vio;
|
||||
thd->net.vio = 0;
|
||||
if (file->repair(thd,&check_opt ))
|
||||
{
|
||||
net_printf(&thd->net, ER_INDEX_REBUILD,tables.table->real_name );
|
||||
error = 1;
|
||||
}
|
||||
error=file->repair(thd,&check_opt) != 0;
|
||||
thd->net.vio = save_vio;
|
||||
close_thread_tables(thd);
|
||||
if (error)
|
||||
net_printf(&thd->net, ER_INDEX_REBUILD,tables.table->real_name);
|
||||
|
||||
err:
|
||||
close_thread_tables(thd);
|
||||
thd->net.no_send_ok = 0;
|
||||
return error;
|
||||
}
|
||||
@ -407,16 +403,16 @@ int fetch_nx_table(THD* thd, const char* db_name, const char* table_name,
|
||||
int error = 1;
|
||||
int nx_errno = 0;
|
||||
bool called_connected = (mysql != NULL);
|
||||
if(!called_connected && !(mysql = mc_mysql_init(NULL)))
|
||||
{
|
||||
sql_print_error("fetch_nx_table: Error in mysql_init()");
|
||||
nx_errno = ER_GET_ERRNO;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if(!called_connected)
|
||||
if (!called_connected && !(mysql = mc_mysql_init(NULL)))
|
||||
{
|
||||
if(connect_to_master(thd, mysql, mi))
|
||||
sql_print_error("fetch_nx_table: Error in mysql_init()");
|
||||
nx_errno = ER_GET_ERRNO;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!called_connected)
|
||||
{
|
||||
if (connect_to_master(thd, mysql, mi))
|
||||
{
|
||||
sql_print_error("Could not connect to master while fetching table\
|
||||
'%-64s.%-64s'", db_name, table_name);
|
||||
@ -424,21 +420,24 @@ int fetch_nx_table(THD* thd, const char* db_name, const char* table_name,
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
safe_connect(thd, mysql, mi);
|
||||
if (slave_killed(thd))
|
||||
goto err;
|
||||
|
||||
if(request_table_dump(mysql, db_name, table_name))
|
||||
{
|
||||
nx_errno = ER_GET_ERRNO;
|
||||
sql_print_error("fetch_nx_table: failed on table dump request ");
|
||||
goto err;
|
||||
}
|
||||
if (request_table_dump(mysql, thd->last_nx_db, thd->last_nx_table))
|
||||
{
|
||||
nx_errno = ER_GET_ERRNO;
|
||||
sql_print_error("fetch_nx_table: failed on table dump request ");
|
||||
goto err;
|
||||
}
|
||||
|
||||
if(create_table_from_dump(thd, &mysql->net, db_name,
|
||||
if (create_table_from_dump(thd, &mysql->net, db_name,
|
||||
table_name))
|
||||
{
|
||||
// create_table_from_dump will have sent the error alread
|
||||
sql_print_error("fetch_nx_table: failed on create table ");
|
||||
goto err;
|
||||
}
|
||||
{
|
||||
// create_table_from_dump will have sent the error alread
|
||||
sql_print_error("fetch_nx_table: failed on create table ");
|
||||
goto err;
|
||||
}
|
||||
|
||||
error = 0;
|
||||
|
||||
@ -447,6 +446,7 @@ int fetch_nx_table(THD* thd, const char* db_name, const char* table_name,
|
||||
mc_mysql_close(mysql);
|
||||
if (nx_errno && thd->net.vio)
|
||||
send_error(&thd->net, nx_errno, "Error in fetch_nx_table");
|
||||
thd->net.no_send_ok = 0; // Clear up garbage after create_table_from_dump
|
||||
return error;
|
||||
}
|
||||
|
||||
|
@ -1243,21 +1243,11 @@ mysql_execute_command(void)
|
||||
if (strlen(tables->name) > NAME_LEN)
|
||||
{
|
||||
net_printf(&thd->net,ER_WRONG_TABLE_NAME,tables->name);
|
||||
res=0;
|
||||
break;
|
||||
}
|
||||
|
||||
if(fetch_nx_table(thd, tables->db, tables->real_name, &glob_mi, 0))
|
||||
// fetch_nx_table is responsible for sending
|
||||
// the error
|
||||
{
|
||||
res = 0;
|
||||
thd->net.no_send_ok = 0; // easier to do it here
|
||||
// this way we make sure that when we are done, we are clean
|
||||
break;
|
||||
}
|
||||
|
||||
res = 0;
|
||||
if (fetch_nx_table(thd, tables->db, tables->real_name, &glob_mi, 0))
|
||||
break; // fetch_nx_table did send the error to the client
|
||||
send_ok(&thd->net);
|
||||
break;
|
||||
|
||||
|
@ -832,13 +832,13 @@ static int prepare_for_restore(THD* thd, TABLE_LIST* table)
|
||||
|
||||
int lock_retcode;
|
||||
pthread_mutex_lock(&LOCK_open);
|
||||
if((lock_retcode = lock_table_name(thd, table)) < 0)
|
||||
if ((lock_retcode = lock_table_name(thd, table)) < 0)
|
||||
{
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
|
||||
if(lock_retcode && wait_for_locked_table_names(thd, table))
|
||||
if (lock_retcode && wait_for_locked_table_names(thd, table))
|
||||
{
|
||||
unlock_table_name(thd, table);
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
@ -846,7 +846,7 @@ static int prepare_for_restore(THD* thd, TABLE_LIST* table)
|
||||
}
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
|
||||
if(my_copy(src_path,
|
||||
if (my_copy(src_path,
|
||||
fn_format(dst_path, dst_path,"",
|
||||
reg_ext, 4),
|
||||
MYF(MY_WME)))
|
||||
@ -860,7 +860,7 @@ static int prepare_for_restore(THD* thd, TABLE_LIST* table)
|
||||
// generate table will try to send OK which messes up the output
|
||||
// for the client
|
||||
|
||||
if(generate_table(thd, table, 0))
|
||||
if (generate_table(thd, table, 0))
|
||||
{
|
||||
unlock_table_name(thd, table);
|
||||
thd->net.no_send_ok = save_no_send_ok;
|
||||
@ -921,7 +921,7 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables,
|
||||
|
||||
// now we should be able to open the partially restored table
|
||||
// to finish the restore in the handler later on
|
||||
if(!(table->table = reopen_name_locked_table(thd, table)))
|
||||
if (!(table->table = reopen_name_locked_table(thd, table)))
|
||||
unlock_table_name(thd, table);
|
||||
}
|
||||
|
||||
@ -1748,7 +1748,7 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
||||
alter table is to delete the new table so there
|
||||
is no need to log the changes to it. */
|
||||
error = ha_recovery_logging(thd,false);
|
||||
if(error)
|
||||
if (error)
|
||||
{
|
||||
error = 1;
|
||||
goto err;
|
||||
|
Reference in New Issue
Block a user