Opublikowano wydanie SQLite 3.38, lekkiego systemu DBMS zaprojektowanego jako biblioteka wtyczek. Kod SQLite jest rozpowszechniany w domenie publicznej, tj. mogą być wykorzystywane bez ograniczeń i bezpłatnie w dowolnym celu. Wsparcie finansowe dla programistów SQLite zapewnia specjalnie utworzone konsorcjum, w skład którego wchodzą takie firmy jak Adobe, Oracle, Mozilla, Bentley czy Bloomberg.
Główne zmiany:
- Dodano obsługę operatorów -> i ->>, aby ułatwić wyodrębnianie danych w formacie JSON. Nowa składnia operatora jest kompatybilna z MySQL i PostgreSQL.
- Główna struktura zawiera funkcje umożliwiające pracę z danymi w formacie JSON, których połączenie wymagało wcześniej złożenia z flagą „-DSQLITE_ENABLE_JSON1”. Aby wyłączyć obsługę JSON, dodano flagę „-DSQLITE_OMIT_JSON”.
- Dodano funkcję unixepoch() zwracającą czas epokowy (liczbę sekund od 1 stycznia 1970).
- Dla funkcji operujących na czasie zaimplementowano modyfikatory „auto” i „julianday”.
- Nazwę funkcji SQL printf() zmieniono na format(), aby poprawić kompatybilność z innymi systemami DBMS (obsługa starej nazwy została zachowana).
- Dodano interfejs sqlite3_error_offset(), aby ułatwić lokalizowanie błędów w zapytaniu.
- Dodano nowe interfejsy programu do implementacji tabel wirtualnych: sqlite3_vtab_distinct(), sqlite3_vtab_rhs_value() i sqlite3_vtab_in(), a także nowe typy operatorów SQLITE_INDEX_CONSTRAINT_LIMIT i SQLITE_INDEX_CONSTRAINT_OFFSET.
- Interfejs wiersza poleceń zapewnia poprawną obsługę znaków tabulacji i nowego wiersza w tekście wyjściowym w trybach wielokolumnowych. Dodano obsługę opcji „--wrap N”, „--wordwrap on” i „-quote” podczas wyprowadzania danych do wielu kolumn. Polecenie .import umożliwia korektę nazw kolumn.
- Aby przyspieszyć wykonywanie dużych zapytań analitycznych, planista zapytań wykorzystuje probabilistyczną strukturę filtra Blooma w celu ustalenia, czy element występuje w zestawie. Zrównoważone drzewo scalania służy do optymalizacji przetwarzania bloków UNION i UNION ALL obejmujących instrukcje SELECT z klauzulami ORDER BY.
Dodatkowo można odnotować publikację wersji zestawu sqlite-utils 3.24, która zawiera narzędzia i bibliotekę do manipulacji plikami z bazy SQLite. Operacje takie jak bezpośrednie ładowanie danych JSON, CSV lub TSV do pliku bazy danych z automatycznym utworzeniem niezbędnego schematu przechowywania, wykonywanie zapytań SQL na plikach CSV, TSV i JSON, wyszukiwanie pełnotekstowe w bazie danych, konwersja danych i schematy przechowywania w sytuacjach, gdy ALTER nie ma zastosowania, obsługiwane są TABLE (na przykład w celu zmiany typu kolumn), wyodrębnianie kolumn do oddzielnych tabel.
Źródło: opennet.ru