SQLite 3.35 zawiera nowe wbudowane funkcje matematyczne i nie tylko

Opublikowano wydanie SQLite 3.35 iw nowej wersji tego menedżera bazy danych dodatkowe funkcje matematyczne są wyróżnione, a także obsługę wyrażenia ALTER TABLE DROP COLUMN do usuwania kolumn z tabeli, ulepszone operacje i nie tylko.

Dla osób niezaznajomionych z pakietem SQLite jest to lekki DBMS, zaprojektowany jako biblioteka wtyczek. Kod SQLite jest rozpowszechniany jako domena publiczna, Oznacza to, że można go używać bez ograniczeń i bezpłatnie w dowolnym celu.

Główne nowe funkcje SQLite 3.35

Jak wspomniano na początku, w tej nowej wersji dodano wbudowane funkcje matematyczne (log2 (), cos (), tg (), exp (), ln (), pow () itd.) które mogą być używane w SQL. Aby włączyć funkcje wbudowane, wymagany jest zestaw z opcją „-DSQLITE_ENABLE_MATH_FUNCTIONS”.

Ekspresja „ALTER TABLE DROP COLUMN” obsługuje teraz usuwanie kolumn z tabeli i usuń dane wcześniej zapisane w tej kolumnie.

Realizacja operacji UPSERT (dodaj lub zmodyfikuj), który pozwala na użycie wyrażeń, takich jak „WSTAW W KONFLIKCIE NIE NIC / AKTUALIZUJ”, aby zignorować błąd lub wykonać aktualizację zamiast wstawiania, jeśli nie można dodać danych za pomocą polecenia „WSTAW” (na przykład, jeśli rekord, można wykonać UPDATE zamiast INSERT).

W nowej wersji można określić kilka bloków «W KONFLIKCIE«, Które będą przetwarzane w kolejności. W ostatnim bloku „ON CONFLICT” można nie określać parametru definicji konfliktu, aby użyć „DO UPDATE”.

Operacje DELETE, INSERT i UPDATE obsługują wyrażenie RETURNING, które można wykorzystać aby wyświetlić zawartość usuniętego, wstawionego lub zmodyfikowanego rekordu. Na przykład „wstaw do ... zwracający identyfikator” zwróci dodany identyfikator wiersza, a „aktualizuj ... ustaw cenę = cena * 1.10 zwracająca cenę” zwróci wartość zaktualizowanej ceny.

W przypadku uogólnionych wyrażeń tabelarycznych (Common Table Expression, CTE), które pozwalają na użycie tymczasowo nazwanych zestawów wyników, użycie operatora WITH zapytało operatora, zatwierdzono wybór trybów „ZMATERIALIZOWANY” i „NIEZMATERIALIZOWANY”.

  1. „ZMATERIALIZOWANY” oznacza buforowanie zapytania określonego w widoku w oddzielnej fizycznej tabeli, a następnie pobieranie danych z tej tabeli.
  2. W przypadku opcji „NIE ZMETERIALIZOWANO” powtarzane zapytania będą wykonywane przy każdym dostępie do widoku. Początkowo SQLite domyślnie ustawiał się na „NIE ZMATERIALIZOWANY”, ale teraz został zmieniony na „ZMATERIALIZOWANY” dla CTE używanych więcej niż raz.

Z innych zmian które wyróżniają się na tle nowej wersji:

  • Zmniejszone zużycie pamięci podczas wykonywania operacji VACUUM dla baz danych, które zawierają bardzo duże wartości z typami TEXT lub BLOB.
  • Podjęto prace, aby zwiększyć wydajność optymalizatora i harmonogramu zapytań.
  • Optymalizacje zostały dodane podczas używania funkcji min i max z wyrażeniem „IN”.
  • Przyspieszono wykonywanie instrukcji EXISTS.
  • Zaimplementowano rozszerzenie podzapytań wyrażeń UNION ALL używanych w JOIN.
  • Indeks używany dla wyrażeń NIE JEST NULL.
  • Konwersja „x IS NULL” i „x IS NOT NULL” na FALSE lub TRUE została zapewniona dla kolumn z flagą „NOT NULL”.
  • Sprawdzenie klucza obcego w UPDATE jest pomijane, jeśli operacja nie zmienia kolumn skojarzonych z kluczem obcym.
  • Przenoszenie części klauzuli WHERE do podzapytań zawierających funkcje okna jest dozwolone, jeśli te części są ograniczone do pracy ze stałymi i kopiami wyrażeń klauzuli „PARTITION BY” używanych w funkcjach okna.

Zmiany w interfejsie wiersza poleceń:

  • Dodano polecenie „.filectrl data_version”.
  • Polecenia „.once” i „.output” dodały obsługę przekazywania danych wyjściowych do wywoływanego kontrolera przy użyciu nienazwanych potoków („|”).
  • Polecenie „.stats” dodało argumenty „stmt” i „vmstep” w celu wyświetlenia statystyk dotyczących liczników i wyrażeń maszyny wirtualnej.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat o nowej wersji SQLite możesz sprawdzić szczegóły przechodząc do poniższego linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.