En février de l’année dernière, plus d'un an après la sortie de la version Alpha 1, les responsables du projet Firebird ont annoncé la disponibilité de la version bêta 1 de Firebird 4.0. La version admissible annoncée le 1er février de cette année apporte des nouvelles fonctionnalités et corrige des bogues. Dans un document intitulé « Firebird 4.0 Release Notes, for Firebird 4.0 Release Candidate 1 », les développeurs principaux de Firebird, Helen Borrie et Dmitry Yemanov ont passé en revue toutes les améliorations. Voici ci-dessous un aperçu de quelques-unes de ces améliorations.
Les nouveautés
Syntaxe du SQL standard pour les décalages de fuseau horaire : le décalage du fuseau horaire dans l'horodatage, CAST, SET TIME ZONE et AT TIME ZONE suit désormais uniquement la syntaxe du SQL standard.
Instruction ALTER SESSION RESET : une nouvelle commande pour réinitialiser l'environnement de session utilisateur à son état initial. Elle peut être utile pour la réutilisation de la session par une application cliente. Pour pouvoir réutiliser une session, toutes les variables du contexte utilisateur et le contenu des tables temporaires doivent être effacés et tous les paramètres au niveau de la session doivent être réinitialisés à leurs valeurs par défaut. La syntaxe pour y parvenir est : ALTER SESSION RESET.
Nouvelle table virtuelle RDB$CONFIG : une table virtuelle énumérant les paramètres de configuration actuels pour la base de données active. La table RDB$CONFIG est alimenté à partir des structures en mémoire sur demande et son instance est préservée pour la durée de vie de la requête SQL. Pour des raisons de sécurité, l'accès à cette table est uniquement autorisé à SYSDBA/OWNER. Les utilisateurs non privilégiés ne voient aucune ligne dans cette table et aucune erreur n'est signalée.
Possibilité de récupérer l'identifiant de la pièce jointe et de l’instruction suivante : les compteurs représentant l'identifiant de la pièce jointe suivant et l'identifiant de l’instruction suivante sont accessibles via la Table MON$DATABASE et appel de l'API Attachment::getInfo().
Meilleur rapport d'erreur pour les commandes de gestion des utilisateurs : un message explicite concernant le mot de passe manquant est maintenant généré pour les instructions CREATE [OR ALTER] USER.
Compatibilité avec les anciennes versions
- Dépréciation de l'ancien dialecte SQL 1 : les développeurs de Firebird indiquent qu’à partir de Firebird 4, le dialecte 1 est déclaré obsolète. Son support sera supprimé à l'avenir et le dialecte 3 deviendra le seul dialecte pris en charge ;
- Cohérence de lecture pour les transactions READ COMMITTED utilisées par défaut : Firebird 4 introduit non seulement la cohérence de lecture pour les déclarations dans les transactions validées en lecture, mais en fait également un mode par défaut pour toutes les transactions READ COMMITTED, indépendamment des propriétés RECORD VERSION ou NO RECORD VERSION ;
- Dépréciation des fonctions externes définies par l'utilisateur (UDF) : les fonctions externes (UDF) sont obsolètes et ne sont plus prises en charge dans Firebird 4. Les UDF ne peuvent plus être utilisées avec la configuration par défaut, où le paramètre UdfAccess dans firebird.conf est réglé sur None et les librairies UDF ib_udf et fbudf sont retirées de la distribution ;
- Changements dans les DDL et DML : la prise en charge des fuseaux horaires introduit certains changements dans les DDL (Data Definition Language ou langage de définition de données) et DML (Data Manipulation Language ou langage de manipulation de données) qui pourraient affecter la compatibilité avec les bases de données et les applications existantes ;
- Modification des types de données TIMESTAMP et TIME : la syntaxe pour déclarer les types de données TIMESTAMP et TIME a été étendue pour inclure des arguments définir si la colonne, le domaine, le paramètre ou la variable doivent être définis avec ou sans les ajustements de fuseau horaire, c'est-à-dire : TIME [ { WITHOUT | WITH } TIME ZONE ], TIMESTAMP [ { WITHOUT | WITH } TIME ZONE ]. Dans les deux cas, la valeur par défaut est WITHOUT TIME ZONE ;
- Valeur de départ des séquences : avant Firebird 4.0, une séquence était créée avec sa valeur en cours fixée à sa valeur de départ (ou zéro par défaut). Maintenant, une séquence est créée avec sa valeur en cours définie sur sa valeur de départ moins l’incrément.
Corrections de bogues
Voici quelques corrections de bogues qui ont été apportées depuis la version bêta 2 :
- fuite de mémoire lors de l'exécution de EXECUTE STATEMENT avec des paramètres nommés ;
- ordre d'octet erroné pour les UUID déclarés par le GSTAT et les tables de suivi ;
- le plugin Srp maintient la connexion après la suppression de la base de données pendant environ 10 secondes ;
- les espaces comme séparateur de date entraînent une erreur de conversion ;
- le paramètre dans les fonctions LAG, LEAD, NTH_VALUE nécessite un cast explicite en BIGINT ou INTEGER ;
- la troncature des chaînes de caractères à mettre dans les tables MON$ ne fonctionne pas correctement ;
- le jeu de caractères est utilisé et la valeur par défaut est plus longue que la longueur de la colonne ;
- l'erreur "expected length N, actual M" contient une valeur incorrecte de M lorsque le jeu de caractères UTF-8 est utilisé dans la déclaration de champ.
Selon les auteurs de cette note, les versions admissibles sont généralement considérées comme suffisamment stables et peuvent être recommandées pour des tests dans des environnements proches des environnements de production. Les responsables du projet open source Firebird invitent les utilisateurs à faire des tests et à partager leur retour d'expérience dans les listes de diffusion.
Source : Firebird
Et vous ?
Utilisez-vous le SGBDR open source Firebird ?
Que pensez-vous des améliorations apportées au SGBDR Firebird ?
Voir aussi
Firebird 4.0 : la première version Alpha est disponible pour les tests, quelles sont les fonctionnalités de la prochaine version majeure du SGBDR ?
La Bêta 1 du SGBDR Firebird 4.0 est disponible pour les tests, toutes les fonctionnalités obligatoires pour cette version majeure sont finalisées
La version 3.0 du SGBDR open source Firebird disponible : architecture unifiée et support amélioré pour SMP et les plateformes multicœurs
France : quels sont les logiciels libres que l'État recommande en 2019 ? La liste des logiciels conseillés publiée officiellement avec le SILL 2019