mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
RENAME TABLE table_name TO new_table_name ; Faster Alloc
Small bug fixes myisammrg/myrg_rfirst.c: Change mode to -rw-rw-r-- myisammrg/myrg_rlast.c: Change mode to -rw-rw-r-- myisammrg/myrg_rnext.c: Change mode to -rw-rw-r-- myisammrg/myrg_rprev.c: Change mode to -rw-rw-r-- Docs/manual.texi: Update of RENAME configure.in: Portability fix include/global.h: Fix for ODBC and Intel Ia64 include/mysqld_error.h: RENAME TABLE myisam/myisamchk.c: Faster --fast myisammrg/myrg_queue.c: Bug fix myisammrg/myrg_rkey.c: Portability fix sql-bench/test-insert.sh: Fix for duplicate key test sql/ChangeLog: Changelog sql/Makefile.am: RENAME TABLE sql/item_sum.cc: Fix for COUNT(DISTINCT) sql/lock.cc: RENAME TABLE sql/share/czech/errmsg.sys: RENAME TABLE sql/share/czech/errmsg.txt: RENAME TABLE sql/share/danish/errmsg.sys: RENAME TABLE sql/share/danish/errmsg.txt: RENAME TABLE sql/share/dutch/errmsg.sys: RENAME TABLE sql/share/dutch/errmsg.txt: RENAME TABLE sql/share/english/errmsg.sys: RENAME TABLE sql/share/english/errmsg.txt: RENAME TABLE sql/share/estonia/errmsg.sys: RENAME TABLE sql/share/estonia/errmsg.txt: RENAME TABLE sql/share/french/errmsg.sys: RENAME TABLE sql/share/french/errmsg.txt: RENAME TABLE sql/share/german/errmsg.sys: RENAME TABLE sql/share/german/errmsg.txt: RENAME TABLE sql/share/greek/errmsg.sys: RENAME TABLE sql/share/greek/errmsg.txt: RENAME TABLE sql/share/hungarian/errmsg.sys: RENAME TABLE sql/share/hungarian/errmsg.txt: RENAME TABLE sql/share/italian/errmsg.sys: RENAME TABLE sql/share/italian/errmsg.txt: RENAME TABLE sql/share/japanese/errmsg.sys: RENAME TABLE sql/share/japanese/errmsg.txt: RENAME TABLE sql/share/korean/errmsg.sys: RENAME TABLE sql/share/korean/errmsg.txt: RENAME TABLE sql/share/norwegian-ny/errmsg.txt: RENAME TABLE sql/share/norwegian/errmsg.txt: RENAME TABLE sql/share/polish/errmsg.sys: RENAME TABLE sql/share/polish/errmsg.txt: RENAME TABLE sql/share/portuguese/errmsg.sys: RENAME TABLE sql/share/portuguese/errmsg.txt: RENAME TABLE sql/share/romania/errmsg.sys: RENAME TABLE sql/share/romania/errmsg.txt: RENAME TABLE sql/share/romanian/errmsg.txt: ***MISSING WEAVE*** sql/share/russian/errmsg.sys: RENAME TABLE sql/share/russian/errmsg.txt: RENAME TABLE sql/share/slovak/errmsg.sys: RENAME TABLE sql/share/slovak/errmsg.txt: RENAME TABLE sql/share/spanish/errmsg.sys: RENAME TABLE sql/share/spanish/errmsg.txt: RENAME TABLE sql/share/swedish/errmsg.OLD: RENAME TABLE sql/share/swedish/errmsg.sys: RENAME TABLE sql/share/swedish/errmsg.txt: RENAME TABLE sql/slave.cc: Faster alloc sql/sql_base.cc: RENAME TABLE sql/sql_class.cc: Faster alloc sql/sql_class.h: Faster alloc sql/sql_insert.cc: Fix bug in INSERT ... SELECT to BDB table sql/sql_lex.h: RENAME TABLE sql/sql_select.cc: Faster alloc sql/sql_show.cc: Faster alloc sql/sql_table.cc: RENAME TABLE sql/sql_yacc.yy: RENAME TABLE sql/thr_malloc.cc: Faster alloc sql/unireg.h: RENAME TABLE strings/ctype-sjis.c: Portability fix
This commit is contained in:
parent
259c7ea0f8
commit
55c5016f92
66 changed files with 546 additions and 282 deletions
113
Docs/manual.texi
113
Docs/manual.texi
|
@ -275,7 +275,7 @@ Is there anything special to do when upgrading/downgrading MySQL?
|
|||
How standards-compatible is MySQL?
|
||||
|
||||
* Extensions to ANSI:: @strong{MySQL} extensions to ANSI SQL92
|
||||
* Ansi mode:: Running @strong{MySQL} in ANSI mode
|
||||
* Ansi mode:: Runnning @strong{MySQL} in ANSI mode
|
||||
* Differences from ANSI:: @strong{MySQL} differences compared to ANSI SQL92
|
||||
* Missing functions:: Functionality missing from @strong{MySQL}
|
||||
* Standards:: What standards does @strong{MySQL} follow?
|
||||
|
@ -323,6 +323,7 @@ MySQL language reference
|
|||
* DROP DATABASE:: @code{DROP DATABASE} syntax
|
||||
* CREATE TABLE:: @code{CREATE TABLE} syntax
|
||||
* ALTER TABLE:: @code{ALTER TABLE} syntax
|
||||
* RENAME TABLE::
|
||||
* DROP TABLE:: @code{DROP TABLE} syntax
|
||||
* OPTIMIZE TABLE:: @code{OPTIMIZE TABLE} syntax
|
||||
* CHECK TABLE:: @code{CHECK TABLE} syntax
|
||||
|
@ -608,7 +609,7 @@ Using @code{MySQL} with some common programs
|
|||
|
||||
Problems and common errors
|
||||
|
||||
* What is crashing:: How to determine what is causing problems
|
||||
* What is crashing:: How to determinate what is causing problems
|
||||
* Crashing:: What to do if @strong{MySQL} keeps crashing
|
||||
* Link errors:: Problems when linking with the @strong{MySQL} client library
|
||||
* Common errors:: Some common errors when using @strong{MySQL}
|
||||
|
@ -647,7 +648,7 @@ Some common errors when using MySQL
|
|||
|
||||
Solving some common problems with MySQL
|
||||
|
||||
* Log Replication:: Database replication with update log
|
||||
* Log Replication:: Database replication with update log
|
||||
* Backup:: Database backups
|
||||
* Update log:: The update log
|
||||
* Multiple servers:: Running multiple @strong{MySQL} servers on the same machine
|
||||
|
@ -720,7 +721,7 @@ C API function descriptions
|
|||
* mysql_store_result:: @code{mysql_store_result()}
|
||||
* mysql_thread_id:: @code{mysql_thread_id()}
|
||||
* mysql_use_result:: @code{mysql_use_result()}
|
||||
* NULL mysql_store_result:: Why is it that after @code{mysql_query()} returns success, @code{mysql_store_result()} sometimes returns @code{NULL}?
|
||||
* NULL mysql_store_result:: Why is it that after @code{mysql_query()} returns success, @code{mysql_store_result()} sometimes returns @code{NULL?}
|
||||
* Query results:: What results can I get from a query?
|
||||
* Getting unique ID:: How can I get the unique ID for the last inserted row?
|
||||
* C API linking problems:: Problems linking with the C API
|
||||
|
@ -1826,7 +1827,7 @@ Apart from the following links, you can find and download a lot of
|
|||
@strong{MySQL} programs, tools and APIs from the
|
||||
@uref{http://www.mysql.com/Contrib/, Contrib directory}.
|
||||
|
||||
@subheading Tutorials and manuals
|
||||
@subheading Tutorials and Manuals
|
||||
@itemize @bullet
|
||||
|
||||
@c just forwards to the devshed link below.. (jcole)
|
||||
|
@ -2026,6 +2027,11 @@ reviewing.
|
|||
@item
|
||||
@uref{http://www.omnis-software.com/products/studio/studio.html, OMNIS}
|
||||
OMNIS Studio is a rapid application development (RAD) tool.
|
||||
@item
|
||||
@uref{http://www.webplus.com, talentsoft Web+ 4.6}
|
||||
Web+ is a powerful and comprehensive development language for use in
|
||||
creating web-based client/server applications without writing complicated,
|
||||
low-level and time-consuming CGI programs.
|
||||
@end itemize
|
||||
|
||||
@subheading Database design tools with MySQL support
|
||||
|
@ -8959,6 +8965,7 @@ comparisons to be done according to the ASCII order used on the
|
|||
@strong{MySQL} maps each database to a directory under the @strong{MySQL}
|
||||
data directory, and tables within a database to filenames in the database
|
||||
directory.
|
||||
|
||||
This has two implications:
|
||||
|
||||
@itemize @minus
|
||||
|
@ -9015,11 +9022,12 @@ Use of @code{TEMPORARY} or @code{IF NOT EXISTS} with @code{CREATE TABLE}.
|
|||
Use of @code{COUNT(DISTINCT list)} where 'list' is more than one element.
|
||||
|
||||
@item
|
||||
Use of @code{CHANGE col_name}, @code{DROP col_name} or @code{DROP INDEX}
|
||||
in an @code{ALTER TABLE} statement. @xref{ALTER TABLE, , @code{ALTER TABLE}}.
|
||||
Use of @code{CHANGE col_name}, @code{DROP col_name} or @code{DROP
|
||||
INDEX}, @code{IGNORE} or @code{RENAME} in an @code{ALTER TABLE}
|
||||
statement. @xref{ALTER TABLE, , @code{ALTER TABLE}}.
|
||||
|
||||
@item
|
||||
Use of @code{IGNORE} in an @code{ALTER TABLE} statement.
|
||||
Use of @code{RENAME TABLE}. @xref{RENAME TABLE, , @code{RENAME TABLE}}.
|
||||
|
||||
@item
|
||||
Use of multiple @code{ADD}, @code{ALTER}, @code{DROP} or @code{CHANGE}
|
||||
|
@ -11636,6 +11644,7 @@ to restart @code{mysqld} with @code{--skip-grant-tables} to be able to run
|
|||
* DROP DATABASE:: @code{DROP DATABASE} syntax
|
||||
* CREATE TABLE:: @code{CREATE TABLE} syntax
|
||||
* ALTER TABLE:: @code{ALTER TABLE} syntax
|
||||
* RENAME TABLE::
|
||||
* DROP TABLE:: @code{DROP TABLE} syntax
|
||||
* OPTIMIZE TABLE:: @code{OPTIMIZE TABLE} syntax
|
||||
* CHECK TABLE:: @code{CHECK TABLE} syntax
|
||||
|
@ -15973,15 +15982,16 @@ mysql> select COUNT(*) from student;
|
|||
@findex COUNT(DISTINCT)
|
||||
@findex DISTINCT
|
||||
@item COUNT(DISTINCT expr,[expr...])
|
||||
Returns a count of the number of different values.
|
||||
Returns a count of the number of different not @code{NULL} values.
|
||||
|
||||
@example
|
||||
mysql> select COUNT(DISTINCT results) from student;
|
||||
@end example
|
||||
|
||||
In @strong{MySQL} you can get the number of distinct expressions combinations
|
||||
by giving a list of expressions. In ANSI SQL you would have to do a
|
||||
concatenation of all expressions inside @code{CODE(DISTINCT ..)}.
|
||||
In @strong{MySQL} you can get the number of distinct expressions
|
||||
combinations that doesn't contain NULL by giving a list of expressions.
|
||||
In ANSI SQL you would have to do a concatenation of all expressions
|
||||
inside @code{CODE(DISTINCT ..)}.
|
||||
|
||||
@findex AVG()
|
||||
@item AVG(expr)
|
||||
|
@ -16547,7 +16557,7 @@ Certain other column type changes may occur if you compress a table
|
|||
using @code{myisampack}. @xref{Compressed format}.
|
||||
|
||||
@findex ALTER TABLE
|
||||
@node ALTER TABLE, DROP TABLE, CREATE TABLE, Reference
|
||||
@node ALTER TABLE, RENAME TABLE, CREATE TABLE, Reference
|
||||
@section @code{ALTER TABLE} syntax
|
||||
|
||||
@example
|
||||
|
@ -16565,7 +16575,7 @@ alter_specification:
|
|||
or DROP [COLUMN] col_name
|
||||
or DROP PRIMARY KEY
|
||||
or DROP INDEX index_name
|
||||
or RENAME [AS] new_tbl_name
|
||||
or RENAME [TO] new_tbl_name
|
||||
or table_options
|
||||
@end example
|
||||
|
||||
|
@ -16621,9 +16631,10 @@ INDEX} are @strong{MySQL} extensions to ANSI SQL92.
|
|||
The optional word @code{COLUMN} is a pure noise word and can be omitted.
|
||||
|
||||
@item
|
||||
If you use @code{ALTER TABLE tbl_name RENAME AS new_name} without any other
|
||||
If you use @code{ALTER TABLE tbl_name RENAME TO new_name} without any other
|
||||
options, @strong{MySQL} simply renames the files that correspond to the table
|
||||
@code{tbl_name}. There is no need to create the temporary table.
|
||||
@xref{RENAME TABLE,, @code{RENAME TABLE}}.
|
||||
|
||||
@item
|
||||
@code{create_definition} clauses use the same syntax for @code{ADD} and
|
||||
|
@ -16775,8 +16786,47 @@ sequence number be executing @code{SET INSERT_ID=#} before
|
|||
|
||||
See also @xref{ALTER TABLE problems, , @code{ALTER TABLE} problems}.
|
||||
|
||||
@findex RENAME TABLE
|
||||
@node RENAME TABLE, DROP TABLE, ALTER TABLE, Reference
|
||||
@section @code{RENAME TABLE} syntax
|
||||
|
||||
@example
|
||||
RENAME TABLE tbl_name as new_table_name[, tbl_name2 as new_table_name2,...]
|
||||
@end example
|
||||
|
||||
The rename is done atomic, which means that if no other thread can
|
||||
access any of the tables while the rename is running. This makes it
|
||||
possible to replace a table with an empty one:
|
||||
|
||||
@example
|
||||
CREATE TABLE new_table (...);
|
||||
RENAME TABLE old_table TO backup_table, new_table as old_table;
|
||||
@end example
|
||||
|
||||
The rename is done from left to right, which means that if you want to
|
||||
swap two tables names, you have to do:
|
||||
|
||||
@example
|
||||
RENAME TABLE old_table TO backup_table, new_table as old_table, backup_table as old_table;
|
||||
@end example
|
||||
|
||||
Is long as two databases are on the same disk you can also do a rename
|
||||
from a database to another:
|
||||
|
||||
@example
|
||||
RENAME TABLE current_database.table_name TO other_database.table_name;
|
||||
@end example
|
||||
|
||||
When you execute @code{RENAME}, you can't have any locked tables or active
|
||||
transactions. You must also have the @code{ALTER TABLE} privilege on both
|
||||
the old and the new table.
|
||||
|
||||
If @strong{MySQL} encounters any errors in a multiple table rename, it
|
||||
will do a reverse rename for all renamed tables to get everything back
|
||||
to the original state.
|
||||
|
||||
@findex DROP TABLE
|
||||
@node DROP TABLE, OPTIMIZE TABLE, ALTER TABLE, Reference
|
||||
@node DROP TABLE, OPTIMIZE TABLE, RENAME TABLE, Reference
|
||||
@section @code{DROP TABLE} syntax
|
||||
|
||||
@example
|
||||
|
@ -19172,9 +19222,8 @@ may be a column name or a string containing the SQL @samp{%} and @samp{_}
|
|||
wildcard characters.
|
||||
|
||||
If the column types are different than you expect them to be based on a
|
||||
@code{CREATE TABLE} statement, note that @strong{MySQL} sometimes changes column
|
||||
types.
|
||||
@xref{Silent column changes}.
|
||||
@code{CREATE TABLE} statement, note that @strong{MySQL} sometimes
|
||||
changes column types. @xref{Silent column changes}.
|
||||
|
||||
@cindex Oracle compatibility
|
||||
@cindex Compatibility, with Oracle
|
||||
|
@ -35350,6 +35399,10 @@ and will soon be declared beta, gamma and release.
|
|||
@appendixsubsec Changes in release 3.23.23
|
||||
@itemize @bullet
|
||||
@item
|
||||
Added atomic @code{RENAME} command.
|
||||
@item
|
||||
Don't count entries with @code{NULL} in @code{COUNT(DISTINCT ..)}.
|
||||
@item
|
||||
Changed @code{ALTER TABLE}, @code{LOAD DATA INFILE} on empty tables and
|
||||
@code{INSERT ... SELECT...} on empty tables to create non-unique indexs
|
||||
in a separate batch with sorting. This will make the above calls much
|
||||
|
@ -35372,7 +35425,9 @@ that don't have the @code{pthread_rwlock_rdlock} code.
|
|||
When deleting rows with a non-unique key in a HEAP table, all rows weren't
|
||||
always deleted.
|
||||
@item
|
||||
Fixed that BDB tables work on part keys.
|
||||
Fixed that @code{SELECT} on part keys works with BDB tables.
|
||||
@item
|
||||
Fixed that @code{INSERT INTO bdb_table ... SELECT} works with BDB tables.
|
||||
@item
|
||||
Check table now updates key statistics for the table.
|
||||
@item
|
||||
|
@ -35382,11 +35437,18 @@ will not be marked to be analyzed until they are updated in any way with
|
|||
3.23.23 or newer. For older tables, you have to do @code{CHECK TABLE}
|
||||
to update the key distribution.
|
||||
@item
|
||||
Fixed some minor privilege problems with @code{CHECK}, @code{ANALYZE},
|
||||
@code{REPAIR} and @code{SHOW CREATE} commands.
|
||||
@item
|
||||
Added @code{CHANGE MASTER TO} command
|
||||
@item
|
||||
Added @code{FAST}, @code{QUICK} @code{EXTENDED} check types to
|
||||
@code{CHECK TABLES}.
|
||||
@item
|
||||
Changed @code{myisamchk} so that @code{--fast} and
|
||||
@code{--check-changed-tables} are also honored with @code{--sort-index} and
|
||||
@code{--analyze}.
|
||||
@item
|
||||
Fixed fatal bug in @code{LOAD TABLE FROM MASTER} that did not lock the table during index re-build
|
||||
@item
|
||||
@code{LOAD DATA INFILE} broke replication if the database was excluded from replication
|
||||
|
@ -38130,7 +38192,7 @@ Added new commands @code{CREATE DATABASE db_name} and @code{DROP
|
|||
DATABASE db_name}.
|
||||
@item
|
||||
Added @code{RENAME} option to @code{ALTER TABLE}: @code{ALTER TABLE name
|
||||
RENAME AS new_name}.
|
||||
RENAME TO new_name}.
|
||||
@item
|
||||
@code{make_binary_distribution} now includes @file{libgcc.a} in
|
||||
@file{libmysqlclient.a}. This should make linking work for people who don't
|
||||
|
@ -39474,7 +39536,7 @@ Fail safe replication.
|
|||
@item
|
||||
Optimize, test and document transactions safe tables
|
||||
@item
|
||||
@code{RENAME table as table, table as table [,...]}
|
||||
@code{RENAME table to table, table to table [,...]}
|
||||
@item
|
||||
Allow users to change startup options.
|
||||
@item
|
||||
|
@ -39656,6 +39718,13 @@ A logfile analyzer that could parsed out information about which tables
|
|||
are hit most often, how often multi-table joins are executed, etc. It
|
||||
should help users identify areas or table design that could be optimized
|
||||
to execute much more efficient queries.
|
||||
@item
|
||||
Add @code{SUM(DISTINCT)}
|
||||
@item
|
||||
Add @code{ANY()},@code{EVERY()} and @code{SOME()} group functions. In
|
||||
ANSI SQL these only works on boolean columns, but we can extend these to
|
||||
work on any columns/expressions by applying: value == 0 -> FALSE and
|
||||
value <> 0 -> TRUE.
|
||||
@end itemize
|
||||
|
||||
@node TODO sometime, TODO unplanned, TODO future, TODO
|
||||
|
|
|
@ -1709,10 +1709,10 @@ CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT
|
|||
{
|
||||
0, /* end-of-list marker */
|
||||
NullS,
|
||||
\"\",
|
||||
\"\",
|
||||
\"\",
|
||||
\"\",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
|
|
|
@ -113,6 +113,12 @@
|
|||
#define HAVE_ATOMIC_SUB
|
||||
#endif
|
||||
|
||||
/* In Linux-ia64 including atomic.h will give us an error */
|
||||
#if defined(HAVE_LINUXTHREADS) && defined(__GNUC__) && defined(__ia64__)
|
||||
#undef HAVE_ATOMIC_ADD
|
||||
#undef HAVE_ATOMIC_SUB
|
||||
#endif
|
||||
|
||||
#if defined(_lint) && !defined(lint)
|
||||
#define lint
|
||||
#endif
|
||||
|
@ -207,6 +213,7 @@
|
|||
#endif
|
||||
|
||||
/* Define void to stop lint from generating "null effekt" comments */
|
||||
#ifndef DONT_DEFINE_VOID
|
||||
#ifdef _lint
|
||||
int __void__;
|
||||
#define VOID(X) (__void__ = (int) (X))
|
||||
|
@ -214,6 +221,7 @@ int __void__;
|
|||
#undef VOID
|
||||
#define VOID(X) (X)
|
||||
#endif
|
||||
#endif /* DONT_DEFINE_VOID */
|
||||
|
||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS)
|
||||
#define LINT_INIT(var) var=0 /* No uninitialize-warning */
|
||||
|
@ -515,6 +523,8 @@ typedef long my_ptrdiff_t;
|
|||
#define NEAR /* Who needs segments ? */
|
||||
#define FAR /* On a good machine */
|
||||
#define HUGE_PTR
|
||||
#endif
|
||||
#ifndef STDCALL
|
||||
#define STDCALL
|
||||
#endif
|
||||
|
||||
|
|
|
@ -192,4 +192,5 @@
|
|||
#define ER_MASTER_NET_READ 1189
|
||||
#define ER_MASTER_NET_WRITE 1190
|
||||
#define ER_FT_MATCHING_KEY_NOT_FOUND 1191
|
||||
#define ER_ERROR_MESSAGES 192
|
||||
#define ER_LOCK_OR_ACTIVE_TRANSACTION 1192
|
||||
#define ER_ERROR_MESSAGES 193
|
||||
|
|
|
@ -190,7 +190,7 @@ static struct option long_options[] =
|
|||
|
||||
static void print_version(void)
|
||||
{
|
||||
printf("%s Ver 1.29 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
printf("%s Ver 1.30 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
@ -295,7 +295,7 @@ static void get_options(register int *argc,register char ***argv)
|
|||
set_all_changeable_vars(changeable_vars);
|
||||
if (isatty(fileno(stdout)))
|
||||
check_param.testflag|=T_WRITE_LOOP;
|
||||
while ((c=getopt_long(*argc,*argv,"acCdeif?lqrmosSTuUvVw#:b:D:k:O:R:A::t:",
|
||||
while ((c=getopt_long(*argc,*argv,"acCdeifF?lqrmosSTuUvVw#:b:D:k:O:R:A::t:",
|
||||
long_options, &option_index)) != EOF)
|
||||
{
|
||||
switch(c) {
|
||||
|
@ -520,22 +520,42 @@ static int myisamchk(MI_CHECK *param, my_string filename)
|
|||
We are using --fast and the table is closed properly
|
||||
We are using --check-only-changed-tables and the table hasn't changed
|
||||
*/
|
||||
if (((param->testflag & T_CHECK_ONLY_CHANGED) &&
|
||||
(share->state.changed & (STATE_CHANGED | STATE_CRASHED |
|
||||
STATE_CRASHED_ON_REPAIR))) ||
|
||||
(param->testflag & T_FAST) && share->state.open_count == 0)
|
||||
if (param->testflag & (T_FAST | T_CHECK_ONLY_CHANGED))
|
||||
{
|
||||
if (!(param->testflag & T_SILENT) || param->testflag & T_INFO)
|
||||
printf("MyISAM file: %s is already checked\n",filename);
|
||||
if (mi_close(info))
|
||||
{
|
||||
mi_check_print_error(param,"%d when closing MyISAM-table '%s'",
|
||||
my_errno,filename);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
my_bool need_to_check= mi_is_crashed(info) || share->state.open_count != 0;
|
||||
|
||||
if ((param->testflag & (T_REP_BY_SORT | T_REP | T_SORT_RECORDS)) &&
|
||||
((share->state.changed & (STATE_CHANGED | STATE_CRASHED |
|
||||
STATE_CRASHED_ON_REPAIR) ||
|
||||
!(param->testflag & T_CHECK_ONLY_CHANGED))))
|
||||
need_to_check=1;
|
||||
|
||||
if ((param->testflag & T_STATISTICS) &&
|
||||
(share->state.changed & STATE_NOT_ANALYZED))
|
||||
need_to_check=1;
|
||||
if ((param->testflag & T_SORT_INDEX) &&
|
||||
(share->state.changed & STATE_NOT_SORTED_PAGES))
|
||||
need_to_check=1;
|
||||
if ((param->testflag & T_REP_BY_SORT) &&
|
||||
(share->state.changed & STATE_NOT_OPTIMIZED_KEYS))
|
||||
need_to_check=1;
|
||||
if ((param->testflag & T_CHECK_ONLY_CHANGED) &&
|
||||
(share->state.changed & (STATE_CHANGED | STATE_CRASHED |
|
||||
STATE_CRASHED_ON_REPAIR)))
|
||||
need_to_check=1;
|
||||
if (!need_to_check)
|
||||
{
|
||||
if (!(param->testflag & T_SILENT) || param->testflag & T_INFO)
|
||||
printf("MyISAM file: %s is already checked\n",filename);
|
||||
if (mi_close(info))
|
||||
{
|
||||
mi_check_print_error(param,"%d when closing MyISAM-table '%s'",
|
||||
my_errno,filename);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
}
|
||||
if ((param->testflag & (T_REP_BY_SORT | T_REP | T_STATISTICS |
|
||||
T_SORT_RECORDS | T_SORT_INDEX)) &&
|
||||
(((param->testflag & T_UNPACK) &&
|
||||
|
|
|
@ -48,5 +48,6 @@ int _myrg_init_queue(MYRG_INFO *info,int inx,enum ha_rkey_function search_flag)
|
|||
info->open_tables->table->s->keyinfo[inx].seg))
|
||||
return my_errno;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
SerG
|
||||
*/
|
||||
|
||||
int _mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
|
||||
enum ha_rkey_function search_flag, bool raw_key);
|
||||
|
||||
int myrg_rkey(MYRG_INFO *info,byte *record,int inx, const byte *key,
|
||||
uint key_len, enum ha_rkey_function search_flag)
|
||||
{
|
||||
|
|
|
@ -224,7 +224,7 @@ if ($limits->{'unique_index'})
|
|||
$tmpvar^= ((($tmpvar + 63) + $i)*3 % $opt_loop_count);
|
||||
$tmp=$tmpvar % ($total_rows);
|
||||
$tmpquery = "$query ($tmp,1,2,'D')";
|
||||
if ($dbh->do($tmpquery))
|
||||
if (!$dbh->do($tmpquery))
|
||||
{
|
||||
die "Didn't get an error when inserting duplicate record $tmp\n";
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2000-08-20 Michael Widenius <monty@mysql.com>
|
||||
|
||||
* Added memory as inline functions to THD to get them a bit faster
|
||||
* Don't count entries with NULL in COUNT(DISTINCT ..)
|
||||
|
||||
2000-08-08 Michael Widenius <monty@mysql.com>
|
||||
|
||||
* Changed ALTER TABLE and LOAD DATA INFILE to create non unique, small keys
|
||||
|
|
|
@ -66,7 +66,7 @@ mysqld_SOURCES = sql_lex.cc \
|
|||
records.cc filesort.cc handler.cc \
|
||||
ha_isam.cc ha_isammrg.cc ha_heap.cc \
|
||||
ha_myisam.cc ha_myisammrg.cc ha_berkeley.cc \
|
||||
sql_db.cc sql_table.cc sql_crypt.cc \
|
||||
sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
|
||||
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
|
||||
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
|
||||
slave.cc \
|
||||
|
|
|
@ -839,6 +839,10 @@ bool Item_sum_count_distinct::add()
|
|||
copy_fields(tmp_table_param);
|
||||
copy_funcs(tmp_table_param->funcs);
|
||||
|
||||
for (Field **field=table->field ; *field ; field++)
|
||||
if ((*field)->is_real_null(0))
|
||||
return 0; // Don't count NULL
|
||||
|
||||
if ((error=table->file->write_row(table->record[0])))
|
||||
{
|
||||
if (error != HA_ERR_FOUND_DUPP_KEY &&
|
||||
|
|
84
sql/lock.cc
84
sql/lock.cc
|
@ -384,3 +384,87 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count,
|
|||
}
|
||||
return sql_lock;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
** Lock table based on the name.
|
||||
** This is used when we need total access to a closed, not open table
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
Put a not open table with an old refresh version in the table cache.
|
||||
This will force any other threads that uses the table to release it
|
||||
as soon as possible.
|
||||
One must have a lock on LOCK_open !
|
||||
Return values:
|
||||
< 0 error
|
||||
== 0 table locked
|
||||
> 0 table locked, but someone is using it
|
||||
*/
|
||||
|
||||
|
||||
int lock_table_name(THD *thd, TABLE_LIST *table_list)
|
||||
{
|
||||
TABLE *table;
|
||||
char key[MAX_DBKEY_LENGTH];
|
||||
uint key_length;
|
||||
key_length=(uint) (strmov(strmov(key,table_list->db)+1,table_list->name)-key)+
|
||||
1;
|
||||
|
||||
/* Only insert the table if we haven't insert it already */
|
||||
for (table=(TABLE*) hash_search(&open_cache,(byte*) key,key_length) ;
|
||||
table ;
|
||||
table = (TABLE*) hash_next(&open_cache,(byte*) key,key_length))
|
||||
if (table->in_use == thd)
|
||||
return 0;
|
||||
|
||||
/* Create a table entry with the right key and with an old refresh version */
|
||||
if (!(table= (TABLE*) thd->calloc(sizeof(*table)+key_length)))
|
||||
return -1;
|
||||
memcpy((table->table_cache_key= (char*) (table+1)), key, key_length);
|
||||
table->key_length=key_length;
|
||||
table->in_use=thd;
|
||||
table_list->table=table;
|
||||
|
||||
if (hash_insert(&open_cache, (byte*) table))
|
||||
return -1;
|
||||
if (remove_table_from_cache(thd, table_list->db, table_list->name))
|
||||
return 1; // Table is in use
|
||||
return 0;
|
||||
}
|
||||
|
||||
void unlock_table_name(THD *thd, TABLE_LIST *table_list)
|
||||
{
|
||||
if (table_list->table)
|
||||
hash_delete(&open_cache, (gptr) table_list->table);
|
||||
}
|
||||
|
||||
static bool locked_named_table(THD *thd, TABLE_LIST *table_list)
|
||||
{
|
||||
for ( ; table_list ; table_list=table_list->next)
|
||||
{
|
||||
if (table_list->table && table_is_used(table_list->table))
|
||||
return 1;
|
||||
}
|
||||
return 0; // All tables are locked
|
||||
}
|
||||
|
||||
|
||||
bool wait_for_locked_table_names(THD *thd, TABLE_LIST *table_list)
|
||||
{
|
||||
bool result=0;
|
||||
|
||||
while (locked_named_table(thd,table_list))
|
||||
{
|
||||
if (thd->killed)
|
||||
{
|
||||
result=1;
|
||||
break;
|
||||
}
|
||||
wait_for_refresh(thd);
|
||||
}
|
||||
pthread_mutex_lock(&thd->mysys_var->mutex);
|
||||
thd->mysys_var->current_mutex=0;
|
||||
thd->mysys_var->current_cond=0;
|
||||
pthread_mutex_unlock(&thd->mysys_var->mutex);
|
||||
return result;
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -1,13 +1,13 @@
|
|||
/* Copyright Abandoned 1997 TCX DataKonsult AB & Monty Program KB & Detron HB
|
||||
This file is public domain and comes with NO WARRANTY of any kind */
|
||||
|
||||
/* Modifikoval Petr šnajdr, snajdr@pvt.net, snajdr@cpress.cz v.0.01
|
||||
/* Modifikoval Petr -Bšnajdr, snajdr@pvt.net, snajdr@cpress.cz v.0.01 -A
|
||||
ISO LATIN-8852-2
|
||||
Upravil Jan Pazdziora, adelton@fi.muni.cz
|
||||
Tue Nov 18 17:53:55 MET 1997 verze 0.02
|
||||
Rozšířeno podle 3.21.15c Jan Pazdziora, adelton@fi.muni.cz
|
||||
Roz-Bšířeno podle 3.21.15c Jan Pazdziora, adelton@fi.muni.cz-A
|
||||
Tue Dec 2 19:08:54 MET 1997 verze 0.03
|
||||
Rozšířeno podle 3.21.29 Jan Pazdziora, adelton@fi.muni.cz
|
||||
Roz-Bšířeno podle 3.21.29 Jan Pazdziora, adelton@fi.muni.cz-A
|
||||
Thu May 7 17:40:49 MET DST 1998 verze 0.04
|
||||
Podle verze 3.22.20 upravil Jan Pazdziora, adelton@fi.muni.cz
|
||||
Thu Apr 1 20:49:57 CEST 1999
|
||||
|
@ -19,191 +19,192 @@
|
|||
"isamchk",
|
||||
"NE",
|
||||
"ANO",
|
||||
"Nemohu vytvořit soubor '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu vytvořit tabulku '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu vytvořit databázi '%-.64s', chyba %d",
|
||||
"Nemohu vytvořit databázi '%-.64s', databáze již existuje",
|
||||
"Nemohu zrušit databázi '%-.64s', databáze neexistuje",
|
||||
"Chyba při rušení databáze (nemohu vymazat '%-.64s', chyba %d)",
|
||||
"Chyba při rušení databáze (nemohu vymazat adresář '%-.64s', chyba %d)",
|
||||
"Chyba při výmazu '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu číst záznam v systémové tabulce",
|
||||
"Nemohu získat stav '%-.64s' (chybový kód: %d)",
|
||||
"Chyba při zjišťování pracovní adresář (chybový kód: %d)",
|
||||
"Nemohu uzamknout soubor (chybový kód: %d)",
|
||||
"Nemohu otevřít soubor '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu najít soubor '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu číst adresář '%-.64s' (chybový kód: %d)",
|
||||
"Nemohu změnit adresář na '%-.64s' (chybový kód: %d)",
|
||||
"Záznam byl změněn od posledního čtení v tabulce '%-.64s'",
|
||||
"Disk je plný (%s), čekám na uvolnění nějakého místa ...",
|
||||
"Nemohu zapsat, zdvojený klíč v tabulce '%-.64s'",
|
||||
"Chyba při zavírání '%-.64s' (chybový kód: %d)",
|
||||
"Chyba při čtení souboru '%-.64s' (chybový kód: %d)",
|
||||
"Chyba při přejmenování '%-.64s' na '%-.64s' (chybový kód: %d)",
|
||||
"Chyba při zápisu do souboru '%-.64s' (chybový kód: %d)",
|
||||
"'%-.64s' je zamčen proti změnám",
|
||||
"Třídění přerušeno",
|
||||
"Nemohu vytvo-Břit soubor '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu vytvo-Břit tabulku '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu vytvo-Břit databázi '%-.64s', chyba %d",-A
|
||||
"Nemohu vytvo-Břit databázi '%-.64s', databáze již existuje",-A
|
||||
"Nemohu zru-Bšit databázi '%-.64s', databáze neexistuje",-A
|
||||
"Chyba p-Bři rušení databáze (nemohu vymazat '%-.64s', chyba %d)",-A
|
||||
"Chyba p-Bři rušení databáze (nemohu vymazat adresář '%-.64s', chyba %d)",-A
|
||||
"Chyba p-Bři výmazu '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu -Bčíst záznam v systémové tabulce",-A
|
||||
"Nemohu z-Bískat stav '%-.64s' (chybový kód: %d)",-A
|
||||
"Chyba p-Bři zjišťování pracovní adresář (chybový kód: %d)",-A
|
||||
"Nemohu uzamknout soubor (chybov-Bý kód: %d)",-A
|
||||
"Nemohu otev-Břít soubor '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu naj-Bít soubor '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu -Bčíst adresář '%-.64s' (chybový kód: %d)",-A
|
||||
"Nemohu zm-Běnit adresář na '%-.64s' (chybový kód: %d)",-A
|
||||
"Z-Báznam byl změněn od posledního čtení v tabulce '%-.64s'",-A
|
||||
"Disk je pln-Bý (%s), čekám na uvolnění nějakého místa ...",-A
|
||||
"Nemohu zapsat, zdvojen-Bý klíč v tabulce '%-.64s'",-A
|
||||
"Chyba p-Bři zavírání '%-.64s' (chybový kód: %d)",-A
|
||||
"Chyba p-Bři čtení souboru '%-.64s' (chybový kód: %d)",-A
|
||||
"Chyba p-Bři přejmenování '%-.64s' na '%-.64s' (chybový kód: %d)",-A
|
||||
"Chyba p-Bři zápisu do souboru '%-.64s' (chybový kód: %d)",-A
|
||||
"'%-.64s' je zam-Bčen proti změnám",-A
|
||||
"T-Břídění přerušeno",-A
|
||||
"Pohled '%-.64s' pro '%-.64s' neexistuje",
|
||||
"Obsluha tabulky vrátila chybu %d",
|
||||
"Obsluha tabulky '%-.64s' nemá tento parametr",
|
||||
"Nemohu najít záznam v '%-.64s'",
|
||||
"Nesprávná informace v souboru '%-.64s'",
|
||||
"Nesprávný klíč pro tabulku '%-.64s'. Pokuste se ho opravit",
|
||||
"Starý klíčový soubor pro '%-.64s'. Opravte ho.",
|
||||
"'%-.64s' je jen pro čtení",
|
||||
"Málo paměti. Přestartujte daemona a zkuste znovu (je potřeba %d bytů)",
|
||||
"Málo paměti pro třídění. Zvyšte velikost třídícího bufferu",
|
||||
"Neočekávaný konec souboru při čtení '%-.64s' (chybový kód: %d)",
|
||||
"Příliš mnoho spojení",
|
||||
"Málo prostoru/paměti pro thread",
|
||||
"Nemohu zjistit jméno stroje pro Vaši adresu",
|
||||
"Chyba při ustavování spojení",
|
||||
"Přístup pro uživatele '%-.32s@%-.64s' k databázi '%-.64s' není povolen",
|
||||
"Přístup pro uživatele '%-.32s@%-.64s' (s heslem %s)",
|
||||
"Nebyla vybrána žádná databáze",
|
||||
"Neznámý příkaz",
|
||||
"Sloupec '%-.64s' nemůže být null",
|
||||
"Neznámá databáze '%-.64s'",
|
||||
"Tabulka '%-.64s' již existuje",
|
||||
"Neznámá tabulka '%-.64s'",
|
||||
"Sloupec '%-.64s' v %s není zcela jasný",
|
||||
"Probíhá ukončování práce serveru",
|
||||
"Neznámý sloupec '%-.64s' v %s",
|
||||
"Použité '%-.64s' nebylo v group by",
|
||||
"Nemohu použít group na '%-.64s'",
|
||||
"Příkaz obsahuje zároveň funkci sum a sloupce",
|
||||
"Počet sloupců neodpovídá zadané hodnotě",
|
||||
"Jméno identifikátoru '%-.64s' je příliš dlouhé",
|
||||
"Zdvojené jméno sloupce '%-.64s'",
|
||||
"Zdvojené jméno klíče '%-.64s'",
|
||||
"Zvojený klíč '%-.64s' (číslo klíče %d)",
|
||||
"Chybná specifikace sloupce '%-.64s'",
|
||||
"%s blízko '%-.64s' na řádku %d",
|
||||
"Výsledek dotazu je prázdný",
|
||||
"Nejednoznačná tabulka/alias: '%-.64s'",
|
||||
"Chybná defaultní hodnota pro '%-.64s'",
|
||||
"Definováno více primárních klíčů",
|
||||
"Zadáno příliš mnoho klíčů, je povoleno nejvíce %d klíčů",
|
||||
"Zadáno příliš mnoho část klíčů, je povoleno nejvíce %d částí",
|
||||
"Zadaný klíč byl příliš dlouhý, největší délka klíče je %d",
|
||||
"Klíčový sloupec '%-.64s' v tabulce neexistuje",
|
||||
"Blob sloupec '%-.64s' nemůže být použit jako klíč",
|
||||
"Příliš velká délka sloupce '%-.64s' (nejvíce %d). Použijte BLOB",
|
||||
"Můžete mít pouze jedno AUTO pole a to musí být definováno jako klíč",
|
||||
"%s: připraven na spojení\n",
|
||||
"%s: normální ukončení\n",
|
||||
"%s: přijat signal %d, končím\n",
|
||||
"%s: ukončení práce hotovo\n",
|
||||
"%s: násilné uzavření threadu %ld uživatele '%-.64s'\n",
|
||||
"Nemohu vytvořit IP socket",
|
||||
"Tabulka '%-.64s' nemá index odpovídající CREATE INDEX. Vytvořte tabulku znovu",
|
||||
"Argument separátoru položek nebyl očekáván. Přečtěte si manuál",
|
||||
"Není možné použít pevný rowlength s BLOBem. Použijte 'fields terminated by'.",
|
||||
"Soubor '%-.64s' musí být v adresáři databáze nebo čitelný pro všechny",
|
||||
"Soubor '%-.64s' již existuje",
|
||||
"Záznamů: %ld Vymazáno: %ld Přeskočeno: %ld Varování: %ld",
|
||||
"Záznamů: %ld Zdvojených: %ld",
|
||||
"Chybná podčást klíče -- není to řetězec nebo je delší než délka části klíče",
|
||||
"Není možné vymazat všechny položky s ALTER TABLE. Použijte DROP TABLE",
|
||||
"Nemohu zrušit '%-.64s' (provést DROP). Zkontrolujte, zda neexistují záznamy/klíče",
|
||||
"Záznamů: %ld Zdvojených: %ld Varování: %ld",
|
||||
"INSERT TABLE '%-.64s' není dovoleno v seznamu tabulek FROM",
|
||||
"Neznámá identifikace threadu: %lu",
|
||||
"Nejste vlastníkem threadu %lu",
|
||||
"Nejsou použity žádné tabulky",
|
||||
"Příliš mnoho řetězců pro sloupec %s a SET",
|
||||
"Nemohu vytvořit jednoznačné jméno logovacího souboru %s.(1-999)\n",
|
||||
"Tabulka '%-.64s' byla zamčena s READ a nemůže být změněna",
|
||||
"Tabulka '%-.64s' nebyla zamčena s LOCK TABLES",
|
||||
"Blob položka '%-.64s' nemůže mít defaultní hodnotu",
|
||||
"Nepřípustné jméno databáze '%-.64s'",
|
||||
"Nepřípustné jméno tabulky '%-.64s'",
|
||||
"Zadaný SELECT by procházel příliš mnoho záznamů a trval velmi dlouho. Zkontrolujte tvar WHERE a je-li SELECT v pořádku, použijte SET OPTION SQL_BIG_SELECTS=1",
|
||||
"Neznámá chyba",
|
||||
"Neznámá procedura %s",
|
||||
"Chybný počet parametrů procedury %s",
|
||||
"Chybné parametry procedury %s",
|
||||
"Neznámá tabulka '%-.64s' v %s",
|
||||
"Položka '%-.64s' je zadána dvakrát",
|
||||
"Nesprávné použití funkce group",
|
||||
"Tabulka '%-.64s' používá rozšíření, které v této verzi MySQL není",
|
||||
"Tabulka musí mít alespoň jeden sloupec",
|
||||
"Tabulka '%-.64s' je plná",
|
||||
"Neznámá znaková sada: '%-.64s'",
|
||||
"Příliš mnoho tabulek, MySQL jich může mít v joinu jen %d",
|
||||
"Příliš mnoho položek",
|
||||
"Řádek je příliš velký. Maximální velikost řádku, nepočítaje položky blob, je %d. Musíte změnit některé položky na blob",
|
||||
"Přetečení zásobníku threadu: použito %ld z %ld. Použijte 'mysqld -O thread_stack=#' k zadání většího zásobníku",
|
||||
"V OUTER JOIN byl nalezen křížový odkaz. Prověřte ON podmínky",
|
||||
"Sloupec '%-.32s' je použit s UNIQUE nebo INDEX, ale není definován jako NOT NULL",
|
||||
"Nemohu načíst funkci '%-.64s'",
|
||||
"Obsluha tabulky vr-Bátila chybu %d",-A
|
||||
"Obsluha tabulky '%-.64s' nem-Bá tento parametr",-A
|
||||
"Nemohu naj-Bít záznam v '%-.64s'",-A
|
||||
"Nespr-Bávná informace v souboru '%-.64s'",-A
|
||||
"Nespr-Bávný klíč pro tabulku '%-.64s'. Pokuste se ho opravit",-A
|
||||
"Star-Bý klíčový soubor pro '%-.64s'. Opravte ho.",-A
|
||||
"'%-.64s' je jen pro -Bčtení",-A
|
||||
"M-Bálo paměti. Přestartujte daemona a zkuste znovu (je potřeba %d bytů)",-A
|
||||
"M-Bálo paměti pro třídění. Zvyšte velikost třídícího bufferu",-A
|
||||
"Neo-Bčekávaný konec souboru při čtení '%-.64s' (chybový kód: %d)",-A
|
||||
"P-Bříliš mnoho spojení",-A
|
||||
"M-Bálo prostoru/paměti pro thread",-A
|
||||
"Nemohu zjistit jm-Béno stroje pro Vaši adresu",-A
|
||||
"Chyba p-Bři ustavování spojení",-A
|
||||
"P-Břístup pro uživatele '%-.32s@%-.64s' k databázi '%-.64s' není povolen",-A
|
||||
"P-Břístup pro uživatele '%-.32s@%-.64s' (s heslem %s)",-A
|
||||
"Nebyla vybr-Bána žádná databáze",-A
|
||||
"Nezn-Bámý příkaz",-A
|
||||
"Sloupec '%-.64s' nem-Bůže být null",-A
|
||||
"Nezn-Bámá databáze '%-.64s'",-A
|
||||
"Tabulka '%-.64s' ji-Bž existuje",-A
|
||||
"Nezn-Bámá tabulka '%-.64s'",-A
|
||||
"Sloupec '%-.64s' v %s nen-Bí zcela jasný",-A
|
||||
"Prob-Bíhá ukončování práce serveru",-A
|
||||
"Nezn-Bámý sloupec '%-.64s' v %s",-A
|
||||
"Pou-Bžité '%-.64s' nebylo v group by",-A
|
||||
"Nemohu pou-Bžít group na '%-.64s'",-A
|
||||
"P-Bříkaz obsahuje zároveň funkci sum a sloupce",-A
|
||||
"Po-Bčet sloupců neodpovídá zadané hodnotě",-A
|
||||
"Jm-Béno identifikátoru '%-.64s' je příliš dlouhé",-A
|
||||
"Zdvojen-Bé jméno sloupce '%-.64s'",-A
|
||||
"Zdvojen-Bé jméno klíče '%-.64s'",-A
|
||||
"Zvojen-Bý klíč '%-.64s' (číslo klíče %d)",-A
|
||||
"Chybn-Bá specifikace sloupce '%-.64s'",-A
|
||||
"%s bl-Bízko '%-.64s' na řádku %d",-A
|
||||
"V-Býsledek dotazu je prázdný",-A
|
||||
"Nejednozna-Bčná tabulka/alias: '%-.64s'",-A
|
||||
"Chybn-Bá defaultní hodnota pro '%-.64s'",-A
|
||||
"Definov-Báno více primárních klíčů",-A
|
||||
"Zad-Báno příliš mnoho klíčů, je povoleno nejvíce %d klíčů",-A
|
||||
"Zad-Báno příliš mnoho část klíčů, je povoleno nejvíce %d částí",-A
|
||||
"Zadan-Bý klíč byl příliš dlouhý, největší délka klíče je %d",-A
|
||||
"Kl-Bíčový sloupec '%-.64s' v tabulce neexistuje",-A
|
||||
"Blob sloupec '%-.64s' nem-Bůže být použit jako klíč",-A
|
||||
"P-Bříliš velká délka sloupce '%-.64s' (nejvíce %d). Použijte BLOB",-A
|
||||
"M-Bůžete mít pouze jedno AUTO pole a to musí být definováno jako klíč",-A
|
||||
"%s: p-Břipraven na spojení\n",-A
|
||||
"%s: norm-Bální ukončení\n",-A
|
||||
"%s: p-Břijat signal %d, končím\n",-A
|
||||
"%s: ukon-Bčení práce hotovo\n",-A
|
||||
"%s: n-Básilné uzavření threadu %ld uživatele '%-.64s'\n",-A
|
||||
"Nemohu vytvo-Břit IP socket",-A
|
||||
"Tabulka '%-.64s' nem-Bá index odpovídající CREATE INDEX. Vytvořte tabulku znovu",-A
|
||||
"Argument separ-Bátoru položek nebyl očekáván. Přečtěte si manuál",-A
|
||||
"Nen-Bí možné použít pevný rowlength s BLOBem. Použijte 'fields terminated by'.",-A
|
||||
"Soubor '%-.64s' mus-Bí být v adresáři databáze nebo čitelný pro všechny",-A
|
||||
"Soubor '%-.64s' ji-Bž existuje",-A
|
||||
"Z-Báznamů: %ld Vymazáno: %ld Přeskočeno: %ld Varování: %ld",-A
|
||||
"Z-Báznamů: %ld Zdvojených: %ld",-A
|
||||
"Chybn-Bá podčást klíče -- není to řetězec nebo je delší než délka části klíče",-A
|
||||
"Nen-Bí možné vymazat všechny položky s ALTER TABLE. Použijte DROP TABLE",-A
|
||||
"Nemohu zru-Bšit '%-.64s' (provést DROP). Zkontrolujte, zda neexistují záznamy/klíče",-A
|
||||
"Z-Báznamů: %ld Zdvojených: %ld Varování: %ld",-A
|
||||
"INSERT TABLE '%-.64s' nen-Bí dovoleno v seznamu tabulek FROM",-A
|
||||
"Nezn-Bámá identifikace threadu: %lu",-A
|
||||
"Nejste vlastn-Bíkem threadu %lu",-A
|
||||
"Nejsou pou-Bžity žádné tabulky",-A
|
||||
"P-Bříliš mnoho řetězců pro sloupec %s a SET",-A
|
||||
"Nemohu vytvo-Břit jednoznačné jméno logovacího souboru %s.(1-999)\n",-A
|
||||
"Tabulka '%-.64s' byla zam-Bčena s READ a nemůže být změněna",-A
|
||||
"Tabulka '%-.64s' nebyla zam-Bčena s LOCK TABLES",-A
|
||||
"Blob polo-Bžka '%-.64s' nemůže mít defaultní hodnotu",-A
|
||||
"Nep-Břípustné jméno databáze '%-.64s'",-A
|
||||
"Nep-Břípustné jméno tabulky '%-.64s'",-A
|
||||
"Zadan-Bý SELECT by procházel příliš mnoho záznamů a trval velmi dlouho. Zkontrolujte tvar WHERE a je-li SELECT v pořádku, použijte SET OPTION SQL_BIG_SELECTS=1",-A
|
||||
"Nezn-Bámá chyba",-A
|
||||
"Nezn-Bámá procedura %s",-A
|
||||
"Chybn-Bý počet parametrů procedury %s",-A
|
||||
"Chybn-Bé parametry procedury %s",-A
|
||||
"Nezn-Bámá tabulka '%-.64s' v %s",-A
|
||||
"Polo-Bžka '%-.64s' je zadána dvakrát",-A
|
||||
"Nespr-Bávné použití funkce group",-A
|
||||
"Tabulka '%-.64s' pou-Bžívá rozšíření, které v této verzi MySQL není",-A
|
||||
"Tabulka mus-Bí mít alespoň jeden sloupec",-A
|
||||
"Tabulka '%-.64s' je pln-Bá",-A
|
||||
"Nezn-Bámá znaková sada: '%-.64s'",-A
|
||||
"P-Bříliš mnoho tabulek, MySQL jich může mít v joinu jen %d",-A
|
||||
"P-Bříliš mnoho položek",-A
|
||||
"-BŘádek je příliš velký. Maximální velikost řádku, nepočítaje položky blob, je %d. Musíte změnit některé položky na blob",-A
|
||||
"P-Břetečení zásobníku threadu: použito %ld z %ld. Použijte 'mysqld -O thread_stack=#' k zadání většího zásobníku",-A
|
||||
"V OUTER JOIN byl nalezen k-Břížový odkaz. Prověřte ON podmínky",-A
|
||||
"Sloupec '%-.32s' je pou-Bžit s UNIQUE nebo INDEX, ale není definován jako NOT NULL",-A
|
||||
"Nemohu na-Bčíst funkci '%-.64s'",-A
|
||||
"Nemohu inicializovat funkci '%-.64s'; %-.80s",
|
||||
"Pro sdílenou knihovnu nejsou povoleny cesty",
|
||||
"Funkce '%-.64s' již existuje",
|
||||
"Nemohu otevřít sdílenou knihovnu '%-.64s' (errno: %d %s)",
|
||||
"Nemohu najít funkci '%-.64s' v knihovně'",
|
||||
"Funkce '%-.64s' není definována",
|
||||
"Stroj '%-.64s' je zablokován kvůli mnoha chybám při připojování. Odblokujete použitím 'mysqladmin flush-hosts'",
|
||||
"Stroj '%-.64s' nemá povoleno se k tomuto MySQL serveru připojit",
|
||||
"Používáte MySQL jako anonymní uživatel a anonymní uživatelé nemají povoleno měnit hesla",
|
||||
"Na změnu hesel ostatním musíte mít právo provést update tabulek v databázi mysql",
|
||||
"V tabulce user není žádný odpovídající řádek",
|
||||
"Nalezených řádků: %ld Změněno: %ld Varování: %ld",
|
||||
"Nemohu vytvořit nový thread (errno %d). Pokud je ještě nějaká volná paměť, podívejte se do manuálu na část o chybách specifických pro jednotlivé operační systémy",
|
||||
"Počet sloupců neodpovídá počtu hodnot na řádku %ld",
|
||||
"Nemohu znovuotevřít tabulku: '%-.64s',
|
||||
"Neplatné užití hodnoty NULL",
|
||||
"Regulární výraz vrátil chybu '%-.64s'",
|
||||
"Pokud není žádná GROUP BY klauzule, není dovoleno současné použití GROUP položek (MIN(),MAX(),COUNT()...) s ne GROUP položkami",
|
||||
"Neexistuje odpovídající grant pro uživatele '%-.32s' na stroji '%-.64s'",
|
||||
"%-.16s příkaz nepřístupný pro uživatele: '%-.32s@%-.64s' pro tabulku '%-.64s'",
|
||||
"%-.16s příkaz nepřístupný pro uživatele: '%-.32s@%-.64s' pro sloupec '%-.64s' v tabulce '%-.64s'",
|
||||
"Neplatný příkaz GRANT/REVOKE. Prosím, přečtěte si v manuálu, jaká privilegia je možné použít.",
|
||||
"Argument příkazu GRANT uživatel nebo stroj je příliš dlouhý",
|
||||
"Pro sd-Bílenou knihovnu nejsou povoleny cesty",-A
|
||||
"Funkce '%-.64s' ji-Bž existuje",-A
|
||||
"Nemohu otev-Břít sdílenou knihovnu '%-.64s' (errno: %d %s)",-A
|
||||
"Nemohu naj-Bít funkci '%-.64s' v knihovně'",-A
|
||||
"Funkce '%-.64s' nen-Bí definována",-A
|
||||
"Stroj '%-.64s' je zablokov-Bán kvůli mnoha chybám při připojování. Odblokujete použitím 'mysqladmin flush-hosts'",-A
|
||||
"Stroj '%-.64s' nem-Bá povoleno se k tomuto MySQL serveru připojit",-A
|
||||
"Pou-Bžíváte MySQL jako anonymní uživatel a anonymní uživatelé nemají povoleno měnit hesla",-A
|
||||
"Na zm-Běnu hesel ostatním musíte mít právo provést update tabulek v databázi mysql",-A
|
||||
"V tabulce user nen-Bí žádný odpovídající řádek",-A
|
||||
"Nalezen-Bých řádků: %ld Změněno: %ld Varování: %ld",-A
|
||||
"Nemohu vytvo-Břit nový thread (errno %d). Pokud je ještě nějaká volná paměť, podívejte se do manuálu na část o chybách specifických pro jednotlivé operační systémy",-A
|
||||
"Po-Bčet sloupců neodpovídá počtu hodnot na řádku %ld",-A
|
||||
"Nemohu znovuotev-Břít tabulku: '%-.64s',-A
|
||||
"Neplatn-Bé užití hodnoty NULL",-A
|
||||
"Regul-Bární výraz vrátil chybu '%-.64s'",-A
|
||||
"Pokud nen-Bí žádná GROUP BY klauzule, není dovoleno současné použití GROUP položek (MIN(),MAX(),COUNT()...) s ne GROUP položkami",-A
|
||||
"Neexistuje odpov-Bídající grant pro uživatele '%-.32s' na stroji '%-.64s'",-A
|
||||
"%-.16s p-Bříkaz nepřístupný pro uživatele: '%-.32s@%-.64s' pro tabulku '%-.64s'",-A
|
||||
"%-.16s p-Bříkaz nepřístupný pro uživatele: '%-.32s@%-.64s' pro sloupec '%-.64s' v tabulce '%-.64s'",-A
|
||||
"Neplatn-Bý příkaz GRANT/REVOKE. Prosím, přečtěte si v manuálu, jaká privilegia je možné použít.",-A
|
||||
"Argument p-Bříkazu GRANT uživatel nebo stroj je příliš dlouhý",-A
|
||||
"Tabulka '%-64s.%s' neexistuje",
|
||||
"Neexistuje odpovídající grant pro uživatele '%-.32s' na stroji '%-.64s' pro tabulku '%-.64s'",
|
||||
"Použitý příkaz není v této verzi MySQL povolen",
|
||||
"Vaše syntaxe je nějaká divná",
|
||||
"Zpožděný insert threadu nebyl schopen získat požadovaný zámek pro tabulku %-.64s",
|
||||
"Příliš mnoho zpožděných threadů",
|
||||
"Zrušeno spojení %ld do databáze: '%-.64s' uživatel: '%-.64s' (%s)",
|
||||
"Zjištěn příchozí packet delší než 'max_allowed_packet'",
|
||||
"Zjištěna chyba při čtení z roury spojení",
|
||||
"Zjištěna chyba fcntl()",
|
||||
"Příchozí packety v chybném pořadí",
|
||||
"Nemohu rozkomprimovat komunikační packet",
|
||||
"Zjištěna chyba při čtení komunikačního packetu",
|
||||
"Zjištěn timeout při čtení komunikačního packetu",
|
||||
"Zjištěna chyba při zápisu komunikačního packetu",
|
||||
"Zjištěn timeout při zápisu komunikačního packetu",
|
||||
"Výsledný řetězec je delší než max_allowed_packet",
|
||||
"Typ použité tabulky nepodporuje BLOB/TEXT sloupce",
|
||||
"Typ použité tabulky nepodporuje AUTO_INCREMENT sloupce",
|
||||
"INSERT DELAYED není možno s tabulkou '%-.64s' použít, protože je zamčená pomocí LOCK TABLES",
|
||||
"Nesprávné jméno sloupce '%-.100s'",
|
||||
"Handler použité tabulky neumí indexovat sloupce '%-.64s'",
|
||||
"Všechny tabulky v MERGE tabulce nejsou definovány stejně",
|
||||
"Kvůli unique constraintu nemozu zapsat do tabulky '%-.64s'",
|
||||
"BLOB sloupec '%-.64s' je použit ve specifikaci klíče bez délky",
|
||||
+"V-Bšechny části primárního klíče musejí být NOT NULL; pokud potřebujete NULL, použijte UNIQUE",-A
|
||||
+"V-Býsledek obsahuje více než jeden řádek",-A
|
||||
+"Tento typ tabulky vy-Bžaduje primární klíč",-A
|
||||
+"Tato verze MySQL nen-Bí zkompilována s podporou RAID",-A
|
||||
+"Update tabulky bez WHERE s kl-Bíčem není v módu bezpečných update dovoleno",-A
|
||||
+"Kl-Bíč '%-.64s' v tabulce '%-.64s' neexistuje",-A
|
||||
+"Nemohu otev-Břít tabulku",-A
|
||||
+"Handler tabulky nepodporuje 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",
|
||||
"Neexistuje odpov-Bídající grant pro uživatele '%-.32s' na stroji '%-.64s' pro tabulku '%-.64s'",-A
|
||||
"Pou-Bžitý příkaz není v této verzi MySQL povolen",-A
|
||||
"Va-Bše syntaxe je nějaká divná",-A
|
||||
"Zpo-Bžděný insert threadu nebyl schopen získat požadovaný zámek pro tabulku %-.64s",-A
|
||||
"P-Bříliš mnoho zpožděných threadů",-A
|
||||
"Zru-Bšeno spojení %ld do databáze: '%-.64s' uživatel: '%-.64s' (%s)",-A
|
||||
"Zji-Bštěn příchozí packet delší než 'max_allowed_packet'",-A
|
||||
"Zji-Bštěna chyba při čtení z roury spojení",-A
|
||||
"Zji-Bštěna chyba fcntl()",-A
|
||||
"P-Bříchozí packety v chybném pořadí",-A
|
||||
"Nemohu rozkomprimovat komunika-Bční packet",-A
|
||||
"Zji-Bštěna chyba při čtení komunikačního packetu",-A
|
||||
"Zji-Bštěn timeout při čtení komunikačního packetu",-A
|
||||
"Zji-Bštěna chyba při zápisu komunikačního packetu",-A
|
||||
"Zji-Bštěn timeout při zápisu komunikačního packetu",-A
|
||||
"V-Býsledný řetězec je delší než max_allowed_packet",-A
|
||||
"Typ pou-Bžité tabulky nepodporuje BLOB/TEXT sloupce",-A
|
||||
"Typ pou-Bžité tabulky nepodporuje AUTO_INCREMENT sloupce",-A
|
||||
"INSERT DELAYED nen-Bí možno s tabulkou '%-.64s' použít, protože je zamčená pomocí LOCK TABLES",-A
|
||||
"Nespr-Bávné jméno sloupce '%-.100s'",-A
|
||||
"Handler pou-Bžité tabulky neumí indexovat sloupce '%-.64s'",-A
|
||||
"V-Bšechny tabulky v MERGE tabulce nejsou definovány stejně",-A
|
||||
"Kv-Bůli unique constraintu nemozu zapsat do tabulky '%-.64s'",-A
|
||||
"BLOB sloupec '%-.64s' je pou-Bžit ve specifikaci klíče bez délky",-A
|
||||
"V-Bšechny části primárního klíče musejí být NOT NULL; pokud potřebujete NULL, použijte UNIQUE",-A
|
||||
"V-Býsledek obsahuje více než jeden řádek",-A
|
||||
"Tento typ tabulky vy-Bžaduje primární klíč",-A
|
||||
"Tato verze MySQL nen-Bí zkompilována s podporou RAID",-A
|
||||
"Update tabulky bez WHERE s kl-Bíčem není v módu bezpečných update dovoleno",-A
|
||||
"Kl-Bíč '%-.64s' v tabulce '%-.64s' neexistuje",-A
|
||||
"Nemohu otev-Břít tabulku",-A
|
||||
"Handler tabulky nepodporuje check/repair",
|
||||
"Proveden-Bí tohoto příkazu není v transakci dovoleno",-A
|
||||
"Chyba %d p-Bři COMMIT",-A
|
||||
"Chyba %d p-Bři ROLLBACK",-A
|
||||
"Chyba %d p-Bři FLUSH_LOGS",-A
|
||||
"Chyba %d p-Bři CHECKPOINT",-A
|
||||
"Spojen-Bí %ld do databáze: '%-.64s' uživatel: '%-.32s' stroj: `%-.64s' (%-.64s) bylo přerušeno",-A
|
||||
"Handler tabulky nepodporuje bin-Bární dump",-A
|
||||
"Binlog uzav-Břen při pokusu o FLUSH MASTER",-A
|
||||
"P-Břebudování indexu dumpnuté tabulky '%-.64s' nebylo úspěšné",-A
|
||||
"Chyba masteru: '%-.64s'",
|
||||
"S-Bíťová chyba při čtení z masteru",-A
|
||||
"S-Bíťová chyba při zápisu na master",-A
|
||||
"-BŽádný sloupec nemá vytvořen fulltextový index",-A
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
|
|
Binary file not shown.
|
@ -196,3 +196,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -197,3 +197,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -196,3 +196,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"Errore di rete ricevendo dal master",
|
||||
"Errore di rete inviando al master",
|
||||
"Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
|
|
Binary file not shown.
|
@ -195,3 +195,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
|
@ -195,3 +195,4 @@
|
|||
"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",
|
||||
|
|
|
@ -195,3 +195,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -197,3 +197,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -197,3 +197,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -196,3 +196,4 @@
|
|||
"Net error reading from master",
|
||||
"Net error writing to master",
|
||||
"FULLTEXT ÉÎÄÅËÓ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÚÁÄÁÎÎÏÍÕ ÓÐÉÓËÕ ÓÔÏÌÂÃÏ×, ÎÅ ÎÁÊÄÅÎ",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
|
|
Binary file not shown.
|
@ -201,3 +201,4 @@
|
|||
"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",
|
||||
|
|
Binary file not shown.
|
@ -194,3 +194,4 @@
|
|||
"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",
|
||||
|
|
|
@ -193,3 +193,5 @@
|
|||
"Fick nätverksfel vid läsning från master",
|
||||
"Fick nätverksfel vid skrivning till master",
|
||||
"Hittar inte ett FULLTEXT index i kolumnlist",
|
||||
#ER_LOCK_OR_ACTIVE_TRANSACTION
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
|
|
Binary file not shown.
|
@ -193,3 +193,4 @@
|
|||
"Fick nätverksfel vid läsning från master",
|
||||
"Fick nätverksfel vid skrivning till master",
|
||||
"Hittar inte ett FULLTEXT index i kolumnlist",
|
||||
"Can't execute the given command because you have active locked tables or an active transaction",
|
||||
|
|
22
sql/slave.cc
22
sql/slave.cc
|
@ -406,7 +406,7 @@ static int init_slave_thread(THD* thd)
|
|||
|
||||
if (init_thr_lock() ||
|
||||
my_pthread_setspecific_ptr(THR_THD, thd) ||
|
||||
my_pthread_setspecific_ptr(THR_MALLOC, &thd->alloc) ||
|
||||
my_pthread_setspecific_ptr(THR_MALLOC, &thd->mem_root) ||
|
||||
my_pthread_setspecific_ptr(THR_NET, &thd->net))
|
||||
{
|
||||
close_connection(&thd->net,ER_OUT_OF_RESOURCES); // is this needed?
|
||||
|
@ -422,7 +422,7 @@ static int init_slave_thread(THD* thd)
|
|||
VOID(pthread_sigmask(SIG_UNBLOCK,&set,&thd->block_signals));
|
||||
#endif
|
||||
|
||||
thd->alloc.free=thd->alloc.used=0;
|
||||
thd->mem_root.free=thd->mem_root.used=0; // Probably not needed
|
||||
if (thd->max_join_size == (ulong) ~0L)
|
||||
thd->options |= OPTION_BIG_SELECTS;
|
||||
|
||||
|
@ -557,7 +557,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
|||
{
|
||||
Query_log_event* qev = (Query_log_event*)ev;
|
||||
int q_len = qev->q_len;
|
||||
init_sql_alloc(&thd->alloc, 8192);
|
||||
init_sql_alloc(&thd->mem_root, 8192);
|
||||
thd->db = (char*)qev->db;
|
||||
if(db_ok(thd->db, replicate_do_db, replicate_ignore_db))
|
||||
{
|
||||
|
@ -602,13 +602,13 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
|||
thd->db = 0;// prevent db from being freed
|
||||
thd->query = 0; // just to be sure
|
||||
close_thread_tables(thd);
|
||||
free_root(&thd->alloc);
|
||||
if(thd->query_error)
|
||||
{
|
||||
sql_print_error("Slave: error running query '%s' ",
|
||||
qev->query);
|
||||
return 1;
|
||||
}
|
||||
free_root(&thd->mem_root);
|
||||
if (thd->query_error)
|
||||
{
|
||||
sql_print_error("Slave: error running query '%s' ",
|
||||
qev->query);
|
||||
return 1;
|
||||
}
|
||||
delete ev;
|
||||
|
||||
if(thd->fatal_error)
|
||||
|
@ -626,7 +626,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
|
|||
case LOAD_EVENT:
|
||||
{
|
||||
Load_log_event* lev = (Load_log_event*)ev;
|
||||
init_sql_alloc(&thd->alloc, 8192);
|
||||
init_sql_alloc(&thd->mem_root, 8192);
|
||||
thd->db = (char*)lev->db;
|
||||
thd->query = 0;
|
||||
thd->query_error = 0;
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <io.h>
|
||||
#endif
|
||||
|
||||
#define MAX_DBKEY_LENGTH (FN_LEN*2+2)
|
||||
|
||||
static int key_cache_used=0;
|
||||
TABLE *unused_tables; /* Used by mysql_test */
|
||||
HASH open_cache; /* Used by mysql_test */
|
||||
|
@ -120,7 +118,7 @@ static byte *cache_key(const byte *record,uint *length,
|
|||
|
||||
void table_cache_init(void)
|
||||
{
|
||||
VOID(hash_init(&open_cache,table_cache_size,0,0,cache_key,
|
||||
VOID(hash_init(&open_cache,table_cache_size+16,0,0,cache_key,
|
||||
(void (*)(void*)) free_cache_entry,0));
|
||||
mysql_rm_tmp_tables();
|
||||
}
|
||||
|
@ -1234,7 +1232,7 @@ void close_old_data_files(THD *thd, TABLE *table, bool abort_locks)
|
|||
if the table is closed
|
||||
*/
|
||||
|
||||
static bool table_is_used(TABLE *table)
|
||||
bool table_is_used(TABLE *table)
|
||||
{
|
||||
do
|
||||
{
|
||||
|
@ -2171,4 +2169,3 @@ int setup_ftfuncs(THD *thd,TABLE_LIST *tables, List<Item_func_match> &ftfuncs)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ THD::THD()
|
|||
net.vio=0;
|
||||
ull=0;
|
||||
system_thread=0;
|
||||
bzero((char*) &alloc,sizeof(alloc));
|
||||
bzero((char*) &mem_root,sizeof(mem_root));
|
||||
#ifdef __WIN__
|
||||
real_id = 0 ;
|
||||
#endif
|
||||
|
@ -154,7 +154,7 @@ THD::~THD()
|
|||
safeFree(user);
|
||||
safeFree(db);
|
||||
safeFree(ip);
|
||||
free_root(&alloc);
|
||||
free_root(&mem_root);
|
||||
mysys_var=0; // Safety (shouldn't be needed)
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -165,11 +165,10 @@ THD::~THD()
|
|||
bool THD::store_globals()
|
||||
{
|
||||
return (my_pthread_setspecific_ptr(THR_THD, this) ||
|
||||
my_pthread_setspecific_ptr(THR_MALLOC, &alloc) ||
|
||||
my_pthread_setspecific_ptr(THR_MALLOC, &mem_root) ||
|
||||
my_pthread_setspecific_ptr(THR_NET, &net));
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Functions to provide a interface to select results
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -223,7 +223,7 @@ class THD :public ilink {
|
|||
public:
|
||||
NET net;
|
||||
LEX lex;
|
||||
MEM_ROOT alloc;
|
||||
MEM_ROOT mem_root;
|
||||
HASH user_vars;
|
||||
String packet; /* Room for 1 row */
|
||||
struct sockaddr_in remote;
|
||||
|
@ -287,6 +287,19 @@ public:
|
|||
}
|
||||
return last_insert_id;
|
||||
}
|
||||
inline bool active_transaction() { return transaction.bdb_tid != 0; }
|
||||
inline gptr alloc(unsigned int size) { return alloc_root(&mem_root,size); }
|
||||
inline gptr calloc(unsigned int size)
|
||||
{
|
||||
gptr ptr;
|
||||
if ((ptr=alloc_root(&mem_root,size)))
|
||||
bzero((char*) ptr,size);
|
||||
return ptr;
|
||||
}
|
||||
inline char *strdup(const char *str)
|
||||
{ return strdup_root(&mem_root,str); }
|
||||
inline char *memdup(const char *str, unsigned int size)
|
||||
{ return memdup_root(&mem_root,str,size); }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1215,14 +1215,19 @@ void select_insert::send_error(uint errcode,const char *err)
|
|||
::send_error(&thd->net,errcode,err);
|
||||
table->file->extra(HA_EXTRA_NO_CACHE);
|
||||
table->file->activate_all_index(thd);
|
||||
ha_rollback(thd);
|
||||
}
|
||||
|
||||
|
||||
bool select_insert::send_eof()
|
||||
{
|
||||
int error;
|
||||
if ((error=table->file->extra(HA_EXTRA_NO_CACHE)) ||
|
||||
(error=table->file->activate_all_index(thd)))
|
||||
int error,error2;
|
||||
if (!(error=table->file->extra(HA_EXTRA_NO_CACHE)))
|
||||
error=table->file->activate_all_index(thd);
|
||||
if ((error2=ha_autocommit_or_rollback(thd,error)) && ! error)
|
||||
error=error2;
|
||||
|
||||
if (error)
|
||||
{
|
||||
table->file->print_error(error,MYF(0));
|
||||
::send_error(&thd->net);
|
||||
|
|
|
@ -46,7 +46,8 @@ enum enum_sql_command {
|
|||
SQLCOM_FLUSH, SQLCOM_KILL, SQLCOM_SHOW_GRANTS, SQLCOM_ANALYZE,
|
||||
SQLCOM_ROLLBACK, SQLCOM_COMMIT, SQLCOM_SLAVE_START, SQLCOM_SLAVE_STOP,
|
||||
SQLCOM_BEGIN, SQLCOM_LOAD_MASTER_TABLE, SQLCOM_SHOW_CREATE,
|
||||
SQLCOM_SHOW_MASTER_STAT, SQLCOM_SHOW_SLAVE_STAT, SQLCOM_CHANGE_MASTER
|
||||
SQLCOM_SHOW_MASTER_STAT, SQLCOM_SHOW_SLAVE_STAT, SQLCOM_CHANGE_MASTER,
|
||||
SQLCOM_RENAME_TABLE
|
||||
};
|
||||
|
||||
enum lex_states { STATE_START, STATE_CHAR, STATE_IDENT,
|
||||
|
|
|
@ -773,9 +773,9 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
|
|||
DBUG_ENTER("make_join_statistics");
|
||||
|
||||
table_count=join->tables;
|
||||
stat=(JOIN_TAB*) sql_calloc(sizeof(JOIN_TAB)*table_count);
|
||||
stat_ref=(JOIN_TAB**) sql_alloc(sizeof(JOIN_TAB*)*MAX_TABLES);
|
||||
table_vector=(TABLE**) sql_alloc(sizeof(TABLE**)*(table_count*2));
|
||||
stat=(JOIN_TAB*) join->thd->calloc(sizeof(JOIN_TAB)*table_count);
|
||||
stat_ref=(JOIN_TAB**) join->thd->alloc(sizeof(JOIN_TAB*)*MAX_TABLES);
|
||||
table_vector=(TABLE**) join->thd->alloc(sizeof(TABLE**)*(table_count*2));
|
||||
if (!stat || !stat_ref || !table_vector)
|
||||
DBUG_RETURN(1); // Eom /* purecov: inspected */
|
||||
select=0;
|
||||
|
@ -1832,7 +1832,7 @@ get_best_combination(JOIN *join)
|
|||
|
||||
table_count=join->tables;
|
||||
if (!(join->join_tab=join_tab=
|
||||
(JOIN_TAB*) sql_alloc(sizeof(JOIN_TAB)*table_count)))
|
||||
(JOIN_TAB*) join->thd->alloc(sizeof(JOIN_TAB)*table_count)))
|
||||
return TRUE;
|
||||
|
||||
join->const_tables=0; /* for checking */
|
||||
|
@ -2056,8 +2056,8 @@ make_simple_join(JOIN *join,TABLE *tmp_table)
|
|||
TABLE **tableptr;
|
||||
JOIN_TAB *join_tab;
|
||||
|
||||
if (!(tableptr=(TABLE**) sql_alloc(sizeof(TABLE*))) ||
|
||||
!(join_tab=(JOIN_TAB*) sql_alloc(sizeof(JOIN_TAB))))
|
||||
if (!(tableptr=(TABLE**) join->thd->alloc(sizeof(TABLE*))) ||
|
||||
!(join_tab=(JOIN_TAB*) join->thd->alloc(sizeof(JOIN_TAB))))
|
||||
return TRUE;
|
||||
join->join_tab=join_tab;
|
||||
join->table=tableptr; tableptr[0]=tmp_table;
|
||||
|
|
|
@ -55,7 +55,7 @@ mysqld_show_dbs(THD *thd,const char *wild)
|
|||
char *file_name;
|
||||
DBUG_ENTER("mysqld_show_dbs");
|
||||
|
||||
field->name=(char*) sql_alloc(20+ (wild ? strlen(wild)+4: 0));
|
||||
field->name=(char*) thd->alloc(20+ (wild ? strlen(wild)+4: 0));
|
||||
field->max_length=NAME_LEN;
|
||||
end=strmov(field->name,"Database");
|
||||
if (wild && wild[0])
|
||||
|
@ -92,7 +92,7 @@ int mysqld_show_tables(THD *thd,const char *db,const char *wild)
|
|||
char *file_name;
|
||||
DBUG_ENTER("mysqld_show_tables");
|
||||
|
||||
field->name=(char*) sql_alloc(20+strlen(db)+(wild ? strlen(wild)+4:0));
|
||||
field->name=(char*) thd->alloc(20+strlen(db)+(wild ? strlen(wild)+4:0));
|
||||
end=strxmov(field->name,"Tables_in_",db,NullS);
|
||||
if (wild && wild[0])
|
||||
strxmov(end," (",wild,")",NullS);
|
||||
|
@ -170,7 +170,7 @@ mysql_find_files(THD *thd,List<char> *files, const char *db,const char *path,
|
|||
if (check_grant(thd,TABLE_ACLS,&table_list,1))
|
||||
continue;
|
||||
}
|
||||
if (files->push_back(sql_strdup(file->name)))
|
||||
if (files->push_back(thd->strdup(file->name)))
|
||||
{
|
||||
my_dirend(dirp);
|
||||
DBUG_RETURN(-1);
|
||||
|
@ -868,12 +868,12 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
|
|||
thread_info *thd_info=new thread_info;
|
||||
|
||||
thd_info->thread_id=tmp->thread_id;
|
||||
thd_info->user=sql_strdup(tmp->user ? tmp->user : (tmp->system_thread ?
|
||||
thd_info->user=thd->strdup(tmp->user ? tmp->user : (tmp->system_thread ?
|
||||
"system user" : "unauthenticated user"));
|
||||
thd_info->host=sql_strdup(tmp->host ? tmp->host : (tmp->ip ? tmp->ip :
|
||||
thd_info->host=thd->strdup(tmp->host ? tmp->host : (tmp->ip ? tmp->ip :
|
||||
(tmp->system_thread ? "none" : "connecting host")));
|
||||
if ((thd_info->db=tmp->db)) // Safe test
|
||||
thd_info->db=sql_strdup(thd_info->db);
|
||||
thd_info->db=thd->strdup(thd_info->db);
|
||||
thd_info->command=(int) tmp->command;
|
||||
if (tmp->mysys_var)
|
||||
pthread_mutex_lock(&tmp->mysys_var->mutex);
|
||||
|
@ -902,7 +902,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
|
|||
uint length=strlen(tmp->query);
|
||||
if (length > max_query_length)
|
||||
length=max_query_length;
|
||||
thd_info->query=(char*) sql_memdup(tmp->query,length+1);
|
||||
thd_info->query=(char*) thd->memdup(tmp->query,length+1);
|
||||
thd_info->query[length]=0;
|
||||
}
|
||||
thread_infos.append(thd_info);
|
||||
|
|
|
@ -644,7 +644,7 @@ TABLE *create_table_from_items(THD *thd, HA_CREATE_INFO *create_info,
|
|||
** Alter a table definition
|
||||
****************************************************************************/
|
||||
|
||||
static bool
|
||||
bool
|
||||
mysql_rename_table(enum db_type base,
|
||||
const char *old_db,
|
||||
const char * old_name,
|
||||
|
@ -659,9 +659,17 @@ mysql_rename_table(enum db_type base,
|
|||
(void) sprintf(to,"%s/%s/%s",mysql_data_home,new_db,new_name);
|
||||
fn_format(from,from,"","",4);
|
||||
fn_format(to,to, "","",4);
|
||||
if (file->rename_table((const char*) from,(const char *) to) ||
|
||||
rename_file_ext(from,to,reg_ext))
|
||||
if (file->rename_table((const char*) from,(const char *) to))
|
||||
error=1;
|
||||
else
|
||||
{
|
||||
if (rename_file_ext(from,to,reg_ext))
|
||||
{
|
||||
error=1;
|
||||
/* Restore old file name */
|
||||
file->rename_table((const char*) to,(const char *) from);
|
||||
}
|
||||
}
|
||||
delete file;
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
@ -1412,7 +1420,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||
|
||||
#ifdef __WIN__
|
||||
// Win32 can't rename an open table, so we must close the org table!
|
||||
table_name=sql_strdup(table_name); // must be saved
|
||||
table_name=thd->strdup(table_name); // must be saved
|
||||
if (close_cached_table(thd,table))
|
||||
{ // Aborted
|
||||
VOID(quick_rm_table(new_db_type,new_db,tmp_name));
|
||||
|
|
|
@ -488,7 +488,8 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||
query verb_clause create change select drop insert replace insert2
|
||||
insert_values update delete show describe load alter optimize flush
|
||||
begin commit rollback slave master_def master_defs
|
||||
repair analyze check field_list field_list_item field_spec kill
|
||||
repair analyze check rename
|
||||
field_list field_list_item field_spec kill
|
||||
select_item_list select_item values_list no_braces
|
||||
limit_clause delete_limit_clause fields opt_values values
|
||||
procedure_list procedure_list2 procedure_item
|
||||
|
@ -504,6 +505,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
|
|||
flush_options flush_option insert_lock_option replace_lock_option
|
||||
equal optional_braces opt_key_definition key_usage_list2
|
||||
opt_mi_check_type opt_to mi_check_types normal_join
|
||||
table_to_table_list table_to_table
|
||||
END_OF_INPUT
|
||||
|
||||
%type <NONE>
|
||||
|
@ -539,6 +541,7 @@ verb_clause:
|
|||
| lock
|
||||
| kill
|
||||
| optimize
|
||||
| rename
|
||||
| repair
|
||||
| replace
|
||||
| revoke
|
||||
|
@ -1078,6 +1081,7 @@ opt_place:
|
|||
opt_to:
|
||||
/* empty */ {}
|
||||
| TO_SYM {}
|
||||
| AS {}
|
||||
|
||||
slave:
|
||||
SLAVE START_SYM
|
||||
|
@ -1134,6 +1138,24 @@ optimize:
|
|||
YYABORT;
|
||||
}
|
||||
|
||||
rename:
|
||||
RENAME table_or_tables
|
||||
{
|
||||
Lex->sql_command=SQLCOM_RENAME_TABLE;
|
||||
}
|
||||
table_to_table_list
|
||||
|
||||
table_to_table_list:
|
||||
table_to_table
|
||||
| table_to_table_list ',' table_to_table
|
||||
|
||||
table_to_table:
|
||||
table_ident TO_SYM table_ident
|
||||
{ if (add_table_to_list($1,NULL,TL_IGNORE) ||
|
||||
add_table_to_list($3,NULL,TL_IGNORE))
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
/*
|
||||
** Select : retrieve data from table
|
||||
*/
|
||||
|
|
|
@ -23,6 +23,7 @@ extern "C" {
|
|||
void sql_alloc_error_handler(void)
|
||||
{
|
||||
current_thd->fatal_error=1; /* purecov: inspected */
|
||||
sql_print_error(ER(ER_OUT_OF_RESOURCES));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,10 +38,6 @@ gptr sql_alloc(uint Size)
|
|||
{
|
||||
MEM_ROOT *root=my_pthread_getspecific_ptr(MEM_ROOT*,THR_MALLOC);
|
||||
char *ptr= (char*) alloc_root(root,Size);
|
||||
if (!ptr)
|
||||
{
|
||||
sql_print_error(ER(ER_OUT_OF_RESOURCES));
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
#define ERRMAPP 1 /* Errormap f|r my_error */
|
||||
#define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */
|
||||
#define MAX_DBKEY_LENGTH (FN_LEN*2+2)
|
||||
#define MAX_FIELD_NAME 34 /* Max colum name length +2 */
|
||||
#define MAX_KEY 32 /* Max used keys */
|
||||
#define MAX_REF_PARTS 16 /* Max parts used as ref */
|
||||
|
|
|
@ -224,7 +224,8 @@ int my_strnncoll_sjis(const uchar *s1, int len1, const uchar *s2, int len2)
|
|||
|
||||
int my_strcoll_sjis(const uchar *s1, const uchar *s2)
|
||||
{
|
||||
return (uint) my_strnncoll_sjis(s1,(uint) strlen(s1), s2,(uint) strlen(s2));
|
||||
return (uint) my_strnncoll_sjis(s1,(uint) strlen((char*) s1),
|
||||
s2,(uint) strlen((char*) s2));
|
||||
}
|
||||
|
||||
int my_strnxfrm_sjis(uchar *dest, uchar *src, int len, int srclen)
|
||||
|
@ -245,7 +246,7 @@ int my_strnxfrm_sjis(uchar *dest, uchar *src, int len, int srclen)
|
|||
|
||||
int my_strxfrm_sjis(uchar *dest, uchar *src, int len)
|
||||
{
|
||||
return my_strnxfrm_sjis(dest, src, len, (uint) strlen(src));
|
||||
return my_strnxfrm_sjis(dest, src, len, (uint) strlen((char*) src));
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue