Commit 9d120741 authored by monty@donna.mysql.com's avatar monty@donna.mysql.com

Portability fixes

Changed TRUNCATE table_name -> TRUNCATE TABLE table_name
parent a2c2c9dc
......@@ -18849,7 +18849,7 @@ the @code{LIMIT} value.
@section @code{TRUNCATE} Syntax
@example
TRUNCATE table_name
TRUNCATE TABLE table_name
@end example
Is in 3.23 and the same thing as @code{DELETE FROM table_name}. @xref{DELETE}.
......@@ -18860,7 +18860,7 @@ The differences are:
Implemented as a drop and re-create of the table, which makes this
much faster when deleting many rows.
@item
Not transaction-safe; @code{TRUNCATE} will automaticly end the current
Not transaction-safe; @code{TRUNCATE TABLE} will automaticly end the current
transaction as if @code{COMMIT} would have been called.
@item
Doesn't return the number of deleted rows.
......@@ -27519,7 +27519,7 @@ This can be done with the following code:
@example
mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> TRUNCATE insert_table;
mysql> TRUNCATE TABLE insert_table;
mysql> UNLOCK TABLES;
@end example
......@@ -28411,7 +28411,7 @@ it is very important to @code{OPTIMIZE TABLE} sometimes.
@subsection Speed of @code{DELETE} Queries
If you want to delete all rows in the table, you should use
@code{TRUNCATE table_name}. @xref{TRUNCATE}.
@code{TRUNCATE TABLE table_name}. @xref{TRUNCATE}.
The time to delete a record is exactly proportional to the number of
indexes. To delete records more quickly, you can increase the size of
......@@ -31651,11 +31651,11 @@ Use the table description file to create new (empty) data and index files:
@example
shell> mysql db_name
mysql> SET AUTOCOMMIT=1;
mysql> TRUNCATE table_name;
mysql> TRUNCATE TABLE table_name;
mysql> quit
@end example
If your SQL version doesn't have @code{TRUNCATE}, use @code{DELETE FROM
If your SQL version doesn't have @code{TRUNCATE TABLE}, use @code{DELETE FROM
table_name} instead.
@item
......@@ -40987,6 +40987,10 @@ not yet 100 % confident in this code.
@appendixsubsec Changes in release 3.23.33
@itemize bullet
@item
Changed @code{TRUNCATE table_name} to @code{TRUNCATE TABLE table_name}
to use the same syntax as Oracle. Until 4.0 we will also allow
@code{TRUNCATE table_name} to not crash old code.
@item
Fixed 'no found rows' bug in @code{MyISAM} tables when a @code{BLOB} was
first part of a multi-part key.
@item
......@@ -41,6 +41,9 @@
const char *VER="11.12";
/* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH 1024
gptr sql_alloc(unsigned size); // Don't use mysqld alloc for these
void sql_element_free(void *ptr);
#include "sql_string.h"
......@@ -1546,7 +1549,8 @@ print_table_data(MYSQL_RES *result)
(void) tee_fputs("|", PAGER);
for (uint off=0; (field = mysql_fetch_field(result)) ; off++)
{
tee_fprintf(PAGER, " %-*s|",field->max_length,field->name);
tee_fprintf(PAGER, " %-*s|",min(field->max_length,MAX_COLUMN_LENGTH),
field->name);
num_flag[off]= IS_NUM(field->type);
}
(void) tee_fputs("\n", PAGER);
......@@ -1559,10 +1563,16 @@ print_table_data(MYSQL_RES *result)
mysql_field_seek(result,0);
for (uint off=0 ; off < mysql_num_fields(result); off++)
{
const char *str=cur[off] ? cur[off] : "NULL";
field = mysql_fetch_field(result);
uint length=field->max_length;
if (length > MAX_COLUMN_LENGTH)
{
tee_fputs(str,PAGER); tee_fputs(" |",PAGER);
}
else
tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|",
length,cur[off] ? (char*) cur[off] : "NULL");
length, str);
}
(void) tee_fputs("\n", PAGER);
}
......
......@@ -18,6 +18,10 @@
/* thread safe version of some common functions */
/* for thread safe my_inet_ntoa */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if !defined(MSDOS) && !defined(__WIN__) && !defined(__BEOS__)
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
......@@ -31,3 +35,7 @@
#endif /* !defined(MSDOS) && !defined(__WIN__) */
void my_inet_ntoa(struct in_addr in, char *buf);
#ifdef __cplusplus
}
#endif
......@@ -2,7 +2,7 @@
# Test of truncate
#
create table t1 (a integer, b integer,c1 CHAR(10));
truncate t1;
truncate table t1;
select count(*) from t1;
insert into t1 values(1,2,"test");
select count(*) from t1;
......
......@@ -41,6 +41,7 @@
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
#include <time.h>
#if defined (HAVE_SELECT)
# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX)
# include <sys/time.h>
......
......@@ -9,6 +9,7 @@ system=@SYSTEM_TYPE@
version=@VERSION@
export machine system version
SOURCE=`pwd`
CP="cp -p"
# Debug option must come first
DEBUG=0
......@@ -57,7 +58,7 @@ chmod o-rwx $BASE/data $BASE/data/*
for i in sql/ChangeLog COPYING COPYING.LIB README Docs/INSTALL-BINARY \
Docs/manual.html Docs/manual.txt Docs/manual_toc.html
do
cp -p $i $BASE
$CP $i $BASE
done
for i in extra/comp_err extra/replace extra/perror extra/resolveip \
......@@ -70,7 +71,7 @@ for i in extra/comp_err extra/replace extra/perror extra/resolveip \
do
if [ -f $i ]
then
cp -p $i $BASE/bin
$CP $i $BASE/bin
fi
done
strip $BASE/bin/*
......@@ -79,7 +80,7 @@ for i in sql/mysqld.sym.gz
do
if [ -f $i ]
then
cp -p $i $BASE/bin
$CP $i $BASE/bin
fi
done
......@@ -87,27 +88,27 @@ for i in libmysql/.libs/libmysqlclient.a libmysql/.libs/libmysqlclient.so* libmy
do
if [ -f $i ]
then
cp -p $i $BASE/lib
$CP $i $BASE/lib
fi
done
cp -p config.h include/* $BASE/include
$CP config.h include/* $BASE/include
rm $BASE/include/Makefile*; rm $BASE/include/*.in
cp -p tests/*.res tests/*.tst tests/*.pl $BASE/tests
cp -p support-files/* $BASE/support-files
$CP tests/*.res tests/*.tst tests/*.pl $BASE/tests
$CP support-files/* $BASE/support-files
cp -r -p sql/share/* $BASE/share/mysql
$CP -r sql/share/* $BASE/share/mysql
rm -f $BASE/share/mysql/Makefile* $BASE/share/mysql/*/*.OLD
cp -p mysql-test/mysql-test-run mysql-test/install_test_db $BASE/mysql-test/
cp -p mysql-test/README $BASE/mysql-test/README
cp -p mysql-test/include/*.inc $BASE/mysql-test/include
cp -p mysql-test/std_data/*.dat $BASE/mysql-test/std_data
cp -p mysql-test/t/*.test mysql-test/t/*.opt $BASE/mysql-test/t
cp -p mysql-test/r/*.result mysql-test/r/*.require $BASE/mysql-test/r
$CP mysql-test/mysql-test-run mysql-test/install_test_db $BASE/mysql-test/
$CP mysql-test/README $BASE/mysql-test/README
$CP mysql-test/include/*.inc $BASE/mysql-test/include
$CP mysql-test/std_data/*.dat $BASE/mysql-test/std_data
$CP mysql-test/t/*.test mysql-test/t/*.opt $BASE/mysql-test/t
$CP mysql-test/r/*.result mysql-test/r/*.require $BASE/mysql-test/r
cp -p scripts/* $BASE/bin
$CP scripts/* $BASE/bin
rm -f $BASE/bin/Makefile* $BASE/bin/*.in $BASE/bin/*.sh $BASE/bin/mysql_install_db $BASE/bin/make_binary_distribution $BASE/bin/setsomevars $BASE/support-files/Makefile* $BASE/support-files/*.sh
$BASE/bin/replace \@localstatedir\@ ./data \@bindir\@ ./bin \@scriptdir\@ ./bin \@libexecdir\@ ./bin \@sbindir\@ ./bin \@prefix\@ . \@HOSTNAME\@ @HOSTNAME@ < $SOURCE/scripts/mysql_install_db.sh > $BASE/scripts/mysql_install_db
......@@ -116,7 +117,7 @@ $BASE/bin/replace /my/gnu/bin/hostname /bin/hostname -- $BASE/bin/safe_mysqld
mv $BASE/support-files/binary-configure $BASE/configure
chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-* $BASE/configure
cp -r -p sql-bench/* $BASE/sql-bench
$CP -r sql-bench/* $BASE/sql-bench
rm -f $BASE/sql-bench/*.sh $BASE/sql-bench/Makefile* $BASE/lib/*.la
# Clean up if we did this from a bk tree
......@@ -143,7 +144,7 @@ then
then
print "Warning: Couldn't find libgcc.a!"
else
cp -p $gcclib libmygcc.a
$CP $gcclib libmygcc.a
fi
cd $SOURCE
fi
......
......@@ -329,7 +329,7 @@ $dbh->do("drop table crash_q $drop_attr");
report("truncate","truncate_table",
"create table crash_q (a integer, b integer,c1 CHAR(10))",
"truncate crash_q",
"truncate table crash_q",
"drop table crash_q $drop_attr");
if ($dbh->do("create table crash_q (a integer, b integer,c1 CHAR(10))") &&
......
......@@ -38,6 +38,8 @@
#include "mysqld_error.h"
#include "errmsg.h"
#include <violite.h>
extern "C" { // Because of SCO 3.2V4.2
#include <sys/stat.h>
#include <signal.h>
#ifdef HAVE_PWD_H
......@@ -65,6 +67,7 @@
#define INADDR_NONE -1
#endif
}
static void mc_end_server(MYSQL *mysql);
static int mc_sock_connect(File s, const struct sockaddr *name, uint namelen, uint to);
......
......@@ -34,9 +34,7 @@
#define ONE_THREAD
#endif
#ifdef __cplusplus
extern "C" { // Because of SCO 3.2V4.2
#endif
#include <errno.h>
#include <sys/stat.h>
#ifndef __GNU_LIBRARY__
......@@ -104,9 +102,8 @@ inline void reset_floating_point_exceptions()
#define reset_floating_point_exceptions()
#endif /* __FreeBSD__ && HAVE_IEEEFP_H */
#ifdef __cplusplus
}
#endif
} /* cplusplus */
#if defined(HAVE_LINUXTHREADS)
#define THR_KILL_SIGNAL SIGINT
......
......@@ -84,7 +84,7 @@
"%s: Afsluiten afgedwongen van thread %ld gebruiker: '%-.64s'\n",
"Kan IP-socket niet openen",
"Tabel '%-.64s' heeft geen INDEX zoals deze gemaakt worden met CREATE INDEX. Maak de tabel opnieuw",
"De argumenten om velden te scheiden zijn anders dan verwacht. Controleer de handleiding","
"De argumenten om velden te scheiden zijn anders dan verwacht. Controleer de handleiding",
"Bij het gebruik van BLOBs is het niet mogelijk om vaste rijlengte te gebruiken. Maak s.v.p. gebruik van 'fields terminated by'.",
"Het bestand '%-.64s' dient in de database directory voor the komen of leesbaar voor iedereen te zijn.",
"Het bestand '%-.64s' bestaat reeds",
......
......@@ -84,7 +84,7 @@
"%s: Forcing close of thread %ld user: '%-.32s'\n",
"Can't create IP socket",
"Table '%-.64s' has no index like the one used in CREATE INDEX. Recreate the table",
"Field separator argument is not what is expected. Check the manual","
"Field separator argument is not what is expected. Check the manual",
"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'.",
"The file '%-.64s' must be in the database directory or be readable by all",
"File '%-.80s' already exists",
......
......@@ -84,7 +84,7 @@
"%s: thread %ld user: '%-.64s'\n",
" IP socket",
" '%-.64s' (index) CREATE INDEX. , ",
" . manual","
" . manual",
" fixed rowlength BLOBs. 'fields terminated by'.",
" '%-.64s' database directory ",
" '%-.64s' ",
......
......@@ -86,7 +86,7 @@
"%s: A(z) %ld thread kenyszeritett zarasa. Felhasznalo: '%-.64s'\n",
"Az IP socket nem hozhato letre",
"A(z) '%-.64s' tablahoz nincs meg a CREATE INDEX altal hasznalt index. Alakitsa at a tablat",
"A mezoelvalaszto argumentumok nem egyeznek meg a varttal. Nezze meg a kezikonyvben!","
"A mezoelvalaszto argumentumok nem egyeznek meg a varttal. Nezze meg a kezikonyvben!",
"Fix hosszusagu BLOB-ok nem hasznalhatok. Hasznalja a 'mezoelvalaszto jelet' .",
"A(z) '%-.64s'-nak az adatbazis konyvtarban kell lennie, vagy mindenki szamara olvashatonak",
"A '%-.64s' file mar letezik.",
......
......@@ -23,7 +23,7 @@
"Impossibile cambiare la directory in '%-.64s' (errno: %d)",
"Il record e` cambiato dall'ultima lettura della tabella '%-.64s'",
"Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio....",
"Impossibile scrivere, chiave duplicata nella tabella '%-.64s'",
"Scrittura impossibile: chiave duplicata nella tabella '%-.64s'",
"Errore durante la chiusura di '%-.64s' (errno: %d)",
"Errore durante la lettura del file '%-.64s' (errno: %d)",
"Errore durante la rinominazione da '%-.64s' a '%-.64s' (errno: %d)",
......@@ -43,7 +43,7 @@
"Fine del file inaspettata durante la lettura del file '%-.64s' (errno: %d)",
"Troppe connessioni",
"Fine dello spazio/memoria per i thread",
"Impossibile risalire al nome dell'host dal tuo indirizzo",
"Impossibile risalire al nome dell'host dall'indirizzo (risoluzione inversa)",
"Negoziazione impossibile",
"Accesso non consentito per l'utente: '%-.32s@%-.64s' al database '%-.64s'",
"Accesso non consentito per l'utente: '%-.32s@%-.64s' (Password: %s)",
......@@ -74,7 +74,7 @@
"Troppe parti di chiave specificate. Sono ammesse max %d parti",
"La chiave specificata e` troppo lunga. La max lunghezza della chiave e` %d",
"La colonna chiave '%-.64s' non esiste nella tabella",
"La colonna Blob '%-.64s' non puo` essere usata nella specifica della chiave",
"La colonna BLOB '%-.64s' non puo` essere usata nella specifica della chiave",
"La colonna '%-.64s' e` troppo grande (max=%d). Utilizza un BLOB.",
"Puo` esserci solo un campo AUTO e deve essere definito come chiave",
"%s: Pronto per le connessioni\n",
......@@ -102,7 +102,7 @@
"Impossibile generare un nome del file log unico %-.64s.(1-999)\n",
"La tabella '%-.64s' e` soggetta a lock in lettura e non puo` essere aggiornata",
"Non e` stato impostato il lock per la tabella '%-.64s' con LOCK TABLES",
"Il campo Blob '%-.64s' non puo` avere un valore di default",
"Il campo BLOB '%-.64s' non puo` avere un valore di default",
"Nome database errato '%-.100s'",
"Nome tabella errato '%-.100s'",
"La SELECT dovrebbe esaminare troppi record e usare troppo tempo. Controllare la WHERE e usa SET OPTION SQL_BIG_SELECTS=1 se e` tutto a posto.",
......@@ -151,7 +151,7 @@
"GRANT non definita per l'utente '%-.32s' dalla macchina '%-.64s' sulla tabella '%-.64s'",
"Il comando utilizzato non e` supportato in questa versione di MySQL",
"Errore di sintassi nella query SQL",
"Il thread di inserimento ritardato non riesce ad avere il lock per la tabella %-.64s",
"Il thread di inserimento ritardato non riesce ad ottenere il lock per la tabella %-.64s",
"Troppi threads ritardati in uso",
"Interrotta la connessione %ld al db: '%-.64s' utente: '%-.64s' (%s)",
"Ricevuto un pacchetto piu` grande di 'max_allowed_packet'",
......@@ -171,34 +171,34 @@
"Il gestore delle tabelle non puo` indicizzare la colonna '%-.64s'",
"Non tutte le tabelle nella tabella di MERGE sono definite in maniera identica",
"Impossibile scrivere nella tabella '%-.64s' per limitazione di unicita`",
"La colonna '%-.64s' di tipo BLOB e' usata in una chiave senza specificarne la lunghezza",
"Tutte le parti di una chiave primaria devono essere dichiarate NOT NULL; se hai bisogno del valore NULL in una chiave usa UNIQUE",
"Il risultato consiste di piu' di una riga",
"La colonna '%-.64s' di tipo BLOB e` usata in una chiave senza specificarne la lunghezza",
"Tutte le parti di una chiave primaria devono essere dichiarate NOT NULL; se necessitano valori NULL nelle chiavi utilizzare UNIQUE",
"Il risultato consiste di piu` di una riga",
"Questo tipo di tabella richiede una chiave primaria",
"Questa versione di MYSQL non e' compilata con il supporto RAID",
"Stai il modo 'safe update' e hai provato ad aggiornare una tabella senza una WHERE che usi una chiave",
"Questa versione di MYSQL non e` compilata con il supporto RAID",
"In modalita` 'safe update' si e` cercato di aggiornare una tabella senza clausola WHERE su una chiave",
"La chiave '%-.64s' non esiste nella tabella '%-.64s'",
"Impossibile aprire la tabella",
"Il gestore per la tabella non supporta il controllo/riparazione",
"Non puoi eseguire questo comando in una transazione",
"Rilevato l'errore %d durante la COMMIT",
"Rilevato l'errore %d durante il COMMIT",
"Rilevato l'errore %d durante il ROLLBACK",
"Rilevato l'errore %d durante il FLUSH_LOGS",
"Rilevato l'errore %d durante il CHECKPOINT",
"Abortita la connessione %ld al db: ''%-.64s' utente: '%-.32s' host: '%-.64s' (%-.64s)",
"Interrotta la connessione %ld al db: ''%-.64s' utente: '%-.32s' host: '%-.64s' (%-.64s)",
"Il gestore per la tabella non supporta il dump binario",
"Binlog e' stato chiuso mentre provavo ad eseguire FLUSH MASTER",
"Binlog e` stato chiuso durante l'esecuzione del FLUSH MASTER",
"Fallita la ricostruzione dell'indice della tabella copiata '%-.64s'",
"Errore dal master: '%-.64s",
"Errore di rete ricevendo dal master",
"Errore di rete inviando al master",
"Errore di rete durante la ricezione dal master",
"Errore di rete durante l'invio 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",
"Impossibile eseguire il comando richiesto: tabelle sotto lock o transazione in atto",
"Variabile di sistema '%-.64' sconosciuta",
"La tabella '%-.64s' e' segnalata come rovinata e deve essere riparata",
"La tabella '%-.64s' e' segnalata come rovinata e l'ultima ricostruzione (automatica?) e' fallita",
"Warning: Some non-transactional changed tables couldn't be rolled back",
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
"La tabella '%-.64s' e` segnalata come corrotta e deve essere riparata",
"La tabella '%-.64s' e` segnalata come corrotta e l'ultima ricostruzione (automatica?) e` fallita",
"Attenzione: Alcune delle modifiche alle tabelle non transazionali non possono essere ripristinate (roll back impossibile)",
"La transazione a comandi multipli (multi-statement) ha richiesto piu` di 'max_binlog_cache_size' bytes di disco: aumentare questa variabile di mysqld e riprovare',
"This operation cannot be performed with a running slave, run SLAVE STOP first",
"This operation requires a running slave, configure slave and do SLAVE START",
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
......
......@@ -84,7 +84,7 @@
"%s: Forcando a finalizacao da tarefa %ld usuario: '%-.64s'\n",
"Nao foi possivel criar o socket IP",
"Tabela '%-.64s' nao possui um indice criado por CREATE INDEX. Recrie a tabela",
"O separador de campos nao esta conforme esperado. Confira no manual","
"O separador de campos nao esta conforme esperado. Confira no manual",
"Nao e possivel utilizar comprimento de linha fixo com campos binarios. Favor usar 'fields terminated by'.",
"O arquivo '%-.64s' precisa estar no diretorio do banco de dados, e sua leitura permitida a todos",
"Arquivo '%-.64s' ja existe",
......
......@@ -88,7 +88,7 @@
"%s: Terminare fortata a thread-ului %ld utilizatorului: '%-.32s'\n",
"Nu pot crea IP socket",
"Tabela '%-.64s' nu are un index ca acela folosit in CREATE INDEX. Re-creeaza tabela",
"Argumentul pentru separatorul de cimpuri este diferit de ce ma asteptam. Verifica manualul","
"Argumentul pentru separatorul de cimpuri este diferit de ce ma asteptam. Verifica manualul",
"Nu poti folosi lungime de cimp fix pentru BLOB-uri. Foloseste 'fields terminated by'.",
"Fisierul '%-.64s' trebuie sa fie in directorul bazei de data sau trebuie sa poata sa fie citit de catre toata lumea (verifica permisiile)",
"Fisierul '%-.80s' exista deja",
......
......@@ -92,7 +92,7 @@
"%s: nsiln ukonenie vlkna %ld uvatea '%-.64s'\n",
"Nemem vytvori IP socket",
"Tabuka '%-.64s' nem index zodpovedajci CREATE INDEX. Vytvorte tabulku znova",
"Argument oddeova pol nezodpoved poiadavkm. Skontrolujte v manuli","
"Argument oddeova pol nezodpoved poiadavkm. Skontrolujte v manuli",
"Nie je mon poui fixn dku s BLOBom. Pouite 'fields terminated by'.",
"Sbor '%-.64s' mus by v adresri databzy, alebo itaten pre vetkch",
"Sbor '%-.64s' u existuje",
......
......@@ -85,7 +85,7 @@
"%s: Forzando a cerrar el thread %ld usuario: '%-.64s'\n",
"No puedo crear IP socket",
"La tabla '%-.64s' no tiene indice como el usado en CREATE INDEX. Crea de nuevo la table",
"Los separadores de argumentos del campo no son los especificados. Comprueba el manual","
"Los separadores de argumentos del campo no son los especificados. Comprueba el manual",
"No puedes usar longitudes de filas fijos con BLOBs. Por favor usa 'campos terminados por '.",
"El archivo '%-.64s' debe estar en el directorio de la base de datos o ser de lectura por todos",
"El archivo '%-.64s' ya existe",
......
......@@ -2138,10 +2138,14 @@ opt_delete_option:
| LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
truncate:
TRUNCATE_SYM table
TRUNCATE_SYM opt_table_sym table
{ Lex->sql_command= SQLCOM_TRUNCATE; Lex->options=0;
Lex->lock_option= current_thd->update_lock_default; }
opt_table_sym:
/* empty */
| TABLE_SYM
/* Show things */
show: SHOW { Lex->wild=0;} show_param
......
......@@ -49,7 +49,7 @@ CLEANFILES = my-small.cnf \
mysql-@VERSION@.spec: mysql.spec
rm -f $@
cp -p mysql.spec $@
cp mysql.spec $@
SUFFIXES = .sh
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment