Cette version corrige un certain nombre de bugs dans la manière dont jSAVF implémente les différents algorithmes de décompression nécessaires pour lire le contenu des SAVF:
- La décompression *LOW/SNA pouvait dans certains cas produire plus de données que prévu ce qui corrompait l'extraction de fichiers SAVF inclus dans d'autres SAVF.
- La décompression *MEDIMU/TERSE gère maintenant beaucoup plus de cas exotiques dans la manière dont le dictionnaire de cet algorithme semble se comporter une fois plein, qui se produisent majoritairement en présence d'objets à forte entropie tels que des programmes, des fichiers SAVF inclus, sur lesquels TERSE donne un taux de compression négatif.
- La décompression zlib qui semble nécessaire pour lire les fichiers SAVF à partir de la V7R5 est maintenant supportée.
jSAVF offre désormais un export d'objet brut en version non compressée pour aider à débugger ce genre de comportements, donc si vous êtes confrontés à un export incorrect qui vous fait penser à un problème de décompression, n'hésitez pas à me faire parvenir un échantillon.
Cette version apporte une première mouture d'un export CSV pour les tables de base de données (membres de fichiers physiques non-source).
La plupart des types de champs sont gérés sauf DECFLOAT qui viendra éventuellement plus tard.
Il est cependant possible que certaines variantes que je n'ai pas pu tester ne soient pas exportées correctement.
Pour le moment j'ai pu tester les types de champs suivants:
NUMERIC, DECIMAL, TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE, DATE, TIME, TIMESTAMP, CHAR, BINARY, VARCHAR, VARBINARY, GRAPHIC, VARGRAPHIC, DBCS, CLOB, BLOB, DBCLOB
Le volume des échantillons que j'ai pu trouver en libre accès sur Internet étant assez limité, il est probable que l'export de grosses tables pose des problèmes (en particulier si celles-ci contiennent des champs VARYING ou LOB vu la manière dont ceux-ci sont stockés lorsqu'ils ne tiennent pas dans l'espace qui leur est alloué dans l'enregistrement principal).
En cas de problème il est possible d'obtenir plus d'information en activant le mode debug/expérimental dans les préférences et en redémarrant jSAVF.
J'envisage par la suite de rendre l'export CSV des tables configurable pour choisir les champs et leur formattage, ainsi que permettre de forcer leur encodage.
Cette version ajoute aussi une première version expérimentale de l'extraction du contenu des vues de débogage *SOURCE ou *LIST inclues dans certains programmes à la compilation. Ceci est disponible sur les objets de type *PGM, *MODULE et *SRVPGM lorsque le mode debug/expérimental est activé au démarrage de jSAVF.
Pour le moment c'est assez basique, l'ensemble des vues sont exportées ensembles sans autre traitement qu'une éventuelle décompression si nécessaire, donc les sources peuvent représenter le contenu de plusieurs spools ou fichiers sources.
Si vous avez des problèmes avec cette version de jSAVF, n'hésitez pas a m'en informer.