Wydanie bazy danych SQLite 3.53

Opublikowano wydanie SQLite 3.53, lekkiej bazy danych, dostępnej jako biblioteka do podłączania. Wydanie 3.52 zostało anulowane. Kod SQLite jest dostępny w domenie publicznej, co oznacza, że może być używany bez ograniczeń i bezpłatnie w dowolnych celach. Wsparcie finansowe dla twórców SQLite świadczy specjalnie utworzony konsorcjum.

Główne zmiany:

  • Usunięto błąd, który prowadził do uszkodzenia bazy danych. Problem występował od wersji SQLite 3.7.0 (2010 rok) i dotyczył baz danych w trybie WAL (Write-Ahead Logging), objawiając się w wyniku wyścigu w przypadku jednoczesnego otwierania dwóch lub więcej połączeń do bazy danych, które próbowały zapisać lub zatwierdzić transakcje w jednej instancji bazy danych. Twierdzi się, że sytuacja prowadząca do awarii występuje niezwykle rzadko i udało się ją powtórzyć tylko w specjalnie stworzonym scenariuszu testowym.
  • W zespole „ALTER TABLE” dozwolone jest usuwanie ograniczeń „NOT NULL” oraz „CHECK”.
  • Dodano polecenie „REINDEX EXPRESSIONS” do odbudowy indeksów na podstawie wyrażeń, w których jako element indeksu używana jest funkcja nad kolumną lub operacje nad kolumnami. Komenda może być stosowana do przywracania uszkodzonych indeksów.
  • W tymczasowych wyzwalaczach tworzonych przez polecenie „CREATE TEMP TRIGGER” oraz stosowanych na tabelach w innych bazach danych dozwolone jest zmienianie tabel lub zapytania danych z tabel.
  • W poleceniu „VACUUM INTO” przy wskazywaniu docelowego pliku za pomocą URL wprowadzono użycie parametru „reserve=N” do określenia liczby tworzonych kopii zapasowych bazy danych.
  • Zrealizowano nowe funkcje SQL json_array_insert() oraz jsonb_array_insert() do wstawiania elementów do tablic JSON.
  • Dodano i uruchomiono w narzędziu wiersza poleceń bibliotekę QRF (Query Result Formatter) do formatowania wyników wykonania zapytań SQL w czytelnej formie.
  • Zmiany w narzędziu wiersza poleceń:
    • Polecenie „.mode” zostało znacznie rozszerzone.
    • Udoskonalono generowanie wyników, na przykład domyślnie włączono rysowanie ramek, a wartości numeryczne są teraz wyrównywane do prawej krawędzi przy tabulowanym wyjściu.
    • Zapewniono ignorowanie znaków „;” po poleceniach.
    • Zawartość określonych wierszy plików z rozszerzeniem *.sql i *.txt podanych w wierszu poleceń jest teraz odczytywana i interpretowana jako zestawy wyrażeń SQL oraz poleceń dot.
    • W poleceniu „.timer” dodano wsparcie dla wartości „once” do zastosowania timera tylko do następnego wyrażenia SQL.
    • W poleceniu „.progress” dodano opcję „—timeout S” do wymuszenia przerwania wyrażenia SQL po upływie limitu czasu.
    • W poleceniu „.indexes” zmieniono zachowanie szablonów, które teraz są stosowane do nazw indeksów, a nie do nazw tabel indeksowanych.
  • Wprowadzono optymalizacje w planowaniu zapytań, które przyspieszyły operacje łączenia tabel oraz operacje EXCEPT, INTERSECT i UNION.
  • Zwiększono wydajność funkcji konwersji liczb zmiennoprzecinkowych na reprezentację tekstową.
  • Do realizacji kompilowanej do pośredniego kodu WebAssembly dodano VFS „opfs-wl”, tożsame z VFS „opfs”, ale wykorzystujące API Web Locks do obsługi blokad.
  • Do narzędzia sqlite3_rsync dodano opcję „-p|—port”.
  • Wsparcie dla platformy Windows RT zostało zakończone.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster