Liberigo de DBMS SQLite 3.31 kun subteno por generitaj kolumnoj

eldonita liberigi SQLite 3.31.0, malpeza DBMS dizajnita kiel aldonaĵbiblioteko. La SQLite-kodo estas distribuita kiel publika havaĵo, t.e. povas esti uzata sen limigo kaj senpage por ajna celo. Financa subteno por SQLite-programistoj estas provizita de speciale kreita konsorcio, kiu inkluzivas kompaniojn kiel Adobe, Oracle, Mozilla, Bentley kaj Bloomberg.

Ĉefa ŝanĝi:

  • Aldonita subteno generitaj kolumnoj (kalkulitaj kolumnoj), kiuj ebligas al vi difini kolumnon kiam vi kreas tabelon, kies valoro estas aŭtomate kalkulita surbaze de la enhavo de alia kolumno. La generitaj kolumnoj povas esti aŭ virtualaj (generitaj sur la flugo kun ĉiu aliro) aŭ stokitaj en la datumbazo (konservitaj ĉiufoje kiam la rilataj kolumnoj estas ĝisdatigitaj). La enhavo de la generitaj kolumnoj estas haveblaj nur en legoreĝimo (ŝanĝoj estas faritaj nur per modifo de la valoro en alia kolumno implikita en la kalkulo). Ekzemple:

    KREU TABLON t1(
    a ENTGERA PRIMA Ŝlosilo,
    b INT,
    c TEKSTO,
    d INT GENERATA ĈIAM KIEL (a*abs(b)) VIRTUAL,
    e TEKSTO GENERATA ĈIAM KIEL (substr(c,b,b+1)) STOKITA
    );

  • Aldonita PRAGMA fidinda_skemo, fikso SQLITE_DBCONFIG_TRUSTED_SCHEMA kaj la kunvena opcio "-DSQLITE_TRUSTED_SCHEMA", kiu ebligas al vi kontroli la inkludon de protekto kontraŭ atakoj per modifo de la datumskemo en la datumbazo. Aktiva protekto limigas la uzon de SQL-funkcioj (ne markitaj SQLITE_INNOCUOUS) en ellasiloj, vidoj, CHECK kaj DEFAULT-deklaroj, indeksoj kaj generitaj kolumnoj. La uzo de virtualaj tabeloj en ellasiloj kaj vidoj ankaŭ estas malŝaltita krom se la virtuala tabelo estas eksplicite deklarita kun la SQLITE_VTAB_INNOCUOUS flago.
  • Efektivigis la kapablon atribui ecojn al SQL-funkcioj difinitaj en aplikoj SQLITE_INNOCUOUS (sendanĝeraj funkcioj, kiuj ne dependas de eksteraj parametroj kaj ne povas esti uzataj por fari malicajn agojn) kaj SQLITE_DIRECTONLY (nur rekta alvoko en SQL-demandoj, sen la ebleco uzi en ellasiloj, vidoj kaj datumstrukturaj diagramoj);
  • Aldonita modulo uuid kun efektivigo de funkcioj por prilaborado de UUID (RFC-4122);
  • Aldonita PRAGMA malmola_heap_limo kaj funkcio sqlite3_hard_heap_limit64() kontroli la maksimuman amasgrandon;
  • En PRAGMO funkcio_listo aldonita eligo de tipo, propraĵoj kaj nombro da argumentoj de ĉiu funkcio;
  • Al virtuala tablo DBSTAT aldonis reĝimo de agregado de datumoj;
  • sqlite3_open_v2() efektivigas la opcion SQLITE_OPEN_NOFOLLOW, kiu ebligas malebligi la malfermon de simbolaj ligiloj;
  • Por argumento VOJ, pasita al JSON-funkcioj, aldonis subtenon por tabelnotacio "#-N";
  • En la memordistribua sistemo rigardo flanken subteno por du apartaj memorgrupoj estis efektivigita, ĉiu el kiuj povas esti uzata por asigni blokojn de malsamaj grandecoj (disigo ebligas al vi pligrandigi la uzon de la flanka sistemo, reduktante la grandecon de la bufro asignita al ĉiu konekto de 120 ĝis 48). KB);
  • PRAGMA-subteno estis nuligita hereda_dosiero_formato, kiu estis malkongrua kun VACUUM, generis kolumnojn kaj descendajn indeksojn (subteno de hereda formato povas esti resendita per la flago SQLITE_DBCONFIG_LEGACY_FILE_FORMAT en sqlite3_db_config()).

fonto: opennet.ru

Aldoni komenton