Versione di SQLite 3.40

A liberazione di SQLite 3.40, un DBMS ligeru cuncepitu cum'è una biblioteca plug-in, hè stata publicata. U codice SQLite hè distribuitu in u duminiu publicu, i.e. pò esse usatu senza restrizioni è gratuitu per ogni scopu. U supportu finanziariu per i sviluppatori SQLite hè furnitu da un cunsorziu creatu apposta, chì include cumpagnie cum'è Adobe, Oracle, Mozilla, Bentley è Bloomberg.

I cambiamenti principali:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ компиляции SQLite Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ WebAssembly, способный Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” ΠΈΠ· web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС JavaScript. Web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ прСдоставляСтся высокоуровнСвый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² стилС sql.js ΠΈΠ»ΠΈ Node.js, обвязка Π½Π°Π΄ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ C API ΠΈ API Π½Π° Π±Π°Π·Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Web Worker, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ асинхронныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, выполняСмыС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ web-прилоТСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Π² WASM-вСрсии SQLite, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сохранСны Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ OPFS (Origin-Private FileSystem) ΠΈΠ»ΠΈ API window.localStorage.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ recovery, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для восстановлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с Π‘Π”. Π’ интСрфСйсС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для восстановлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«.recoverΒ».
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° запросов. Π£Π±Ρ€Π°Π½Ρ‹ ограничСния ΠΏΡ€ΠΈ использовании индСксов с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 63 столбцов (Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ опСрациях со столбцами, порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 63, индСксация Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡŒ). Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° индСксация Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² выраТСниях. ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с диска Π±ΠΎΠ»ΡŒΡˆΠΈΡ… строк ΠΈ Π±Π»ΠΎΠ±ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² NOT NULL ΠΈ IS NULL. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° матСриализация прСдставлСний для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π½ΠΎΠ΅ сканированиС выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.
  • Π’ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ вмСсто Ρ‚ΠΈΠΏΠ° Β«char *Β» для прСдставлСния ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² задСйствован ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ sqlite3_filename.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° внутрСнняя функция sqlite3_value_encoding().
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ SQLITE_DBCONFIG_DEFENSIVE, Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСрсии схСмы хранСния Π΄Π°Π½Π½Ρ‹Ρ….
  • Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«PRAGMA integrity_checkΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. НапримСр, Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° STRICT Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² столбцах с Ρ‚ΠΈΠΏΠΎΠΌ TEXT ΠΈ строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с числами Π² столбцах с Ρ‚ΠΈΠΏΠΎΠΌ NUMERIC. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности порядка слСдования строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… с ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Β«WITHOUT ROWIDΒ».
  • Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Β«VACUUM INTOΒ» ΡƒΡ‡Ρ‚Π΅Π½Ρ‹ настройки Β«PRAGMA synchronousΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° сборочная опция SQLITE_MAX_ALLOCATION_SIZE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈ распрСдСлСнии памяти.
  • ВстроСнный Π² SQLite Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ псСвдослучайных чисСл ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ с использования ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡˆΠΈΡ„Ρ€Π° RC4 Π½Π° Chacha20.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС Π² Ρ€Π°Π·Π½Ρ‹Ρ… схСмах Π΄Π°Π½Π½Ρ‹Ρ… индСксов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.
  • ВнСсСны ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, позволившиС ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° CPU ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 1% ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ активности.

Source: opennet.ru

Add a comment