DBMS SQLite 3.31 kaleratzea, sortutako zutabeetarako laguntzarekin

argitaratua askatu SQLite 3.31.0, plug-in liburutegi gisa diseinatutako DBMS arina. SQLite kodea domeinu publiko gisa banatzen da, hau da. mugarik gabe eta doan erabil daiteke edozein helburutarako. SQLite garatzaileentzako laguntza ekonomikoa bereziki sortutako partzuergo batek eskaintzen du, Adobe, Oracle, Mozilla, Bentley eta Bloomberg bezalako enpresak barne hartzen dituena.

Nagusia aldaketak:

  • Laguntza gehitu sortutako zutabeak (kalkulatutako zutabeak), zutabe bat definitzeko aukera ematen dutenak taula bat sortzen duzunean, zeinaren balioa automatikoki kalkulatzen den beste zutabe baten edukietan oinarrituta. Sortutako zutabeak birtualak izan daitezke (sarbide bakoitzean berehala sortzen direnak) edo datu-basean gordeta (erlazionatutako zutabeak eguneratzen diren bakoitzean gordeta). Sortutako zutabeen edukia irakurtzeko moduan bakarrik dago eskuragarri (aldaketak kalkuluan parte hartzen duen beste zutabe bateko balioa aldatzearen bidez bakarrik egiten dira). Adibidez:

    SORTU TAULA t1(
    OSOKO GAKO PRIMARIOA,
    b INT,
    c TESTUA,
    d INT BETI (a*abs(b)) BIRTUALA,
    e BETI (substr(c,b,b+1)) GORDETZEN DAGOEN TESTUA
    );

  • PRAGMA gehitua eskema_fidagarria, ezarpena SQLITE_DBCONFIG_TRUSTED_SCHEMA eta muntaketa-aukera "-DSQLITE_TRUSTED_SCHEMA", kontrako babesa sartzea kontrolatzeko aukera ematen dutenak. erasoak datu-baseko datu-eskemaren aldaketaren bidez. Babes aktiboak SQL funtzioen erabilera mugatzen du (SQLITE_INNOCUOUS markatuta ez daudenak) abiarazleetan, ikuspegietan, CHECK eta DEFAULT adierazpenetan, indizeetan eta sortutako zutabeetan. Taula birtualen erabilera abiarazleetan eta ikuspegietan ere desgaituta dago taula birtuala esplizituki SQLITE_VTAB_INNOCUOUS banderarekin deklaratzen ez bada.
  • Aplikazioetan definitutako SQL funtzioei propietateak esleitzeko gaitasuna inplementatu du SQLITE_INNOCUOUS (kanpoko parametroen menpe ez dauden eta ekintza gaiztoak egiteko erabili ezin diren funtzio kaltegabeak) eta SQLITE_DIRECTONLY (zuzeneko deia soilik SQL kontsultetan, abiarazleetan, ikuspegietan eta datu-egitura-diagrametan erabiltzeko aukerarik gabe);
  • Modulua gehitu uuid UUID prozesatzeko funtzioen ezarpenarekin (RFC-4122);
  • PRAGMA gehitua gogor_pila_muga eta funtzioa sqlite3_hard_heap_limit64() piloaren gehienezko tamaina kontrolatzeko;
  • PRAGMAN funtzio_zerrenda funtzio bakoitzaren mota, propietate eta argumentu kopuruaren irteera gehitu;
  • DBSTAT taula birtualera gehitu du datuak batzeko modua;
  • sqlite3_open_v2() SQLITE_OPEN_NOFOLLOW aukera inplementatzen du, esteka sinbolikoen irekiera desgaitzeko aukera ematen duena;
  • Argudiorako PATH, JSON funtzioetara pasatuta, "#-N" matrize-notaziorako laguntza gehitu zuen;
  • Memoria banatzeko sisteman alde batera begiratu Bi memoria multzo bereizientzako euskarria inplementatu da, eta horietako bakoitza tamaina ezberdinetako blokeak esleitzeko erabil daiteke (bereizketak lookaside sistemaren erabilera zabaltzeko aukera ematen du, konexio bakoitzari esleitutako buffer-aren tamaina 120tik 48ra murriztuz). KB);
  • PRAGMA laguntza eten egin da ondare_fitxategi_formatua, VACUUM-ekin bateraezina zen, sortutako zutabeekin eta beheranzko indizeekin (oinarrizko formatuaren euskarria SQLITE_DBCONFIG_LEGACY_FILE_FORMAT banderaren bidez itzul daiteke sqlite3_db_config()-n).

Iturria: opennet.ru

Gehitu iruzkin berria