wydanie , lekkiej DBMS, sformatowanej jako biblioteka dołączana. Kod SQLite jest rozpowszechniany jako własność publiczna, co oznacza, że może być wykorzystywany bez ograniczeń i bezpłatnie do wszelkich celów. Wsparcie finansowe dla twórców SQLite zapewnia specjalnie utworzony konsorcjum, do którego należą takie firmy jak Adobe, Oracle, Mozilla, Bentley i Bloomberg.
Podstawowe :
- Dodano wsparcie dla (kolumn obliczanych), które pozwalają określić kolumnę przy tworzeniu tabeli, której wartość jest automatycznie obliczana na podstawie zawartości innej kolumny. Generowane kolumny mogą być zarówno wirtualne (tworzone na bieżąco przy każdym odwołaniu), jak i przechowywane w bazie danych (zapisywane przy każdej aktualizacji powiązanych kolumn). Zawartość generowanych kolumn jest dostępna tylko w trybie odczytu (zmiany dokonuje się tylko poprzez modyfikację wartości w innej kolumnie wykorzystanej do obliczeń). Na przykład:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INT,
c TEXT,
d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
); - Dodano PRAGMA , konfiguracja i opcja kompilacji „-DSQLITE_TRUSTED_SCHEMA”, które umożliwiają zarządzanie włączeniem ochrony przed modyfikacją schematu danych w bazie danych. Przy aktywnej ochronie ogranicza się użycie funkcji SQL (nieoznaczonych jako SQLITE_INNOCUOUS) w wyzwalaczach, widokach, wyrażeniach CHECK i DEFAULT, indeksach oraz generowanych kolumnach. Dodatkowo dezaktywowane jest użycie tabel wirtualnych w wyzwalaczach i widokach, jeśli tabela wirtualna nie została wyraźnie zadeklarowana z flagą SQLITE_VTAB_INNOCUOUS.
- Zrealizowano możliwość przypisania określonym aplikacjom funkcji SQL właściwości (funkcje bezpieczne, które nie zależą od zewnętrznych parametrów i nie mogą być wykorzystywane do działań złośliwych) oraz (tylko bezpośrednie wywołanie w zapytaniach SQL, bez możliwości użycia w wyzwalaczach, widokach i schematach struktury danych);
- Dodano moduł z implementacją funkcji do przetwarzania UUID (RFC-4122);
- Dodano PRAGMA i funkcję do zarządzania maksymalnym rozmiarem sterty;
- W PRAGMA dodano wyjście typu, właściwości i liczby argumentów każdej funkcji;
- Wirtualna tabela DBSTAT tryb agregacji danych;
- W sqlite3_open_v2() zaimplementowano opcję SQLITE_OPEN_NOFOLLOW, która pozwala zabronić otwierania linków symbolicznych;
- Dla argumentu , przekazywanego do funkcji JSON, dodano wsparcie dla notacji tablic „#-N”;
- W systemie przydziału pamięci Wdrożono wsparcie dla dwóch oddzielnych pul pamięci, z których każda może być używana do przydzielania bloków różnej wielkości (podział pozwala rozszerzyć zastosowanie systemu lookaside, jednocześnie zmniejszając rozmiar przydzielanego na każde połączenie bufora z 120 do 48 KB);
- Wsparcie dla PRAGMA zostało zakończone , które było niekompatybilne z VACUUM, generowanymi kolumnami i malejącymi indeksami (wsparcie dla starszego formatu można przywrócić za pomocą flagi SQLITE_DBCONFIG_LEGACY_FILE_FORMAT w sqlite3_db_config()).
Źródło: opennet.ru
