SQLite 3.53.0

SQLite 3.53.0 SQLite 3.53.0

9 kwietnia wydano wersję 3.53.0 kompaktowej, wieloplatformowej wbudowanej bazy danych. SQLite. Kod projektu został napisany w języku C i jest rozpowszechniany jako własność publiczna (public domain).

Zmiany:

  • Naprawiona usterka błąd korupcji bazy danych WAL-reset. Zobacz poprzednią wiadomość SQLite 3.51.3 z poprawką możliwego uszkodzenia bazy danych w trybie WAL.
  • Dodano bibliotekę formatowania wyników zapytań SQL Formatter Wyników Zapytania (QRF) w celu zapewnienia wygody odczytu na ekranie z czcionką o stałej szerokości.
  • Dodano metodę format do interfejsu TCL dla dostępu do QRF z TCL.
    • QRF jest teraz używane w narzędziu konsolowym sqlite do formatowania wyników zapytań, co poprawiło ich wyświetlanie.
  • Nowe możliwości języka SQL:
    • Udoskonalone możliwości komendy ALTER TABLE w celu umożliwienia dodawania i usuwania ograniczeń NOT NULL i CHECK.
    • Operator REINDEX EXPRESSIONS wykonuje reindeksację indeksów wyrażeń. Przydatne do przywracania nieaktualnych indeksów wyrażeń.
    • pokazuje to, czego się spodziewano: triggery TEMP mogą zmieniać i/lub żądać danych z tabel głównego schematu.
    • Udoskonalona komenda VACUUM INTO: w przypadku wykorzystania jako adresu docelowego nazwy pliku w formacie URI, zawierającego parametr zapytania reserve=N (gdzie N to liczba od 0 do 255), objętość rezerwacji dla tworzonej kopii bazy danych jest ustawiana na N.
  • Dodano nowe funkcje SQL:
  • Aktualizacje w narzędziu konsolowym:
    • Znaczące ulepszenia komendy .mode.
    • Dzięki rozszerzenia QRF ulepszono formatowanie wyników. Na przykład liczby są teraz domyślnie wyrównywane do prawej w trybie wyjścia tabelarycznego.
    • Domyślnie QRF jest teraz używane podczas interaktywnego korzystania z narzędzia konsolowego do wyświetlania wyników zapytań w blokach utworzonych przy użyciu znaków Unicode dla rysowania bloków, co zwiększyło czytelność. Nieaktualny format wyjścia jest używany przy zbiorczym wykonywaniu komend w celu zapewnienia kompatybilności.
    • Pojedyncze (niezamknięte w cudzysłowach) średniki na końcu komend z kropką są ignorowane bez ostrzeżenia. To możliwa niekompatybilność!
    • Naprawiono komendy .testcase i .check. Teraz naprawdę działają i są używane w skryptach wchodzących w skład standardowego zestawu testów SQLite, jakie zawarte są w kodzie źródłowym.
    • Argumenty wiersza poleceń, które odpowiadają wzorcom *.sql lub *.txt i są nazwami niepustych plików, są odczytywane i interpretowane jako skrypty zawierające polecenia SQL i/lub [komendy z kropką]((https://sqlite.org/cli.html#dotcmd).
    • Teraz jako argument polecenia .timer można podać once, aby timer uruchomił się tylko przy wykonaniu następnego zapytania SQL.
    • Nowy parametr —timeout S polecenia .progress przerywa wykonywanie zapytań SQL po upływie S sekund.
    • Polecenie .indexes zostało zmienione w taki sposób, że argument PATTERN jest teraz dopasowywany do nazwy indeksu, a nie do nazwy tabeli indeksowanej (co czyni argument PATTERN naprawdę użytecznym). Dodatkowo, do polecenia .indexes dodano kilka nowych opcji.
  • Ulepszenia w C API:
  • Ulepszenia planowania zapytań:
    • Dla EXCEPT, INTERSECT i UNION zawsze używany jest algorytm sortowania i scalania, ponieważ prawie zawsze działa on szybciej niż użycie tablic haszujących.
    • Ulepszenia w mechanizmie wyboru kolejności złączeń podczas wykonywania dużych wielostronnych złączeń w schemacie gwiazdy.
    • Udoskonalono optymalizację przekształcania EXISTS w JOIN tak, aby warunki JOIN mogły nie znajdować się obowiązkowo w wewnętrznych pętlach, pod warunkiem, że wszystkie zależności dla cykli przekształceń EXISTS w JOIN znajdują się w zewnętrznych cyklach.
    • Udoskonalono optymalizację omit-noop-join, aby mogła pomijać łańcuch złączeń, które nie wpływają na wynik.
    • Optymalizacja zapytań używających GROUP BY e1 ORDER BY e2, gdzie e1 i e2 są identyczne, z wyjątkiem kolejności sortowania ASC/DESC, za pomocą jednego indeksu.
    • Optymalizacja operatora DISTINCT w wirtualnych tabelach w sytuacjach, gdy zestaw wyników zapytania nie odpowiada całkowicie warunkowi ORDER BY.
  • W rozszerzenie sesji dodano nowe interfejsy umożliwiające aplikacji dodawanie zmian pojedynczo do obiektu sqlite3_changegroup:
  • Ulepszenia w konwersji liczb zmiennoprzecinkowych ↔ tekst.
    • Kod został całkowicie przepisany, aby poprawić wydajność.
    • Teraz zaokrąglanie domyślnie jest wykonywane do 17 cyfr znaczących zamiast 15, jak miało to miejsce we wszystkich wcześniejszych wersjach. W razie potrzeby wartość tę można zmienić za pomocą funkcji sqlite3_db_config z opcją SQLITE_DBCONFIG_FP_DIGITS (patrz punkt 6g powyżej).
  • Dodano możliwość automatycznego odtwarzania indeksu w celu rozwiązania problemu nieaktualnych indeksów wyrażeń.
  • W narzędziu konsolowym sqlite3_rsync dodano opcję -p|—port.
  • Zaprzestano wsparcia dla Windows RT.
  • JavaScript/WASM
    • Dodano VFS opfs-wl, funkcjonalnie identyczny z opfs, ale używający do blokad Web Locks, co pozwala na bardziej sprawiedliwe rozdzielanie blokad niż w protokole opfs. opfs-wl wymaga funkcji Atomics.waitAsync(), dlatego jego działanie wymaga nowszych wersji przeglądarek niż dla opfs.

Źródło: linux.org.ru

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