DBMS SQLite 3.35'in sürümü

Eklenti kitaplığı olarak tasarlanmış hafif bir DBMS olan SQLite 3.35'nin sürümü yayınlandı. 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:

  • SQL'de kullanılabilecek yerleşik matematik fonksiyonları (log2(), cos(), tg(), exp(), ln(), pow(), vb.) eklendi. Yerleşik işlevlerin etkinleştirilmesi, "-DSQLITE_ENABLE_MATH_FUNCTIONS" seçeneğiyle oluşturmayı gerektirir.
  • Bir tablodan sütunları kaldırmak ve belirli bir sütunda önceden depolanan verileri temizlemek için "ALTER TABLE DROP COLUMN" ifadesi için destek uygulandı.
  • UPSERT (ekle veya değiştir) işleminin uygulaması genişletildi ve "INSERT ... ON ÇATIŞMADA HİÇBİR ŞEY YAPMA/GÜNCELLEME" gibi ifadelerin bir hatayı yok saymasına veya eklemek mümkün değilse eklemek yerine bir güncelleme gerçekleştirmesine olanak tanındı. “INSERT” aracılığıyla veriyi değiştirin (örneğin, bir kayıt zaten mevcutsa, INSERT yerine UPDATE yapabilirsiniz). Yeni sürüm, sırayla işlenecek birden fazla ON CONFLICT bloğu belirtmenize olanak tanır. Son "ON CONFLICT" bloğu, "DO UPDATE" seçeneğini kullanmak için çakışma tanımı parametresinin atlanmasına izin verir.
  • DELETE, INSERT ve UPDATE işlemleri, silinmiş, eklenen veya değiştirilmiş bir kaydın içeriğini görüntülemek için kullanılabilen RETURNING ifadesini destekler. Örneğin, "insert into ... return id" ifadesi, eklenen satırın tanımlayıcısını döndürecektir ve "update ... set fiyat = fiyat * 1.10 dönen fiyat" ifadesi, değiştirilen fiyat değerini döndürecektir.
  • With ifadesi kullanılarak belirtilen geçici adlandırılmış sonuç kümelerinin kullanımına izin veren Ortak Tablo İfadeleri (CTE) için "MATERIALIZED" ve "NOT MATERIALIZED" modlarının seçimine izin verilir. “MATERIALIZED”, görünümde belirtilen sorgunun ayrı bir fiziksel tabloda önbelleğe alınmasını ve daha sonra bu tablodan veri getirilmesini, “MATERIALIZED” ise görünüme her erişildiğinde tekrarlanan sorguların gerçekleştirilmesini ifade eder. SQLite başlangıçta varsayılan olarak "MATERIALIZED DEĞİL" olarak ayarlandı, ancak artık birden fazla kullanılan CTE'ler için "MATERIALIZED" olarak değiştirildi.
  • Çok büyük TEXT veya BLOB değerleri içeren veritabanlarında VAKUM işlemi gerçekleştirilirken bellek tüketimi azaltıldı.
  • Optimize edicinin ve sorgu planlayıcının performansını artırmak için çalışmalar yapıldı:
    • Min ve max işlevlerini "IN" ifadesiyle kullanırken optimizasyonlar eklendi.
    • EXISTS deyiminin yürütülmesi hızlandırıldı.
    • JOIN'in bir parçası olarak kullanılan UNION ALL ifadelerinden alt sorguların genişletilmesi uygulandı.
    • Dizin IS NOT NULL ifadeleri için kullanılır.
    • "X IS NULL" ve "x IS NOT NULL" öğelerinin, "NOT NULL" özniteliğine sahip sütunlar için FALSE veya TRUE değerine dönüştürülmesini sağlar.
    • İşlem yabancı anahtarla ilişkili sütunları değiştirmezse UPDATE'te yabancı anahtarları kontrol etmeyi atlayın.
    • WHERE bloğunun bazı bölümlerinin, pencere işlevlerinde kullanılan PARTITION BY bloklarındaki ifadelerin kopyaları ve sabitlerle çalışmasıyla sınırlı olduğu sürece, pencere işlevlerini içeren alt sorgulara taşınmasına izin verilir.
  • Komut satırı arayüzündeki değişiklikler:
    • ".filectrl data_version" komutu eklendi.
    • ".once" ve ".output" komutları artık çıktının adsız kanallar ("|") kullanılarak çağrılan bir işleyiciye aktarılmasını destekliyor.
    • İfadeler ve sanal makine sayaçlarına ilişkin istatistikleri görüntülemek için “.stats” komutuna “stmt” ve “vmstep” argümanları eklendi.

Kaynak: opennet.ru

Yorum ekle