Oluşturulan sütunlar için destek içeren DBMS SQLite 3.31 sürümü

yayınlanan serbest SQLite 3.31.0, eklenti kitaplığı olarak tasarlanmış hafif bir DBMS. SQLite kodu kamuya açık bir alan olarak dağıtılır, yani. herhangi bir amaç için kısıtlama olmaksızın ve ücretsiz olarak kullanılabilir. SQLite geliştiricilerine mali destek, Adobe, Oracle, Mozilla, Bentley ve Bloomberg gibi şirketlerin de yer aldığı özel olarak oluşturulmuş bir konsorsiyum tarafından sağlanmaktadır.

Ana değişiklikler:

  • Destek eklendi oluşturulan sütunlar (hesaplanan sütunlar), değeri başka bir sütunun içeriğine göre otomatik olarak hesaplanan bir tablo oluşturduğunuzda bir sütun tanımlamanıza olanak tanır. Oluşturulan sütunlar sanal olabilir (her erişimde anında oluşturulur) veya veritabanında saklanabilir (ilgili sütunlar her güncellendiğinde kaydedilir). Oluşturulan sütunların içerikleri yalnızca okuma modunda kullanılabilir (değişiklikler yalnızca hesaplamaya dahil olan başka bir sütundaki değerin değiştirilmesi yoluyla yapılır). Örneğin:

    TABLO OLUŞTUR t1(
    TAM SAYI BİRİNCİL ANAHTAR,
    b INT,
    c METİN,
    d INT HER ZAMAN (a*abs(b)) SANAL OLARAK OLUŞTURULUR,
    e HER ZAMAN (substr(c,b,b+1)) OLARAK OLUŞTURULAN METİN DEPOLANIR
    );

  • PRAGMA eklendi güvenilir_şema, ayar SQLITE_DBCONFIG_TRUSTED_SCHEMA ve korumanın dahil edilmesini kontrol etmenizi sağlayan “-DSQLITE_TRUSTED_SCHEMA” montaj seçeneği saldırılar Veritabanındaki veri şemasının değiştirilmesi yoluyla. Aktif koruma, tetikleyicilerde, görünümlerde, CHECK ve DEFAULT ifadelerinde, dizinlerde ve oluşturulan sütunlarda SQL işlevlerinin (SQLITE_INNOCUOUS olarak işaretlenmemiş) kullanımını kısıtlar. Sanal tablo SQLITE_VTAB_INNOCUOUS bayrağıyla açıkça bildirilmediği sürece tetikleyicilerde ve görünümlerde sanal tabloların kullanımı da devre dışı bırakılır.
  • Uygulamalarda tanımlanan SQL işlevlerine özellik atama yeteneği uygulandı SQLITE_INNOCUOUS (harici parametrelere bağlı olmayan ve kötü amaçlı eylemler gerçekleştirmek için kullanılamayan zararsız işlevler) ve SQLITE_DIRECTONLY (tetikleyicilerde, görünümlerde ve veri yapısı diyagramlarında kullanma imkanı olmadan yalnızca SQL sorgularında doğrudan çağrı);
  • Modül eklendi kullanıcı kimliği UUID'nin (RFC-4122) işlenmesine yönelik işlevlerin uygulanmasıyla;
  • PRAGMA eklendi hard_heap_limit ve işlev sqlite3_hard_heap_limit64() maksimum yığın boyutunu kontrol etmek için;
  • PRAGMA'da işlev_listesi her işlevin türü, özellikleri ve bağımsız değişken sayısının ek çıktısı;
  • DBSTAT sanal tablosuna katma veri toplama modu;
  • sqlite3_open_v2(), sembolik bağlantıların açılmasını devre dışı bırakmanıza olanak tanıyan SQLITE_OPEN_NOFOLLOW seçeneğini uygular;
  • Tartışma için PATH, JSON işlevlerine aktarıldı, “#-N” dizi gösterimi için destek eklendi;
  • Bellek dağıtım sisteminde yandan bakmak her biri farklı boyutlardaki blokları tahsis etmek için kullanılabilen iki ayrı bellek havuzu desteği uygulanmıştır (ayırma, her bağlantıya ayrılan arabellek boyutunu 120'den 48'e düşürürken, görünüm sisteminin kullanımını genişletmenize olanak tanır) KB);
  • PRAGMA desteği durduruldu eski_dosya_formatVACUUM, oluşturulan sütunlar ve azalan dizinlerle uyumsuzdu (eski biçim desteği, sqlite3_db_config() içindeki SQLITE_DBCONFIG_LEGACY_FILE_FORMAT bayrağı aracılığıyla döndürülebilir).

Kaynak: opennet.ru

Yorum ekle