Выпуск Π‘Π£Π‘Π” SQLite 3.51

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· SQLite 3.51, лСгковСсной Π‘Π£Π‘Π”, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Код SQLite распространяСтся ΠΊΠ°ΠΊ общСствСнноС достояниС (public domain), Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π·Π²ΠΎΠ·ΠΌΠ΅Π·Π΄Π½ΠΎ Π² Π»ΡŽΠ±Ρ‹Ρ… цСлях. Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² SQLite осущСствляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданный консорциум.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ JSON-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ jsonb_each() ΠΈ jsonb_tree(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ€Π°Π½Π΅Π΅ доступных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ json_each() ΠΈ json_tree() Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ JSONB для Π΄Π°Π½Π½Ρ‹Ρ… с Ρ‚ΠΈΠΏΠΎΠΌ массив ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • Код Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ carray ΠΈ percentile пСрСнСсён Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Β«sqlite3.cΒ» со встраиваСмым ΠΊΠΎΠ΄ΠΎΠΌ SQLite. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Π΅ дополнСния ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ указания ΠΏΡ€ΠΈ сборкС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Β«-DSQLITE_ENABLE_CARRAYΒ» ΠΈ Β«-DSQLITE_ENABLE_PERCENTILEΒ».
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ интСрфСйс для использования SQLite Π² скриптах Π½Π° языкС Tcl. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«evalΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«-asdictΒ» для выставлСния строк с использованиСм Ρ‚ΠΈΠΏΠ° Β«dictΒ» вмСсто Β«arrayΒ». Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСрывания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для возвращСния значСния NULL.
  • ИзмСнСния Π² интСрфСйсС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:
    • Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«.timerΒ» ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΄ΠΎ микросСкунд;
    • Π’ Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… форматирования Β«boxΒ» ΠΈ Β«columnΒ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° символов с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ;
    • Команда Β«.imposterΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния imposter-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² индСксС ΠΊΠ°ΠΊ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ VACUUM ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ запуска с Ρ„Π»Π°Π³ΠΎΠΌ Β«β€”unsafe-testingΒ»;
    • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ sqlite ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«.openΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”ifexistsΒ».
    • Максимальная ΡˆΠΈΡ€ΠΈΠ½Π° строки, выставляСмая ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«.widthΒ», ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° 30000 символов.
  • ВнСсСны ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:
    • Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° CPU ΠΏΡ€ΠΈ фиксации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… доступом Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅;
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ слияния (JOIN), Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… строки ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько Ρ‚Π°Π±Π»ΠΈΡ† Π½Π΅ содСрТит строк;
    • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скалярных подзапросов, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;
    • УскорСна Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² запросах с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Β«BETWEEN 😑 FOLLOWING AND :y FOLLOWINGΒ» ΠΈ ΠΎΡ‡Π΅Π½ΡŒ большом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Β«:yΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€Π°Π³ΠΌΠ° Β«PRAGMA wal_checkpoint=NOOPΒ» ΠΈ функция API sqlite3_wal_checkpoint() для фиксации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² WAL-Π»ΠΎΠ³Π΅
  • Π’ API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sqlite3_set_errmsg() ΠΈ sqlite3_db_status64().
  • Π’ JavaScript/WASM-вСрсии SQLite Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки Π² прСдставлСниС WebAssembly с 64-разрядными указатСлями.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ‚ΠΎΠΉΠΊΠΎΡΡ‚ΡŒ ΠΎΡ‚ поврСТдСния Π‘Π” Π² прилоТСниях, ΡΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… POSIX-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² close().
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ VxWorks.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ