diff options
author | unknown <monty@donna.mysql.com> | 2000-08-21 03:00:52 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-08-21 03:00:52 +0300 |
commit | 55c5016f92383fdf7cd14de4ef3ec5afbb89fd5a (patch) | |
tree | f46edbbf41f400440bde25519820b29885305b1b /sql | |
parent | 259c7ea0f84f25d82ec7b818e5b770f0bc7917d3 (diff) | |
download | mariadb-git-55c5016f92383fdf7cd14de4ef3ec5afbb89fd5a.tar.gz |
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
Diffstat (limited to 'sql')
57 files changed, 395 insertions, 236 deletions
diff --git a/sql/ChangeLog b/sql/ChangeLog index 65a5bca0bf9..0ede1c5ff47 100644 --- a/sql/ChangeLog +++ b/sql/ChangeLog @@ -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 diff --git a/sql/Makefile.am b/sql/Makefile.am index df9236c7e5a..51a9c1e09fc 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -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 \ diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 408e5d941ae..1c236e19bda 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.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 && diff --git a/sql/lock.cc b/sql/lock.cc index b65ae5ddc3e..be942c2ec78 100644 --- a/sql/lock.cc +++ b/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; +} diff --git a/sql/share/czech/errmsg.sys b/sql/share/czech/errmsg.sys Binary files differindex e509b71a857..2c20765abd3 100644 --- a/sql/share/czech/errmsg.sys +++ b/sql/share/czech/errmsg.sys diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt index 7403c915bac..a3ddfefcb71 100644 --- a/sql/share/czech/errmsg.txt +++ b/sql/share/czech/errmsg.txt @@ -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", diff --git a/sql/share/danish/errmsg.sys b/sql/share/danish/errmsg.sys Binary files differindex e59cb624472..fa6e3ed8edc 100644 --- a/sql/share/danish/errmsg.sys +++ b/sql/share/danish/errmsg.sys diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt index 18dd8ce09b8..b711079a2ff 100644 --- a/sql/share/danish/errmsg.txt +++ b/sql/share/danish/errmsg.txt @@ -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", diff --git a/sql/share/dutch/errmsg.sys b/sql/share/dutch/errmsg.sys Binary files differindex 0950a8d9bc4..a48e905103d 100644 --- a/sql/share/dutch/errmsg.sys +++ b/sql/share/dutch/errmsg.sys diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt index 960200aa182..c093c4b8ecc 100644 --- a/sql/share/dutch/errmsg.txt +++ b/sql/share/dutch/errmsg.txt @@ -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", diff --git a/sql/share/english/errmsg.sys b/sql/share/english/errmsg.sys Binary files differindex 7451111fcce..167683fe913 100644 --- a/sql/share/english/errmsg.sys +++ b/sql/share/english/errmsg.sys diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt index 7c456a6f592..5b70e96740f 100644 --- a/sql/share/english/errmsg.txt +++ b/sql/share/english/errmsg.txt @@ -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", diff --git a/sql/share/estonia/errmsg.sys b/sql/share/estonia/errmsg.sys Binary files differindex bd7927bdb5e..ee70248ab8f 100644 --- a/sql/share/estonia/errmsg.sys +++ b/sql/share/estonia/errmsg.sys diff --git a/sql/share/estonia/errmsg.txt b/sql/share/estonia/errmsg.txt index a1614fbd3e8..7bbae9adf86 100644 --- a/sql/share/estonia/errmsg.txt +++ b/sql/share/estonia/errmsg.txt @@ -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", diff --git a/sql/share/french/errmsg.sys b/sql/share/french/errmsg.sys Binary files differindex 6947930f875..477cef2f131 100644 --- a/sql/share/french/errmsg.sys +++ b/sql/share/french/errmsg.sys diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt index 34c488b7129..cf63dc0601d 100644 --- a/sql/share/french/errmsg.txt +++ b/sql/share/french/errmsg.txt @@ -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", diff --git a/sql/share/german/errmsg.sys b/sql/share/german/errmsg.sys Binary files differindex 94c99a9262d..c80a962568c 100644 --- a/sql/share/german/errmsg.sys +++ b/sql/share/german/errmsg.sys diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt index adc69b823b7..5c2c50c1540 100644 --- a/sql/share/german/errmsg.txt +++ b/sql/share/german/errmsg.txt @@ -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", diff --git a/sql/share/greek/errmsg.sys b/sql/share/greek/errmsg.sys Binary files differindex 8fc053c381d..743532a9c75 100644 --- a/sql/share/greek/errmsg.sys +++ b/sql/share/greek/errmsg.sys diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt index b3a17af8ec0..c1db8832650 100644 --- a/sql/share/greek/errmsg.txt +++ b/sql/share/greek/errmsg.txt @@ -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", diff --git a/sql/share/hungarian/errmsg.sys b/sql/share/hungarian/errmsg.sys Binary files differindex df039b66ec3..712262aa093 100644 --- a/sql/share/hungarian/errmsg.sys +++ b/sql/share/hungarian/errmsg.sys diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt index 8e9e04b79b7..e48cab983cf 100644 --- a/sql/share/hungarian/errmsg.txt +++ b/sql/share/hungarian/errmsg.txt @@ -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", diff --git a/sql/share/italian/errmsg.sys b/sql/share/italian/errmsg.sys Binary files differindex f1300819c3c..dde6350ba4b 100644 --- a/sql/share/italian/errmsg.sys +++ b/sql/share/italian/errmsg.sys diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt index 0aa12667b5e..e09b947e06a 100644 --- a/sql/share/italian/errmsg.txt +++ b/sql/share/italian/errmsg.txt @@ -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", diff --git a/sql/share/japanese/errmsg.sys b/sql/share/japanese/errmsg.sys Binary files differindex 1b5547999a5..ae5057dd7e0 100644 --- a/sql/share/japanese/errmsg.sys +++ b/sql/share/japanese/errmsg.sys diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt index da15c0a22f1..5da104479aa 100644 --- a/sql/share/japanese/errmsg.txt +++ b/sql/share/japanese/errmsg.txt @@ -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", diff --git a/sql/share/korean/errmsg.sys b/sql/share/korean/errmsg.sys Binary files differindex 4bd754f1ff5..1f2c93f8e42 100644 --- a/sql/share/korean/errmsg.sys +++ b/sql/share/korean/errmsg.sys diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt index b5f231e1b70..3ac5a9bb2fa 100644 --- a/sql/share/korean/errmsg.txt +++ b/sql/share/korean/errmsg.txt @@ -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", diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt index 75f86103f7c..491f913cb47 100644 --- a/sql/share/norwegian-ny/errmsg.txt +++ b/sql/share/norwegian-ny/errmsg.txt @@ -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", diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt index 7ad97882398..967de6da7fc 100644 --- a/sql/share/norwegian/errmsg.txt +++ b/sql/share/norwegian/errmsg.txt @@ -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", diff --git a/sql/share/polish/errmsg.sys b/sql/share/polish/errmsg.sys Binary files differindex e3879e04810..0b21296d7ee 100644 --- a/sql/share/polish/errmsg.sys +++ b/sql/share/polish/errmsg.sys diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt index b73631afed1..f7b492a32d9 100644 --- a/sql/share/polish/errmsg.txt +++ b/sql/share/polish/errmsg.txt @@ -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", diff --git a/sql/share/portuguese/errmsg.sys b/sql/share/portuguese/errmsg.sys Binary files differindex e9d5d4b9cec..12debe72eaf 100644 --- a/sql/share/portuguese/errmsg.sys +++ b/sql/share/portuguese/errmsg.sys diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt index 466a2cadfd4..f9fbd57c647 100644 --- a/sql/share/portuguese/errmsg.txt +++ b/sql/share/portuguese/errmsg.txt @@ -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", diff --git a/sql/share/romania/errmsg.sys b/sql/share/romania/errmsg.sys Binary files differindex 018333d3e1e..20870bb1fa3 100644 --- a/sql/share/romania/errmsg.sys +++ b/sql/share/romania/errmsg.sys diff --git a/sql/share/romania/errmsg.txt b/sql/share/romania/errmsg.txt index 5d34f32e602..5ef2e630e81 100644 --- a/sql/share/romania/errmsg.txt +++ b/sql/share/romania/errmsg.txt @@ -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", diff --git a/sql/share/russian/errmsg.sys b/sql/share/russian/errmsg.sys Binary files differindex 5ddaf2e2973..439223e4248 100644 --- a/sql/share/russian/errmsg.sys +++ b/sql/share/russian/errmsg.sys diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt index fe12cad035d..634c1f36249 100644 --- a/sql/share/russian/errmsg.txt +++ b/sql/share/russian/errmsg.txt @@ -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", diff --git a/sql/share/slovak/errmsg.sys b/sql/share/slovak/errmsg.sys Binary files differindex c14049c829f..9efe926ff15 100644 --- a/sql/share/slovak/errmsg.sys +++ b/sql/share/slovak/errmsg.sys diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt index 7b5d8f9a015..485fff107ed 100644 --- a/sql/share/slovak/errmsg.txt +++ b/sql/share/slovak/errmsg.txt @@ -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", diff --git a/sql/share/spanish/errmsg.sys b/sql/share/spanish/errmsg.sys Binary files differindex 60c71cb8e8f..e90aac38bc5 100644 --- a/sql/share/spanish/errmsg.sys +++ b/sql/share/spanish/errmsg.sys diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt index 0f16b66f6d8..6a26480f7d4 100644 --- a/sql/share/spanish/errmsg.txt +++ b/sql/share/spanish/errmsg.txt @@ -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", diff --git a/sql/share/swedish/errmsg.OLD b/sql/share/swedish/errmsg.OLD index 0181d0febd6..94055083e54 100644 --- a/sql/share/swedish/errmsg.OLD +++ b/sql/share/swedish/errmsg.OLD @@ -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", diff --git a/sql/share/swedish/errmsg.sys b/sql/share/swedish/errmsg.sys Binary files differindex d48cd88bf7b..ea9ae0f32fd 100644 --- a/sql/share/swedish/errmsg.sys +++ b/sql/share/swedish/errmsg.sys diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt index 0181d0febd6..233a60a5221 100644 --- a/sql/share/swedish/errmsg.txt +++ b/sql/share/swedish/errmsg.txt @@ -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", diff --git a/sql/slave.cc b/sql/slave.cc index afb14dd11c2..a527f3a1485 100644 --- a/sql/slave.cc +++ b/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; diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 983ffef0ace..e4e0bf14a3d 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -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; } - diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 19b9ecdaae0..cdf100cb9a7 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -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 *****************************************************************************/ diff --git a/sql/sql_class.h b/sql/sql_class.h index 2ea18751dea..7e561cf9d80 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -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); } }; diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index fe8264814a6..bd0415aa936 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -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); diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 6fd9f203d52..083bc8a83b5 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -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, diff --git a/sql/sql_select.cc b/sql/sql_select.cc index fb5125ac79f..9c509484b3c 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -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; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 55142e21dad..c027f6397c2 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -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); diff --git a/sql/sql_table.cc b/sql/sql_table.cc index d9e14014189..1440929c98b 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -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)); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 3028990fc95..5cfc05406c4 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -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 */ diff --git a/sql/thr_malloc.cc b/sql/thr_malloc.cc index 8cf4f937546..9273b3eb5a5 100644 --- a/sql/thr_malloc.cc +++ b/sql/thr_malloc.cc @@ -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; } diff --git a/sql/unireg.h b/sql/unireg.h index a0890473de8..988be3d398f 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -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 */ |