manual.de_News.html
MySQL-Referenzhandbuch für Version 4.1.1-alpha - D MySQL-Änderungsverlauf (Change History)
Go to the first, previous, next, last section, table of contents.
Dieser Anhang listet die Änderungen von Version zu Version im
MySQL-Quellcode auf.
Beachten Sie, dass wir versuchen, das Handbuch zeitgleich mit den
Änderungen an MySQL zu aktualisieren. Wenn Sie unten eine Version
aufgelistet sehen, die Sie auf der
MySQL-Download-Seite nicht finden
können, heißt das, dass die Version noch nicht veröffentlicht wurde!
Wir arbeiten mittlerweile aktiv an MySQL 4.0 und werden nur noch kritische
Bug-Bereinigungen für MySQL 3.23 herausgeben. Wir aktualisieren diesen
Abschnitt, wenn wir neue Features hinzufügen, so dass andere unserer
Entwicklung folgen können.
Unser TODO-Abschnitt enthält, was wir für 4.0 planen. See section 2.8 MySQL und die Zukunft (das TODO).
-
Bug in
FLUSH QUERY CACHE behoben.
-
CAST()- und CONVERT()-Funktionen hinzugefügt.
-
Reihenfolge geändert, wie Schlüssel in Tabellen erzeugt werden.
-
Neue Spalten
Null und Index_type zu SHOW INDEX
hinzugefügt.
-
Bug behoben, wenn
HANDLER mit einem nicht unterstützten Tabellentyp
verwendet wurde.
-
mysqldump schreibt jetzt ALTER TABLE tabelle DISABLE KEYS und
ALTER TABLE tabelle DISABLE KEYS in den SQL-Dump.
-
mysql_fix_extensions-Skript hinzugefügt.
-
Stack-Überlaufproblem
LOAD DATA FROM MASTER auf OSF1 behoben.
-
Herunterfahr-Problem auf HPUX behoben.
-
Funktionen
des_encrypt() und des_decrypt() hinzugefügt.
-
Statement FLUSH DES_KEY_FILE hinzugefügt.
-
mysqld-Option
--des-key-file hinzugefügt.
-
HEX(string) gibt jetzt die Buchstaben in der Zeichenkette
konvertiert in hexadezimal zurück.
-
Problem mit
GRANT bei der Benutzung von lower_case_tables ==
1 behoben.
-
SELECT ... IN SHARE MODE in SELECT .. LOCK IN SHARE MODE (wie
in MySQL 3.23) geändert.
-
Ein neuer Anfragen-Cache, der Ergebnisse identischer
SELECT-Anfragen
zwischenspeichert.
-
Coredump-Bug auf 64-Bit-Maschinen beim Erhalt eines falschen
Kommunikationspakets behoben.
-
MATCH ... AGAINST(... IN BOOLEAN MODE) funktioniert jetzt auch ohne
FULLTEXT-Index.
-
Slave, der vom 3.23-Master repliziert, in Ordnung gebracht.
-
Diverse Replikationsprobleme behoben / bereinigt.
-
Herunterfahren funktioniert jetzt auf Mac OS X.
-
`myisam/ft_dump'-Werkzeug zur Low-Level-Inspektion von
FULLTEXT-Indexen hinzugefügt.
-
Bug in
DELETE ... WHERE ... MATCH ... behoben.
-
Unterstützung für
MATCH ... AGAINST(... IN BOOLEAN MODE)
hinzugefügt. Hinweis: Sie müssen Ihre Tabellen mit
ALTER TABLE tabelle TYPE=MyISAM neu aufbauen, um Boole'sche
Volltextsuche benutzen zu können.
-
LOCATE() und INSTR() sind abhängig von der verwendeten
Groß-/Kleinschreibung, wenn keins der Argumente eine binäre Zeichenkette
ist.
-
RND()-Initialisierung geändert, so dass RND(N) und
RND(N+1) verschiedener sind.
-
Coredump-Bug in
UPDATE ... ORDER BY behoben.
-
INSERT INTO .. SELECT geändert, damit es bei Fehlern vorgabemäßig
anhält.
-
DATA DIRECTORY- und INDEX DIRECTORY-Anweisungen werden unter
Windows ignoriert.
-
Boole'sche Volltextsuche hinzugefügt. Diese sollte als frühe Alphaversion
betrachtet werden.
-
MODIFY und CHANGE in ALTER TABLE erweitert, damit sie
das AFTER-Schlüsselwort akzeptieren.
-
Index wird jetzt in
ORDER BY von einer ganzen InnoDB-Tabelle
verwendet.
-
Variablen
ft_min_word_len, ft_max_word_len und
ft_max_word_len_for_sort hinzugefügt.
-
Dokumentation für
libmysqld, die eingebettete
MySQL-Server-Bibliothek, hinzugefügt. Beispielprogramme (ein
mysql-Client und mysqltest-Testprogramm) hinzugefügt, die
libmysqld benutzen.
-
my_thread_init() und my_thread_end() aus mysql_com.h entfernt
und mysql_thread_init() und mysql_thread_end() zu mysql.h
hinzugefügt.
-
Vorzeichenlose
BIGINT-Konstanten funktionieren jetzt. MIN()
und MAX() handhabt vorzeichenbehaftete und vorzeichenlose
BIGINT-Zahlen korrekt.
-
Neuer Zeichensatz
latin_de, der korrektes deutsches Sortieren
ermöglicht.
-
TRUNCATE TABLE und DELETE FROM tabelle sind jetzt separate
Funktionen. Ein Vorteil davon ist, dass DELETE FROM tabelle jetzt
die Anzahl gelöschter Zeilen zurückgibt.
-
DROP DATABASE führt jetzt ein DROP TABLE auf alle Tabellen in
der Datenbank aus, was ein Problem mit InnoDB-Tabellen behebt.
-
Unterstützung für
UNION hinzugefügt.
-
Eine neue
HANDLER-Schnittstelle zu MyISAM-Tabellen.
-
Unterstützung für
INSERT auf MERGE-Tabellen hinzugefügt.
Patch von Benjamin Pflugmann.
-
WEEK(#,0) dem Kalender in den USA angepasst.
-
COUNT(DISTINCT) ist etwa 30% schneller.
-
Alle internen Listen-Handlings in der Geschwindigkeit verbessert.
-
Das Erzeugen von Volltext-Indexen ist jetzt viel schneller.
-
Baum-ähnlicher Cache, um Massen-Einfügevorgänge und die
myisam_bulk_insert_tree_size-Variable zu beschleunigen.
-
Suchen auf komprimierten (
CHAR/VARCHAR)-Schlüsseln ist jetzt
viel schneller.
-
Anfragen folgenden Typs optimiert:
SELECT DISTINCT * from tabelle ORDER by schluessel_teil1 LIMIT #
-
SHOW CREATE TABLE zeigt jetzt alle Tabellenattribute.
-
ORDER BY ... DESC kann jetzt Schlüssel benutzen.
-
LOAD DATA FROM MASTER setzt jetzt "auto-magisch" einen Slave auf.
-
safe_mysqld in mysqld_safe umbenannt.
-
Unterstützung für symbolische Links auf
MyISAM-Tabellen hinzugefügt.
Symlink-Handhabung ist jetzt vorgabemäßig für Windows aktiviert.
-
LOAD DATA FROM MASTER setzt "auto-magisch" einen Slave auf.
-
SQL_CALC_FOUND_ROWS und FOUND_ROWS() hinzugefügt. Das
ermöglicht es herauszufinden, wie viele Zeilen eine Anfrage ohne eine
LIMIT-Klausel zurückgegeben hätte.
-
Ausgabeformat von
SHOW OPEN TABLES geändert.
-
SELECT ausdruck LIMIT ... wird zugelassen.
-
IDENTITY als Synonym für AUTO_INCREMENT hinzugefügt (wie
Sybase).
-
ORDER BY-Syntax zu UPDATE und DELETE hinzugefügt.
-
SHOW INDEXES ist jetzt ein Synonym für SHOW INDEX.
-
ALTER TABLE tabelle DISABLE KEYS- und ALTER TABLE tabelle
ENABLE KEYS-Befehle hinzugefügt.
-
IN kann anstelle von FROM in SHOW-Befehlen benutzt
werden.
-
ANSI-SQL-Syntax
X'Hexadezimalzahl' wird zugelassen.
-
Globale Sperr-Handhabung für
FLUSH TABLES with READ LOCK aufgeräumt.
-
Problem mit
DATETIME = constant in WHERE-Optimierungen
behoben.
Das 3.23-Release hat etliche wichtige Features, die in früheren Versionen
nicht vorhanden sind. Es wurden drei neue Tabellentypen hinzugefügt:
- MyISAM
-
Eine neue ISAM-Bibliothek, die auf SQL und Unterstützung großer Dateien
abgestimmt ist.
- BerkeleyDB oder BDB
-
Benutzt die Berkeley-DB-Bibliothek von Sleepycat Software, um
transaktionssichere Tabellen zu implementieren.
- InnoDB
-
Ein transaktionssicherer Tabellen-Handler, der Sperren auf Zeilenebene und
viele Oracle-ähnliche Features unterstützt.
Beachten Sie, dass nur MyISAM in der Standard-Binärdistribution verfügbar
ist.
Das 3.23-Release beinhaltet ausserdem Unterstützung für
Datenbank-Replikation zwischen einem Master und vielen Slaves,
Volltext-Indexierung und vieles mehr.
Alle neuen Features werden in der 4.0-Version weiter entwickelt. Nur
Bug-Behebungen und kleinere Verbesserungen bestehender Features werden zu
3.23 hinzugefügt.
Der Replikationscode und der BerkeleyDB-Code sind noch nicht so gut
getestet wie der Rest des Codes, daher wird es wahrscheinlich zukünftig
noch einige Releases von 3.23 mit kleineren Behebungen für diesen Teil des
Codes geben. Solange Sie diese Features nicht benutzen, sollten Sie mit
MySQL 3.23 auf der sicheren Seite liegen!
Beachten Sie, dass das Gesagte nicht heißt, dass Replikation oder Berkeley
DB nicht funktionieren. Wir haben den gesamten Code ausgiebig getestet,
inklusive Replikation und BDB, ohne irgend welche Probleme zu finden. Es
heißt nur, dass nicht so viele Benutzer diesen Code verwenden wie den Rest
des Codes, weshalb wir noch nicht 100% auf diesen Teil des Codes vertrauen.
-
Bug behoben, der mit sehr geringer Wahrscheinlichkeit auftritt, der keine
übereinstimmenden Zeilen zurückgab bei SELECT mit vielen Tabellen,
mehrspaltigen Indexen und 'Bereichs-'-Typen.
-
Coredump-Bug behoben, der mit sehr geringer Wahrscheinlichkeit auftritt,
wenn man
EXPLAIN SELECT mit vielen Tabellen und ORDER BY
ausführt.
-
Bug in
LOAD DATA FROM MASTER bei der Benutzung einer Tabelle mit
CHECKSUM=1 behoben.
-
Eindeutige Fehlermeldung hinzugefügt, die man bei einer Blockierung
(Deadlock) während einer Transaktion mit BDB-Tabellen erhält.
-
Problem mit
BDB-Tabellen und UNIQUE-Spalten, die als
NULL definiert wurden, behoben.
-
Problem mit
myisampack bei der Benutzung von CHAR-Spalten, die
Leerzeichen aufgefüllt wurden, behoben.
-
Patch von Yuri Dario für OS2 angewandt.
-
Bug in
--safe-user-create behoben.
-
Problem bei der Benutzung von
LOCK TABLES und BDB-Tabellen
behoben.
-
Problem mit
REPAIR TABLE auf MyISAM-Tabellen mit Zeilenlängen
zwischen 65517 und 65520 Bytes behoben.
-
Seltenen Hänger bei
mysqladmin shutdown behoben, wenn es viel
Aktivität auf einem anderen Thread gab.
-
Problem mit
INSERT DELAYED behoben, bei dem ein verzögerter Thread
auf Upgrade locks ohne ersichtlichen Grund hängen konnte.
-
Problem mit
myisampack und BLOB behoben.
-
Problem beim Editieren von
.MRG-Tabellen von Hand behoben.
(Patch von Benjamin Pflugmann).
-
Es wird erzwungen, dass alle Tabellen in einer
MERGE-Tabelle von
derselben Datenbank kommen.
-
Bug mit
LOAD DATA INFILE und transaktionalen Tabellen behoben.
-
Bug bei der Benutzung von
INSERT DELAYED mit falschen
Spaltendefinitionen behoben.
-
Coredump während
REPAIR besonders beschädigter Tabellen behoben.
-
Bug in
InnoDB- und AUTO_INCREMENT-Spalten behoben.
-
Bug in
InnoDB und RENAME TABLE-Spalten behoben.
-
Kritischer Bug in
InnoDB- und BLOB-Spalten behoben. Wenn man
BLOB-Spalten größer als 8000 Bytes in einer InnoDB-Tabelle
benutzte, musste man die Tabelle mit mysqldump sichern, löschen und
aus dem Dump neu aufbauen.
-
Großen Patch für OS/2 von Yuri Dario angewandt.
-
Problem mit
InnoDB behoben, bei dem man den Fehler Can't
execute the given command... bekommen konnte, selbst wenn man keine aktive
Transaktion hatte.
-
Einige kleine Probleme behoben, die Gemini betrafen.
-
Echte arithmetische Operationen werden selbst dann in einem
Ganzzahl-Zusammenhang benutzt, wenn nicht alle Argumente Ganzzahlen sind.
(Behebt einen wenig häufigen Bug in einigen Ganzzahl-Kontexten.)
-
Unter Windows wird nicht alles in Kleinschreibung erzwungen (um ein Problem
mit Windows und
ALTER TABLE zu beheben). --lower_case_names
funktioniert jetzt auch unter Unix.
-
Automatisches Rollback behoben, das ausgeführt wurde, wenn das Beenden
eines Threads keinen anderen Thread blockiert.
-
Option
--sql-mode=option[,option[,option]] hinzugefügt.
See section 5.1.1 mysqld-Kommandozeilenoptionen.
-
Mögliches Problem mit
shutdown auf Solaris behoben, wobei die
`.pid'-Datei nicht gelöscht wurde.
-
InnoDB unterstützt jetzt Zeilen < 4 GB. Die vorherige Beschränkung war
8.000 Bytes.
-
Die
doublewrite-Datei-Flush-Methode wird in InnoDB benutzt. Sie
reduziert die Notwendigkeit von Unix-fsync-Aufrufen auf einen Bruchteil und
verbessert die Performance auf den meisten Unix-Varianten.
-
Sie können jetzt den InnoDB-Monitor benutzen, um etliche Informationen über
den InnoDB-Status auf die Standardausgabe auszugeben, inklusive Sperren.
Nützlich zum Tunen der Performance.
-
Mehrere Bugs, die in InnoDB Hänger verursachen konnten, behoben.
-
record_buffer in record_buffer und record_rnd_buffer
aufgeteilt. Um zu vorherigen MySQL-Versionen kompatibel zu bleiben, wird
record_rnd_buffer auf den Wert von record_buffer gesetzt,
wenn es nicht explizit gesetzt wird.
-
Optimierungs-Bug in
ORDER BY behoben, bei dem einige ORDER
BY-Teile fälschlicherweise entfernt wurden.
-
Overflow-Bug bei
ALTER TABLE und MERGE-Tabellen behoben.
-
Prototypen für
my_thread_init() und my_thread_end() zu
`mysql_com.h' hinzugefügt.
-
Option
--safe-user-create to mysqld hinzugefügt.
-
Bug in
SELECT DISTINCT ... HAVING behoben, der die Fehlermeldung
Can't find record in '#... verursachte.
-
Problem mit
--low-priority-updates und INSERT's behoben.
-
Bug im Slave-Thread beseitigt, bei dem dieser in seltenen Fällen um 22 Byte
vor den Offset im Master kommen konnte.
-
slave_wait_timeout für Replikation hinzugefügt.
-
Problem mit
UPDATE und BDB-Tabellen behoben.
-
Problematischen Bug in
BDB-Tabellen behoben, der bei der Benutzung
von Schlüsselteilen auftrat.
-
Problem bei der Benutzung von
GRANT FILE ON datenbank.* ... behoben.
Vorher wurde die DROP-Berechtigung für die Datenbank hinzugefügt.
-
Bug bei
DELETE FROM tabelle ... LIMIT 0 und UPDATE FROM
tabelle ... LIMIT 0 behoben, die sich vorher so verhielten, als gäbe es
keine LIMIT-Klausel (sie löschten oder aktualisierten alle
ausgewählten Zeilen).
-
CHECK TABLE prüft jetzt, ob eine AUTO_INCREMENT-Spalte den
Wert 0 enthält.
-
Wenn man
SIGHUP an mysqld schickt, werden jetzt nur die Logs
auf Platte zurückgeschrieben (flush), nicht die Replikation zurückgesetzt.
-
Parser in Ordnung gebracht, so dass er jetzt Fließkommazahlen des Typs
1.0e1 (kein Vorzeichen nach e) zuläßt.
-
Option
--force für myisamchk aktualisiert jetzt auch Zustände
(Status).
-
Option
--warnings für mysqld hinzugefügt. mysqld gibt
jetzt nur den Fehler Aborted connection aus, wenn diese Option
benutzt wird.
-
Problem mit
SHOW CREATE TABLE behoben, wenn man keinen PRIMARY
KEY hatte.
-
Saubere Behebung der Umbenennung von
innodb_unix_file_flush_method
in innodb_flush_method.
-
Bug beim Umwandeln von
UNSIGNED BIGINT in DOUBLE behoben.
Dieser verursachte bei Vergleichen mit BIGINT-Werten ausserhalb des
vorzeichenbehafteten Bereichs ein Problem.
-
Bug in
BDB-Tabellen behoben, wenn man leere Tabellen abfragte.
-
Bug bei der Benutzung von
COUNT(DISTINCT) mit LEFT JOIN
behoben, wenn es keine übereinstimmenden Zeilen gab.
-
Alle Dokumentation bezüglich
GEMINI-Tabellen entfernt. GEMINI
wird nicht unter einer Open-Source-Lizenz herausgegeben.
-
Die
AUTO_INCREMENT-Zahlenfolge wurde beim Löschen und Hinzufügen
einer AUTO_INCREMENT-Spalte nicht zurückgesetzt.
-
CREATE ... SELECT erzeugt jetzt nicht eindeutige Indexe verzögert.
-
Problem behoben, bei dem
LOCK TABLES tabelle READ gefolgt von
FLUSH TABLES eine exklusive Sperre auf die Tabelle setzte.
-
REAL-@Variablen wurden mit 2 Ziffern dargestellt, wenn sie in
Zeichenketten umgewandelt wurden.
-
Problem mit hängendem Client behoben, wenn
LOAD TABLE FROM MASTER
fehlschlug.
-
myisamchk --fast --force repariert jetzt keine Tabellen mehr, bei
denen nur der Öffnen-Zähler falsch ist.
-
Funktionen zur Handhabung von symbolischen Links hinzugefügt, um sich das
Leben in Version 4.0 zu erleichtern.
-
Wir benutzen jetzt die
-lcma-Thread-Bibliothek unter HP-UX 10.20, so
dass MySQL auf HP-UX stabiler läuft.
-
Problem mit
IF() und Anzahl von Dezimalstellen im Ergebnis behoben.
-
Funktionen zum Extrahieren von Datumsanteilen in Ordnung gebracht, so dass
sie jetzt mit Datumsangaben funktionieren, bei denen Tag und / oder Monat 0
sind.
-
Argumentlänge in Optionsdateien von 256 auf 512 Zeichen erweitert.
-
Problem bei Herunterfahren, wenn
INSERT DELAYED auf ein LOCK
TABLE wartete, behoben.
-
Coredump-Bug in InnoDB behoben, wenn der Tabellenplatz (Tablespace) voll
war.
-
Problem mit
MERGE-Tabellen und großen Tabellen (> 4 GB) und der
Benutzung von ORDER BY behoben.
-
Bug behoben, bei dem
SELECT von MERGE-Tabellen manchmal zu
falsch sortierten Zeilen führte.
-
Bug in
REPLACE() bei der Benutzung des ujis-Zeichensatzes behoben.
-
Sleepycat-BDB-Patches 3.2.9.1 und 3.2.9.2 angewandt.
-
Option
--skip-stack-trace zu mysqld hinzugefügt.
-
CREATE TEMPORARY funktioniert jetzt mit InnoDB-Tabellen.
-
InnoDB zieht jetzt Teile von Schlüsseln (Sub-Keys) ganzen Schlüsseln
vor.
-
Option
CONCURRENT für LOAD DATA hinzugefügt.
-
Bessere Fehlermeldung, wenn die Slave-
max_allowed_packet-Variable zu
niedrig ist, um ein sehr langes Log-Ereignis vom Master zu lesen.
-
Bug behoben, wenn zu viele Zeilen bei der Benutzung von
SELECT
DISTINCT ... HAVING entfernt wurden.
-
SHOW CREATE TABLE gibt jetzt TEMPORARY für temporäre Tabellen
zurück.
-
Rows_examined für Langsame-Anfragen-Log-Datei hinzugefügt.
-
Probleme mit Funktion behoben, die eine leere Zeichenkette zurückgab, wenn
sie zusammen mit einer Gruppenfunktion und einem
WHERE benutzt
wurde, das keine Zeilenübereinstimmung ergab.
-
Neues Programm
mysqlcheck.
-
Datenbankname zur Ausgabe für administrative Befehle wie
CHECK,
REPAIR, OPTIMIZE hinzugefügt.
-
Viele Portabilitätsbehebungen für InnoDB.
-
Optimierer geändert, so dass Anfragen wie
SELECT * FROM
tabelle,tabelle2 ... ORDER BY schluessel_teil1 LIMIT # den Index auf
schluessel_teil1 anstelle von filesort benutzen.
-
Bug bei der Ausführung von
LOCK TABLE to_table WRITE,...; INSERT INTO
to_table... SELECT ... behoben, wenn to_table leer war.
-
Bug mit
LOCK TABLE und BDB-Tabellen behoben.
-
Bug bei der Benutzung von
MATCH in HAVING-Klausel.
-
Bug bei der Benutzung von
HEAP-Tabellen mit LIKE behoben.
-
--mysql-version für safe_mysqld hinzugefügt.
-
INNOBASE in InnoDB geändert (weil der INNOBASE-Name
bereits benutzt wurde). Alle configure-Optionen und
mysqld-Startoptionen benutzen jetzt innodb anstelle von
innobase. Das heißt, dass Sie jegliche Konfigurationsdateien, in
denen Sie innobase-Optionen benutzt haben, ändern müssen, bevor Sie
auf diese Version aktualisieren!
-
Bug bei der Benutzung von Indexen auf
CHAR(255) NULL-Spalten
behoben.
-
Slave-Thread wird jetzt auch dann gestartet, wenn
master-host nicht
gesetzt ist, so lange server-id gesetzt wird und es eine gültige
master.info gibt.
-
Teilweise Aktualisierungen (beendet mit kill) werden jetzt mit einem
speziellen Fehler-Code in die Binär-Log-Datei geschrieben. Der Slave
weigert sich, sie auszuführen, wenn der Fehler-Code anzeigt, dass die
Aktualisierung abnorm beendet wurde, und muss mit
SET
SQL_SLAVE_SKIP_COUNTER=1; SLAVE START wieder dazu veranlasst werden,
nachdem eine manuelle Überprüfung / Korrektur der Datenintegrität
durchgeführt wurde.
-
Bug behoben, der das Löschen einer internen temporären Tabelle beim Beenden
des Threads irrtümlicherweise in die Binär-Log-Datei schrieb. Dieser Bug
betraf Replikation.
-
Bug in
REGEXP() auf 64-Bit-Maschinen.
-
UPDATE und DELETE mit WHERE eindeutiger_schluessel_teil
IS NULL aktualisierte / löschte nicht alle Zeilen.
-
INSERT DELAYED für Tabellen abgeschaltet, die Transaktionen
unterstützen.
-
Bug bei der Benutzung von DATE-Funktionen auf
TEXT/BLOB-Spalten mit falschem Datumsformat behoben.
-
UDFs (benutzerdefinierte Funktionen) funktionieren jetzt auch unter
Windows (Patch von Ralph Masona).
-
Bug in
ALTER TABLE und LOAD DATA INFILE behoben, der das
Sortieren von Schlüsseln deaktivierte. Diese Befehle sollten jetzt in den
meisten Fällen schneller sein.
-
Performance-Bug beim erneuten Öffnen von Tabellen behoben (Tabellen, die
auf ein
FLUSH oder REPAIR warteten), die für die nächste
Anfrage keine Indexe benutzten.
-
Problem mit
ALTER TABLE für Innobase-Tabellen auf FreeBSD behoben.
-
mysqld-Variablen myisam_max_sort_file_size und
myisam_max_extra_sort_file_size hinzugefügt.
-
Signale werden frühzeitig initialisiert, um Problem mit Signalen in
Innobase zu vermeiden.
-
Patch für den
tis620-Zeichensatz hinzugefügt, um Vergleiche
unabhängig von der verwendeten Groß-/Kleinschreibung zu machen und einen
Bug in LIKE für diesen Zeichensatz zu beheben. HINWEIS:
Alle Tabellen, die den tis620-Zeichensatz benutzen, müssen mit
myisamchk -r oder REPAIR TABLE in Ordnung gebracht werden!
-
--skip-safemalloc-Option zu mysqld hinzugefügt.
-
Bug behoben, der Datenbanknamen mit einem `.'-Zeichen zuließ. Das
behebt ein schwerwiegendes Sicherheitsproblem, wenn man
mysqld unter
dem Benutzer root laufen läßt.
-
Bug behoben, wenn die Erzeugung eines Threads fehlschlägt (das konnte bei
der Herstellung SEHR vieler Verbindungen in kurzer Zeit passieren).
-
Einige Probleme mit
FLUSH TABLES und TEMPORARY-Tabellen
behoben. (Problem mit dem Freisetzen des Schlüssel-Cache und Fehler
Can't reopen table...).
-
Problem in Innobase mit anderen Zeichensätze als
latin1 und ein
anderes Problem bei der Benutzung von vielen Spalten behoben.
-
Bug behoben, der einen Coredump bei der Benutzung einer sehr komplexen
Anfrage mit
DISTINCT und Summenfunktionen verursachte.
-
SET TRANSACTION ISOLATION LEVEL ... hinzugefügt.
-
SELECT ... FOR UPDATE hinzugefügt.
-
Bug behoben, bei dem die Anzahl von betroffenen Zeilen nicht zurückgegeben
wurde, wenn
MySQL ohne Transaktionsunterstützung kompiliert wurde.
-
Bug in
UPDATE behoben, bei dem nicht immer Schlüssel benutzt wurden,
um die zu aktualisierenden Zeilen zu finden.
-
Bug in
CONCAT_WS() behoben, bei dem diese Funktion falsche
Ergebnisse zurückgab.
-
CREATE ... INSERT und INSERT ... SELECT geändert, so dass
diese noch kleine gleichzeitigen Einfügevorgänge zulassen, weil das dazu
führen könnte, dass die Binär-Log-Datei schwer zu wiederholen ist.
(Gleichzeitige Einfügevorgänge sind aktiviert, wenn Sie nicht die Binär-
oder Update-Log-Datei verwenden.)
-
Einige Makros geändert, so dass schnelles mutex mit glibc 2.2 verwendet
werden kann.
-
Neu eingeführter Bug in
ORDER BY behoben.
-
Falsches Definieren von
CLIENT_TRANSACTIONS behoben.
-
Bug in
SHOW VARIABLES bei der Benutzung von INNOBASE-Tabellen
behoben.
-
Das Setzen und Benutzen von Benutzer-Variablen in
SELECT DISTINCT
funktionierte nicht.
-
SHOW ANALYZE für kleine Tabellen verbessert.
-
Handhabung von Argumenten im Benchmark-Skript `run-all-tests' behoben.
-
Zusätzliche Dateien zur Distribution hinzugefügt, die es ermöglichen, mit
INNOBASE-Unterstützung zu kompilieren.
-
INNOBASE-Tabellen-Handler und BDB-Tabellen-Handler zur
MySQL-Quelldistribution hinzugefügt.
-
Die Dokumentation zu
GEMINI-Tabellen aktualisiert.
-
Bug in
INSERT DELAYED behoben, der den Thread zum Hängen brachte,
wenn NULL in eine AUTO_INCREMENT-Spalte eingefügt wurde.
-
Bug in
CHECK TABLE / REPAIR TABLE behoben, der einen Thread
zum Hängen bringen konnte.
-
REPLACE ersetzt keine Zeile mehr, die mit einem durch
auto_increment erzeugten Schlüssel in Konflikt steht.
-
mysqld setzt jetzt nur CLIENT_TRANSACTIONS in
mysql->server_capabilities, wenn der Server einen
transaktionssicheren Handler unterstützt.
-
LOAD DATA INFILE läßt jetzt das Einfügen numerischer Werte in
ENUM- und SET-Spalten zu.
-
Fehlerdiagnose beim Slave-Thread-Exit verbessert.
-
Bug in
ALTER TABLE ... ORDER BY behoben.
-
Option
max_user_connections für mysqld hinzugefügt.
-
Anfragelänge für Replikation auf
max_allowed_packet begrenzt, nicht
auf die willkürliche Länge von 4 MB.
-
Leerzeichen um
= herum im Argument zu --set-variable werden
zugelassen.
-
Problem beim automatischen Reparieren behoben, der einen Thread im Zustand
Waiting for table lassen konnte.
-
SHOW CREATE TABLE gibt jetzt das UNION() für
MERGE-Tabellen aus.
-
ALTER TABLE merkt sich jetzt die alte UNION()-Definition.
-
Bug beim Replizieren von Timestamps behoben.
-
Bug bei der bidirektionalen Replikation behoben.
-
Bug im
BDB-Tabellen-Handler behoben, der bei der Benutzung eines
Indexes auf mehrteilige Schlüssel vorkam, wenn ein Schlüsselteil
NULL sein konnte.
-
MAX()-Optimierung für Schlüsselteile (Sub-Keys) für
BDB-Tabellen verbessert.
-
Problem behoben, bei dem 'Müll'-Ergebnisse bei der Benutzung von
BDB-Tabellen und BLOB- oder TEXT-Feldern beim
Verknüpfen (Join) vieler Tabellen auftraten.
-
Problem mit
BDB-Tabellen und TEXT-Spalten behoben.
-
Bug bei der Benutzung eines
BLOB-Schlüssels behoben, wenn eine
Konstanten-Zeile nicht gefunden wurde.
-
Problem behoben, dass
mysqlbinlog den Timestamp-Wert für jede
Anfrage schreibt. Das stellt sicher, dass man dieselben Werte bei
Datumsfunktionen wie NOW() bei der Benutzung von mysqlbinlog
erhält, um die Anfragen zu einem anderen Server durchzureichen (pipe).
-
Es wird zugelassen, dass
--skip-gemini, --skip-bdb und
--skip-innobase für mysqld angegeben werden, selbst wenn
diese Datenbanken nicht in mysqld einkompiliert sind.
-
Man kann jetzt
GROUP BY ... DESC ausführen.
-
Blockierung im
SET-Code behoben, wenn man SET @foo=bar
ausführte, wobei bar ein Spaltenverweis ist. Hier wurde die
Fehlermeldung nicht korrekt erzeugt.
-
DNS-Lookups benutzen jetzt nicht mehr denselben mutex wie der
Hostnamen-Cache. Das gestattet, dass bekannte Hosts schnell aufgelöst
werden können, selbst wenn ein DNS-Lookup lange Zeit braucht.
-
--character-sets-dir für myisampack hinzugefügt.
-
Warnungen beim Laufenlassen von
REPAIR TABLE ... EXTENDED entfernt.
-
Bug, der einen Coredump bei der Benutzung von
GROUP BY auf ein Alias
verursachte, wobei der Alias dasselbe wie ein existierender Spaltenname
war, entfernt.
-
SEQUENCE() als Beispiel-UDF-Funktion hinzugefügt.
-
mysql_install_db geändert, so dass es BINARY für
CHAR-Spalten in den Berechtigungstabellen benutzt.
-
TRUNCATE tabelle zu TRUNCATE TABLE tabelle geändert, um
dieselbe Syntax wie Oracle zu verwenden. Bis Version 4.0 lassen wir
weiterhin TRUNCATE tabelle zu, um alten Code nicht zum Absturz zu
bringen.
-
'no found rows'-Bug in
MyISAM-Tabellen behoben, wenn ein BLOB
erster Teil eines mehrteiligen Schlüssels war.
-
Bug behoben, bei dem
CASE mit GROUP BY nicht funktionierte.
-
Option
--sort-recover für myisamchk hinzugefügt.
-
myisamchk -S und OPTIMIZE TABLE funktionieren jetzt unter
Windows.
-
Bug bei der Benutzung von
DISTINCT auf Ergebnisse von Funktionen
behoben, die sich auf eine Gruppenfunktion bezogen, wie:
SELECT a, DISTINCT SEC_TO_TIME(sum(a)) from tabelle GROUP BY a, b;
-
Puffer-Überlauf in
libmysqlclient-Bibliothek behoben. Bug bei der
Handhabung des STOP-Ereignisses nach ROTATE-Ereignis bei
Replikation.
-
Einen weiteren Puffer-Überlauf in
DROP DATABASE behoben.
-
Table_locks_immediate- und
Table_locks_waited-Status-Variablen hinzugefügt.
-
Bug in Replikation behoben, der den Slave-Server-Start bei existierendem
master.info unterbrach. Das behebt einen Bug, der in Version 3.23.32
eingeführt wurde.
-
SET SQL_SLAVE_SKIP_COUNTER=n-Befehl hinzugefügt, um nach
Replikationsstörungen ohne volle Datenbankkopie wiederherzustellen.
-
max_binlog_size-Variable hinzugefügt; die Binär-Log-Datei wird
automatisch rotiert, wenn die Größe die Grenze überschreitet.
-
Last_error, Last_errno und Slave_skip_counter für
SHOW SLAVE STATUS hinzugefügt.
-
Bug in
MASTER_POS_WAIT()-Funktion behoben.
-
Coredump-Handler auf
SIGILL und SIGBUS zusätzlich zu
SIGSEGV.
-
Auf x86-Linux wird im Coredump-Handler die aktuelle Anfrage und die Thread-
(Verbindungs-) Kennung, falls verfügbar, angegeben.
-
Mehrere Timing-Bugs in der Test-Suite behoben.
-
mysqltest erweitert, so dass es sich um Probleme mit dem Timing in
der Test-Suite kümmert.
-
ALTER TABLE kann jetzt auch benutzt werden, um die Definition einer
MERGE-Tabelle zu ändern.
-
Erzeugung von
MERGE-Tabellen unter Windows in Ordnung gebracht.
-
Portabilitätsbehebungen für OpenBSD und OS/2.
-
--temp-pool-Option zu mysqld hinzugefügt. Das Benutzen dieser
Option führt dazu, dass temporäre Dateien nur einen kleinen Satz von Namen
benutzen, statt eines eindeutigen Namens für jede neue Datei. Das ist ein
Workaround um ein Problem im Linux-Kernel beim Erzeugen einer großen Menge
neuer Dateien mit unterschiedlichen Namen. Beim alten Verhalten scheint es
so, als ein Linux ein Speicher-'Loch' hätte, weil zum
Verzeichniseintrags-Cache statt zum Festplatten-Cache zugewiesen
(alloziert) wird.
-
Code geändert, um um einen Compiler-Bug in Compaq C++ auf OSF1
herumzuarbeiten, der
BACKUP, RESTORE, CHECK,
REPAIR und ANALYZE TABLE beschädigte.
-
Option
FULL für SHOW COLUMNS hinzugefügt. Jetzt wird die
Berechtigungsliste für die Spalten nur angezeigt, wenn diese Option
angegeben wird.
-
Bug in
SHOW LOGS behoben, wenn es keine BDB-Logs gab.
-
Timing-Problem in Replikation behoben, dass das Abschicken einer
Aktualisierung an den Client verzögern konnte, bis eine weitere
Aktualisierung durchgeführt wurde.
-
Feldnamen bei der Benutzung von
mysql_list_fields() nicht umwandeln.
Damit bleibt dieser Code kompatibel mit SHOW FIELDS.
-
MERGE-Tabellen funktionierten nicht unter Windows.
-
Problem mit
SET PASSWORD=... unter Windows.
-
Fehlende `my_config.h' für RPM-Distribution hinzugefügt.
-
TRIM("foo" von "foo") gab keine leere Zeichenkette zurück.
-
--with-version-suffix für configure hinzugefügt.
-
Coredump behoben, wenn der Client eine Verbindung ohne
mysql_close()
abbrach.
-
Bug in
RESTORE TABLE behoben, wenn man versuchte, aus einem nicht
vorhandenen Verzeichnis wiederherzustellen.
-
Bug behoben, der einen Coredump auf dem Slave bei der Replikation von
SET PASSWORD verursachte.
-
MASTER_POS_WAIT() hinzugefügt.
-
Die Test-Suite testet jetzt jeden erreichbaren BDB-Schnittstellen-Code.
Während der Tests fanden und behoben wir viele Fehler im
Schnittstelle-Code.
-
Die Benutzung von
HAVING auf eine leere Tabelle konnte eine
Ergebniszeile ergeben, ohne dass es das sollte.
-
Problem behoben, so dass das MySQL-RPM nicht mehr von Perl5 abhängt.
-
Einige Probleme mit
HEAP-Tabellen unter Windows behoben.
-
SHOW TABLE STATUS zeigte nicht die korrekte durchschnittliche
Zeilenlänge bei Tabellen größer als 4 GB.
-
CHECK TABLE ... EXTENDED prüften keine Zeilen-Links für Tabellen
fester Größe.
-
Option
MEDIUM für CHECK TABLE hinzugefügt.
-
Problem bei der Benutzung von
DECIMAL()-Schlüsseln auf negative
Zahlen behoben.
-
HOUR() (und einige andere TIME-Funktionen) auf einer
CHAR-Spalte gaben immer NULL zurück.
-
Sicherheits-Bug in etwas behoben (bitte aktualisieren Sie, wenn Sie eine
frühere MySQL-3.23-Version benutzen).
-
Bug mit Puffer-Überlauf behoben, wenn eine bestimmte Fehlermeldung
ausgegeben wurde.
-
Benutzung von
setrlimit() unter Linux hinzugefügt, damit
-O --open-files-limit=# unter Linux läuft.
-
Neue
mysqld-Variable bdb_version hinzugefügt.
-
Bug bei der Benutzung von Ausdrücken folgenden Typs behoben:
SELECT ... FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=t2.a
In diesem Fall wurde der Test in der
WHERE-Klausel fälschlicherweise
weg optimiert.
-
Bug in
MyISAM beim Löschen von Schlüsseln mit möglichen
NULL-Werten behoben, wenn die erste Schlüsselspalte keine
Präfix-komprimierte Text-Spalte war.
-
mysql.server repariert, so dass es den
mysql.server-Optionsabschnitt anstelle von mysql_server
liest.
-
safe_mysqld und mysql.server repariert, so dass sie den
server-Optionsabschnitt lesen.
-
thread_created-Status-Variable zu mysqld hinzugefügt.
-
SHOW OPEN TABLES-Befehl hinzugefügt.
-
myisamdump funktioniert jetzt mit alten mysqld-Servern.
-
myisamchk -k# funktioniert jetzt wieder.
-
Problem mit Replikation behoben, wenn die Binär-Log-Datei-Datei auf
32-Bit-Systemen größer als 2 GB wurde.
-
LOCK TABLES startet jetzt automatisch eine neue Transaktion.
-
BDB-Tabellen so geändert, dass sie interne Sub-Transaktionen
benutzen und offene Dateien wiederholt benutzen, um mehr Geschwindigkeit zu
erzielen.
-
Option
--mysqld=# für safe_mysqld hinzugefügt.
-
Hexadezimale Konstanten in
--fields-*-by- und
--lines-terminated-by-Optionen für mysqldump und
mysqlimport werden jetzt zugelassen. Von Paul DuBois.
-
Option
--safe-show-Datenbank für mysqld hinzugefügt.
-
have_bdb, have_gemini, have_innobase,
have_raid und have_openssl für SHOW VARIABLES
hinzugefügt, um das Testen auf unterstützte Erweiterungen zu erleichtern.
-
Option
--open-files-limit für mysqld hinzugefügt.
-
Option
--open-files zu --open-files-limit in
safe_mysqld geändert.
-
Bug behoben, bei dem einige Zeilen nicht gefunden wurden, wenn
HEAP-Tabellen viele Schlüssel hatten.
-
--bdb-no-sync funktioniert jetzt.
-
--bdb-recover in --bdb-no-recover geändert, weil recover
vorgabemäßig angeschaltet sein sollte.
-
Die vorgabemäßige Anzahl von BDB-Sperren auf 10.000 geändert.
-
Bug aus Version 3.23.29 behoben, beim Zuweisen der gemeinsam genutzten
Struktur, die für BDB-Tabellen benötigt wird.
-
`mysqld_multi.sh' für benutzerkonfigurierbare Variablen geändert.
Patch von Christopher McCrory.
-
Include-Dateien für Solaris 2.8 in Ordnung gebracht.
-
Bug mit
--skip-networking auf Debian Linux behoben.
-
Problem behoben, dass einige temporäre Dateien den Namen
UNOPENED in
Fehlermeldungen hatten.
-
Bug beim Laufenlassen von zwei gleichzeitigen
SHOW LOGS-Anfragen
behoben.
-
Configure-Aktualisierungen für Tru64, Unterstützung großer Dateien und
besser TCP-Wrapper-Unterstützung. Von Albert Chin-A-Young.
-
Bug in
<=>-Operator behoben.
-
Bug in
REPLACE mit BDB-Tabellen behoben.
-
LPAD() und RPAD() kürzen jetzt die Ergebnis-Zeichenkette,
wenn sie länger als das Längenargument ist.
-
SHOW LOGS-Befehl hinzugefügt.
-
Unbenutzte BDB-Logs werden beim Herunterfahren entfernt.
-
Beim Erzeugen einer Tabelle werden
PRIMARY-Schlüsseln zuerst
gesetzt, gefolgt von UNIQUE-Schlüsseln.
-
Bug in
UPDATE behoben, wenn mehrteilige Schlüssel benutzt wurden,
bei denen alle Schlüsselteile sowohl in der Aktualisierung als auch im
WHERE-Teil angegeben wurden. In diesem Fall könnte MySQL versuchen,
einen Datensatz zu aktualisieren, der nicht dem gesamten WHERE-Teil
entspricht.
-
Löschen von Tabellen so geändert, dass zunächst die Tabelle und dann die
`.frm'-Datei gelöscht wird.
-
Bug im Hostnamen-Cache behoben, der dazu führte, dass
mysqld den
Hostnamen als '' in manchen Fehlermeldungen berichtete.
-
Bug mit
HEAP-Tabellen behoben; die Variable
max_heap_table_size wurde nicht benutzt. Jetzt kann entweder
MAX_ROWS oder max_heap_table_size benutzt werden, um die
Größe einer HEAP-Tabelle zu beschränken.
-
Die vorgabemäßige Server-Kennung auf 1 für Master-Server und 2 für Slaves
geändert, um die Benutzung der Binär-Log-Datei zu erleichtern.
-
Variable
bdb_lock_max in bdb_max_lock umbenannt.
-
Unterstützung für
auto_increment auf Unter-Felder (Sub-Fields) für
BDB-Tabellen hinzugefügt.
-
ANALYZE von BDB-Tabellen hinzugefügt.
-
In BDB-Tabellen wird jetzt die Anzahl von Zeilen gespeichert. Das hilft,
Anfragen zu optimieren, wenn dafür die ungefähre Anzahl von Zeilen benötigt
wird.
-
Wenn es einen Fehler in einem mehrzeiligen Statement gibt, wird jetzt nur
das letzte Statement zurückgerollt, nicht die gesamte Transaktion.
-
Wenn man
ROLLBACK nach der Aktualisierung einer nicht
transaktionalen Tabelle ausführt, erhält man als Warnung einen Fehler.
-
Option
--bdb-shared-data für mysqld hinzugefügt.
-
Status-Variable
Slave_open_temp_tables hinzugefügt.
-
Variablen
binlog_cache_size und max_binlog_cache_size für
mysqld hinzugefügt.
-
DROP TABLE, RENAME TABLE, CREATE INDEX und
DROP INDEX sind jetzt Transaktions-Endpunkte.
-
Wenn Sie ein
DROP DATABASE auf eine symbolisch verknüpfte Datenbank
ausführen, werden sowohl der Link als auch die Original-Datenbank gelöscht.
-
DROP DATABASE funktioniert jetzt auf OS/2.
-
Bug bei der Ausführung von
SELECT DISTINCT ... tabelle1 LEFT JOIN
tabelle2 ... behoben, wenn tabelle2 leer war.
-
--abort-slave-event-count- und
--disconnect-slave-event-count-Optionen für mysqld zum
Debuggen und Testen der Replikation hinzugefügt.
-
Replikation temporärer Tabellen in Ordnung gebracht. Handhabt alles ausser
dem Neustart von Slaves.
-
SHOW KEYS zeigt jetzt, ob ein Schlüssel FULLTEXT ist oder
nicht.
-
Neues Skript `mysqld_multi'. See section 5.7.3 mysqld_multi, Programm zur Verwaltung mehrerer MySQL-Server.
-
Neues Skript `mysql-multi.server.sh' hinzugefügt. Vielen Dank an Tim
Bunce Tim.Bunce@ig.co.uk für die Modifizierung von
`mysql.server', um auf einfache Weise Hosts zu handhaben, die viele
mysqld-Prozesse laufen lassen.
-
`safe_mysqld', `mysql.server' und `mysql_install_db' wurden
so abgeändert, dass sie
mysql_print_defaults anstelle verschiedener
Hacks benutzen, um `my.cnf'-Dateien zu lesen. Zusätzlich wurde die
Handhabung verschiedener Pfade konsistenter gemacht, in Bezug auf wie
mysqld vorgabemäßig handhabt.
-
Berkeley-DB-Transaktions-Logs, die nicht mehr in Benutzung sind, werden
automatisch entfernt.
-
Bug bei mehreren
FULLTEXT-Indexen in einer Tabelle behoben.
-
Warnung hinzugefügt, wenn sich die von Zeilen bei
REPAIR/OPTIMIZE ändert.
-
Patches für OS/2 von
Yuri Dario angewandt.
-
FLUSH TABLES tabelle schrieb den Index-Baum nicht immer korrekt auf
die Festplatte zurück.
-
--bootstrap läuft jetzt in einem separaten Thread. Das behebt ein
Problem, das bei mysql_install_db einen Coredump auf einigen
Linux-Maschinen verursachte.
-
mi_create() abgeändert, so dass es weniger Stack-Platz benötigt.
-
Bug beim Optimierer, wenn er versucht,
MATCH, mit
UNIQUE-Schlüsseln benutzt, zu überoptimieren.
-
Crash-me und die MySQL-Benchmarks funktionieren jetzt auch mit
FrontBase.
-
RESTRICT und CASCADE werden nach einem DROP TABLE
zugelassen, um die Portierung einfacher zu machen.
-
Status-Variable zurückgesetzt, die Probleme hervorrufen konnte, wenn man
--slow-log benutzte.
-
Variable
connect_timeout für mysql und mysqladmin
hinzugefügt.
-
connect_timeout als Alias für timeout für Optionsdateien, die
von mysql_options() gelesen werden, hinzugefügt.
-
Neue Optionen
--pager[=...], --no-pager, --tee=... und
--no-tee für den mysql-Client hinzugefügt. Die entsprechenden
neuen interaktiven Befehle heißen pager, nopager, tee
und notee. Siehe See section 5.8.2 Das Kommandozeilen-Werkzeug, mysql --help
und die interaktive Hilfe wegen weiterer Informationen.
-
Absturz behoben, der beim Fehlschlagen der Reparatur von
MyISAM-Tabellen auftrat.
-
Größerer Performance-Bug im Tabellensperren-Code behoben, wenn man
permanent VIELE
SELECT-, UPDATE- und INSERT-Statements
laufen hatte. Das Symptom zeigte sich darin, dass die UPDATE- und
INSERT-Anfragen lange gesperrt waren, während neue
SELECT-Statements vor den Aktualisierungen ausgeführt wurden.
-
Beim Lesen von
options_files mit mysql_options() wurde die
return-found-rows-Option ignoriert.
-
Man kann jetzt
interactive-timeout in der Optionsdatei angeben, die
von mysql_options() gelesen wird. Das ermöglicht es, Programme, die
lange laufen (wie mysqlhotcopy), zu zwingen,
interactive_timeout anstelle von wait_timeout zu benutzen.
-
Zur Langsame-Anfragen-Log-Datei Zeit und Benutzernamen für jede geloggte
Anfrage hinzugefügt. Wenn Sie
--log-long-format benutzen, werden
auch Anfragen, die keinen Index benutzen, geloggt, selbst wenn die Anfrage
weniger als long_query_time Sekunden benötigt.
-
Problem in
LEFT JOIN behoben, was dazu führte, dass alle Spalten in
einer Verweistabelle NULL waren.
-
Problem bei der Benutzung von
NATURAL JOIN ohne Schlüssel behoben.
-
Bug bei der Benutzung eines mehrteiligen Schlüssels behoben, bei dem der
erste Teil vom Typ
TEXT oder BLOB war.
-
DROP von temporären Tabellen wurde nicht in der
Update-/Binär-Log-Datei gespeichert.
-
Bug behoben, der bei
SELECT DISTINCT * ... LIMIT # nur eine Zeile
zurückgab.
-
Bug im Assembler-Code in
strstr() für sparc behoben und
`global.h'-Header-Datei aufgeräumt, um ein Problem mit schlechtem
Aliasing des Compilers zu vermeiden, der bei RedHat 7.0 beiliegt (berichtet
von Trond Eivind Glomsrød).
-
Die Option
--skip-networking funktioniert jetzt sauber unter Windows
NT.
-
Lang ausstehender Bug in den
ISAM-Tabellen behoben, wenn eine Zeile
mit einer Länge von mehr als 65 KB um ein einzelnes Byte gekürzt wurde.
-
Bug in
MyISAM beim Laufenlassen mehrfacher Aktualisierungsprozesse
auf dieselbe Tabelle behoben.
-
Es wird zugelassen, dass
FLUSH TABLE tabelle benutzt wird.
-
--replicate-ignore-table, --replicate-do-table,
--replicate-wild-ignore-table und --replicate-wild-do-table
hinzugefügt.
-
Alle Log-Dateien so geändert, dass sie unseren eigenen
IO_CACHE-Mechanismus anstelle von FILE benutzen, um
Betriebssystemprobleme zu vermeiden, wenn zu viele Dateien offen sind.
-
Optionen
--open-files und --timezone für safe_mysqld
hinzugefügt.
-
Schweren Bug in
CREATE TEMPORARY TABLE ... SELECT ... behoben.
-
Problem mit
CREATE TABLE ... SELECT NULL behoben.
-
Variablen
large_file_support, net_read_timeout,
net_write_timeout und query_buffer_size für SHOW
VARIABLES hinzugefügt.
-
Status-Variablen
created_tmp_files und sort_merge_passes für
SHOW STATUS hinzugefügt.
-
Bug behoben, bei dem kein Index-Name nach der
FOREIGN KEY-Definition
zugelassen wurde.
-
TRUNCATE tabelle als ein Synonym für DELETE FROM tabelle
hinzugefügt.
-
Bug in einer BDB-Schlüsselvergleichsfunktion beim Vergleich von
Schlüsselteilen behoben.
-
Variable
bdb_lock_max für mysqld hinzugefügt.
-
Weitere Tests zur Benchmark-Suite hinzugefügt.
-
Überlauf-Bug im Client-Code bei der Benutzung von überlangen Datenbanknamen
behoben.
-
mysql_connect() bricht jetzt unter Linux ab, wenn der Server nicht
in timeout Sekunden antwortet.
-
SLAVE START funktionierte nicht, wenn Sie mit
--skip-slave-start starteten und vorher nicht explizit CHANGE
MASTER TO laufen ließen.
-
Die Ausgabe von
SHOW MASTER STATUS in Ordnung gebracht, damit sie
konsistent mit SHOW SLAVE STATUS ist. (Sie hat jetzt kein
Verzeichnis im Log-Namen.)
-
PURGE MASTER LOGS TO hinzugefügt.
-
SHOW MASTER LOGS hinzugefügt.
-
--safemalloc-mem-limit-Option für mysqld hinzugefügt, um
Speichermangel zu simulieren, wenn mit --with-debug=full kompiliert
wurde.
-
Mehrere Coredumps unter Bedingungen, in denen Arbeitsspeicher fehlt,
behoben.
-
SHOW SLAVE STATUS benutzte einen nicht initialisierten mutex, wenn
der Slave noch nicht gestartet wurde.
-
Bug in
ELT() und MAKE_SET() behoben, wenn die Anfrage eine
temporäre Tabelle benutzte.
-
CHANGE MASTER TO ohne Angabe von MASTER_LOG_POS setzte es auf
0 statt auf 4 und erreichte die magische Zahl im binären Master-Log.
-
ALTER TABLE ... ORDER BY ...-Syntax hinzugefügt. Das erzeugt die
Tabelle mit Zeilen in einer festgelegten Reihenfolge.
-
Bug behoben, bei dem das automatische Reparieren von MyISAM-Tabellen
manchmal fehlschlug, wenn die Daten-Datei beschädigt war.
-
Bug in
SHOW CREATE bei der Benutzung von
AUTO_INCREMENT-Spalten behoben.
-
BDB-Tabellen so geändert, dass sie die neue Vergleichsfunktion in Berkeley
DB 3.2.3 benutzen.
-
Sie können jetzt Unix-Sockets bei
mit-pThread benutzen.
-
Neuer latin5- (türkischer) Zeichensatz.
-
Kleinere Portabilitätsbehebungen.
-
<> funktioniert jetzt sauber mit NULL.
-
Problem mit
SUBSTRING_INDEX() und REPLACE() behoben (Patch
von Alexunder Igonitchev).
-
CREATE TEMPORARY TABLE IF NOT EXISTS gab keinen Fehler, wenn die
Tabelle existierte.
-
Wenn Sie keinen
PRIMARY KEY in einer BDB-Tabelle erzeugen, wird ein
versteckter PRIMARY KEY erzeugt.
-
Nur-Lese-Schlüssel-Optimierung to BDB-Tabellen hinzugefügt.
-
LEFT JOIN bevorzugte in manchen Fällen einen vollen Tabellen-Scan,
wenn es keine WHERE-Klausel gab.
-
Bei der Benutzung von
--log-slow-query die Wartezeit auf eine Sperre
nicht zählen.
-
Bug im Sperr-Code unter Windows behoben, der dazu führte, dass der
Schlüssel-Cache berichtete, dass die Schlüssel-Datei beschädigt sei, obwohl
sie in Ordnung war.
-
Automatische Reparatur von
MyISAM-Tabellen, wenn Sie mysqld
mit --myisam-recover starten, hinzugefügt.
-
Das
TYPE=-Schlüsselwort wurde von CHECK und REPAIR
entfernt. Es wird zugelassen, dass CHECK-Optionen kombiniert werden.
(Sie können immer noch TYPE= benutzen, aber die Benutzung wird nicht
empfohlen.)
-
Mutex-Bug im binären Replikations-Log behoben - lange
Aktualisierungsanfragen konnten vom Slave nur teilweise gelesen werden,
wenn er das zur falschen Zeit machte, was nicht schwerwiegend ist, aber zu
einem Performance-verschlechternden erneuten Verbinden führte, sowie zu
einer beunruhigenden Nachricht in der Fehler-Log-Datei.
-
Das Format der Binär-Log-Datei wurde geändert - hinzugefügt wurden magische
Zahl, Serverversion, Binlog-Version, Server-Kennung und Anfragen-Fehlercode
für jedes Anfrage-Ereignis.
-
Replikations-Thread vom Slave killt jetzt alle darnieder liegenden Threads
vom selben Server.
-
Lange Replikations-Benutzernamen wurden bislang nicht korrekt gehandhabt.
-
--replicate-rewrite-db-Option zu mysqld hinzugefügt.
-
--skip-slave-start-Option to mysqld hinzugefügt.
-
Aktualisierungen, die einen Fehlercode erzeugten (wie
INSERT INTO
foo(schluessel) values (1),(1)) beendeten bislang irrtümlich den
Slave-Thread.
-
Optimierung von Anfragen, bei denen
DISTINCT nur auf Spalten aus
denselben Tabellen benutzt wird, hinzugefügt.
-
Fließkommazahlen ohne Vorzeichen nach dem Exponent (wie 1e1) werden
zugelassen.
-
SHOW GRANTS zeigte nicht immer alle Spaltenberechtigungen.
-
--default-extra-file=# für alle MySQL-Clients hinzugefügt.
-
Spalten, auf die in
INSERT-Statements verwiesen wird, werden nun
sauber initialisiert.
-
UPDATE funktioniert nicht immer, wenn es mit einem Bereich auf einem
Timestamp benutzt wurde, der Teil des Schlüssels war, der benutzt wurde, um
Zeilen zu finden.
-
Bug in
FULLTEXT-Index beim Einfügen einer NULL-Spalte
behoben.
-
mkstemp() wird jetzt anstelle von tempnam() benutzt. Basiert
auf einem Patch von John Jones.
-
database funktioniert als zweites Argument für mysqlhotcopy.
-
UMASK und UMASK_DIR können jetzt oktal angegeben werden.
-
RIGHT JOIN. Hierdurch wird RIGHT zu einem reservierten Wort.
-
@@IDENTITY als ein Synonym für LAST_INSERT_ID()
hinzugefügt, aus Gründen der Visual-Basic-Kompatibilität.)
-
Bug in
myisamchk und REPAIR bei der Benutzung von
FULLTEXT-Indexen behoben.
-
LOAD DATA INFILE funktioniert jetzt mit FIFOs (Patch von Toni L.
Harbaugh-Blackford).
-
FLUSH LOGS brach die Replikation ab, wenn Sie einen Log-Namen mit
einer expliziten Erweiterung als Wert der log-bin-Option angaben.
-
Bug in
MyISAM mit komprimierten mehrteiligen Schlüsseln behoben.
-
Absturz bei der Benutzung von
CHECK TABLE unter Windows behoben.
-
Bug, bei dem
FULLTEXT-Index immer den koi8_ukr-Zeichensatz
benutzten, behoben.
-
Berechtigungsüberprüfung für
CHECK TABLE in Ordnung gebracht.
-
Der
MyISAM-Reparatur-/Reindexierungs-Code benutzte nicht die
--tempdir-Option für seine temporären Dateien.
-
BACKUP TABLE/RESTORE TABLE hinzugefügt.
-
Coredump auf
CHANGE MASTER TO behoben, wenn der Slave keinen Master
hatte, mit dem er startet.
-
Falsche
time in der Prozessliste für Connect des
Slave-Threads in Ordnung gebracht.
-
Der Slave loggt jetzt, wann er sich mit dem Master verbindet.
-
Coredump-Bug beim Ausführen von
FLUSH MASTER behoben, wenn man kein
Dateinamens-Argument für --log-bin angab.
-
Fehlende `ha_berkeley.x'-Dateien zu MySQL unter Windows hinzugefügt.
-
Einige mutex-Bugs im Log-Code behoben, die zu Thread-Blockierungen führen
konnten, wenn neue Log-Dateien nicht erzeugt werden konnten.
-
Sperrzeit und Anzahl von ausgewählten bearbeiteten Zeilen zur
Langsame-Anfragen-Log-Datei hinzugefügt.
-
--memlock-Option für mysqld, um mysqld im
Arbeitsspeicher auf Systemen mit dem mlockall()-Aufruf (wie in
Solaris) zu sperren, hinzugefügt.
-
HEAP-Tabellen benutzten Schlüssel nicht korrekt (Bug aus Version
3.23.23).
-
Bessere Unterstützung für
MERGE-Tabellen (Schlüssel, Mapping,
Erzeugung, Dokumentation und mehr) hinzugefügt. See section 8.2 MERGE-Tabellen.
-
Bug in
mysqldump aus Version 3.23 behoben, der dazu führte, dass
einige CHAR-Spalten nicht in Anführungsstrichen standen.
-
analyze, check, optimize und Reparatur-Code
zusammengefasst.
-
OPTIMIZE TABLE wird jetzt auf REPAIR mit Statistiken und
Sortieren des Index-Baums gemappt. Das heißt, das es momentan nur auf
MyISAM-Tabellen funktioniert.
-
Einen pre-alloced Block zu root_malloc hinzugefügt, um weniger mallocs zu
erhalten.
-
Viele neue Statistik-Variablen hinzugefügt.
-
ORDER BY-Bug bei BDB-Tabellen behoben.
-
Warnungen entfernt, dass
mysqld die `.pid'-Datei unter Windows
nicht entfernen konnte.
-
--log-isam zum Loggen von MyISAM-Tabellen anstelle von
isam-Tabellen abgeändert.
-
CHECK TABLE funktioniert jetzt auch unter Windows.
-
Datei-mutexes hinzugefügt, um
pwrite() unter Windows sicher zu
machen.
-
mysqld-Variable created_tmp_disk_tables hinzugefügt.
-
Um das verlässliche Dumpen und Wiederherstellen von Tabellen mit
TIMESTAMP(X)-Spalten zu ermöglichen, berichtet MySQL jetzt Spalten
mit X anders als 14 oder 8 als Zeichenketten.
-
Sortierreihenfolge für latin1 abgeändert im Vergleich zu MySQL-Version vor
3.23.23. Jede Tabelle mit
CHAR-Spalten, die Zeichen mit ASCII-Werten
größer als 128 enthalten darf, die vor Version 3.23.22 erzeugt oder
geändert wurde, muss repariert werden!
-
Kleines Speicherleck behoben, das in Version 3.23.22 beim Einfügen einer
temporären Tabelle eingeführt wurde.
-
Problem mit BDB-Tabellen und Lesen auf einem eindeutigen (nicht primären)
Schlüssel behoben.
-
Der win1251-Zeichensatz wurde wiederhergestellt (er ist jetzt nur als nicht
empfohlen gekennzeichnet).
-
Geänderte Sortierreihenfolge für 'deutsch'; Alle Tabellen mit 'deutscher'
Sortierreihenfolge müssen mit
REPAIR TABLE oder myisamchk
repariert werden, bevor sie benutzt werden können!
-
Option
--core-file für mysqld hinzugefügt, um eine Core-Datei
unter Linux zu erhalten, wenn mysqld durch das SIGSEGV-Signal
stirbt.
-
MySQL-Client
mysql startet jetzt vorgabemäßig mit
--no-named-commands (-g). Diese Option kann mit
--enable-named-commands (-G) abgeschaltet werden. Das kann in
manchen Fällen Inkompatibilitätsprobleme hervorrufen, zum Beispiel in
SQL-Skripten, die benannte Befehle ohne Semikolon benutzen!
Langformat-Befehle funktionieren immer noch von der ersten Zeile.
-
Problem bei der Benutzung vieler anhängiger
DROP TABLE-Statements
zugleich behoben.
-
Der Optimierer verwendete Schlüssel nicht korrekt bei der Benutzung von
LEFT JOIN auf eine leere Tabelle.
-
Kürzerer Hilfetext beim Aufruf von
mysqld mit falschen Optionen.
-
Nicht schwerwiegender
free()-Bug in mysqlimport behoben.
-
Bug in der
MyISAM-Index-Handhabung von
DECIMAL-/NUMERIC-Schlüsseln behoben.
-
Bug beim gleichzeitigen Einfügen in
MyISAM-Tabellen behoben; in
manchen Zusammenhängen gab die Benutzung von MIN(schluessel_teil)
oder MAX(schluessel_teil) eine leere Ergebnismenge zurück.
-
mysqlhotcopy für die Benutzung der neuen FLUSH TABLES
tabellen_liste-Syntax aktualisiert. Nur Tabellen, die gesichert werden,
werden jetzt auf Platte zurückgeschrieben (flush).
-
Verhalten von
--enable-thread-safe-client so geändert, dass sowohl
nicht gethreadete (-lmysqlclient) als auch gethreadete
(-lmysqlclient_r) Bibliotheken eingebaut werden. Benutzer, die gegen
ein gethreadetes -lmysqlclient linkten, müssen jetzt gegen
libmysqlclient_r linken.
-
Atomischer
RENAME-Befehl hinzugefügt.
-
Einträge mit
NULL werden in COUNT(DISTINCT ...) nicht
gezählt.
-
ALTER TABLE, LOAD DATA INFILE auf leere Tabellen und
INSERT ... SELECT ... auf leere Tabellen so geändert, dass nicht
eindeutige Indexe in einem separaten Stapellauf mit Sortieren erzeugt
werden. Das macht die genannten Aufrufe viel schneller, wenn Sie viele
Indexe haben.
-
ALTER TABLE loggt jetzt die zuerst benutzte insert_id korrekt.
-
Absturz beim Hinzufügen eines Vorgabewerts zu einer
BLOB-Spalte
behoben.
-
Bug bei
DATE_ADD/DATE_SUB behoben, der eine DATETIME anstelle eines
DATE zurückgab.
-
Problem mit dem Thread-Cache behoben, der dazu führte, dass einige Threads
als
***DEAD*** in SHOW PROCESSLIST erschienen.
-
Eine Sperre in unserem thr_rwlock-Code beseitigt, die dazu führen konnte,
dass SELECTs, die zur selben Zeit laufen wie gleichzeitige Einfügevorgänge,
abstürzen. Das betrifft nur Systeme, die nicht den
pthread_rwlock_rdlock-Code haben.
-
Beim Löschen von Zeilen mit einem nicht eindeutigen Schlüssel in einer
HEAP-Tabelle wurden nicht immer alle Zeilen gelöscht.
-
Bug im Bereichsoptimierer für HEAP-Tabellen bei Suchen auf einem Teil-Index
behoben.
-
SELECT auf Teilschlüsseln funktioniert jetzt bei BDB-Tabellen.
-
INSERT INTO bdb_tabelle ... SELECT funktioniert jetzt bei
BDB-Tabellen.
-
CHECK TABLE aktualisiert jetzt Schlüsselstatistiken für die Tabelle.
-
ANALYZE TABLE aktualisiert jetzt nur Tabellen, die seit dem letzten
ANALYZE geändert wurden. Beachten Sie, dass das ein neues Feature
ist, und dass Tabellen nicht als analysiert gekennzeichnet werden, bis sie
auf irgend eine Weise mit Version 3.23.23 oder neuer aktualisiert wurden.
Bei älteren Tabellen müssen Sie CHECK TABLE ausführen, um die
Schlüsselverteilung zu aktualisieren.
-
Einige kleinere Berechtigungsprobleme bei
CHECK, ANALYZE,
REPAIR und SHOW CREATE behoben.
-
CHANGE MASTER TO-Befehl hinzugefügt.
-
FAST-, QUICK- EXTENDED-Überprüfungsarten zu
CHECK TABLES hinzugefügt.
-
myisamchk abgeändert, so dass --fast und
--check-changed-tables auch bei --sort-index und
--analyze berücksichtigt werden.
-
Schwerwiegenden Bug in
LOAD TABLE FROM MASTER behoben, bei dem die
Tabelle während des Neuaufbaus des Indexes nicht gesperrt wurde.
-
LOAD DATA INFILE brach die Replikation ab, wenn die Datenbank aus
der Replikation ausgeschlossen war.
-
Mehr Variablen zu
SHOW SLAVE STATUS und SHOW MASTER STATUS
hinzugefügt.
-
SLAVE STOP gibt jetzt solange nichts zurück, bis der Thread
tatsächlich beendet ist.
-
Volltextsuche mit der
MATCH-Funktion und FULLTEXT-Indextyp
hinzugefügt (für MyISAM-Dateien). Das macht FULLTEXT zu einem
reservierten Wort.
-
lex_hash.h wird jetzt für jede MySQL-Distribution korrekt erzeugt.
-
MASTER und COLLECTION sind jetzt reservierte Wörter.
-
Die Log-Datei, die von
--slow-query-log erzeugt wird, enthielt nicht
die gesamten Anfragen.
-
Offene Transaktionen in BDB-Tabellen werden jetzt nicht mehr zurückgerollt,
wenn die Verbindung unerwartet geschlossen wird.
-
Workaround für einen Bug in
gcc 2.96 (intel) und gcc 2.9
(Ia64) in gen_lex_hash.c hinzugefügt.
-
Speicherleck in der Client-Bibliothek bei der Benutzung von
host= in
der my.cnf-Datei behoben.
-
Funktionen optimiert, die Stunden/Minuten/Sekunden bearbeiten.
-
Bug beim Vergleich des Ergebnisses von
DATE_ADD()/DATE_SUB()
mit einer Zahl behoben.
-
Bedeutung von
-F, --fast für myisamchk geändert. Option
-C, --check-only-changed für myisamchk hinzugefügt.
-
ANALYZE tabelle zum Aktualisieren von Schlüsselstatistiken für
Tabellen hinzugefügt.
-
Binäreinheiten
0x... abgeändert, so dass sie vorgabemäßig als
Ganzzahlen betrachtet werden.
-
Fehlerbehebung für SCO und
SHOW PROCESSLIST.
-
auto-rehash beim erneuten Verbinden für den mysql-Client
hinzugefügt.
-
Neu eingeführten Bug in
MyISAM behoben, bei dem die Index-Datei
nicht größer als 64 MB werden durfte.
-
SHOW MASTER STATUS und SHOW SLAVE STATUS hinzugefügt.
-
mysql_character_set_name(MYSQL *mysql)-Funktion zur MySQL-C-API
hinzugefügt.
-
Update-Log-Datei
ASCII 0-sicher gemacht.
-
mysql_config-Skript hinzugefügt.
-
Problem bei der Benutzung von
< oder > mit einer CHAR-Spalte,
die nur teilweise indexiert war, behoben.
-
Man erhielt einen Coredump, wenn die Log-Datei nicht vom MySQL-Benutzer
lesbar war.
-
mysqladmin so geändert, dass es die CREATE
DATABASE/DROP DATABASE-Befehle anstelle der alten, nicht
empfohlenen API-Aufrufe benutzt.
-
chown-Warnung in safe_mysqld in Ordnung gebracht.
-
Bug in
ORDER BY behoben, der in Version 3.23.19 eingeführt wurde.
-
DELETE FROM tabelle wird nur dann optimiert, ein Löschen und
Neuerzeugen der Tabelle auszuführen, wenn man sich im
AUTOCOMMIT-Modus befindet (benötigt für BDB-Tabellen).
-
Zusätzliche Prüfungen hinzugefügt, um Index-Beschädigung zu vermeiden, wenn
die
ISAM/MyISAM-Index-Dateien während eines
INSERT/UPDATE voll werden.
-
myisamchk aktualisierte die Zeilenprüfsumme nicht korrekt, wenn es
mit -ro benutzt wurde (sondern gab nur bei nachfolgenden Läufen eine
Warnung aus).
-
Bug in
REPAIR TABLE behoben, so dass es bei Tabellen ohne Indexe
funktioniert.
-
Puffer-Überlauf in
DROP DATABASE behoben.
-
LOAD TABLE FROM MASTER ist ausreichend ohne Bugs, um es als Feature
vorstellen zu können.
-
MATCH und AGAINST sind jetzt reservierte Wörter.
-
Bug in Version 3.23.19 behoben;
DELETE FROM tabelle entfernte die
.frm-Datei.
-
SHOW CREATE TABLE.
-
Copyright für alle Dateien zu GPL für den Server-Code und die
Dienstprogramme und LGPL für die Client-Bibliotheken geändert.
-
Bug behoben, bei dem nicht alle übereinstimmenden Zeilen bei einer
MyISAM-Tabelle aktualisiert wurden, wenn man eine Aktualisierung
basierend auf einem Schlüssel auf eine Tabelle mit vielen Schlüsseln
durchführte, und sich einige Schlüsselwerte änderten.
-
Die Linux-MySQL-RPMs und -Binärdateien werden jetzt bei einer
Linux-Thread-Version statisch gelinkt, die schnellere mutex-Handhabung bei
der Benutzung mit MySQL hat.
-
ORDER BY kann jetzt REF-Schlüssel benutzen, um eine
Untermenge von Zeilen zu finden, die sortiert werden müssen.
-
Der Name von
print_defaults wurde in my_print_defaults
geändert, um Namenskonflikte zu vermeiden.
-
NULLIF() funktioniert jetzt gemäß ANSI-SQL99.
-
net_read_timeout und net_write_timeout als Startparameter für
mysqld hinzugefügt.
-
Bug behoben, der den Index bei der Ausführung von
myisamchk
--sort-records auf eine Tabelle mit Präfix-komprimiertem Index zerstörte.
-
pack_isam und myisampack zur Standard-MySQL-Distribution hinzugefügt.
-
Die Syntax
BEGIN WORK hinzugefügt (dasselbe wie BEGIN).
-
Coredump-Bug bei der Benutzung von
ORDER BY auf
CONV()-Ausdruck behoben.
LOAD TABLE FROM MASTER hinzugefügt.
FLUSH MASTER und FLUSH SLAVE hinzugefügt.
- Großes/kleines 'endian'-Problem in der Replikation behoben.
-
Problem aus Version 3.23.17 bei der Auswahl eines Zeichensatzes auf der
Client-Seite behoben.
-
FLUSH TABLES with READ LOCK geändert, so dass es eine globale Sperre
macht, die für das Herstellen einer Kopie der MySQL-Daten-Dateien geeignet
ist.
-
CREATE TABLE ... SELECT ... PROCEDURE funktioniert jetzt.
-
Interne temporäre Tabellen benutzen jetzt einen komprimierten Index bei der
Benutzung von
GROUP BY auf VARCHAR/CHAR-Spalten.
-
Problem behoben beim Sperren derselbe Tabelle mit einer
READ- und
einer WRITE-Sperre.
-
Problem mit myisamchk und
RAID-Tabellen behoben.
-
Bug in
find_in_set() behoben, wenn das erste Argument NULL
war.
-
Tabellensperren für Berkeley-DB hinzugefügt.
-
Bug bei
LEFT JOIN und ORDER BY behoben, bei dem die erste
Tabelle nur eine übereinstimmende Zeile hatte.
-
4
my.cnf-Beispiel-Dateien im `Support-files'-Verzeichnis
hinzugefügt.
-
duplicated key-Problem bei der Ausführung großer GROUP BYs
behoben. (Dieser Bug wurde wahrscheinlich in Version 3.23.15 eingeführt).
-
Syntax für
INNER JOIN geändert, um ANSI-SQL zu entsprechen.
-
NATURAL JOIN-Syntax hinzugefügt.
-
Viele Korrekturen in der
BDB-Schnittstelle.
-
Handhabung von
--no-defaults und --defaults-file für
safe_mysqld.sh und mysql_install_db.sh hinzugefügt.
-
Bug beim Lesen komprimierter Tabellen mit vielen Threads behoben.
-
USE INDEX funktioniert jetzt mit PRIMARY-Schlüsseln.
-
BEGIN-Statement geändert, so dass es eine Transaktion im
AUTOCOMMIT-Modus startet.
-
Symbolische-Links-Unterstützung für Windows.
-
Protokoll geändert, so dass der Client weiß, ob der Server im AUTOCOMMIT-
Modus ist und ob es eine anhängige Transaktion gibt. Wenn das der Fall ist,
gibt die Client-Bibliothek einen Fehler aus, bevor sie sich wieder mit dem
Server verbindet, damit der Client weiß, dass der Server ein Rollback
durchgeführt hat. Das Protokoll ist noch abwärtskompatibel mit den alten
Clients.
-
KILL funktioniert jetzt auf einem Thread, der durch ein 'Schreiben'
auf einen toten Client gesperrt ist.
-
Speicherleck im Replikations-Slave-Thread behoben.
-
Neue Option
log-slave-updates hinzugefügt, die das
Hintereinanderhängen im Kreis (Daisy-Chaining, 'Ringelrei') von Slaves
erlaubt.
-
Compile-Fehler auf FreeBSD und anderen Systemen behoben, auf denen
pthread_t nicht dasselbe wie int ist.
-
Herunterfahren des Masters bricht den Slave-Thread nicht mehr ab.
-
Race-Bedingung im
INSERT DELAYED-Code beim Ausführen von ALTER
TABLE behoben.
-
Blockierungsüberprüfung für
INSERT DELAYED hinzugefügt.
-
Option
TYPE=QUICK für CHECK und REPAIR hinzugefügt.
-
Bug in
REPAIR TABLE behoben, wenn die Tabelle durch einen anderen
Thread in Benutzung war.
-
Einen Thread-Cache hinzugefügt, um zu ermöglichen, MySQL mit
gdb zu
debuggen, wenn man viele erneute Verbindungen durchführt. Das verbessert
auch Systeme, auf denen man keine persistenten Verbindungen benutzen kann.
-
Viele Korrekturen in der Berkeley-DB-Schnittstelle.
-
UPDATE IGNORE bricht jetzt nicht mehr ab, wenn eine Aktualisierung
zu einem DUPLICATE_KEY-Fehler führt.
-
CREATE TEMPORARY TABLE-Befehle werden in die Update-Log-Datei
geschrieben.
-
Bug bei der Handhabung von maskierten IP-Nummern in den
Berechtigungstabellen behoben.
-
Bug mit
delayed_key_writes-Tabellen und CHECK TABLE behoben.
-
replicate-do-db und replicate-ignore-db-Optionen hinzugefügt,
um auf Datenbanken zu beschränken, die repliziert werden.
-
SQL_LOG_BIN-Option hinzugefügt.
-
Um
mysqld als root zu starten, müssen Sie jetzt die --
user=root-Option benutzen.
-
Schnittstelle zu Berkeley-DB hinzugefügt. (Diese funktioniert noch nicht
richtig. Spielen Sie mit ihr auf eigenes Risiko herum!)
-
Replikation zwischen Master und Slaves hinzugefügt.
-
Bug behoben, bei dem ein anderer Thread eine Sperre stehlen konnte, wenn
ein Thread eine Sperre auf eine Tabelle hatte und einen
FLUSH
TABLES-Befehl ausführte.
-
Die
slow_launch_time-Variable und die
slow_launch_thread-Status-Variable zu mysqld hinzugefügt.
Diese können mit mysqladmin variables und mysqladmin
extended-status betrachtet werden.
-
Funktionen
INET_NTOA() und INET_ATON() hinzugefügt.
-
Der vorgabemäßige Typ von
IF() hängt jetzt vom zweiten und dritten
Argument ab und nicht nur vom zweiten.
-
Fall behoben, bei dem
myisamchk beim Versuch, eine Tabelle zu
reparieren, in eine Schleife geraten konnte.
-
INSERT DELAYED nicht in die Update-Log-Datei schreiben, wenn
SQL_LOG_UPDATE=0.
-
Problem mit
REPLACE auf HEAP-Tabellen behoben.
-
Mögliche Zeichensätze und Zeitzone zu
SHOW VARIABLES hinzugefügt.
-
Bug im Sperr-Code behoben, der zu Sperrproblemen bei gleichzeitigen
Einfügevorgängen unter hoher Last führen konnte.
-
Problem bei
DELETE vieler Zeilen auf eine Tabelle mit komprimierten
Schlüsseln behoben, bei dem MySQL den Index scannte, um Zeilen zu finden.
-
Problem mit
CHECK auf Tabelle mit gelöschten Schlüsselblöcken
behoben.
-
Bug beim Neuverbinden (auf der Client-Seite) behoben, bei dem in manchen
Situationen Speicher nicht freigegeben wurde.
-
Probleme in der Update-Log-Datei bei der Benutzung von
LAST_INSERT_ID() zum Aktualisieren einer Tabelle mit einem
auto_increment-Schlüssel behoben.
-
Funktion
NULLIF() hinzugefügt.
-
Bug bei der Benutzung von
LOAD DATA INFILE auf eine Tabelle mit
BLOB/TEXT-Spalten behoben.
-
MyISAM optimiert, um es beim Einfügen von Schlüsseln in sortierter
Reihenfolge schneller zu machen.
-
EXPLAIN SELECT ... gibt jetzt auch aus, ob MySQL eine temporäre
Tabelle oder Dateisortieren verwendet, wenn das SELECT aufgelöst
wird.
-
Optimierung hinzugefügt, um
ORDER BY-Teile zu überspringen, bei
denen der Teil ein konstanter Ausdruck im WHERE-Teil ist. Indexe
können jetzt benutzt werden, selbst wenn das ORDER BY nicht genau
mit dem Index übereinstimmt, solange alle nicht benutzten Index-Teile und
alle zusätzlichen ORDER BY-Spalten Konstanten in der
WHERE-Klausel sind. See section 6.4.3 Wie MySQL Indexe benutzt.
-
UPDATE und DELETE auf einen gesamten eindeutigen Schlüssel im
WHERE-Teil ist jetzt schneller als vorher.
-
RAID_CHUNKSIZE so geändert, dass es in 1024 Bytes inkrementiert.
-
Coredump in LOAD_FILE(NULL) behoben.
-
Bug in
CONCAT() behoben, bei dem eins der Argumente eine Funktion
war, die ein verändertes Argument zurückgab.
-
Kritischen Bug in
myisamchk behoben, wobei es den Header in der
Index-Datei aktualisierte, wenn man die Tabelle nur prüfte. Das brachte den
mysqld-Daemon durcheinander, wenn er dieselbe Tabelle zur gleichen
Zeit aktualisierte. Jetzt wird der Status in der Index-Datei nur dann
aktualisiert, wenn man --update-state benutzt. Bei älteren
myisamchk-Versionen sollten Sie --read-only benutzen, wenn
Sie Tabellen nur prüfen, wenn es auch nur die geringste Chance gibt, dass
der mysqld-Server zur gleichen Zeit auf der Tabelle arbeitet!
-
DROP TABLE wird nicht mehr in der Update-Log-Datei geloggt.
-
Problem beim Suchen auf
DECIMAL()-Schlüsselfeld behoben, wenn die
Spalte Daten mit führenden Nullen enthielt.
-
Bug in
myisamchk behoben, wenn auto_increment nicht der erste
Schlüssel ist.
-
DATETIME wird im ISO-8601-Format zugelassen: 2000-03-12T12:00:00
-
Dynamische Zeichensätze hinzugefügt. Eine
mysqld-Binärdatei kann
jetzt viele unterschiedliche Zeichensätze handhaben (welche, können Sie
beim Start von mysqld angeben).
-
Befehl
REPAIR TABLE hinzugefügt.
-
C-API-Funktion
mysql_thread_safe() hinzugefügt.
-
UMASK_DIR-Umgebungsvariable hinzugefügt.
-
Funktion
CONNECTION_ID() hinzugefügt.
-
Bei der Benutzung von
= auf BLOB- oder VARCHAR
BINARY-Schlüsseln, bei denen nur ein Teil der Spalte indexiert war, wurde
nicht die gesamte Spalte der Ergebniszeile verglichen.
-
Problembehebung für sjis-Zeichensatz und
ORDER BY.
-
Beim Laufenlassen im ANSI-Modus wird nicht mehr zugelassen, dass Spalten
benutzt werden, die nicht im
GROUP BY-Teil angegeben wurden.
-
Problem behoben bei der Ausführung von Sperren auf dieselbe Tabelle mehr
als zweimal im selben
LOCK TABLE-Befehl. Dadurch wurde das Problem
behoben, das man bekam, wenn man test-ATIS test mit --fast oder
--check-only-changed laufen ließ.
-
Option
SQL_Puffer_RESULT für SELECT hinzugefügt.
-
Leerzeichen am Ende von Double-/Float-Zahlen in Ergebnissen aus temporären
Tabellen entfernt.
CHECK TABLE-Befehl hinzugefügt.
-
Änderungen für MyISAM in Version 3.23.12 hinzugefügt, die wegen
CVS-Problemen nicht in die Quelldistribution gelangten.
-
Bug behoben, so dass
mysqladmin shutdown darauf wartet, dass der
lokale Server herunter fährt.
-
Mögliche Endlosschleife bei der Zeitstempel-Berechnung repariert.
-
print_defaults für die `.rpm'-Dateien hinzugefügt.
mysqlbug aus der Client-`.rpm'-Datei entfernt.
-
Bug in
MyISAM behoben, bei dem REPLACE ... SELECT ... eine
beschädigte Tabelle ergeben konnte.
-
Bug in
myisamchk behoben, bei dem der auto_increment-Wert falsch
zurückgesetzt wurde.
-
VIELE Patches für Linux Alpha. MySQL scheint mittlerweile auf Linux Alpha
relativ stabil zu laufen.
-
DISTINCT auf HEAP temporäre Tabellen so geändert, dass
gehashte Schlüssel verwendet werden, um doppelte Zeilen (Duplikate) schnell
zu finden. Das betrifft meistens Anfragen des Typs SELECT DISTINCT
... GROUP BY .... Das behebt ein Problem, bei dem nicht alle Duplikate in
Anfragen des genannten Typs entfernt wurden. Zusätzlich ist der neue Code
VIEL schneller.
-
Patches hinzugefügt, damit MySQL auf Mac OS X kompiliert.
-
Option
IF NOT EXISTS für CREATE DATABASE hinzugefügt.
-
Optionen
--all-databases und --databases für mysqldump
hinzugefügt, um das Dumpen vieler Datenbanken zugleich zu ermöglichen.
-
Bug im komprimierten
DECIMAL()-Index in MyISAM-Tabellen
behoben.
-
Bug beim Speichern von 0 in ein Timestamp-Feld behoben.
-
Beim Ausführen von
mysqladmin shutdown auf eine lokale Verbindung
wartet mysqladmin jetzt, bis die PID-Datei entfernt ist, bevor es
sich beendet.
-
Coredump bei einigen
COUNT(DISTINCT ...)-Anfragen behoben.
-
myisamchk funktioniert jetzt sauber bei RAID-Tabellen.
-
Problem bei
LEFT JOIN und schluessel_feld IS NULL behoben.
-
Bug in
net_clear() behoben, der den Fehler Aborted connection
in MySQL-Clients ausgeben konnte.
-
Optionen
USE INDEX (schluessel_liste) und IGNORE INDEX
(schluessel_liste) als Join-Parameter in SELECT hinzugefügt.
-
DELETE und RENAME sollten jetzt auf RAID-Tabellen
funktionieren.
-
ALTER TABLE tabelle ADD (feld_liste)-Syntax wird zugelassen.
-
Problem mit dem Optimierer behoben, der manchmal falsche Schlüssel
benutzte.
-
GRANT/REVOKE ALL PRIVILEGES betrifft jetzt nicht mehr GRANT
OPTION.
-
Zusätzliche Klammer (
)) aus der Ausgabe von SHOW GRANTS
entfernt.
-
Problem beim Speichern von Zahlen in Timestamps behoben.
-
Problem mit Zeitzonen behoben, die einen Halbstunden-Offset haben.
-
Syntax
UNIQUE INDEX in CREATE-Statements wird jetzt
zugelassen.
-
mysqlhotcopy hinzugefügt. Das ist ein schnelles
Online-Datensicherungsdienstprogramm für lokale MySQL-Datenbanken. Von Tim
Bunce.
-
Neues, sichereres
mysqlaccess hinzugefügt. Dank an Steve Harvey
hierfür.
-
Optionen
--i-am-a-dummy und --safe-updates für mysql
hinzugefügt.
-
Variablen
select_limit und max_join_size für mysql
hinzugefügt.
-
SQL-Variablen
SQL_MAX_JOIN_SIZE und SQL_SAFE_UPDATES
hinzugefügt.
-
READ LOCAL-Sperre hinzugefügt, die die Tabelle nicht für
gleichzeitige Einfügevorgänge sperrt (das wird von mysqldump
benutzt).
-
LOCK TABLES ... READ läßt keine gleichzeitigen Einfügevorgänge mehr
zu.
-
Option
--skip-delay-key-write für mysqld hinzugefügt.
-
Sicherheitsproblem im Protokoll betreffend Passwortüberprüfung behoben.
-
_rowid kann jetzt als Alias für eine eindeutig indexierte Spalte vom
Typ Ganzzahl benutzt werden.
-
Zurück-Blockieren (Back Blocking) für
SIGPIPE beim Kompilieren mit
--thread-safe-clients hinzugefügt, um Dinge für alte Clients sicher
zu machen.
-
Bug in Version 3.23.9 behoben, bei dem Speicher nicht korrekt freigegeben
wurde, wenn man
LOCK TABLES ausführte.
-
Problem behoben, dass betroffene Anfragen Berechnungen auf
Gruppenfunktionen durchführten.
-
Problem mit timestamps und
INSERT DELAYED behoben.
-
datum_spalte BETWEEN konstanten_datum AND konstanten_datum
funktioniert.
-
Problem behoben, wenn man nur eine 0 zu
NULL in einer Tabelle mit
BLOB/TEXT-Spalten änderte.
-
Bug im Bereichsoptimierer bei der Benutzung von vielen Schlüsselteilen und
/ oder den mittleren Schlüsselteilen behoben:
WHERE K1=1 and K3=2 and
(K2=2 and K4=4 or K2=3 and K4=5)
-
Befehl
source für mysql hinzugefügt, um Lesen von
Stapeldateien innerhalb des mysql-Clients zu ermöglichen.
Original-Patch von Matthew Vanecek.
-
Kritisches Problem mit der
WITH GRANT OPTION-Option behoben.
-
Keinen unnötigen
GRANT-Fehler bei der Benutzung von Tabellen von
vielen Datenbanken in derselben Anfrage ausgeben.
-
VIO-Wrapper (benötigt für SSL-Unterstützung) hinzugefügt. Von Andrei
Errapart und Tõnu Samuel).
-
Optimiererproblem bei
SELECT bei der Benutzung von vielen
überlappenden Indexen behoben. MySQL sollte jetzt in der Lage sein,
Schlüssel noch besser auszusuchen, wenn es viele Schlüssel zur Auswahl
gibt.
-
Optimierer so geändert, dass er einen Bereichsschlüssel anstelle eines
Verweisschlüssels bevorzugt, wenn der Bereichsschlüssel mehr Spalten als
der Verweisschlüssel benutzen kann (der nur Spalten mit = verwenden
kann). Folgender Anfragentyp beispielsweise sollte jetzt schneller sein:
SELECT * from schluessel_teil_1=konstante und schluessel_teil_2 >
konstante2
-
Bug behoben, bei dem eine Änderung aller
VARCHAR-Spalten in
CHAR-Spalten den Spaltentyp nicht von dynamisch auf fest änderte.
-
Fließkomma-Ausnahmefehler für FreeBSD abgeschaltet, um Coredump beim
Ausführen von
SELECT floor(pow(2,63)) zu vermeiden.
-
mysqld-Startoption --delay-key-write in
--delay-key-write-for-all-tables geändert.
-
read-next-on-key für HEAP-Tabellen hinzugefügt. Das sollte
alle Probleme mit HEAP-Tabellen bei der Benutzung von
Nicht-UNIQUE-Schlüsseln beheben.
-
Optionen für die Ausgabe vorgabemäßiger Argumente für alle Clients
hinzugefügt.
-
--log-slow-queries für mysqld hinzugefügt, um alle Anfragen
in einer separate Log-Datei zu loggen, die lange dauerten, mit einer
Zeitangabe, wie lange die Anfrage benötigte.
-
Coredump bei der Ausführung von
WHERE schluessel_spalte=RAND(...)
behoben.
-
Optimierungs-Bug in
SELECT ... LEFT JOIN ... schluessel_spalte IS
NULL behoben, wenn schluessel_spalte NULL-Werte enthalten
konnte.
-
Problem mit 8-Bit-Zeichen als Trennzeichen in
LOAD DATA INFILE
behoben.
-
Problem bei der Handhabung von Index-Dateien größer als 8 GB behoben.
-
neueste Patches für mit-pThread für NetBSD angewandt.
-
Probleme mit Zeitzonen < GMT - 11 behoben.
-
Bug beim Löschen komprimierter Schlüssel in
MyISAM behoben.
-
Problem mit
ISAM bei der Ausführung einiger ORDER BY ...
DESC-Anfragen behoben.
-
Bug bei der Ausführung eines Joins auf einen Text-Schlüssel behoben, der
nicht den gesamten Schlüssel abdeckte.
-
Option
--delay-key-write schaltete verzögertes Schlüssel-Schreiben
nicht an.
-
Aktualisierung von
TEXT-Spalten, die nur Änderungen der
Groß-/Kleinschreibung beinhalteten, in Ordnung gebracht.
-
INSERT DELAYED aktualisiert jetzt Timestamps, die angegeben sind.
-
Funktion
YEARWEEK() und Optionen x, X, v und
V für DATE_FORMAT() hinzugefügt.
-
Problem mit
MAX(indexierte_spalte) und HEAP-Tabellen behoben.
-
Problem mit
BLOB NULL-Schlüsseln und LIKE "praefix%"
behoben.
-
Problem mit
MyISAM und Zeilen fester Länge < 5 Bytes behoben.
-
Problem behoben, bei dem es vorkommen konnte, dass MySQL auf freigegebenen
Speicher zugriff, wenn er sehr komplizierte
GROUP BY-Anfragen
ausführte.
-
Coredump behoben, wenn man eine beschädigte Tabelle erhielt, in der ein
ENUM-Feldwert zu Groß war.
-
Workaround unter Linux in Ordnung gebracht, um Probleme mit
pthread_mutex_timedwait, was bei INSERT DELAYED benutzt wird,
zu vermeiden. See section 3.6.1 Linux (alle Linux-Versionen).
-
Man erhält jetzt einen 'disk full'-Fehler, wenn die Festplatten beim
Sortieren voll wird (statt darauf zu warten, bis mehr Plattenplatz
verfügbar ist).
-
Bug in
MyISAM mit Schlüsseln > 250 Zeichen behoben.
-
In
MyISAM kann man jetzt ein INSERT zur selben Zeit
durchführen, in der andere Threads aus der Tabelle lesen.
-
Variable
max_write_lock_count für mysqld hinzugefügt, um eine
READ-Sperre nach einer bestimmten Anzahl von WRITE-Sperren zu
erzwingen.
-
Flag
delayed_key_write bei show variables invertiert.
-
Variable
concurrency in thread_concurrency umbenannt.
-
Folgende Funktionen sind jetzt Multi-Byte-sicher:
LOCATE(teilzeichenfolge,zeichenkette),
POSITION(teilzeichenfolge IN zeichenkette),
LOCATE(teilzeichenfolge,zeichenkette,position),
INSTR(zeichenkette,teilzeichenfolge),
LEFT(zeichenkette,laenge), RIGHT(zeichenkette,laenge),
SUBSTRING(zeichenkette,pos,laenge), SUBSTRING(zeichenkette
FROM position FOR laenge), MID(zeichenkette,position,laenge),
SUBSTRING(zeichenkette,position), SUBSTRING(zeichenkette FROM
pos), SUBSTRING_INDEX(zeichenkette,begrenzer,zaehler),
RTRIM(zeichenkette), TRIM([[BOTH | TRAILING]
[entfernzeichenkette] FROM] zeichenkette),
REPLACE(zeichenkette,from_zeichenkette,to_zeichenkette),
REVERSE(zeichenkette),
INSERT(zeichenkette,pos,laenge,newstr), LCASE(zeichenkette),
LOWER(zeichenkette), UCASE(zeichenkette) und
UPPER(zeichenkette). Patch von Wei He.
-
Coredump beim Aufheben einer Sperre von einer nicht existierenden Tabelle
behoben.
-
Sperren auf Tabellen werden jetzt entfernt, bevor Duplikate entfernt
werden.
-
Option
FULL für SHOW PROCESSLIST hinzugefügt.
-
Option
--verbose für mysqladmin hinzugefügt.
-
Problem beim automatischen Umwandeln von HEAP in MyISAM behoben.
-
Bug in HEAP-Tabellen behoben, wenn man INSERT + DELETE + INSERT + Scannen
der Tabelle ausführt.
-
Bugs auf Alpha mit
REPLACE() und LOAD DATA INFILE behoben.
-
mysqld-Variable interactive_timeout hinzugefügt.
-
Argument für
mysql_data_seek() von ulong zu ulonglong
geändert.
-
mysqld-Option -O lower_case_tables= hinzugefügt, damit
Benutzer Tabellennamen to Kleinschreibung erzwingen können.
-
SELECT ... INTO DUMPFILE hinzugefügt.
-
mysqld-Option --ansi hinzugefügt, um einige Funktionen
ANSI-SQL-kompatibler zu machen.
-
Temporäre Tabellen fangen jetzt mit
#sql an.
-
Quoten von Bezeichnern mit
` (" im --ansi-Modus).
-
Jetzt wird snprintf() bei der Ausgabe von Fließkommazahlen benutzt, um
einige Puffer-Überläufe unter FreeBSD zu vermeiden.
-
[floor() überlaufsicher unter FreeBSD gemacht.
-
Option
--quote-names für mysqldump hinzugefügt.
-
Bug behoben, dass man einen Teil eines
PRIMARY KEY NOT NULL machen
konnte.
-
encrypt() in Ordnung gebracht, um Thread-sicher zu sein und Puffer
nicht erneut zu benutzen.
-
mysql_odbc_escape_string()-Funktion zur Unterstützung von
big5-Zeichen in MyODBC hinzugefügt.
-
Die Tabellen-Handler wurden umgeschrieben und benutzen jetzt Klassen.
Hierdurch wird viel neuer Code eingeführt, aber die Tabellenhandhabung wird
schneller und besser.
-
Patch von Sasha für benutzerdefinierte Variablen angewandt.
-
FLOAT und DOUBLE (ohne jeden Längen-Modifikator) sind jetzt
keine festen Dezimalpunkt-Zahlen mehr.
-
Die Bedeutung von
FLOAT(X) wurde geändert: Jetzt ist das dasselbe
wie FLOAT, wenn X <= 24, und DOUBLE, wenn 24 < X <= 53.
-
DECIMAL(X) ist jetzt ein Alias für DECIMAL(X,0), und
DECIMAL ist jetzt ein Alias für DECIMAL(10,0). Dasselbe gilt
für NUMERIC.
-
Option
ROW_FORMAT={default | dynamic | static | compressed} für
CREATE_TABLE hinzugefügt.
-
DELETE FROM tabelle funktionierte nicht auf temporären Tabellen.
-
Funktion
CHAR_LENGTH() geändert, so dass sie
Multi-Byte-Zeichen-sicher ist.
-
Funktion
ORD(zeichenkette) hinzugefügt.
-
Einige Jahr-2000-Probleme in der neuen Daten-Handhabung in Version 3.23
behoben.
-
Problem mit
SELECT DISTINCT ... ORDER BY RAND() behoben.
-
Patches von Sergei A. Golubchik für Textsuche auf MyISAM-Ebene angewandt.
-
Cache-Überlaufproblem bei der Benutzung von Full Joins ohne Schlüssel
behoben.
-
Einige configure-Probleme bereinigt.
-
Einige kleine Änderungen, um das Parsen schneller zu machen.
-
ALTER TABLE + Hinzufügen einer Spalte nach dem letzten Feld
funktionierte nicht.
-
Problem bei der Benutzung einer auto_increment-Spalte in zwei Schlüsseln
behoben.
-
Bei MyISAM kann man jetzt den auto_increment-Teil als Untermenge haben:
CREATE TABLE foo (a int not null auto_increment, b char(5), primary
key (b,a))
-
Bug in MyISAM mit komprimierten CHAR-Schlüsseln, die
NULL sein
konnten, behoben.
-
AS auf Feldname mit CREATE TABLE tabelle SELECT ...
funktionierte nicht.
-
Benutzung von
NATIONAL und NCHAR bei der Definition von
Zeichenspalten wird zugelassen. Das ist dasselbe, als wenn man
BINARY nicht benutzt.
-
Keine
NULL-Spalten in einem PRIMARY KEY zulassen (nur in
UNIQUE-Schlüsseln).
-
LAST_INSERT_ID wird gelöscht (clear), wenn man diese in ODBC
benutzt: WHERE auto_increment_spalte IS NULL. Das scheint einige
Probleme mit Access zu beheben.
-
SET SQL_AUTO_IS_NULL=0|1 schaltet jetzt die Handhabung von Suchen
nach der letzten eingefügten Zeile bei WHERE auto_increment_spalte IS
NULL aus / an.
-
Neue
mysqld-Variable concurrency für Solaris hinzugefügt.
-
Option
--relative für mysqladmin hinzugefügt, um mit
extended-status eine bessere Beobachtung von Änderungen zu erzielen.
-
Bug bei der Benutzung von
COUNT(DISTINCT ...) auf eine leere Tabelle
behoben.
-
Unterstützung für den chinesischen Zeichensatz GBK hinzugefügt.
-
Problem mit
LOAD DATA INFILE und BLOB-Spalten behoben.
-
Bit-Operator
~ (Negation) hinzugefügt.
-
Problem mit
UDF-Funktionen behoben.
-
Einfügen eines
DATETIME-Werts in eine TIME-Spalte versucht
jetzt nicht mehr, darin 'Tage' zu speichern.
-
Problem mit der Speicherung von Float / Double auf kleinen Endian-Maschinen
behoben (das betraf
SUM()).
-
Verbindungs-Zeitüberschreitung (Timeout) auf TCP/IP-Verbindungen
hinzugefügt.
-
Problem mit
LIKE "%" auf einem Index, der NULL-Werte
enthalten darf, behoben.
-
REVOKE ALL PRIVILEGES widerrief nicht alle Berechtigungen.
-
Erzeugung temporärer Tabellen mit demselben Namen wie die Original-Tabelle
wird zugelassen.
-
Wenn man einem Benutzer eine Berechtigungsoption (Grant Option) für eine
Datenbank gewährte, konnte er die Berechtigungen nicht an andere Benutzer
weitergeben.
-
Neuer Befehl
SHOW GRANTS FOR benutzer hinzugefügt (von Sinisa).
-
Neue
date_add-Syntax date/datetime + INTERVAL # intervall_typ
hinzugefügt. Von Joshua Chamas.
-
Berechtigungsüberprüfung für
LOAD DATA REPLACE in Ordnung gebracht.
-
Automatische Reparatur beschädigter Include-Dateien auf Solaris 2.7
hinzugefügt.
-
Einige configure-Probleme behoben, um Probleme bei der Erkennung großer
Dateisysteme zu beheben.
-
REGEXP ist jetzt unabhängig von der verwendeten
Groß-/Kleinschreibung, wenn Sie nicht binäre Zeichenketten verwenden.
-
Patches für MIT-pThread auf NetBSD angewandt.
-
Bereichs-Bug in MyISAM behoben.
-
ASC ist jetzt wieder Vorgabe für ORDER BY.
-
LIMIT für UPDATE hinzugefügt.
-
Neue Client-Funktion
mysql_change_user() hinzugefügt.
-
Zeichensatz zu
SHOW VARIABLES hinzugefügt.
-
Unterstützung von
--[leerraum]-Kommentaren hinzugefügt.
-
INSERT into tabelle VALUES () wird zugelassen. Das heißt, Sie
können jetzt eine leere Wertliste angeben, die in eine Zeile eingefügt
wird, und in der jede Spalte auf ihren Vorgabewert gesetzt wird.
-
SUBSTRING(text FROM position) geändert, um ANSI-SQL-kompatibel zu
sein. (Vorher gab dieses Konstrukt das rechteste 'position'-Zeichen
zurück.)
-
SUM() mit GROUP BY gab auf manchen Systemen 0 zurück.
-
Ausgabe bei
SHOW TABLE STATUS geändert.
-
DELAY_KEY_WRITE-Option für CREATE TABLE hinzugefügt.
-
AUTO_INCREMENT wird für jeden beliebigen Schlüsselteil zugelassen.
-
Problem mit
YEAR(NOW()) und YEAR(CURDATE()) behoben.
-
CASE-Konstrukt hinzugefügt.
-
Neue Funktion
COALESCE() hinzugefügt.
-
Bereichsoptimierer-Bug behoben:
SELECT * FROM tabelle WHERE
schluessel_teil1 >= konstante AND (schluessel_teil2 = konstante OR
schluessel_teil2 = konstante). Der Bug bestand darin, dass manche Zeilen
im Ergebnis doppelt auftauchen konnten.
-
Das Laufenlassen von
myisamchk ohne -a aktualisierte die
Index-Verteilung falsch.
-
SET SQL_LOW_PRIORITY_UPDATES=1 gab vorher einen Parser-Fehler.
-
Sie können jetzt Spalten indexieren, die in der
WHERE-Klausel
benutzt werden. UPDATE tabelle SET KEY=KEY+1 WHERE KEY > 100
-
Datums-Handhabung sollte jetzt etwas schneller sein.
-
Handhabung von 'fuzzy' Datumsangaben möglich (Datumsangaben, bei denen der
Tag oder der Monat 0 sind, wie 1999-01-00).
-
Optimierung von
SELECT ... WHERE schluessel_teil1=konstante1 AND
schluessel_teil_2=konstante2 AND schluessel_teil1=konstante4 AND
schluessel_teil2=konstante4 in Ordnung gebracht. Indextyp sollte
range anstelle von ref sein.
-
egcs-1.1.2-Optimierer-Bug behoben (bei der Benutzung von
BLOBs) auf Linux Alpha.
-
Problem mit
LOCK TABLES in Kombination mit DELETE FROM
tabelle behoben.
-
MyISAM-Tabellen lassen jetzt Schlüssel auf
NULL und
BLOB/TEXT-Spalten zu.
-
Folgender Join ist jetzt viel schneller:
SELECT ... FROM t1 LEFT JOIN
t2 ON ... WHERE t2.nicht_null_spalte IS NULL.
-
ORDER BY und GROUP BY können jetzt auf Funktionen angewendet
werden.
-
Handhabung von 'konstante' geändert, um Handhabung von
ORDER BY
RAND() zu gestatten.
-
Indexe werden jetzt für
WHERE schluessel_spalte = funktion benutzt.
-
Indexe werden jetzt für
WHERE schluessel_spalte = spalten_name
benutzt, selbst wenn die Spalten nicht identisch komprimiert sind.
-
Indexe werden jetzt für
WHERE spalten_name IS NULL benutzt.
-
HEAP-Tabellen so geändert, dass in der Reihenfolge niedriges Byte zuerst
gespeichert wird (um es zu erleichtern, MyISAM-Tabellen zu konvertieren).
-
Automatische Änderung temporärer HEAP-Tabellen in MyISAM-Tabellen im Falle
von 'table is full'-Fehlern.
-
Option
--init-file=datei für mysqld hinzugefügt.
-
COUNT(DISTINCT wert, [wert, ...]) hinzugefügt.
-
CREATE TEMPORARY TABLE erzeugt jetzt eine temporäre Tabelle in ihrem
eigenen Namensraum, die automatisch gelöscht wird, wenn die Verbindung
beendet wird.
-
Neue reservierte Wörter (erforderlich für
CASE): CASE, THEN,
WHEN, ELSE und END.
-
Neue Funktionen
EXPORT_SET() und MD5() hinzugefügt.
-
Unterstützung für den GB2312 chinesischen Zeichensatz hinzugefügt.
-
Einige Kompilierungsprobleme behoben.
-
Eine neue Tabellen-Handler-Bibliothek (
MyISAM) mit vielen neuen
Features hinzugefügt. See section 8.1 MyISAM-Tabellen.
-
Sie können
HEAP-Tabellen im Hauptspeicher erzeugen, die zum
Nachschlagen extrem schnell sind.
-
Unterstützung für große Dateien (63-Bit) auf Systemen, die große Dateien
unterstützen, hinzugefügt.
-
Neue Funktion
LOAD_FILE(datei) hinzugefügt, um die Inhalte einer
Datei als Zeichenkettenwert zu erhalten.
-
Neuer Operator
<=> hinzugefügt, der wie = funktioniert, aber
WAHR (true) zurückgibt, wenn beide Argumente NULL sind. Das ist
nützlich, um Änderungen zwischen Tabellen zu vergleichen.
-
ODBC-3.0-
EXTRACT(intervall FROM datetime)-Funktion hinzugefügt.
-
Spalten, die als
FLOAT(X) definiert sind, werden beim Speichern
nicht gerundet und dürfen beim Abruf in wissenschaftlicher Notation sein
(1.0 E+10).
-
REPLACE ist jetzt schneller als vorher.
-
LIKE-Zeichenvergleiche geändert, so dass sie sich wie =
verhalten. Das heißt, dass 'e' LIKE 'é' jetzt WAHR (true) ist
(falls hier etwas nicht richtig angezeigt wird: Das letztgenannte 'e' ist
das französische 'e' mit Akzent).
-
SHOW TABLE STATUS gibt eine Menge an Informationen über die Tabellen
zurück.
-
LIKE für den SHOW STATUS-Befehl hinzugefügt.
-
Berechtigungsspalte zu
SHOW COLUMNS hinzugefügt.
-
Spalten
packed und comment für SHOW INDEX hinzugefügt.
-
Kommentare zu Tabellen (mit
CREATE TABLE ... COMMENT "kommentar")
hinzugefügt.
-
UNIQUE, wie bei CREATE TABLE tabelle (spalte int not null
UNIQUE), hinzugefügt.
-
Neue CREATE-Syntax:
CREATE TABLE tabelle SELECT ...
-
Neue CREATE-Syntax:
CREATE TABLE IF NOT EXISTS ...
-
Die Erzeugung von
CHAR(0)-Spalten wird zugelassen.
-
DATE_FORMAT() erfordert jetzt `%' vor jeglichem
Formatierungszeichen.
-
DELAYED ist jetzt ein reserviertes Wort (tut uns leid :( ).
-
Eine Beispiel-Prozedur wurde hinzugefügt:
analyse, Datei:
`sql_analyse.c'. Diese beschreibt die Daten in Ihrer Anfrage.
Probieren Sie folgendes:
SELECT ... FROM ... WHERE ... prozeduranalyse([max elemente,[max speicher]])
Diese Prozedur ist extrem nützlich, wenn Sie die Daten in Ihrer Tabelle
prüfen wollen!
-
BINARY-Cast, um zu erzwingen, dass eine Zeichenkette abhängig von
der verwendeten Groß-/Kleinschreibung verglichen wird.
-
Option
--skip-show-database für mysqld hinzugefügt.
-
Das Prüfen, ob sich eine Zeile bei einem
UPDATE geändert hat,
funktioniert jetzt auch bei BLOB-/TEXT-Spalten.
-
Die
INNER-Join-Syntax wurde hinzugefügt. HINWEIS: Hierdurch
wurde INNER zu einem reservierten Wort!
-
Unterstützung für Netmasks zum Hostname in den MySQL-Tabellen hinzugefügt.
Sie können eine Netmask mit der
IP/NETMASK-Syntax angeben.
-
Wenn Sie eine
NOT NULL DATE/DATETIME-Spalte mit IS NULL
vergleichen, wird das zu einem Vergleich auf 0 geändert, um einige
ODBC-Applikationen zufrieden zu stellen (von shreeve@uci.edu).
-
NULL IN (...) gibt jetzt NULL anstelle von 0 zurück.
Das stellt sicher, dass null_spalte NOT IN (...) nicht mit
NULL-Werten übereinstimmt.
-
Speicherung von Fließkommawerten in
TIME-Spalten in Ordnung
gebracht.
-
Das Parsen von
TIME-Zeichenketten geändert, so dass es strenger ist.
Jetzt wird der Bruchteil-Sekunden-Teil erkannt (und momentan noch
übergangen). Folgende Formate werden unterstützt:
[[DAYS] [H]H:]MM:]SS[.bruchteil]
-
[[[[[H]H]H]H]MM]SS[.bruchteil]
-
-
Erkennen (und Ignorieren) des zweiten Bruchteil-Anteils von
DATETIME
hinzugefügt.
-
LOW_PRIORITY-Attribut für LOAD DATA INFILE hinzugefügt.
-
Der vorgabemäßige Index-Name benutzt jetzt dieselbe Groß-/Kleinschreibung
wie der benutzte Spaltenname.
-
Vorgabemäßige Anzahl von Verbindungen auf 100 geändert.
-
Bei der Benutzung von
LOAD DATA INFILE werden größere Puffer
verwendet.
-
DECIMAL(x,y) funktioniert jetzt gemäß ANSI-SQL.
-
Aggregat-UDF-Funktionen. Dank an Andreas F. Bobak bobak@relog.ch
hierfür!
-
LAST_INSERT_ID() wird jetzt bei INSERT INTO ... SELECT
aktualisiert.
-
Einige kleinere Änderungen am Join-Tabellenoptimierer, um einige Joins
schneller zu machen.
-
SELECT DISTINCT ist viel schneller. Es benutzt die neue
UNIQUE-Funktionalität in MyISAM. Ein Unterschied im Vergleich
zur MySQL-Version 3.22 besteht darin, dass die Ausgabe von DISTINCT
nicht mehr sortiert wird.
-
Alle C-Client-API-Makros sind jetzt Funktionen, um die gemeinsam genutzten
(shared) Bibliotheken verlässlicher zu machen. Deswegen können Sie nicht
mehr
mysql_num_fields() auf ein MYSQL-Objekt aufrufen,
sondern müssen statt dessen mysql_field_count() benutzen.
-
Benutzung von
LIBEWRAP; Patch von Henning P. Schmiedehausen.
-
AUTO_INCREMENT wird nur noch für numerische Spalten zugelassen.
-
Durch die Verwendung von
AUTO_INCREMENT wird die Spalte automatisch
NOT NULL.
-
NULL wird als Vorgabewert für AUTO_INCREMENT-Spalten angezeigt.
-
SQL_BIG_RESULT; SQL_SMALL_RESULT ist jetzt Vorgabe.
-
Ein gemeinsam genutztes (shared) Bibliothek-RPM hinzugefügt. Diese
Verbesserung wurde von David Fox (dsfox@cogsci.ucsd.edu) beigesteuert.
-
Ein
--enable-large-files/--disable-large-files-Schalter zu
configure hinzugefügt. Siehe `configure.in' wegen mancher
Systeme, auf denen dies wegen nicht funktionierender Implementation
automatisch abgeschaltet ist.
-
readline für Version 4.0 aktualisiert.
-
Neue
CREATE TABLE-Optionen: PACK_KEYS und CHECKSUM.
-
mysqld-Option --default-table-type hinzugefügt.
Go to the first, previous, next, last section, table of contents.
|