la sortie , une base de donnĂ©es lĂ©gĂšre sous forme de bibliothĂšque intĂ©grable. Le code SQLite est distribuĂ© dans le domaine public, c'est-Ă -dire qu'il peut ĂȘtre utilisĂ© sans restrictions et gratuitement Ă des fins diverses. Le soutien financier des dĂ©veloppeurs de SQLite est assurĂ© par un consortium spĂ©cialement créé, comprenant des entreprises telles qu'Adobe, Oracle, Mozilla, Bentley et Bloomberg.
Principales :
- Ajout du support de (colonnes calculĂ©es), permettant de dĂ©finir lors de la crĂ©ation d'une table une colonne dont la valeur est automatiquement calculĂ©e en fonction du contenu d'une autre colonne. Les colonnes gĂ©nĂ©rĂ©es peuvent ĂȘtre Ă la fois virtuelles (formĂ©es Ă la volĂ©e Ă chaque accĂšs) et stockĂ©es dans la base de donnĂ©es (conservĂ©es Ă chaque mise Ă jour des colonnes associĂ©es). Le contenu des colonnes gĂ©nĂ©rĂ©es est accessible uniquement en mode lecture (les modifications s'effectuent uniquement en modifiant la valeur d'une autre colonne impliquĂ©e dans le calcul). Par exemple :
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INT,
c TEXT,
d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
); - Ajoutées PRAGMA , configuration et l'option de compilation «-DSQLITE_TRUSTED_SCHEMA», permettant de gérer l'activation de la protection contre via la modification du schéma de données dans la base de données. Avec la protection active, l'utilisation de fonctions SQL (non marquées comme SQLITE_INNOCUOUS) est limitée dans les déclencheurs, les vues, les expressions CHECK et DEFAULT, les index et les colonnes générées. L'utilisation de tables virtuelles est également désactivée dans les déclencheurs et les vues, sauf si la table virtuelle est explicitement déclarée avec le drapeau SQLITE_VTAB_INNOCUOUS.
- Mise en Ćuvre de la possibilitĂ© d'attribuer certaines propriĂ©tĂ©s aux fonctions SQL dans les applications (fonctions inoffensives qui ne dĂ©pendent pas des paramĂštres externes et ne peuvent pas ĂȘtre utilisĂ©es pour effectuer des actions malveillantes) et (appel direct uniquement dans les requĂȘtes SQL, sans possibilitĂ© d'application dans les dĂ©clencheurs, vues et structures de schĂ©ma de donnĂ©es);
- Ajout d'un module avec des fonctions pour le traitement de UUID (RFC-4122);
- Ajoutée PRAGMA et la fonction pour gérer la taille maximale du tas;
- Dans la PRAGMA ajout de la sortie du type, des propriétés et du nombre d'arguments de chaque fonction;
- Dans la table virtuelle DBSTAT mode d'agrégation des données;
- sqlite3_open_v2() inclut l'option SQLITE_OPEN_NOFOLLOW, qui permet d'interdire l'ouverture de liens symboliques ;
- Pour l'argument , transmis aux fonctions JSON, le support de la notation d'array «#-N» a été ajouté ;
- Dans le systĂšme de distribution de mĂ©moire le support de deux pools de mĂ©moire distincts a Ă©tĂ© mis en Ćuvre, chacun pouvant ĂȘtre utilisĂ© pour allouer des blocs de tailles diffĂ©rentes (cette sĂ©paration permet d'Ă©tendre l'application du systĂšme lookaside tout en rĂ©duisant la taille du buffer allouĂ© par connexion, passant de 120 Ă 48 Ko) ;
- Le support de PRAGMA , qui Ă©tait incompatible avec VACUUM, les colonnes gĂ©nĂ©rĂ©es et les index dĂ©croissants (le support du format hĂ©ritĂ© peut ĂȘtre restaurĂ© via le drapeau SQLITE_DBCONFIG_LEGACY_FILE_FORMAT dans sqlite3_db_config()).
Source : opennet.ru
