SQLite 3.35 utgivelse

Utgivelsen av SQLite 3.35, et lett DBMS designet som et plug-in-bibliotek, har blitt publisert. SQLite-koden er distribuert i det offentlige domene, dvs. kan brukes uten begrensninger og gratis til ethvert formål. Økonomisk støtte til SQLite-utviklere gis av et spesielt opprettet konsortium, som inkluderer selskaper som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Hovedendringer:

  • Lagt til innebygde matematiske funksjoner (log2(), cos(), tg(), exp(), ln(), pow(), etc.) som kan brukes i SQL. Aktivering av innebygde funksjoner krever bygging med alternativet "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • Implementert støtte for uttrykket "ALTER TABLE DROP COLUMN" for å fjerne kolonner fra en tabell og slette data som tidligere er lagret i en gitt kolonne.
  • Implementeringen av UPSERT (legg til eller endre) operasjonen har blitt utvidet, slik at gjennom uttrykk som "INSERT ... ON CONFLICT DO NOTHING/UPDATE" kan ignorere en feil eller utføre en oppdatering i stedet for å sette inn hvis det er umulig å legge til data gjennom "INSERT" (for eksempel, hvis en post allerede eksisterer, kan du gjøre OPPDATERING i stedet for INSERT). Den nye versjonen lar deg spesifisere flere ON CONFLICT-blokker, som vil bli behandlet i rekkefølge. Den siste "ON CONFLICT"-blokken lar konfliktbestemmelsesparameteren utelates for å bruke "DO UPDATE".
  • DELETE, INSERT og UPDATE-operasjonene støtter RETURNING-uttrykket, som kan brukes til å vise innholdet i en slettet, satt inn eller endret post. For eksempel vil uttrykket "sett inn i ... returnerende id" returnere identifikatoren til den tilføyde linjen, og "oppdater ... sett pris = pris * 1.10 returpris" vil returnere den endrede prisverdien.
  • For Common Table Expressions (CTE), som tillater bruk av midlertidige navngitte resultatsett spesifisert ved hjelp av WITH-setningen, er valget mellom "MATERIALIZED" og "NOT MATERIALIZED" tillatt. "MATERIALISERT" innebærer caching av spørringen spesifisert i visningen i en separat fysisk tabell og deretter hente data fra denne tabellen, og med "NOT MATERIALIZED" vil gjentatte spørringer utføres hver gang visningen åpnes. SQLite var opprinnelig standard til "NOT MATERIALIZED", men har nå endret til "MATERIALIZED" for CTE-er brukt mer enn én gang.
  • Redusert minneforbruk når du utfører en VAKUUM-operasjon på databaser som inkluderer svært store TEXT- eller BLOB-verdier.
  • Det er gjort et arbeid for å øke ytelsen til optimalisereren og spørringsplanleggeren:
    • Lagt til optimaliseringer ved bruk av min- og maks-funksjonene med "IN"-uttrykket.
    • Utførelsen av EXISTS-setningen har blitt fremskyndet.
    • Implementert utvidelse av underspørringer fra UNION ALL-uttrykk brukt som en del av JOIN.
    • Indeksen brukes for IS NOT NULL-uttrykk.
    • Sikrer at «x IS NULL» og «x IS NOT NULL» konverteres til FALSE eller TRUE for kolonner som har «NOT NULL»-attributtet.
    • Hopp over å sjekke fremmednøkler i UPDATE hvis operasjonen ikke endrer kolonnene knyttet til fremmednøkkelen.
    • Det er tillatt å flytte deler av en WHERE-blokk til underspørringer som inneholder vindusfunksjoner, så lenge disse delene er begrenset til å jobbe med konstanter og kopier av uttrykk fra PARTITION BY-blokker som brukes i vindusfunksjoner.
  • Endringer i kommandolinjegrensesnittet:
    • Lagt til kommandoen ".filectrl data_version".
    • Kommandoene ".once" og ".output" støtter nå å sende utdata til en behandler som kalles ved hjelp av navnløse rør ("|").
    • Argumentene "stmt" og "vmstep" er lagt til ".stats"-kommandoen for å vise statistikk over uttrykk og virtuelle maskintellere.

Kilde: opennet.ru

Legg til en kommentar