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.DLL
pour 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.GDB
enxxx.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.conf
remplaceIBConfig
- 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 BY
utilisable avec des expression quelconques- Support de
SELECT FIRST x
etORDER BY
pour les sous-sélections - Instruction
RECREATE VIEW
- Tri des
NULL
selon 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 …
BOOLEAN
défini comme alias deSMALLINT
BIGINT
dé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
CREATE
ouALTER
- 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 … END
vides. - Nouvelles variables système:
ROWS_AFFECTED
TRANSACTION_ID
CONNECTION_ID
SQLCODE
GDSCODE
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 JOIN
renvoyait 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.