Sortie du SGBD SQLite 3.31 avec prise en charge des colonnes générées

Publié libération SQLite 3.31.0, un SGBD léger conçu comme une bibliothèque de plug-ins. Le code SQLite est distribué dans le domaine public, c'est-à-dire peut être utilisé sans restrictions et gratuitement à toutes fins. Le soutien financier aux développeurs SQLite est fourni par un consortium spécialement créé, qui comprend des sociétés telles qu'Adobe, Oracle, Mozilla, Bentley et Bloomberg.

principal changements:

  • Prise en charge supplémentaire colonnes générées (colonnes calculées), qui permettent de définir une colonne lorsque vous créez un tableau dont la valeur est automatiquement calculée en fonction du contenu d'une autre colonne. Les colonnes générées peuvent être soit virtuelles (générées à la volée à chaque accès) soit stockées dans la base de données (enregistrées à chaque mise à jour des colonnes associées). Le contenu des colonnes générées est disponible uniquement en mode lecture (les modifications se font uniquement par modification de la valeur dans une autre colonne impliquée dans le calcul). Par exemple:

    CRÉER UNE TABLE t1(
    une CLÉ PRIMAIRE ENTIÈRE,
    bINT,
    c TEXTE,
    d INT GÉNÉRÉ TOUJOURS COMME (a*abs(b)) VIRTUELLE,
    e TEXTE GÉNÉRÉ TOUJOURS COMME (substr(c,b,b+1)) STOCKÉ
    );

  • Ajout de PRAGMA schéma_de confiance, paramètre SQLITE_DBCONFIG_TRUSTED_SCHEMA et l'option d'assemblage « -DSQLITE_TRUSTED_SCHEMA », qui vous permettent de contrôler l'inclusion de la protection contre attaques par modification du schéma de données dans la base de données. La protection active restreint l'utilisation des fonctions SQL (non marquées SQLITE_INNOCUOUS) dans les déclencheurs, les vues, les instructions CHECK et DEFAULT, les index et les colonnes générées. L'utilisation de tables virtuelles dans les déclencheurs et les vues est également désactivée sauf si la table virtuelle est explicitement déclarée avec l'indicateur SQLITE_VTAB_INNOCUOUS.
  • Implémentation de la possibilité d'attribuer des propriétés aux fonctions SQL définies dans les applications SQLITE_INNOCUOUS (fonctions inoffensives qui ne dépendent pas de paramètres externes et ne peuvent pas être utilisées pour effectuer des actions malveillantes) et SQLITE_DIRECTONLY (uniquement appel direct dans les requêtes SQL, sans possibilité d'utilisation dans les déclencheurs, les vues et les diagrammes de structure de données) ;
  • Module ajouté uuid avec implémentation de fonctions de traitement de l'UUID (RFC-4122) ;
  • Ajout de PRAGMA hard_heap_limit et fonction sqlite3_hard_heap_limit64() pour contrôler la taille maximale du tas ;
  • Dans PRAGMA liste_fonctions ajout de la sortie du type, des propriétés et du nombre d'arguments de chaque fonction ;
  • Vers la table virtuelle DBSTAT ajoutée mode d'agrégation des données ;
  • sqlite3_open_v2() implémente l'option SQLITE_OPEN_NOFOLLOW, qui permet de désactiver l'ouverture des liens symboliques ;
  • Pour argumenter PATH, transmis aux fonctions JSON, ajout de la prise en charge de la notation de tableau « #-N » ;
  • Dans le système de distribution de mémoire regarder de côté la prise en charge de deux pools de mémoire distincts a été implémentée, chacun pouvant être utilisé pour allouer des blocs de tailles différentes (la séparation permet d'étendre l'utilisation du système lookaside, tout en réduisant la taille du tampon alloué à chaque connexion de 120 à 48 Ko);
  • Le support PRAGMA a été interrompu format_fichier_héritage, qui était incompatible avec VACUUM, les colonnes générées et les index descendants (la prise en charge des formats hérités peut être renvoyée via l'indicateur SQLITE_DBCONFIG_LEGACY_FILE_FORMAT dans sqlite3_db_config()).

Source: opennet.ru

Ajouter un commentaire