Le SGBD Open Source Firebird, et la version 7 d'Interbase représentent la première version divergente depuis la base de code commune héritée du code source d'Interbase 6 / Firebird 1.0. Les principales différences résultant du fork sont les suivantes:
- Initialement prévue comme un "simple" portage de la version 1.0 devant permettre une compilation en C++, la version 1.5 est allée bien au-delà.
- Objectifs:
- Changements mineurs dans la structure disque (ODS : On Disk Structure)
- Interface 100% compatible avec IB v6.0
- Compatibilité ascendante à 100% avec IB v6.0 ou antérieur (98% avec IB v6.5)
- Premiers pas vers la possibilité d'une coexistence pacifique (side-by-side install) avec IB
- Nouveau nom du serveur (
FBServer.exe) - Nouveau nom du client (
FBClient.dll) - Nouvelle version transparente (passthrough) de
GDS32.DLLpour la compatibilité descendante
v1.5 - Calendrier de publication
- Alpha 1 : 29/11/2002
- Alpha 5 : 05/12/2002
- Beta 1 : Initialement prévue pour le 15/01/03
- Version finale: Prévue pour le début du deuxième trimestre 2003
v1.5 - Nouvelles caractéristiques du moteur
- Alias de bases de données côté serveur
- Chaîne de connexion:
Serveur:Alias
- Chaîne de connexion:
- Base de sécurité renommée d'
ISC4.GDBenxxx.fdb - Nouvelle extension par défaut des noms de fichiers:
.fdb - Nouveau gestionnaire de greffons (plug-ins)
- Nouvelle interface INTL
- Nouveau gestionnaire de configuration de serveur
Firebird.confremplaceIBConfig
- Tri en mémoire
- Utilisation de la mémoire disponible pour réduire/éliminer les E/S disque
- Nouveau gestionnaire de mémoire
- Implémentation totalement nouvelle
- Protocole XNET pour les versions Win32 SuperServer
- Utilisation d'un espace mémoire partagé pour les échanges de données
- Accès aux données sensiblement plus rapide - idéal pour la cohabitation d'un serveur d'application (MIDAS) et d'un serveur Web avec la base de données sur un même serveur
- Remplace les connexions de boucle mémoire
(par ex.:
localhost:xxx)
- Architecture "Classic" disponible sur Win32
- Meilleurs adaptation aux multiprocesseurs symétriques (SMP)
v1.5 - Nouvelles caractéristiques SQL (1)
SQL de base
- Support de la fonction
CASE - Support de la fonction
COALESCE - Support de la fonction
NULLIF - Support de la fonction
GROUP BY- Par fonction
- Par sous-requête
- Par alias de colonne
- Par ordinal (numéro de colonne)
ORDER BYutilisable avec des expression quelconques- Support de
SELECT FIRST xetORDER BYpour les sous-sélections - Instruction
RECREATE VIEW - Tri des
NULLselon la norme SQL92 - Possibilité de nommer explicitement les index de contraintes
- Les noms d'index de contraintes sont soit basés sur le nom de la contrainte, soit définis par l'utilisateur
- Verrouillage explicite dans les instructions
SELECT:SELECT … FOR UPDATE WITH LOCK
- Instruction
EXECUTE STATEMENT:EXECUTE STATEMENT …
BOOLEANdéfini comme alias deSMALLINTBIGINTdéfini comme alias deNUMERIC (18, 0)
Procédures stockées et déclencheurs
- Points de sauvegarde (savepoints)
SAVEPOINT point_de_sauvegarde ;ROLLBACK [WORK] TO [SAVEPOINT] point_de_sauvegarde ;- Syntaxe
CREATEouALTER
- Déclencheurs universels:
CREATE TRIGGER mon_declencheur FOR ma_table BEFORE INSERT OR UPDATE …
- Déclaration des variables améliores:
DECLARE [VARIABLE] nom <type_de_variable> [{'=' | DEFAULT} valeur];
- Sémantique de réinitialisation pour les exceptions (par ex.
Throw) - Support des blocs
BEGIN … ENDvides. - Nouvelles variables système:
ROWS_AFFECTEDTRANSACTION_IDCONNECTION_IDSQLCODEGDSCODE
v1.5 - Améliorations
- Améliorations de l'optimiseur:
- Meilleur traitement des nœuds
ANDà l'intérieur d'un nœudOR - Meilleure support de l'utilisation des index dans les
OR. Sélection du meilleur index composite parmi tous les nœudsAND. - Support de la détection d'index utilisables pour les sous-sélections dans une sélection d'agrégat
- Possibilité pour les sous-sélections d'utiliser un indice lorsque leur parent est une procédure stockée
- Meilleur traitement des nœuds
- Planificateur de fils d'exécution en SuperServer, pour un meilleur "partage"
- Nouveaux index système pour accroître la performance de compilation des instructions
- Compilation différée des métadonnées:
- Résoud la plupart des cas d'occurrence de l'erreurs
OBJECT IN USE
- Résoud la plupart des cas d'occurrence de l'erreurs
- Suppression de la limite de 64 index par table :
- La limite dépend dorénavant de la taille de page de la base de données
v1.5 - Corrections d'erreurs
LEFT JOINrenvoyait des résultats incorrects- 3 dépassements de tampon mémoire
- Blocages du balayge automatique / d'arrière-plan
- Faille de sécurité des métadonnées
- Un grand nombre d'autres bogues
v1.5 - Divers
- Compilation Win32 avec l'environnement Open Source MinGW
- Nouvelle configuration des constructions par
autoconf - Ajout d'un historique des commandes à ISQL pour Linux
- Utilisation par le code de la technique des exceptions pour les erreurs
- Abandon du support IPX/SPX
- Suppression des plateformes historiques : Apollo, Cray, NeXT, NetWare, MS-DOS, Windows 4.1, WFW …
Hormis l'introduction, cet article est la traduction du document d'annonce de Firebird 1.5, sous licence IPL et traduit par OSInet. Il est également placé sous licence IPL.