F.1 Fonctionnalités prioritaires

    Sous sélections. select id from t where grp in (select grp from g where u > 100)
  • Lors d'une commande ALTER TABLE sur une table qui est sous la forme d'un lien symbolique sur un autre disque, commencer par créer une table temporaire sur le disque actuel.
  • RENAME table as table, table as table [,...]
  • FreeBSD et MIT-pthreads; Est ce que les threads endormis consomme des ressources CPU?
  • Autoriser la jointure sur des parties de clés (question d'optimisation).
  • Ajouter l'entrée DECRYPT().
  • Conserver les définitions de clés étrangères (FOREIGN) dans le fichier `.frm'.
  • Curseurs coté serveurs.
  • Autoriser les utilisateurs à modifier les options de démarrage.
  • Ajouter l'option --ansi à MySQL (pour transformer || en CONCAT())
  • Ne pas ajouter automatiquement de valeur DEFAULT aux colonnes. Au contraire, retourner une erreur lors de l'insertion (INSERT) de valeur dans des colonnes sans valeur par défaut.
  • Mettre les résultats et les requêtes en cache. Cela sera fait dans un module séparé, qui examinera les requêtes, et retournera les résultats déjà présents dans le cache. Lors de la modification d'une table, cela devra ne supprimer que le nombre minium de requêtes du cache. Cela devrait donner un bon cout d'accélérateur aux machines avec beaucoup de RAM, où les requêtes sont souvent repétées (comme pour les applications WWW). Une première approche serait de ne mettre en cache que les requêtes du type : SELECT CACHED ....
  • Corriger `libmysql.c' pour permettre plusieurs commandes mysql_query() simultanées, sans lire les résultats, ou bien retourner une alerte lorsque cela se passe.
  • Optimiser le type BIT pour qu'il ne prenne qu'un 1 bit (actuellement, BIT prend un char).
  • Comprendre pourquoi MIT-pthreads ctime() ne fonctionne pas avec certaines configurations FreeBSD.
  • Vérifier que les threads verrouillés ne consomme pas de CPU inutilement.
  • Ajouter ORDER BY pour les modifications. Cela serait bien pratique avec des fonctions telles que generate_id(start,step).
  • Ajouter une option IMAGE pour les commandes LOAD DATA INFILE afin qu'elle ne modifie pas les champs TIMESTAMP et AUTO_INCREMENT.
  • Faire que LOAD DATA INFILE comprenne les syntaxes du type :
    LOAD DATA INFILE 'Nom_fichier.txt' INTO TABLE nom_table
    TEXT_FIELDS (champs_texte1, champs_texte2, champs_texte3)
    SET table_field1=concatenate(champs_texte1, champs_texte2), champs_texte3=23
    IGNORE text_field3
    
  • Autoriser MIN(), MAX() avec des chaînes (pas dans les fonctions de groupes). Elles seraient alors synonymes de LEAST(), GREATEST().
  • Démonstration de procédures : analyze
  • Exportation automatique de mysql vers netscape.
  • LOCK DATABASES. ( avec diverses options).
  • NATURAL JOIN.
  • Modifier le tri pour permettre l'allocation de mémoire en ``hunks'' (NDT : paquets? grappes?) pour optimiser l'utilisation de mémoire.
  • DECIMAL et NUMERIC ne peuvent pas comprendre les notations exponentielles : Field_decimal::store(const char *from,uint len) doivent être recodées pour corriger ceci.
  • Corriger mysql.cc pour faire moins de malloc() lors des hashages des noms de champs.
  • Fonctions: ADD_TO_SET(value,set) et REMOVE_FROM_SET(value,set)
  • Ajouter l'utilisation de t1 JOIN t2 ON ... et t1 JOIN t2 USING ... Actuellement, c'est uniquement possible avec LEFT JOIN.
  • Ajouter le support complet du type unsigned long long.
  • Fonction CASE.
  • Ajouter de nombreuses variables pour show status. Notamment : Commandes INSERT/DELETE/UPDATE. Lignes lues et modifiées. SELECT sur 1 table et SELECT avec jointures.Nombre moyen de tables dans un SELECT. Nombre de lecture écriture du buffer de clé (logiques et réél). ORDER BY, GROUP BY, tables temporaires créées.
  • Si mysql est interrompu au milieu d'une requête, on devrait pouvoir être capable d'ouvrir une autre connexion, et de tuer l'ancienne requête. Alternativement, une tentative doit être faite pour detecter ceci au niveau du serveur.
  • Ajouter une interface pour gérer les informations sur les tables, pour les utiliser comme un système de table. Cela ralentira les traitements, si vous réclamez les informations sur toutes les tables, mais cela sera beaucoup plus flexible. SHOW INFO FROM nom_table devrait être implémenté pour accéder à des informations basiques.
  • Permettre à mysqld de supporter plusieurs jeu de caractères en même temps.
  • Ajouter le support d'UNICODE.
  • NATURAL JOIN.
  • Commande issue d'Oracle : CONNECT BY PRIOR ... pour rechercher dans les structures hiérarchiques.
  • RENAME DATABASE
  • mysqladmin copy database new-database.
  • La liste de processus devrait montrer le nombre de requêtes par thread.
  • Option IGNORE pour la commande UPDATE (Elle effacerait les lignes qui ont une clé en doublon, lors de la modification).
  • select distinct a from foo order by b ne devrait pas retourner les lignes en doubles, Si il y a différents couples (a,b)
  • Changer le format de DATETIME pour enregistrer les fractions de seconds.
  • Ajouter tous les types manquants de ANSI92 et ODBC 3.0.
  • Changer les noms de tables en NULL pour les calculs de colonnes.