Liberazione di DBMS SQLite 3.31 cù supportu per e colonne generate

publicatu liberazione SQLite 3.31.0, un DBMS ligeru cuncepitu cum'è una biblioteca plug-in. U codice SQLite hè distribuitu cum'è un duminiu publicu, i.e. pò esse usatu senza restrizioni è gratuitu per ogni scopu. U supportu finanziariu per i sviluppatori SQLite hè furnitu da un cunsorziu creatu apposta, chì include cumpagnie cum'è Adobe, Oracle, Mozilla, Bentley è Bloomberg.

menu cambià:

  • Supportu aghjuntu colonne generate (colonne calculate), chì permettenu di definisce una colonna quandu crea una tavola chì u valore hè calculatu automaticamente basatu annantu à u cuntenutu di una altra colonna. I culonni generati ponu esse virtuale (generati nantu à a mosca cù ogni accessu) o almacenati in a basa di dati (salvatu ogni volta chì e colonne relative sò aghjurnati). U cuntenutu di e colonne generate sò dispunibuli solu in modu di lettura (i cambiamenti sò fatti solu per a mudificazione di u valore in una altra colonna implicata in u calculu). Per esempiu:

    CREATE TABLE t1(
    una CHIAVE PRIMARIA INTEGER,
    b INT,
    c TEXT,
    d INT GENERATE SEMPRE COME (a*abs(b)) VIRTUALE,
    e TEXT GENERATE SEMPRE COME (substr(c,b,b+1)) STORED
    );

  • Aggiuntu PRAGMA schema_fiducia, pusatu SQLITE_DBCONFIG_TRUSTED_SCHEMA è l'opzione di assemblea "-DSQLITE_TRUSTED_SCHEMA", chì permettenu di cuntrullà l'inclusione di prutezzione contru attacchi attraversu a mudificazione di u schema di dati in a basa di dati. A prutezzione attiva restringe l'usu di e funzioni SQL (micca marcate SQLITE_INNOCUOUS) in triggers, views, CHECK and DEFAULT statements, indexes, and generated columns. L'usu di tavule virtuale in triggers è viste hè ancu disattivatu, salvu chì a tavola virtuale hè esplicitamente dichjarata cù a bandiera SQLITE_VTAB_INNOCUOUS.
  • Implementatu a capacità di assignà pruprietà à e funzioni SQL definite in l'applicazioni SQLITE_INNOCUOUS (funzioni innocu chì ùn dependenu micca di paràmetri esterni è ùn ponu micca esse aduprati per fà azzioni maliziusi) è SQLITE_DIRECTONLY (solu chjama diretta in dumande SQL, senza a pussibilità di utilizà in triggers, viste è diagrammi di struttura di dati);
  • Modulu aghjuntu uuid cù implementazione di funzioni per u processu UUID (RFC-4122);
  • Aggiuntu PRAGMA limite_du_mutu_duru è funzione sqlite3_hard_heap_limit64() per cuntrullà a dimensione massima di u munzeddu;
  • In PRAGMA lista_funzioni aghjustatu output di tipu, pruprietà è numeru di argumenti di ogni funzione;
  • À a tavola virtuale DBSTAT aghjuntu modu di aggregazione di dati;
  • sqlite3_open_v2() implementa l'opzione SQLITE_OPEN_NOFOLLOW, chì permette di disattivà l'apertura di ligami simbolichi;
  • Per argumentu PATH, passatu à e funzioni JSON, aghjunghjenu supportu per a notazione di array "#-N";
  • In u sistema di distribuzione di memoria guardà à parte U supportu per dui pools di memoria separati hè statu implementatu, ognunu pò esse usatu per attribuisce blocchi di diverse dimensioni (a separazione permette di espansione l'usu di u sistema lookaside, mentre chì riduce a dimensione di u buffer attribuita à ogni cunnessione da 120 à 48). KB);
  • L'assistenza PRAGMA hè stata interrotta legacy_file_format, chì era incompatibile cù VACUUM, culonni generati, è indici discendente (u supportu di u formatu legacy pò esse tornatu via a bandiera SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config()).

Source: opennet.ru

Add a comment