DBMS SQLite 3.31-ի թողարկում՝ ստեղծված սյունակների աջակցությամբ

հրապարակված արձակել SQLite 3.31.0, թեթև DBMS, որը նախատեսված է որպես plug-in գրադարան: SQLite կոդը բաշխվում է որպես հանրային տիրույթ, այսինքն. կարող է օգտագործվել առանց սահմանափակումների և անվճար ցանկացած նպատակով: SQLite ծրագրավորողներին ֆինանսական աջակցություն է ցուցաբերում հատուկ ստեղծված կոնսորցիումը, որը ներառում է այնպիսի ընկերություններ, ինչպիսիք են Adobe-ը, Oracle-ը, Mozilla-ն, Bentley-ն և Bloomberg-ը:

Հիմնական փոփոխություններ:

  • Ավելացված աջակցություն առաջացած սյունակներ (հաշվարկված սյունակներ), որոնք թույլ են տալիս սահմանել սյունակ, երբ ստեղծում եք աղյուսակ, որի արժեքը ավտոմատ կերպով հաշվարկվում է մեկ այլ սյունակի բովանդակության հիման վրա: Ստեղծված սյունակները կարող են լինել կա՛մ վիրտուալ (առաջանում են յուրաքանչյուր մուտքի դեպքում), կա՛մ պահվում են տվյալների բազայում (պահվում են ամեն անգամ, երբ համապատասխան սյունակները թարմացվում են): Ստեղծված սյունակների բովանդակությունը հասանելի է միայն կարդալու ռեժիմում (փոփոխությունները կատարվում են միայն հաշվարկում ներգրավված մեկ այլ սյունակի արժեքի փոփոխման միջոցով): Օրինակ:

    ՍՏԵՂԾԵԼ ՍԵՂԱՆԱԿ t1(
    ԱՄԲՈՂՋ ՀԻՄՆԱԿԱՆ ԲԱՆԱԼ,
    բ INT,
    գ ՏԵՔՍՏ,
    d ՍՏԵՂԾՎՈՒՄ Է ՄԻՇՏ ՈՐՊԵՍ (a*abs(b)) ՎԻՐՏՈՒԱԼ,
    ե ՏԵՔՍՏԸ ՍՏԵՂԾՎԱԾ Է ՄԻՇՏ ԻՆՉՊԵՍ (ենթակետ(c,b,b+1)) ՊԱՀՎԱԾ Է
    );

  • Ավելացվեց PRAGMA trusted_schema, կարգավորում SQLITE_DBCONFIG_TRUSTED_SCHEMA և «-DSQLITE_TRUSTED_SCHEMA» հավաքման տարբերակը, որը թույլ է տալիս վերահսկել պաշտպանությունից պաշտպանվելու հնարավորությունը գրոհներ տվյալների բազայում տվյալների սխեմայի փոփոխման միջոցով: Ակտիվ պաշտպանությունը սահմանափակում է SQL ֆունկցիաների օգտագործումը (նշված չէ SQLITE_INNOCUOUS) գործարկիչներում, դիտումներում, CHECK և DEFAULT հայտարարություններում, ինդեքսներում և ստեղծված սյունակներում: Վիրտուալ աղյուսակների օգտագործումը գործարկիչներում և դիտումներում նույնպես անջատված է, եթե վիրտուալ աղյուսակը հստակորեն հայտարարված չէ SQLITE_VTAB_INNOCUOUS դրոշակով:
  • Իրականացրել է հավելվածներում սահմանված SQL ֆունկցիաներին հատկություններ հատկացնելու հնարավորություն SQLITE_INNOCUOUS (անվնաս գործառույթներ, որոնք կախված չեն արտաքին պարամետրերից և չեն կարող օգտագործվել վնասակար գործողություններ կատարելու համար) և SQLITE_DIRECTONLY (միայն ուղղակի զանգ SQL հարցումներում, առանց գործարկիչների, դիտումների և տվյալների կառուցվածքի դիագրամների օգտագործման հնարավորության);
  • Ավելացված մոդուլ uuid UUID-ի մշակման գործառույթների իրականացմամբ (RFC-4122);
  • Ավելացվեց PRAGMA hard_heap_limit և գործառույթ sqlite3_hard_heap_limit64 () վերահսկել կույտի առավելագույն չափը;
  • ՊՐԱԳՄԱՅՈՒՄ գործառույթի_ցուցակ յուրաքանչյուր ֆունկցիայի տեսակի, հատկությունների և արգումենտների քանակի ավելացված արդյունք;
  • Դեպի վիրտուալ սեղան DBSTAT ավելացրեց տվյալների համախմբման ռեժիմ;
  • sqlite3_open_v2()-ն իրականացնում է SQLITE_OPEN_NOFOLLOW տարբերակը, որը թույլ է տալիս անջատել խորհրդանշական հղումների բացումը;
  • Փաստարկի համար PATH, փոխանցվել է JSON ֆունկցիաներին, ավելացրել է «#-N» զանգվածի նշագրման աջակցություն;
  • Հիշողության բաշխման համակարգում հայացքից կողմ Իրականացվել է երկու առանձին հիշողության լողավազանների աջակցություն, որոնցից յուրաքանչյուրը կարող է օգտագործվել տարբեր չափերի բլոկներ հատկացնելու համար (տարանջատումը թույլ է տալիս ընդլայնել lookaside համակարգի օգտագործումը՝ միաժամանակ նվազեցնելով յուրաքանչյուր միացմանը հատկացված բուֆերի չափը 120-ից մինչև 48): ԿԲ);
  • PRAGMA-ի աջակցությունը դադարեցվել է legacy_file_format, որն անհամատեղելի էր VACUUM-ի, գեներացված սյունակների և նվազող ինդեքսների հետ (ժառանգական ձևաչափի աջակցությունը կարող է վերադարձվել SQLITE_DBCONFIG_LEGACY_FILE_FORMAT դրոշի միջոցով sqlite3_db_config()-ում):

Source: opennet.ru

Добавить комментарий